diff --git a/site/content/tutorial/12-actions/01-actions/app-a/App.svelte b/site/content/tutorial/12-actions/01-actions/app-a/App.svelte
index feacc44c52..40b4ea2673 100644
--- a/site/content/tutorial/12-actions/01-actions/app-a/App.svelte
+++ b/site/content/tutorial/12-actions/01-actions/app-a/App.svelte
@@ -1,29 +1,16 @@
+
(showModal = true)}>Show Modal
+{#if showModal}
+
(showModal = false)}>
+ Click outside me!
+
+{/if}
+
-
-
\ No newline at end of file
diff --git a/site/content/tutorial/12-actions/01-actions/app-a/pannable.js b/site/content/tutorial/12-actions/01-actions/app-a/click_outside.js
similarity index 69%
rename from site/content/tutorial/12-actions/01-actions/app-a/pannable.js
rename to site/content/tutorial/12-actions/01-actions/app-a/click_outside.js
index 332cd3e147..c406f6e95c 100644
--- a/site/content/tutorial/12-actions/01-actions/app-a/pannable.js
+++ b/site/content/tutorial/12-actions/01-actions/app-a/click_outside.js
@@ -1,4 +1,4 @@
-export function pannable(node) {
+export function clickOutside(node) {
// setup work goes here...
return {
@@ -6,4 +6,4 @@ export function pannable(node) {
// ...cleanup goes here
}
};
-}
\ No newline at end of file
+}
diff --git a/site/content/tutorial/12-actions/01-actions/app-b/App.svelte b/site/content/tutorial/12-actions/01-actions/app-b/App.svelte
index 171f82762c..bd990a5360 100644
--- a/site/content/tutorial/12-actions/01-actions/app-b/App.svelte
+++ b/site/content/tutorial/12-actions/01-actions/app-b/App.svelte
@@ -1,30 +1,16 @@
+
(showModal = true)}>Show Modal
+{#if showModal}
+
(showModal = false)}>
+ Click outside me!
+
+{/if}
+
-
-
\ No newline at end of file
diff --git a/site/content/tutorial/12-actions/01-actions/app-b/click_outside.js b/site/content/tutorial/12-actions/01-actions/app-b/click_outside.js
new file mode 100644
index 0000000000..e8983c1457
--- /dev/null
+++ b/site/content/tutorial/12-actions/01-actions/app-b/click_outside.js
@@ -0,0 +1,15 @@
+export function clickOutside(node) {
+ const handleClick = (event) => {
+ if (!node.contains(event.target)) {
+ node.dispatchEvent(new CustomEvent("outclick"));
+ }
+ };
+
+ document.addEventListener("click", handleClick, true);
+
+ return {
+ destroy() {
+ document.removeEventListener("click", handleClick, true);
+ }
+ };
+}
diff --git a/site/content/tutorial/12-actions/01-actions/app-b/pannable.js b/site/content/tutorial/12-actions/01-actions/app-b/pannable.js
deleted file mode 100644
index f7d15328be..0000000000
--- a/site/content/tutorial/12-actions/01-actions/app-b/pannable.js
+++ /dev/null
@@ -1,47 +0,0 @@
-export function pannable(node) {
- let x;
- let y;
-
- function handleMousedown(event) {
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panstart', {
- detail: { x, y }
- }));
-
- window.addEventListener('mousemove', handleMousemove);
- window.addEventListener('mouseup', handleMouseup);
- }
-
- function handleMousemove(event) {
- const dx = event.clientX - x;
- const dy = event.clientY - y;
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panmove', {
- detail: { x, y, dx, dy }
- }));
- }
-
- function handleMouseup(event) {
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panend', {
- detail: { x, y }
- }));
-
- window.removeEventListener('mousemove', handleMousemove);
- window.removeEventListener('mouseup', handleMouseup);
- }
-
- node.addEventListener('mousedown', handleMousedown);
-
- return {
- destroy() {
- node.removeEventListener('mousedown', handleMousedown);
- }
- };
-}
\ No newline at end of file
diff --git a/site/content/tutorial/12-actions/01-actions/text.md b/site/content/tutorial/12-actions/01-actions/text.md
index 3706b31e7c..dfe75c192f 100644
--- a/site/content/tutorial/12-actions/01-actions/text.md
+++ b/site/content/tutorial/12-actions/01-actions/text.md
@@ -4,85 +4,45 @@ title: The use directive
Actions are essentially element-level lifecycle functions. They're useful for things like:
-* interfacing with third-party libraries
-* lazy-loaded images
-* tooltips
-* adding custom event handlers
+- interfacing with third-party libraries
+- lazy-loaded images
+- tooltips
+- adding custom event handlers
-In this app, we want to make the orange box 'pannable'. It has event handlers for the `panstart`, `panmove` and `panend` events, but these aren't native DOM events. We have to dispatch them ourselves. First, import the `pannable` function...
+In this app, we want to make the orange modal close when the user clicks outside it. It has an event handler for the `outclick` event, but it isn't a native DOM event. We have to dispatch it ourselves. First, import the `clickOutside` function...
```js
-import { pannable } from './pannable.js';
+import { clickOutside } from "./click_outside.js";
```
...then use it with the element:
```html
-
+
+ Click outside me!
+
```
-Open the `pannable.js` file. Like transition functions, an action function receives a `node` and some optional parameters, and returns an action object. That object can have a `destroy` function, which is called when the element is unmounted.
+Open the `click_outside.js` file. Like transition functions, an action function receives a `node` (which is the element that the action is applied to) and some optional parameters, and returns an action object. That object can have a `destroy` function, which is called when the element is unmounted.
-We want to fire `panstart` event when the user mouses down on the element, `panmove` events (with `dx` and `dy` properties showing how far the mouse moved) when they drag it, and `panend` events when they mouse up. One possible implementation looks like this:
+We want to fire the `outclick` event when the user clicks outside the orange box. One possible implementation looks like this:
```js
-export function pannable(node) {
- let x;
- let y;
-
- function handleMousedown(event) {
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panstart', {
- detail: { x, y }
- }));
-
- window.addEventListener('mousemove', handleMousemove);
- window.addEventListener('mouseup', handleMouseup);
- }
-
- function handleMousemove(event) {
- const dx = event.clientX - x;
- const dy = event.clientY - y;
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panmove', {
- detail: { x, y, dx, dy }
- }));
- }
-
- function handleMouseup(event) {
- x = event.clientX;
- y = event.clientY;
-
- node.dispatchEvent(new CustomEvent('panend', {
- detail: { x, y }
- }));
-
- window.removeEventListener('mousemove', handleMousemove);
- window.removeEventListener('mouseup', handleMouseup);
- }
+export function clickOutside(node) {
+ const handleClick = (event) => {
+ if (!node.contains(event.target)) {
+ node.dispatchEvent(new CustomEvent("outclick"));
+ }
+ };
- node.addEventListener('mousedown', handleMousedown);
+ document.addEventListener("click", handleClick, true);
return {
destroy() {
- node.removeEventListener('mousedown', handleMousedown);
- }
+ document.removeEventListener("click", handleClick, true);
+ },
};
}
```
-Update the `pannable` function and try moving the box around.
-
-> This implementation is for demonstration purposes — a more complete one would also consider touch events.
+Update the `clickOutside` function, click the button to show the modal and then click outside it to close it.
diff --git a/site/docker-compose.yml b/site/docker-compose.yml
deleted file mode 100644
index 910119796a..0000000000
--- a/site/docker-compose.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: "3.0"
-services:
- postgres:
- image: postgres:13.4
- ports:
- - "5432:5432"
- environment:
- - POSTGRES_DB=${PGDATABASE}
- - POSTGRES_USER=${PGUSER}
- - POSTGRES_PASSWORD=${PGPASSWORD}
- adminer:
- image: adminer
- restart: always
- ports:
- - "4000:8080"
diff --git a/site/migrations/000-create-users.cjs b/site/migrations/000-create-users.cjs
deleted file mode 100644
index 76dde745a2..0000000000
--- a/site/migrations/000-create-users.cjs
+++ /dev/null
@@ -1,25 +0,0 @@
-exports.up = DB => {
- DB.sql(`
- create table if not exists users (
- id serial primary key,
- uid character varying(255) not null unique,
- name character varying(255),
- username character varying(255) not null,
- avatar text,
- github_token character varying(255),
- created_at timestamp with time zone NOT NULL DEFAULT now(),
- updated_at timestamp with time zone
- );
-
- create unique index if not exists users_pkey ON users(id int4_ops);
- create unique index if not exists users_uid_key ON users(uid text_ops);
- `);
-};
-
-exports.down = DB => {
- DB.sql(`
- drop table if exists users cascade;
- drop index if exists users_uid_key;
- drop index if exists users_pkey;
- `);
-};
diff --git a/site/migrations/001-create-gists.cjs b/site/migrations/001-create-gists.cjs
deleted file mode 100644
index 22293f5737..0000000000
--- a/site/migrations/001-create-gists.cjs
+++ /dev/null
@@ -1,24 +0,0 @@
-exports.up = DB => {
- DB.sql(`
- create table if not exists gists (
- id serial primary key,
- uid uuid NOT NULL DEFAULT gen_random_uuid(),
- user_id integer REFERENCES users(id) not null,
- name character varying(255) not null,
- files json not null,
- created_at timestamp with time zone NOT NULL DEFAULT now(),
- updated_at timestamp with time zone
- );
-
- create unique index if not exists gists_pkey ON gists(id int4_ops);
- create index if not exists gists_user_id_key ON gists(user_id int4_ops);
- `);
-};
-
-exports.down = DB => {
- DB.sql(`
- drop table if exists gists cascade;
- drop index if exists gists_user_id_key;
- drop index if exists gists_pkey;
- `);
-};
diff --git a/site/migrations/002-create-sessions.cjs b/site/migrations/002-create-sessions.cjs
deleted file mode 100644
index c24fc69115..0000000000
--- a/site/migrations/002-create-sessions.cjs
+++ /dev/null
@@ -1,15 +0,0 @@
-exports.up = DB => {
- DB.sql(`
- create table if not exists sessions (
- uid uuid NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(),
- user_id integer REFERENCES users(id) not null,
- expiry timestamp without time zone DEFAULT now() + interval '1 year'
- );
- `);
-};
-
-exports.down = DB => {
- DB.sql(`
- drop table if exists sessions;
- `);
-};
diff --git a/site/package-lock.json b/site/package-lock.json
deleted file mode 100644
index 70f17cc888..0000000000
--- a/site/package-lock.json
+++ /dev/null
@@ -1,3970 +0,0 @@
-{
- "name": "svelte.dev",
- "version": "1.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "svelte.dev",
- "version": "1.0.0",
- "dependencies": {
- "cookie": "^0.4.0",
- "devalue": "^2.0.0",
- "do-not-zip": "^1.0.0",
- "flru": "^1.0.2",
- "httpie": "^1.1.2",
- "jsonwebtoken": "^8.5.1",
- "marked": "^3.0.5",
- "pg": "^8.7.1",
- "prism-svelte": "^0.4.3",
- "prismjs": "^1.25.0"
- },
- "devDependencies": {
- "@sindresorhus/slugify": "^0.9.1",
- "@sveltejs/adapter-node": "next",
- "@sveltejs/kit": "next",
- "@sveltejs/site-kit": "^1.4.0",
- "@sveltejs/svelte-repl": "^0.3.0",
- "degit": "^2.1.4",
- "dotenv": "^10.0.0",
- "jimp": "^0.8.0",
- "node-fetch": "^2.6.1",
- "node-pg-migrate": "^6.0.0",
- "shelljs": "^0.8.3",
- "svelte": "^3.39.0",
- "uvu": "^0.5.2"
- }
- },
- "node_modules/@jimp/bmp": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.8.5.tgz",
- "integrity": "sha512-o/23j1RODQGGjvb2xg+9ZQCHc9uXa5XIoJuXHN8kh8AJBGD7JZYiHMwNHaxJRJvadimCKUeA5udZUJAoaPwrYg==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "bmp-js": "^0.1.0",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/core": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.8.5.tgz",
- "integrity": "sha512-Jto1IdL5HYg7uE15rpQjK6dfZJ6d6gRjUsVCPW50nIfXgWizaTibFEov90W9Bj+irwKrX2ntG3e3pZUyOC0COg==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "any-base": "^1.1.0",
- "buffer": "^5.2.0",
- "core-js": "^2.5.7",
- "exif-parser": "^0.1.12",
- "file-type": "^9.0.0",
- "load-bmfont": "^1.3.1",
- "mkdirp": "0.5.1",
- "phin": "^2.9.1",
- "pixelmatch": "^4.0.2",
- "tinycolor2": "^1.4.1"
- }
- },
- "node_modules/@jimp/custom": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.8.5.tgz",
- "integrity": "sha512-hS4qHOcOIL+N93IprsIhFgr8F4XnC2oYd+lRaOKEOg3ptS2vQnceSTtcXsC0//mhq8AV6lNjpbfs1iseEZuTqg==",
- "dev": true,
- "dependencies": {
- "@jimp/core": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "node_modules/@jimp/gif": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.8.5.tgz",
- "integrity": "sha512-Mj8jmv4AS76OY+Hx/Xoyihj02SUZ2ELk+O5x89pODz1+NeGtSWHHjZjnSam9HYAjycvVI/lGJdk/7w0nWIV/yQ==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "omggif": "^1.0.9"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/jpeg": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.8.5.tgz",
- "integrity": "sha512-7kjTY0BiCpwRywk+oPfpLto7cLI+9G0mf4N1bv1Hn+VLQwcXFy2fHyl4qjqLbbY6u4cyZgqN+R8Pg6GRRzv0kw==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "jpeg-js": "^0.3.4"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-blit": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.8.5.tgz",
- "integrity": "sha512-r8Z1CwazaJwZCRbucQgrfprlGyH91tX7GubUsbWr+zy5/dRJAAgaPj/hcoHDwbh3zyiXp5BECKKzKW0x4reL4w==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-blur": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.8.5.tgz",
- "integrity": "sha512-UH5ywpV4YooUh9HXEsrNKDtojLCvIAAV0gywqn8EQeFyzwBJyXAvRNARJp7zr5OPLr9uGXkRLDCO9YyzdlXZng==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-color": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.8.5.tgz",
- "integrity": "sha512-7XHqcTQ8Y1zto1b9P1y8m1dzSjnOpBsD9OZG0beTpeJ5bgPX+hF5ZLmvcM6c5ljkINw5EUF1it07BYbkCxiGQA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "tinycolor2": "^1.4.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-contain": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.8.5.tgz",
- "integrity": "sha512-ZkiPFx9L0yITiKtYTYLWyBsSIdxo/NARhNPRZXyVF9HmTWSLDUw1c2c1uvETKxDZTAVK+souYT14DwFWWdhsYA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-cover": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.8.5.tgz",
- "integrity": "sha512-OdT4YAopLOhbhTUQV3R1v5ZZqIaUt3n3vJi/OfTbsak1t9UkPBVdmYPyhoont8zJdtdkF5dW16Ro1FTshytcww==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-crop": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.8.5.tgz",
- "integrity": "sha512-E1Hb+gfu2k74Gkqh96apAyVljsP5MjCH4TY6lECAAEcYKGH/XRhz6lY2dSEjCYE7KtiqjTZzWwYkgAvkwojj9Q==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-displace": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.8.5.tgz",
- "integrity": "sha512-fVgVYTS1HZzAXkg8Lg06PuirSUG5oXYaYYGL+3ZU4tmZn1pyZ+mZyfejpwtymETEYZnmymHoCT4xto19E/IRvA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-dither": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.8.5.tgz",
- "integrity": "sha512-KSj2y8E3yK7tldjT/8ejqAWw5HFBjtWW6QkcxfW7FdV4c/nsXZXDkMbhqMZ7FkDuSYoAPeWUFeddrH4yipC5iA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-flip": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.8.5.tgz",
- "integrity": "sha512-2QbGDkurPNAXZUeHLo/UA3tjh+AbAXWZKSdtoa1ArlASovRz8rqtA45YIRIkKrMH82TA3PZk8bgP2jaLKLrzww==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-rotate": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-gaussian": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.8.5.tgz",
- "integrity": "sha512-2zReC5GJcVAXtf3UgzFcHSYN277i02K9Yrhc1xJf3mti00s43uD++B5Ho7/mIo+HrntVvWhxqar7PARdq0lVIg==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-invert": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.8.5.tgz",
- "integrity": "sha512-GyMXPGheHdS14xfDceuZ9hrGm6gE9UG3PfTEjQbJmHMWippLC6yf8kombSudJlUf8q72YYSSXsSFKGgkHa67vA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-mask": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.8.5.tgz",
- "integrity": "sha512-inD/++XO+MkmwXl9JGYQ8X2deyOZuq9i+dmugH/557p16B9Q6tvUQt5X1Yg5w7hhkLZ00BKOAJI9XoyCC1NFvQ==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-normalize": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.8.5.tgz",
- "integrity": "sha512-8YRWJWBT4NoSAbPhnjQJXGeaeWVrJAlGDv39A54oNH8Ry47fHcE0EN6zogQNpBuM34M6hRnZl4rOv1FIisaWdg==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-print": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.8.5.tgz",
- "integrity": "sha512-BviNpCiA/fEieOqsrWr1FkqyFuiG2izdyyg7zUqyeUTHPwqrTLvXO9cfP/ThG4hZpu5wMQ5QClWSqhZu1fAwxA==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "load-bmfont": "^1.4.0"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-resize": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.8.5.tgz",
- "integrity": "sha512-gIdmISuNmZQ1QwprnRC5VXVWQfKIiWineVQGebpMAG/aoFOLDXrVl939Irg7Fb/uOlSFTzpAbt1zpJ8YG/Mi2w==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-rotate": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.8.5.tgz",
- "integrity": "sha512-8T9wnL3gb+Z0ogMZmtyI6h3y7TuqW2a5SpFbzFUVF+lTZoAabXjEfX3CAozizCLaT+Duc5H2FJVemAHiyr+Dbw==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-scale": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.8.5.tgz",
- "integrity": "sha512-G+CDH9s7BsxJ4b+mKZ5SsiXwTAynBJ+7/9SwZFnICZJJvLd79Tws6VPXfSaKJZuWnGIX++L8jTGmFORCfLNkdg==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugins": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.8.5.tgz",
- "integrity": "sha512-52na0wqfQ3uItIA+C9cJ1EXffhSmABgK7ETClDseUh9oGtynHzxZ97smnFf1ydLjXLrF89Gt+YBxWLyiBGgiZQ==",
- "dev": true,
- "dependencies": {
- "@jimp/plugin-blit": "^0.8.5",
- "@jimp/plugin-blur": "^0.8.5",
- "@jimp/plugin-color": "^0.8.5",
- "@jimp/plugin-contain": "^0.8.5",
- "@jimp/plugin-cover": "^0.8.5",
- "@jimp/plugin-crop": "^0.8.5",
- "@jimp/plugin-displace": "^0.8.5",
- "@jimp/plugin-dither": "^0.8.5",
- "@jimp/plugin-flip": "^0.8.5",
- "@jimp/plugin-gaussian": "^0.8.5",
- "@jimp/plugin-invert": "^0.8.5",
- "@jimp/plugin-mask": "^0.8.5",
- "@jimp/plugin-normalize": "^0.8.5",
- "@jimp/plugin-print": "^0.8.5",
- "@jimp/plugin-resize": "^0.8.5",
- "@jimp/plugin-rotate": "^0.8.5",
- "@jimp/plugin-scale": "^0.8.5",
- "core-js": "^2.5.7",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/png": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.8.5.tgz",
- "integrity": "sha512-zT89ucu8I2rsD3FIMIPLgr1OyKn4neD+5umwD3MY8AOB8+6tX5bFtnmTm3FzGJaJuibkK0wFl87eiaxnb+Megw==",
- "dev": true,
- "dependencies": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "pngjs": "^3.3.3"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/tiff": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.8.5.tgz",
- "integrity": "sha512-Z7uzDcbHuwDg+hy2+UJQ2s5O6sqYXmv6H1fmSf/2dxBrlGMzl8yTc2/BxLrGREeoidDDMcKmXYGAOp4uCsdJjw==",
- "dev": true,
- "dependencies": {
- "core-js": "^2.5.7",
- "utif": "^2.0.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/types": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.8.5.tgz",
- "integrity": "sha512-XUvpyebZGd1vyFiJyxUT4H9A3mKD7MV2MxjXnay3fNTrcow0UJJspmFw/w+G3TP/1dgrVC4K++gntjR6QWTzvg==",
- "dev": true,
- "dependencies": {
- "@jimp/bmp": "^0.8.5",
- "@jimp/gif": "^0.8.5",
- "@jimp/jpeg": "^0.8.5",
- "@jimp/png": "^0.8.5",
- "@jimp/tiff": "^0.8.5",
- "core-js": "^2.5.7",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/utils": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.8.5.tgz",
- "integrity": "sha512-D3+H4BiopDkhUKvKkZTPPJ53voqOkfMuk3r7YZNcLtXGLkchjjukC4056lNo7B0DzjBgowTYsQM3JjKnYNIYeg==",
- "dev": true,
- "dependencies": {
- "core-js": "^2.5.7"
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
- "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==",
- "dev": true,
- "dependencies": {
- "estree-walker": "^2.0.1",
- "picomatch": "^2.2.2"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/@sindresorhus/slugify": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.9.1.tgz",
- "integrity": "sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5",
- "lodash.deburr": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@sveltejs/adapter-node": {
- "version": "1.0.0-next.53",
- "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.53.tgz",
- "integrity": "sha512-fovlQ+DPeAvkYqi+BXG48A4U1Dz2YzQXi3fG8Qs9zGAGnX22cx3ldZMThdDcOakwDmQodMYatK8cSBxuP0GAkA==",
- "dev": true,
- "dependencies": {
- "esbuild": "^0.13.3",
- "tiny-glob": "^0.2.9"
- }
- },
- "node_modules/@sveltejs/kit": {
- "version": "1.0.0-next.186",
- "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.186.tgz",
- "integrity": "sha512-LFv2q2cToreUcGp0B+5uVfu0qMvQiw3hsyELnUwxPP/lpUbcmYjgQmwivjRNTdudCqZt7ng3Ehy7UDILbBhExQ==",
- "dev": true,
- "dependencies": {
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.30",
- "cheap-watch": "^1.0.4",
- "sade": "^1.7.4",
- "vite": "^2.6.10"
- },
- "bin": {
- "svelte-kit": "svelte-kit.js"
- },
- "engines": {
- "node": ">=14.13"
- },
- "peerDependencies": {
- "svelte": "^3.44.0"
- }
- },
- "node_modules/@sveltejs/site-kit": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@sveltejs/site-kit/-/site-kit-1.4.0.tgz",
- "integrity": "sha512-QoIo8KC6G9gInwFyk4+KCzVOiLNdj2aw7T+wGDED+A/SuvICSCyS7W/Ft0WcoAGyQGtgIFRVCcXacubduzA7bg==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/slugify": "^0.9.1",
- "golden-fleece": "^1.0.9"
- }
- },
- "node_modules/@sveltejs/svelte-repl": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@sveltejs/svelte-repl/-/svelte-repl-0.3.0.tgz",
- "integrity": "sha512-7ybZNTdCHCv6TbH22nZVIgdA/bypKFumXs83ZDDRDoXbZa129UBJTTQV6DhTjitT+tPK4nyRNFiSsEOy10X4Uw==",
- "dev": true,
- "dependencies": {
- "codemirror": "^5.49.2",
- "estree-walker": "^0.9.0",
- "marked": "3.0.5",
- "sourcemap-codec": "^1.4.6",
- "svelte-json-tree": "0.0.5",
- "yootils": "0.0.16"
- }
- },
- "node_modules/@sveltejs/svelte-repl/node_modules/estree-walker": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.9.0.tgz",
- "integrity": "sha512-12U47o7XHUX329+x3FzNVjCx3SHEzMF0nkDv7r/HnBzX/xNTKxajBk6gyygaxrAFtLj39219oMfbtxv4KpaOiA==",
- "dev": true
- },
- "node_modules/@sveltejs/vite-plugin-svelte": {
- "version": "1.0.0-next.30",
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.30.tgz",
- "integrity": "sha512-YQqdMxjL1VgSFk4/+IY3yLwuRRapPafPiZTiaGEq1psbJYSNYUWx9F1zMm32GMsnogg3zn99mGJOqe3ld3HZSg==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^4.1.1",
- "debug": "^4.3.2",
- "kleur": "^4.1.4",
- "magic-string": "^0.25.7",
- "require-relative": "^0.8.7",
- "svelte-hmr": "^0.14.7"
- },
- "engines": {
- "node": "^14.13.1 || >= 16"
- },
- "peerDependencies": {
- "diff-match-patch": "^1.0.5",
- "svelte": "^3.44.0",
- "vite": "^2.6.0"
- },
- "peerDependenciesMeta": {
- "diff-match-patch": {
- "optional": true
- }
- }
- },
- "node_modules/@types/node": {
- "version": "16.10.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz",
- "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==",
- "dev": true
- },
- "node_modules/@types/pg": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz",
- "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "pg-protocol": "*",
- "pg-types": "^2.2.0"
- }
- },
- "node_modules/any-base": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
- "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==",
- "dev": true
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/bmp-js": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
- "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=",
- "dev": true
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-equal": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
- "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "node_modules/buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cheap-watch": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cheap-watch/-/cheap-watch-1.0.4.tgz",
- "integrity": "sha512-QR/9FrtRL5fjfUJBhAKCdi0lSRQ3rVRRum3GF9wDKp2TJbEIMGhUEr2yU8lORzm9Isdjx7/k9S0DFDx+z5VGtw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/codemirror": {
- "version": "5.63.1",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.63.1.tgz",
- "integrity": "sha512-baivaNZreZOGh1/tYyTvCupC9NeWk7qlZeGUDi4nFKj/J0JU8FYKZND4QqLw70P7HOttlCt4JJAOj9GoIhHEkA==",
- "dev": true
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
- "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
- "dev": true,
- "hasInstallScript": true
- },
- "node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
- "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/degit": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/degit/-/degit-2.8.4.tgz",
- "integrity": "sha512-vqYuzmSA5I50J882jd+AbAhQtgK6bdKUJIex1JNfEUPENCgYsxugzKVZlFyMwV4i06MmnV47/Iqi5Io86zf3Ng==",
- "dev": true,
- "bin": {
- "degit": "degit"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
- "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/devalue": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/devalue/-/devalue-2.0.1.tgz",
- "integrity": "sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q=="
- },
- "node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/do-not-zip": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/do-not-zip/-/do-not-zip-1.0.0.tgz",
- "integrity": "sha512-Pgd81ET43bhAGaN2Hq1zluSX1FmD7kl7KcV9ER/lawiLsRUB9pRA5y8r6us29Xk6BrINZETO8TjhYwtwafWUww=="
- },
- "node_modules/dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
- "dev": true
- },
- "node_modules/dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/esbuild": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
- "integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "optionalDependencies": {
- "esbuild-android-arm64": "0.13.4",
- "esbuild-darwin-64": "0.13.4",
- "esbuild-darwin-arm64": "0.13.4",
- "esbuild-freebsd-64": "0.13.4",
- "esbuild-freebsd-arm64": "0.13.4",
- "esbuild-linux-32": "0.13.4",
- "esbuild-linux-64": "0.13.4",
- "esbuild-linux-arm": "0.13.4",
- "esbuild-linux-arm64": "0.13.4",
- "esbuild-linux-mips64le": "0.13.4",
- "esbuild-linux-ppc64le": "0.13.4",
- "esbuild-openbsd-64": "0.13.4",
- "esbuild-sunos-64": "0.13.4",
- "esbuild-windows-32": "0.13.4",
- "esbuild-windows-64": "0.13.4",
- "esbuild-windows-arm64": "0.13.4"
- }
- },
- "node_modules/esbuild-android-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.4.tgz",
- "integrity": "sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/esbuild-darwin-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.4.tgz",
- "integrity": "sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/esbuild-darwin-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.4.tgz",
- "integrity": "sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/esbuild-freebsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.4.tgz",
- "integrity": "sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/esbuild-freebsd-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.4.tgz",
- "integrity": "sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/esbuild-linux-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.4.tgz",
- "integrity": "sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-linux-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.4.tgz",
- "integrity": "sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-linux-arm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.4.tgz",
- "integrity": "sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-linux-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.4.tgz",
- "integrity": "sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-linux-mips64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.4.tgz",
- "integrity": "sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-linux-ppc64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.4.tgz",
- "integrity": "sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/esbuild-openbsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.4.tgz",
- "integrity": "sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ]
- },
- "node_modules/esbuild-sunos-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.4.tgz",
- "integrity": "sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ]
- },
- "node_modules/esbuild-windows-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.4.tgz",
- "integrity": "sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/esbuild-windows-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.4.tgz",
- "integrity": "sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/esbuild-windows-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.4.tgz",
- "integrity": "sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
- },
- "node_modules/exif-parser": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
- "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
- "dev": true
- },
- "node_modules/file-type": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
- "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/flru": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flru/-/flru-1.0.2.tgz",
- "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dev": true,
- "dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
- }
- },
- "node_modules/globalyzer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
- "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
- "dev": true
- },
- "node_modules/globrex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
- "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
- "dev": true
- },
- "node_modules/golden-fleece": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/golden-fleece/-/golden-fleece-1.0.9.tgz",
- "integrity": "sha512-YSwLaGMOgSBx9roJlNLL12c+FRiw7VECphinc6mGucphc/ZxTHgdEz6gmJqH6NOzYEd/yr64hwjom5pZ+tJVpg==",
- "dev": true
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/httpie": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/httpie/-/httpie-1.1.2.tgz",
- "integrity": "sha512-VQ82oXG95oY1fQw/XecHuvcFBA+lZQ9Vwj1RfLcO8a7HpDd4cc2ukwpJt+TUlFaLUAzZErylxWu6wclJ1rUhUQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
- "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
- "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
- "dev": true
- },
- "node_modules/jimp": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.8.5.tgz",
- "integrity": "sha512-BW7t/+TCgKpqZw/wHFwqF/A/Tyk43RmzRHyMBdqfOepqunUrajt0RTqowdWyFo4CS2FmD8pFiYfefWjpXFWrCA==",
- "dev": true,
- "dependencies": {
- "@jimp/custom": "^0.8.5",
- "@jimp/plugins": "^0.8.5",
- "@jimp/types": "^0.8.5",
- "core-js": "^2.5.7",
- "regenerator-runtime": "^0.13.3"
- }
- },
- "node_modules/jpeg-js": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz",
- "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==",
- "dev": true
- },
- "node_modules/jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "dependencies": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=4",
- "npm": ">=1.4.28"
- }
- },
- "node_modules/jsonwebtoken/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/load-bmfont": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz",
- "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
- "dev": true,
- "dependencies": {
- "buffer-equal": "0.0.1",
- "mime": "^1.3.4",
- "parse-bmfont-ascii": "^1.0.3",
- "parse-bmfont-binary": "^1.0.5",
- "parse-bmfont-xml": "^1.1.4",
- "phin": "^2.9.1",
- "xhr": "^2.0.1",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/lodash.deburr": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
- "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=",
- "dev": true
- },
- "node_modules/lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
- },
- "node_modules/lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
- },
- "node_modules/lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
- },
- "node_modules/lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "node_modules/lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
- },
- "node_modules/magic-string": {
- "version": "0.25.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
- "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
- "dev": true,
- "dependencies": {
- "sourcemap-codec": "^1.4.4"
- }
- },
- "node_modules/marked": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.5.tgz",
- "integrity": "sha512-6sXDj79pTjEiu9HfOH7LcqggjUtLHXEG3wxzhSI3zr0uwxIjyDy2rpRWDDLmIeWvUIHNkpalsIcW5JjPAVikaA==",
- "bin": {
- "marked": "bin/marked"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
- "dev": true,
- "dependencies": {
- "dom-walk": "^0.1.0"
- }
- },
- "node_modules/minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
- "dev": true,
- "dependencies": {
- "minimist": "0.0.8"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mkdirp/node_modules/minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/nanoid": {
- "version": "3.1.30",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
- "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz",
- "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- }
- },
- "node_modules/node-pg-migrate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.0.0.tgz",
- "integrity": "sha512-mv0qhjENeD/HuGghZCuAcWCrOB77B5dNLMXRz13UeBDDTafsRGFpN+4/IpFM9EZ8g0mcE34/ceVYDLmk4W8/Pw==",
- "dev": true,
- "dependencies": {
- "@types/pg": "^8.0.0",
- "decamelize": "^5.0.0",
- "mkdirp": "~1.0.0",
- "yargs": "~17.1.0"
- },
- "bin": {
- "node-pg-migrate": "bin/node-pg-migrate"
- },
- "engines": {
- "node": ">=12.13.0"
- },
- "peerDependencies": {
- "pg": ">=4.3.0 <9.0.0"
- }
- },
- "node_modules/node-pg-migrate/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-pg-migrate/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/node-pg-migrate/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/node-pg-migrate/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/node-pg-migrate/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/node-pg-migrate/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/node-pg-migrate/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-pg-migrate/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-pg-migrate/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-pg-migrate/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-pg-migrate/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/node-pg-migrate/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-pg-migrate/node_modules/yargs": {
- "version": "17.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
- "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/node-pg-migrate/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/omggif": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
- "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==",
- "dev": true
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
- },
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "node_modules/parse-bmfont-ascii": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
- "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=",
- "dev": true
- },
- "node_modules/parse-bmfont-binary": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
- "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=",
- "dev": true
- },
- "node_modules/parse-bmfont-xml": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
- "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
- "dev": true,
- "dependencies": {
- "xml-parse-from-string": "^1.0.0",
- "xml2js": "^0.4.5"
- }
- },
- "node_modules/parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==",
- "dev": true
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/pg": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz",
- "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==",
- "dependencies": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.4.1",
- "pg-protocol": "^1.5.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- },
- "engines": {
- "node": ">= 8.0.0"
- },
- "peerDependencies": {
- "pg-native": ">=2.0.0"
- },
- "peerDependenciesMeta": {
- "pg-native": {
- "optional": true
- }
- }
- },
- "node_modules/pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
- },
- "node_modules/pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/pg-pool": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz",
- "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==",
- "peerDependencies": {
- "pg": ">=8.0"
- }
- },
- "node_modules/pg-protocol": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
- "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
- },
- "node_modules/pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "dependencies": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pgpass": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
- "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
- "dependencies": {
- "split2": "^3.1.1"
- }
- },
- "node_modules/phin": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
- "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pixelmatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
- "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
- "dev": true,
- "dependencies": {
- "pngjs": "^3.0.0"
- },
- "bin": {
- "pixelmatch": "bin/pixelmatch"
- }
- },
- "node_modules/pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.3.9",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz",
- "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==",
- "dev": true,
- "dependencies": {
- "nanoid": "^3.1.28",
- "picocolors": "^0.2.1",
- "source-map-js": "^0.6.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- }
- },
- "node_modules/postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "dependencies": {
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/prism-svelte": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz",
- "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ=="
- },
- "node_modules/prismjs": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
- "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dev": true,
- "dependencies": {
- "resolve": "^1.1.6"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-relative": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
- "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
- "dev": true
- },
- "node_modules/resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/rollup": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz",
- "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==",
- "dev": true,
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=10.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/sade": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
- "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
- "dev": true,
- "dependencies": {
- "mri": "^1.1.0"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
- },
- "node_modules/shelljs": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
- "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
- "dev": true,
- "dependencies": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- },
- "bin": {
- "shjs": "bin/shjs"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "dev": true
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/svelte": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.0.tgz",
- "integrity": "sha512-zWACSJBSncGiDvFfYOMFGNV5zDLOlyhftmO5yOZ0lEtQMptpElaRtl39MWz1+lYCpwUq4F3Q2lTzI9TrTL+eMA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/svelte-hmr": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz",
- "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==",
- "dev": true,
- "peerDependencies": {
- "svelte": ">=3.19.0"
- }
- },
- "node_modules/svelte-json-tree": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/svelte-json-tree/-/svelte-json-tree-0.0.5.tgz",
- "integrity": "sha512-kTcOVlsldI2neszYNQAfFCt+u62OWWAZgpeoW9RN3hjtJCWI5bkVj0gtljZWUlyEWTfgpmag5L5AHDKg8w8ZmQ==",
- "dev": true
- },
- "node_modules/timm": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz",
- "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==",
- "dev": true
- },
- "node_modules/tiny-glob": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
- "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
- "dev": true,
- "dependencies": {
- "globalyzer": "0.1.0",
- "globrex": "^0.1.2"
- }
- },
- "node_modules/tinycolor2": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
- "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/totalist": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz",
- "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true
- },
- "node_modules/utif": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
- "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
- "dev": true,
- "dependencies": {
- "pako": "^1.0.5"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/uvu": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz",
- "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==",
- "dev": true,
- "dependencies": {
- "dequal": "^2.0.0",
- "diff": "^5.0.0",
- "kleur": "^4.0.3",
- "sade": "^1.7.3",
- "totalist": "^2.0.0"
- },
- "bin": {
- "uvu": "bin.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/vite": {
- "version": "2.6.10",
- "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.10.tgz",
- "integrity": "sha512-XbevwpDJMs3lKiGEj0UQScsOCpwHIjFgfzPnFVkPgnxsF9oPv1uGyckLg58XkXv6LnO46KN9yZqJzINFmAxtUg==",
- "dev": true,
- "dependencies": {
- "esbuild": "^0.13.2",
- "postcss": "^8.3.8",
- "resolve": "^1.20.0",
- "rollup": "^2.57.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": ">=12.2.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- },
- "peerDependencies": {
- "less": "*",
- "sass": "*",
- "stylus": "*"
- },
- "peerDependenciesMeta": {
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "stylus": {
- "optional": true
- }
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "node_modules/xhr": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
- "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
- "dev": true,
- "dependencies": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/xml-parse-from-string": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
- "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=",
- "dev": true
- },
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dev": true,
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/yootils": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/yootils/-/yootils-0.0.16.tgz",
- "integrity": "sha512-aIVecm5ucOzwhtKbl0zkfg0ZSOUR9c2da0k8cIc9umjjzkvVCWUUX/UHZ1CLPsv4wmJLqt0aWeLB7p9n9JDwYQ==",
- "dev": true
- }
- },
- "dependencies": {
- "@jimp/bmp": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.8.5.tgz",
- "integrity": "sha512-o/23j1RODQGGjvb2xg+9ZQCHc9uXa5XIoJuXHN8kh8AJBGD7JZYiHMwNHaxJRJvadimCKUeA5udZUJAoaPwrYg==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "bmp-js": "^0.1.0",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/core": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.8.5.tgz",
- "integrity": "sha512-Jto1IdL5HYg7uE15rpQjK6dfZJ6d6gRjUsVCPW50nIfXgWizaTibFEov90W9Bj+irwKrX2ntG3e3pZUyOC0COg==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "any-base": "^1.1.0",
- "buffer": "^5.2.0",
- "core-js": "^2.5.7",
- "exif-parser": "^0.1.12",
- "file-type": "^9.0.0",
- "load-bmfont": "^1.3.1",
- "mkdirp": "0.5.1",
- "phin": "^2.9.1",
- "pixelmatch": "^4.0.2",
- "tinycolor2": "^1.4.1"
- }
- },
- "@jimp/custom": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.8.5.tgz",
- "integrity": "sha512-hS4qHOcOIL+N93IprsIhFgr8F4XnC2oYd+lRaOKEOg3ptS2vQnceSTtcXsC0//mhq8AV6lNjpbfs1iseEZuTqg==",
- "dev": true,
- "requires": {
- "@jimp/core": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/gif": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.8.5.tgz",
- "integrity": "sha512-Mj8jmv4AS76OY+Hx/Xoyihj02SUZ2ELk+O5x89pODz1+NeGtSWHHjZjnSam9HYAjycvVI/lGJdk/7w0nWIV/yQ==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "omggif": "^1.0.9"
- }
- },
- "@jimp/jpeg": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.8.5.tgz",
- "integrity": "sha512-7kjTY0BiCpwRywk+oPfpLto7cLI+9G0mf4N1bv1Hn+VLQwcXFy2fHyl4qjqLbbY6u4cyZgqN+R8Pg6GRRzv0kw==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "jpeg-js": "^0.3.4"
- }
- },
- "@jimp/plugin-blit": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.8.5.tgz",
- "integrity": "sha512-r8Z1CwazaJwZCRbucQgrfprlGyH91tX7GubUsbWr+zy5/dRJAAgaPj/hcoHDwbh3zyiXp5BECKKzKW0x4reL4w==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-blur": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.8.5.tgz",
- "integrity": "sha512-UH5ywpV4YooUh9HXEsrNKDtojLCvIAAV0gywqn8EQeFyzwBJyXAvRNARJp7zr5OPLr9uGXkRLDCO9YyzdlXZng==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-color": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.8.5.tgz",
- "integrity": "sha512-7XHqcTQ8Y1zto1b9P1y8m1dzSjnOpBsD9OZG0beTpeJ5bgPX+hF5ZLmvcM6c5ljkINw5EUF1it07BYbkCxiGQA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "tinycolor2": "^1.4.1"
- }
- },
- "@jimp/plugin-contain": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.8.5.tgz",
- "integrity": "sha512-ZkiPFx9L0yITiKtYTYLWyBsSIdxo/NARhNPRZXyVF9HmTWSLDUw1c2c1uvETKxDZTAVK+souYT14DwFWWdhsYA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-cover": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.8.5.tgz",
- "integrity": "sha512-OdT4YAopLOhbhTUQV3R1v5ZZqIaUt3n3vJi/OfTbsak1t9UkPBVdmYPyhoont8zJdtdkF5dW16Ro1FTshytcww==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-crop": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.8.5.tgz",
- "integrity": "sha512-E1Hb+gfu2k74Gkqh96apAyVljsP5MjCH4TY6lECAAEcYKGH/XRhz6lY2dSEjCYE7KtiqjTZzWwYkgAvkwojj9Q==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-displace": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.8.5.tgz",
- "integrity": "sha512-fVgVYTS1HZzAXkg8Lg06PuirSUG5oXYaYYGL+3ZU4tmZn1pyZ+mZyfejpwtymETEYZnmymHoCT4xto19E/IRvA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-dither": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.8.5.tgz",
- "integrity": "sha512-KSj2y8E3yK7tldjT/8ejqAWw5HFBjtWW6QkcxfW7FdV4c/nsXZXDkMbhqMZ7FkDuSYoAPeWUFeddrH4yipC5iA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-flip": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.8.5.tgz",
- "integrity": "sha512-2QbGDkurPNAXZUeHLo/UA3tjh+AbAXWZKSdtoa1ArlASovRz8rqtA45YIRIkKrMH82TA3PZk8bgP2jaLKLrzww==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-gaussian": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.8.5.tgz",
- "integrity": "sha512-2zReC5GJcVAXtf3UgzFcHSYN277i02K9Yrhc1xJf3mti00s43uD++B5Ho7/mIo+HrntVvWhxqar7PARdq0lVIg==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-invert": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.8.5.tgz",
- "integrity": "sha512-GyMXPGheHdS14xfDceuZ9hrGm6gE9UG3PfTEjQbJmHMWippLC6yf8kombSudJlUf8q72YYSSXsSFKGgkHa67vA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-mask": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.8.5.tgz",
- "integrity": "sha512-inD/++XO+MkmwXl9JGYQ8X2deyOZuq9i+dmugH/557p16B9Q6tvUQt5X1Yg5w7hhkLZ00BKOAJI9XoyCC1NFvQ==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-normalize": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.8.5.tgz",
- "integrity": "sha512-8YRWJWBT4NoSAbPhnjQJXGeaeWVrJAlGDv39A54oNH8Ry47fHcE0EN6zogQNpBuM34M6hRnZl4rOv1FIisaWdg==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-print": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.8.5.tgz",
- "integrity": "sha512-BviNpCiA/fEieOqsrWr1FkqyFuiG2izdyyg7zUqyeUTHPwqrTLvXO9cfP/ThG4hZpu5wMQ5QClWSqhZu1fAwxA==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "load-bmfont": "^1.4.0"
- }
- },
- "@jimp/plugin-resize": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.8.5.tgz",
- "integrity": "sha512-gIdmISuNmZQ1QwprnRC5VXVWQfKIiWineVQGebpMAG/aoFOLDXrVl939Irg7Fb/uOlSFTzpAbt1zpJ8YG/Mi2w==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-rotate": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.8.5.tgz",
- "integrity": "sha512-8T9wnL3gb+Z0ogMZmtyI6h3y7TuqW2a5SpFbzFUVF+lTZoAabXjEfX3CAozizCLaT+Duc5H2FJVemAHiyr+Dbw==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugin-scale": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.8.5.tgz",
- "integrity": "sha512-G+CDH9s7BsxJ4b+mKZ5SsiXwTAynBJ+7/9SwZFnICZJJvLd79Tws6VPXfSaKJZuWnGIX++L8jTGmFORCfLNkdg==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7"
- }
- },
- "@jimp/plugins": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.8.5.tgz",
- "integrity": "sha512-52na0wqfQ3uItIA+C9cJ1EXffhSmABgK7ETClDseUh9oGtynHzxZ97smnFf1ydLjXLrF89Gt+YBxWLyiBGgiZQ==",
- "dev": true,
- "requires": {
- "@jimp/plugin-blit": "^0.8.5",
- "@jimp/plugin-blur": "^0.8.5",
- "@jimp/plugin-color": "^0.8.5",
- "@jimp/plugin-contain": "^0.8.5",
- "@jimp/plugin-cover": "^0.8.5",
- "@jimp/plugin-crop": "^0.8.5",
- "@jimp/plugin-displace": "^0.8.5",
- "@jimp/plugin-dither": "^0.8.5",
- "@jimp/plugin-flip": "^0.8.5",
- "@jimp/plugin-gaussian": "^0.8.5",
- "@jimp/plugin-invert": "^0.8.5",
- "@jimp/plugin-mask": "^0.8.5",
- "@jimp/plugin-normalize": "^0.8.5",
- "@jimp/plugin-print": "^0.8.5",
- "@jimp/plugin-resize": "^0.8.5",
- "@jimp/plugin-rotate": "^0.8.5",
- "@jimp/plugin-scale": "^0.8.5",
- "core-js": "^2.5.7",
- "timm": "^1.6.1"
- }
- },
- "@jimp/png": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.8.5.tgz",
- "integrity": "sha512-zT89ucu8I2rsD3FIMIPLgr1OyKn4neD+5umwD3MY8AOB8+6tX5bFtnmTm3FzGJaJuibkK0wFl87eiaxnb+Megw==",
- "dev": true,
- "requires": {
- "@jimp/utils": "^0.8.5",
- "core-js": "^2.5.7",
- "pngjs": "^3.3.3"
- }
- },
- "@jimp/tiff": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.8.5.tgz",
- "integrity": "sha512-Z7uzDcbHuwDg+hy2+UJQ2s5O6sqYXmv6H1fmSf/2dxBrlGMzl8yTc2/BxLrGREeoidDDMcKmXYGAOp4uCsdJjw==",
- "dev": true,
- "requires": {
- "core-js": "^2.5.7",
- "utif": "^2.0.1"
- }
- },
- "@jimp/types": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.8.5.tgz",
- "integrity": "sha512-XUvpyebZGd1vyFiJyxUT4H9A3mKD7MV2MxjXnay3fNTrcow0UJJspmFw/w+G3TP/1dgrVC4K++gntjR6QWTzvg==",
- "dev": true,
- "requires": {
- "@jimp/bmp": "^0.8.5",
- "@jimp/gif": "^0.8.5",
- "@jimp/jpeg": "^0.8.5",
- "@jimp/png": "^0.8.5",
- "@jimp/tiff": "^0.8.5",
- "core-js": "^2.5.7",
- "timm": "^1.6.1"
- }
- },
- "@jimp/utils": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.8.5.tgz",
- "integrity": "sha512-D3+H4BiopDkhUKvKkZTPPJ53voqOkfMuk3r7YZNcLtXGLkchjjukC4056lNo7B0DzjBgowTYsQM3JjKnYNIYeg==",
- "dev": true,
- "requires": {
- "core-js": "^2.5.7"
- }
- },
- "@rollup/pluginutils": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
- "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==",
- "dev": true,
- "requires": {
- "estree-walker": "^2.0.1",
- "picomatch": "^2.2.2"
- }
- },
- "@sindresorhus/slugify": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.9.1.tgz",
- "integrity": "sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5",
- "lodash.deburr": "^4.1.0"
- }
- },
- "@sveltejs/adapter-node": {
- "version": "1.0.0-next.53",
- "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.53.tgz",
- "integrity": "sha512-fovlQ+DPeAvkYqi+BXG48A4U1Dz2YzQXi3fG8Qs9zGAGnX22cx3ldZMThdDcOakwDmQodMYatK8cSBxuP0GAkA==",
- "dev": true,
- "requires": {
- "esbuild": "^0.13.3",
- "tiny-glob": "^0.2.9"
- }
- },
- "@sveltejs/kit": {
- "version": "1.0.0-next.186",
- "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.186.tgz",
- "integrity": "sha512-LFv2q2cToreUcGp0B+5uVfu0qMvQiw3hsyELnUwxPP/lpUbcmYjgQmwivjRNTdudCqZt7ng3Ehy7UDILbBhExQ==",
- "dev": true,
- "requires": {
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.30",
- "cheap-watch": "^1.0.4",
- "sade": "^1.7.4",
- "vite": "^2.6.10"
- }
- },
- "@sveltejs/site-kit": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@sveltejs/site-kit/-/site-kit-1.4.0.tgz",
- "integrity": "sha512-QoIo8KC6G9gInwFyk4+KCzVOiLNdj2aw7T+wGDED+A/SuvICSCyS7W/Ft0WcoAGyQGtgIFRVCcXacubduzA7bg==",
- "dev": true,
- "requires": {
- "@sindresorhus/slugify": "^0.9.1",
- "golden-fleece": "^1.0.9"
- }
- },
- "@sveltejs/svelte-repl": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@sveltejs/svelte-repl/-/svelte-repl-0.3.0.tgz",
- "integrity": "sha512-7ybZNTdCHCv6TbH22nZVIgdA/bypKFumXs83ZDDRDoXbZa129UBJTTQV6DhTjitT+tPK4nyRNFiSsEOy10X4Uw==",
- "dev": true,
- "requires": {
- "codemirror": "^5.49.2",
- "estree-walker": "^0.9.0",
- "marked": "3.0.5",
- "sourcemap-codec": "^1.4.6",
- "svelte-json-tree": "0.0.5",
- "yootils": "0.0.16"
- },
- "dependencies": {
- "estree-walker": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.9.0.tgz",
- "integrity": "sha512-12U47o7XHUX329+x3FzNVjCx3SHEzMF0nkDv7r/HnBzX/xNTKxajBk6gyygaxrAFtLj39219oMfbtxv4KpaOiA==",
- "dev": true
- }
- }
- },
- "@sveltejs/vite-plugin-svelte": {
- "version": "1.0.0-next.30",
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.30.tgz",
- "integrity": "sha512-YQqdMxjL1VgSFk4/+IY3yLwuRRapPafPiZTiaGEq1psbJYSNYUWx9F1zMm32GMsnogg3zn99mGJOqe3ld3HZSg==",
- "dev": true,
- "requires": {
- "@rollup/pluginutils": "^4.1.1",
- "debug": "^4.3.2",
- "kleur": "^4.1.4",
- "magic-string": "^0.25.7",
- "require-relative": "^0.8.7",
- "svelte-hmr": "^0.14.7"
- }
- },
- "@types/node": {
- "version": "16.10.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz",
- "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==",
- "dev": true
- },
- "@types/pg": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz",
- "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "pg-protocol": "*",
- "pg-types": "^2.2.0"
- }
- },
- "any-base": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
- "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "bmp-js": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
- "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-equal": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
- "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
- "dev": true
- },
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
- },
- "cheap-watch": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cheap-watch/-/cheap-watch-1.0.4.tgz",
- "integrity": "sha512-QR/9FrtRL5fjfUJBhAKCdi0lSRQ3rVRRum3GF9wDKp2TJbEIMGhUEr2yU8lORzm9Isdjx7/k9S0DFDx+z5VGtw==",
- "dev": true
- },
- "codemirror": {
- "version": "5.63.1",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.63.1.tgz",
- "integrity": "sha512-baivaNZreZOGh1/tYyTvCupC9NeWk7qlZeGUDi4nFKj/J0JU8FYKZND4QqLw70P7HOttlCt4JJAOj9GoIhHEkA==",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
- },
- "core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
- "dev": true
- },
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
- "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
- "dev": true
- },
- "degit": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/degit/-/degit-2.8.4.tgz",
- "integrity": "sha512-vqYuzmSA5I50J882jd+AbAhQtgK6bdKUJIex1JNfEUPENCgYsxugzKVZlFyMwV4i06MmnV47/Iqi5Io86zf3Ng==",
- "dev": true
- },
- "dequal": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
- "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
- "dev": true
- },
- "devalue": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/devalue/-/devalue-2.0.1.tgz",
- "integrity": "sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q=="
- },
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
- },
- "do-not-zip": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/do-not-zip/-/do-not-zip-1.0.0.tgz",
- "integrity": "sha512-Pgd81ET43bhAGaN2Hq1zluSX1FmD7kl7KcV9ER/lawiLsRUB9pRA5y8r6us29Xk6BrINZETO8TjhYwtwafWUww=="
- },
- "dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
- "dev": true
- },
- "dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
- "dev": true
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "esbuild": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
- "integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
- "dev": true,
- "requires": {
- "esbuild-android-arm64": "0.13.4",
- "esbuild-darwin-64": "0.13.4",
- "esbuild-darwin-arm64": "0.13.4",
- "esbuild-freebsd-64": "0.13.4",
- "esbuild-freebsd-arm64": "0.13.4",
- "esbuild-linux-32": "0.13.4",
- "esbuild-linux-64": "0.13.4",
- "esbuild-linux-arm": "0.13.4",
- "esbuild-linux-arm64": "0.13.4",
- "esbuild-linux-mips64le": "0.13.4",
- "esbuild-linux-ppc64le": "0.13.4",
- "esbuild-openbsd-64": "0.13.4",
- "esbuild-sunos-64": "0.13.4",
- "esbuild-windows-32": "0.13.4",
- "esbuild-windows-64": "0.13.4",
- "esbuild-windows-arm64": "0.13.4"
- }
- },
- "esbuild-android-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.4.tgz",
- "integrity": "sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.4.tgz",
- "integrity": "sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.4.tgz",
- "integrity": "sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.4.tgz",
- "integrity": "sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.4.tgz",
- "integrity": "sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.4.tgz",
- "integrity": "sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.4.tgz",
- "integrity": "sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.4.tgz",
- "integrity": "sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.4.tgz",
- "integrity": "sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.4.tgz",
- "integrity": "sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.4.tgz",
- "integrity": "sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.4.tgz",
- "integrity": "sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.4.tgz",
- "integrity": "sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.4.tgz",
- "integrity": "sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.4.tgz",
- "integrity": "sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.4.tgz",
- "integrity": "sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==",
- "dev": true,
- "optional": true
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
- },
- "exif-parser": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
- "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
- "dev": true
- },
- "file-type": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
- "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
- "dev": true
- },
- "flru": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flru/-/flru-1.0.2.tgz",
- "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog=="
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dev": true,
- "requires": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
- }
- },
- "globalyzer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
- "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
- "dev": true
- },
- "globrex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
- "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
- "dev": true
- },
- "golden-fleece": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/golden-fleece/-/golden-fleece-1.0.9.tgz",
- "integrity": "sha512-YSwLaGMOgSBx9roJlNLL12c+FRiw7VECphinc6mGucphc/ZxTHgdEz6gmJqH6NOzYEd/yr64hwjom5pZ+tJVpg==",
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "httpie": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/httpie/-/httpie-1.1.2.tgz",
- "integrity": "sha512-VQ82oXG95oY1fQw/XecHuvcFBA+lZQ9Vwj1RfLcO8a7HpDd4cc2ukwpJt+TUlFaLUAzZErylxWu6wclJ1rUhUQ=="
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "dev": true
- },
- "is-core-module": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
- "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
- "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
- "dev": true
- },
- "jimp": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.8.5.tgz",
- "integrity": "sha512-BW7t/+TCgKpqZw/wHFwqF/A/Tyk43RmzRHyMBdqfOepqunUrajt0RTqowdWyFo4CS2FmD8pFiYfefWjpXFWrCA==",
- "dev": true,
- "requires": {
- "@jimp/custom": "^0.8.5",
- "@jimp/plugins": "^0.8.5",
- "@jimp/types": "^0.8.5",
- "core-js": "^2.5.7",
- "regenerator-runtime": "^0.13.3"
- }
- },
- "jpeg-js": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz",
- "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==",
- "dev": true
- },
- "jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "requires": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
- }
- },
- "jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "requires": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "requires": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
- "dev": true
- },
- "load-bmfont": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz",
- "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
- "dev": true,
- "requires": {
- "buffer-equal": "0.0.1",
- "mime": "^1.3.4",
- "parse-bmfont-ascii": "^1.0.3",
- "parse-bmfont-binary": "^1.0.5",
- "parse-bmfont-xml": "^1.1.4",
- "phin": "^2.9.1",
- "xhr": "^2.0.1",
- "xtend": "^4.0.0"
- }
- },
- "lodash.deburr": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
- "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=",
- "dev": true
- },
- "lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
- },
- "lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
- },
- "lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
- },
- "lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
- },
- "magic-string": {
- "version": "0.25.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
- "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
- "dev": true,
- "requires": {
- "sourcemap-codec": "^1.4.4"
- }
- },
- "marked": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.5.tgz",
- "integrity": "sha512-6sXDj79pTjEiu9HfOH7LcqggjUtLHXEG3wxzhSI3zr0uwxIjyDy2rpRWDDLmIeWvUIHNkpalsIcW5JjPAVikaA=="
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
- },
- "min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
- "dev": true,
- "requires": {
- "dom-walk": "^0.1.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- }
- }
- },
- "mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "nanoid": {
- "version": "3.1.30",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
- "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
- "dev": true
- },
- "node-fetch": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz",
- "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-pg-migrate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.0.0.tgz",
- "integrity": "sha512-mv0qhjENeD/HuGghZCuAcWCrOB77B5dNLMXRz13UeBDDTafsRGFpN+4/IpFM9EZ8g0mcE34/ceVYDLmk4W8/Pw==",
- "dev": true,
- "requires": {
- "@types/pg": "^8.0.0",
- "decamelize": "^5.0.0",
- "mkdirp": "~1.0.0",
- "yargs": "~17.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yargs": {
- "version": "17.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
- "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true
- }
- }
- },
- "omggif": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
- "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
- },
- "pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "parse-bmfont-ascii": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
- "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=",
- "dev": true
- },
- "parse-bmfont-binary": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
- "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=",
- "dev": true
- },
- "parse-bmfont-xml": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
- "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
- "dev": true,
- "requires": {
- "xml-parse-from-string": "^1.0.0",
- "xml2js": "^0.4.5"
- }
- },
- "parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "pg": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz",
- "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==",
- "requires": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.4.1",
- "pg-protocol": "^1.5.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- }
- },
- "pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
- },
- "pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
- },
- "pg-pool": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz",
- "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==",
- "requires": {}
- },
- "pg-protocol": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
- "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
- },
- "pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "requires": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- }
- },
- "pgpass": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
- "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
- "requires": {
- "split2": "^3.1.1"
- }
- },
- "phin": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
- "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
- "dev": true
- },
- "picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true
- },
- "pixelmatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
- "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
- "dev": true,
- "requires": {
- "pngjs": "^3.0.0"
- }
- },
- "pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
- "dev": true
- },
- "postcss": {
- "version": "8.3.9",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz",
- "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==",
- "dev": true,
- "requires": {
- "nanoid": "^3.1.28",
- "picocolors": "^0.2.1",
- "source-map-js": "^0.6.2"
- }
- },
- "postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
- },
- "postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
- },
- "postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
- },
- "postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "requires": {
- "xtend": "^4.0.0"
- }
- },
- "prism-svelte": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz",
- "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ=="
- },
- "prismjs": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
- "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dev": true,
- "requires": {
- "resolve": "^1.1.6"
- }
- },
- "regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "require-relative": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
- "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
- "dev": true
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "rollup": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz",
- "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==",
- "dev": true,
- "requires": {
- "fsevents": "~2.3.2"
- }
- },
- "sade": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
- "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
- "dev": true,
- "requires": {
- "mri": "^1.1.0"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
- },
- "shelljs": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
- "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
- "dev": true,
- "requires": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- }
- },
- "source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
- "dev": true
- },
- "sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "dev": true
- },
- "split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "requires": {
- "readable-stream": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "svelte": {
- "version": "3.44.0",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.0.tgz",
- "integrity": "sha512-zWACSJBSncGiDvFfYOMFGNV5zDLOlyhftmO5yOZ0lEtQMptpElaRtl39MWz1+lYCpwUq4F3Q2lTzI9TrTL+eMA==",
- "dev": true
- },
- "svelte-hmr": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz",
- "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==",
- "dev": true,
- "requires": {}
- },
- "svelte-json-tree": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/svelte-json-tree/-/svelte-json-tree-0.0.5.tgz",
- "integrity": "sha512-kTcOVlsldI2neszYNQAfFCt+u62OWWAZgpeoW9RN3hjtJCWI5bkVj0gtljZWUlyEWTfgpmag5L5AHDKg8w8ZmQ==",
- "dev": true
- },
- "timm": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz",
- "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==",
- "dev": true
- },
- "tiny-glob": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
- "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
- "dev": true,
- "requires": {
- "globalyzer": "0.1.0",
- "globrex": "^0.1.2"
- }
- },
- "tinycolor2": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
- "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==",
- "dev": true
- },
- "totalist": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz",
- "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==",
- "dev": true
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true
- },
- "utif": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
- "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
- "dev": true,
- "requires": {
- "pako": "^1.0.5"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uvu": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz",
- "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==",
- "dev": true,
- "requires": {
- "dequal": "^2.0.0",
- "diff": "^5.0.0",
- "kleur": "^4.0.3",
- "sade": "^1.7.3",
- "totalist": "^2.0.0"
- }
- },
- "vite": {
- "version": "2.6.10",
- "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.10.tgz",
- "integrity": "sha512-XbevwpDJMs3lKiGEj0UQScsOCpwHIjFgfzPnFVkPgnxsF9oPv1uGyckLg58XkXv6LnO46KN9yZqJzINFmAxtUg==",
- "dev": true,
- "requires": {
- "esbuild": "^0.13.2",
- "fsevents": "~2.3.2",
- "postcss": "^8.3.8",
- "resolve": "^1.20.0",
- "rollup": "^2.57.0"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "xhr": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
- "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
- "dev": true,
- "requires": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
- }
- },
- "xml-parse-from-string": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
- "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=",
- "dev": true
- },
- "xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dev": true,
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- }
- },
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "dev": true
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- },
- "yootils": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/yootils/-/yootils-0.0.16.tgz",
- "integrity": "sha512-aIVecm5ucOzwhtKbl0zkfg0ZSOUR9c2da0k8cIc9umjjzkvVCWUUX/UHZ1CLPsv4wmJLqt0aWeLB7p9n9JDwYQ==",
- "dev": true
- }
- }
-}
diff --git a/site/package.json b/site/package.json
deleted file mode 100644
index caceb3d721..0000000000
--- a/site/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "svelte.dev",
- "version": "1.0.0",
- "description": "Docs and examples for Svelte",
- "type": "module",
- "scripts": {
- "dev": "node scripts/update.js && npm run copy-workers && svelte-kit dev",
- "copy-workers": "node scripts/copy-workers.js",
- "migrate": "node-pg-migrate -r dotenv/config",
- "build": "node scripts/update.js && npm run copy-workers && svelte-kit build",
- "update": "node scripts/update.js --force=true",
- "start": "node build",
- "test": "uvu test",
- "deploy": "make deploy"
- },
- "dependencies": {
- "cookie": "^0.4.0",
- "devalue": "^2.0.0",
- "do-not-zip": "^1.0.0",
- "flru": "^1.0.2",
- "httpie": "^1.1.2",
- "jsonwebtoken": "^8.5.1",
- "marked": "^3.0.5",
- "pg": "^8.7.1",
- "prism-svelte": "^0.4.3",
- "prismjs": "^1.25.0"
- },
- "devDependencies": {
- "@sindresorhus/slugify": "^0.9.1",
- "@sveltejs/adapter-node": "next",
- "@sveltejs/kit": "next",
- "@sveltejs/site-kit": "^1.4.0",
- "@sveltejs/svelte-repl": "^0.3.0",
- "degit": "^2.1.4",
- "dotenv": "^10.0.0",
- "jimp": "^0.8.0",
- "node-fetch": "^2.6.1",
- "node-pg-migrate": "^6.0.0",
- "shelljs": "^0.8.3",
- "svelte": "^3.39.0",
- "uvu": "^0.5.2"
- }
-}
diff --git a/site/scripts/copy-workers.js b/site/scripts/copy-workers.js
deleted file mode 100644
index 733714b217..0000000000
--- a/site/scripts/copy-workers.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import sh from 'shelljs';
-
-sh.rm('-rf', 'static/workers');
-sh.cp('-r', 'node_modules/@sveltejs/svelte-repl/workers', 'static');
diff --git a/site/scripts/get-example-thumbnails/index.js b/site/scripts/get-example-thumbnails/index.js
deleted file mode 100644
index 4c920a3b52..0000000000
--- a/site/scripts/get-example-thumbnails/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import fs from 'fs';
-import puppeteer from 'puppeteer';
-import Jimp from 'jimp';
-import c from 'kleur';
-
-const slugs = [];
-
-fs.readdirSync(`content/examples`).forEach(group_dir => {
- fs.readdirSync(`content/examples/${group_dir}`).filter(file => file !== 'meta.json').map(example_dir => {
- const slug = example_dir.replace(/^\d+-/, '');
- slugs.push(slug);
- });
-});
-
-async function main() {
- const browser = await puppeteer.launch({
- defaultViewport: {
- width: 400 * 10 / 4,
- height: 400 + 42,
- deviceScaleFactor: 2
- }
- });
-
- const page = await browser.newPage();
-
- for (const slug of slugs) {
- try {
- const output_file = `static/examples/thumbnails/${slug}.jpg`;
- if (fs.existsSync(output_file)) {
- console.log(c.gray(`skipping ${slug}`));
- continue;
- }
-
- console.log(slug);
- await page.goto(`http://localhost:3000/repl/embed?example=${slug}`);
-
- await page.waitForSelector('iframe.inited[title=Result]');
- await page.waitFor(1500);
- const iframe = await page.$('iframe.inited[title=Result]');
- const buffer = await iframe.screenshot();
-
- const image = await Jimp.read(buffer);
- console.log(image.bitmap.width, image.bitmap.height);
- image.crop(3, 3, image.bitmap.width - 6, image.bitmap.height - 6);
- image.autocrop();
- // image.scale(0.25);
-
- if (image.bitmap.width > 200 || image.bitmap.height > 200) {
- const scale = Math.min(
- 200 / image.bitmap.width,
- 200 / image.bitmap.height
- );
-
- image.scale(scale);
- }
-
- await image.quality(75).write(output_file);
- } catch (err) {
- console.log(c.bold().red(`failed to screenshot ${slug}`));
- console.log(err);
- }
- }
-
- await browser.close();
-}
-
-main();
\ No newline at end of file
diff --git a/site/scripts/get-examples-from-tutorials/index.js b/site/scripts/get-examples-from-tutorials/index.js
deleted file mode 100644
index 50a39ca2fd..0000000000
--- a/site/scripts/get-examples-from-tutorials/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import sander from 'sander';
-import { dirname } from 'path';
-import { fileURLToPath } from 'url';
-
-const __dirname = dirname(fileURLToPath(import.meta.url));
-process.chdir(`${__dirname}/../..`);
-
-function extract_frontmatter(markdown) {
- const match = /---\r?\n([\s\S]+?)\r?\n---/.exec(markdown);
- const frontMatter = match[1];
- const content = markdown.slice(match[0].length);
-
- const metadata = {};
- frontMatter.split('\n').forEach(pair => {
- const colonIndex = pair.indexOf(':');
- metadata[pair.slice(0, colonIndex).trim()] = pair
- .slice(colonIndex + 1)
- .trim();
- });
-
- return { metadata, content };
-}
-
-const tutorial_sections = sander.readdirSync(`content/tutorial`).map(section_dir => {
- const section_slug = section_dir.replace(/^\d+-/, '');
-
- const meta = JSON.parse(sander.readFileSync(`content/tutorial/${section_dir}/meta.json`, { encoding: 'utf-8' }));
-
- const chapters = sander.readdirSync(`content/tutorial/${section_dir}`).map(chapter_dir => {
- const app_dir = `content/tutorial/${section_dir}/${chapter_dir}/app-b`;
- if (!sander.existsSync(app_dir)) return;
-
- const markdown = sander.readFileSync(`content/tutorial/${section_dir}/${chapter_dir}/text.md`, { encoding: 'utf-8' });
- const { metadata } = extract_frontmatter(markdown);
-
- const chapter_slug = chapter_dir.replace(/^\d+-/, '');
-
- return {
- slug: chapter_slug,
- title: metadata.title,
- files: sander.readdirSync(app_dir).map(name => {
- return {
- name,
- source: sander.readFileSync(`${app_dir}/${name}`, { encoding: 'utf-8' })
- };
- })
- };
- }).filter(Boolean);
-
- return {
- slug: section_slug,
- title: meta.title,
- chapters
- };
-}).filter(section => section.chapters.length > 0);
-
-const pad = i => i < 10 ? `0${i}` : i;
-
-tutorial_sections.forEach((section, i) => {
- const section_dir = `${pad(i)}-${section.slug}`;
-
- sander.writeFileSync(`content/examples/${section_dir}/meta.json`, JSON.stringify({
- title: section.title
- }, null, '\t'));
-
- section.chapters.forEach((chapter, i) => {
- const chapter_dir = `${pad(i)}-${chapter.slug}`;
-
- sander.writeFileSync(`content/examples/${section_dir}/${chapter_dir}/meta.json`, JSON.stringify({
- title: chapter.title
- }, null, '\t'));
-
- chapter.files.forEach(file => {
- sander.writeFileSync(`content/examples/${section_dir}/${chapter_dir}/${file.name}`, file.source);
- });
- });
-});
\ No newline at end of file
diff --git a/site/scripts/get_contributors.js b/site/scripts/get_contributors.js
deleted file mode 100644
index c263de25c5..0000000000
--- a/site/scripts/get_contributors.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import 'dotenv/config';
-import fs from 'fs';
-import fetch from 'node-fetch';
-import Jimp from 'jimp';
-import { dirname } from 'path';
-import { fileURLToPath } from 'url';
-
-
-const force = process.env.FORCE_UPDATE === 'true';
-
-const __dirname = dirname(fileURLToPath(import.meta.url));
-process.chdir(__dirname);
-
-const outputFile = `../src/routes/_contributors.js`;
-if (!force && fs.existsSync(outputFile)) {
- console.info(`[update/contributors] ${outputFile} exists. Skipping`);
- process.exit(0);
-}
-
-const base = `https://api.github.com/repos/sveltejs/svelte/contributors`;
-const { GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET } = process.env;
-
-const SIZE = 64;
-
-async function main() {
- const contributors = [];
- let page = 1;
-
- while (true) {
- const res = await fetch(`${base}?client_id=${GITHUB_CLIENT_ID}&client_secret=${GITHUB_CLIENT_SECRET}&per_page=100&page=${page++}`);
- const list = await res.json();
-
- if (list.length === 0) break;
-
- contributors.push(...list);
- }
-
- const authors = contributors
- .filter(({ login }) => !login.includes('[bot]'))
- .sort((a, b) => b.contributions - a.contributions);
-
- const sprite = new Jimp(SIZE * authors.length, SIZE);
-
- for (let i = 0; i < authors.length; i += 1) {
- const author = authors[i];
- console.log(`${i + 1} / ${authors.length}: ${author.login}`);
-
- const image_data = await fetch(author.avatar_url);
- const buffer = await image_data.arrayBuffer();
-
- const image = await Jimp.read(buffer);
- image.resize(SIZE, SIZE);
-
- sprite.composite(image, i * SIZE, 0);
- }
-
- await sprite.quality(80).write(`../static/contributors.jpg`);
- // TODO: Optimizing the static/contributors.jpg image should probably get automated as well
- console.log('remember to additionally optimize the resulting /static/contributors.jpg image file via e.g. https://squoosh.app ');
-
- const str = `[\n\t${authors.map(a => `'${a.login}'`).join(',\n\t')}\n]`;
-
- fs.writeFileSync(outputFile, `export default ${str};`);
-}
-
-main();
diff --git a/site/scripts/get_donors.js b/site/scripts/get_donors.js
deleted file mode 100644
index 9e26391195..0000000000
--- a/site/scripts/get_donors.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import 'dotenv/config';
-import fs from 'fs';
-import fetch from 'node-fetch';
-import Jimp from 'jimp';
-import { dirname } from 'path';
-import { fileURLToPath } from 'url';
-
-
-const force = process.env.FORCE_UPDATE === 'true';
-
-const __dirname = dirname(fileURLToPath(import.meta.url));
-process.chdir(__dirname);
-
-const outputFile = `../src/routes/_donors.js`;
-if (!force && fs.existsSync(outputFile)) {
- console.info(`[update/donors] ${outputFile} exists. Skipping`);
- process.exit(0);
-}
-
-const SIZE = 64;
-
-async function main() {
- const res = await fetch('https://opencollective.com/svelte/members/all.json');
- const donors = await res.json();
-
- const unique = new Map();
- donors.forEach(d => unique.set(d.profile, d));
-
- let backers = [...unique.values()]
- .filter(({ role }) => role === 'BACKER')
- .sort((a, b) => b.totalAmountDonated - a.totalAmountDonated);
-
- const included = [];
- for (let i = 0; i < backers.length; i += 1) {
- const backer = backers[i];
- console.log(`${i} / ${backers.length}: ${backer.name}`);
-
- try {
- const image_data = await fetch(backer.image);
- const buffer = await image_data.arrayBuffer();
- const image = await Jimp.read(buffer);
- image.resize(SIZE, SIZE);
- included.push({ backer, image });
- } catch( err) {
- console.log(`Skipping ${backer.name}: no image data`);
- }
- }
-
- const sprite = new Jimp(SIZE * included.length, SIZE);
- for (let i = 0; i < included.length; i += 1) {
- sprite.composite(included[i].image, i * SIZE, 0);
- }
-
- await sprite.quality(80).write(`../static/donors.jpg`);
- // TODO: Optimizing the static/donors.jpg image should probably get automated as well
- console.log('remember to additionally optimize the resulting /static/donors.jpg image file via e.g. https://squoosh.app ');
-
- const str = `[\n\t${included.map(a => `${JSON.stringify(a.backer.name)}`).join(',\n\t')}\n]`;
-
- fs.writeFileSync(outputFile, `export default ${str};`);
-}
-
-main();
diff --git a/site/scripts/update.js b/site/scripts/update.js
deleted file mode 100644
index 724c0d1be8..0000000000
--- a/site/scripts/update.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import sh from 'shelljs';
-
-sh.env['FORCE_UPDATE'] = process.argv.includes('--force=true');
-
-Promise.all([
- sh.exec('node ./scripts/get_contributors.js'),
- sh.exec('node ./scripts/get_donors.js'),
- sh.exec('node ./scripts/update_template.js')
-]);
diff --git a/site/scripts/update_template.js b/site/scripts/update_template.js
deleted file mode 100644
index 77395efa5f..0000000000
--- a/site/scripts/update_template.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import sh from 'shelljs';
-import fs from 'fs';
-import path, { dirname } from 'path';
-import { fileURLToPath } from 'url';
-
-const force = process.env.FORCE_UPDATE === 'true';
-
-const __dirname = dirname(fileURLToPath(import.meta.url));
-sh.cd(path.join(__dirname, '..'));
-
-const outputFile = 'static/svelte-app.json';
-if (!force && fs.existsSync(outputFile)) {
- console.info(`[update/template] ${outputFile} exists. Skipping`);
- process.exit(0);
-}
-
-// fetch svelte app
-sh.rm('-rf','scripts/svelte-app');
-sh.exec('npx degit sveltejs/template scripts/svelte-app');
-
-// remove src (will be recreated client-side) and node_modules
-sh.rm('-rf', 'scripts/svelte-app/src');
-sh.rm('-rf', 'scripts/svelte-app/node_modules');
-
-// build svelte-app.json
-const appPath = 'scripts/svelte-app';
-const files = [];
-
-for (const path of sh.find(appPath).filter(p => fs.lstatSync(p).isFile()) ) {
- const bytes = fs.readFileSync(path);
- const string = bytes.toString();
- const data = bytes.compare(Buffer.from(string)) === 0 ? string : [...bytes];
- files.push({ path: path.slice(appPath.length + 1), data });
-}
-
-fs.writeFileSync(outputFile, JSON.stringify(files));
diff --git a/site/src/app.html b/site/src/app.html
deleted file mode 100644
index d051adb2f3..0000000000
--- a/site/src/app.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %svelte.head%
-
-
-
%svelte.body%
-
-
diff --git a/site/src/components/IntersectionObserver.svelte b/site/src/components/IntersectionObserver.svelte
deleted file mode 100644
index 210fd524fd..0000000000
--- a/site/src/components/IntersectionObserver.svelte
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/site/src/components/Lazy.svelte b/site/src/components/Lazy.svelte
deleted file mode 100644
index ef81d68f00..0000000000
--- a/site/src/components/Lazy.svelte
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/site/src/components/PreloadingIndicator.svelte b/site/src/components/PreloadingIndicator.svelte
deleted file mode 100644
index 8b88029abb..0000000000
--- a/site/src/components/PreloadingIndicator.svelte
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-{#if visible}
-
-{/if}
-
-{#if p >= 0.4}
-
-{/if}
\ No newline at end of file
diff --git a/site/src/components/Repl/InputOutputToggle.svelte b/site/src/components/Repl/InputOutputToggle.svelte
deleted file mode 100644
index 8233ee58b2..0000000000
--- a/site/src/components/Repl/InputOutputToggle.svelte
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- input
-
- output
-
\ No newline at end of file
diff --git a/site/src/components/Repl/ReplWidget.svelte b/site/src/components/Repl/ReplWidget.svelte
deleted file mode 100644
index ced2aafee2..0000000000
--- a/site/src/components/Repl/ReplWidget.svelte
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
-
-
-
- {#if browser}
-
- {/if}
-
-
- {#if mobile}
-
- {/if}
-
diff --git a/site/src/components/ScreenToggle.svelte b/site/src/components/ScreenToggle.svelte
deleted file mode 100644
index 87d90aa7a8..0000000000
--- a/site/src/components/ScreenToggle.svelte
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
- {#each labels as label, index}
- offset = index}
- >
- {label}
-
- {/each}
-
diff --git a/site/src/config.js b/site/src/config.js
deleted file mode 100644
index a3589957fc..0000000000
--- a/site/src/config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// REPL props
-
-export const svelteUrl = `https://unpkg.com/svelte@3`;
-export const rollupUrl = `https://unpkg.com/rollup@1/dist/rollup.browser.js`;
-export const mapbox_setup = `window.MAPBOX_ACCESS_TOKEN = '${import.meta.env.VITE_MAPBOX_ACCESS_TOKEN}';`;
diff --git a/site/src/hooks.js b/site/src/hooks.js
deleted file mode 100644
index 961fc5bb81..0000000000
--- a/site/src/hooks.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// need to do this first before importing database, etc.
-import dotenv from 'dotenv';
-dotenv.config();
-
-import * as cookie from 'cookie';
-import { get_user, sanitize_user } from './utils/auth';
-import { query } from './utils/db';
-
-/** @type {import('@sveltejs/kit').Handle} */
-export async function handle({ request, resolve }) {
- if (process.env['PGHOST']) {
- // this is a convenient time to clear out expired sessions
- query('delete from sessions where expiry < now()');
-
- request.locals.cookies = cookie.parse(request.headers.cookie || '');
- request.locals.user = await get_user(request.locals.cookies.sid);
- }
-
- const response = await resolve(request);
-
- return response;
-}
-
-/** @type {import('@sveltejs/kit').GetSession} */
-export function getSession(request) {
- return request.locals.user
- ? {
- user: sanitize_user(request.locals.user)
- }
- : {};
-}
diff --git a/site/src/routes/__error.svelte b/site/src/routes/__error.svelte
deleted file mode 100644
index 4f84d7d66b..0000000000
--- a/site/src/routes/__error.svelte
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
- {status}
-
-
-
- {#if online}
-
Yikes!
-
- {#if error.message}
-
{status}: {error.message}
- {:else}
-
Encountered a {status} error
- {/if}
-
- {#if import.meta.env.DEV && error.stack}
-
{error.stack}
- {:else}
- {#if status >= 500}
-
Please try reloading the page.
- {/if}
-
-
If the error persists, please drop by Discord chatroom and let us know, or raise an issue on GitHub . Thanks!
- {/if}
- {:else}
-
It looks like you're offline
-
-
Reload the page once you've found the internet.
- {/if}
-
\ No newline at end of file
diff --git a/site/src/routes/__layout.svelte b/site/src/routes/__layout.svelte
deleted file mode 100644
index f01c312cc6..0000000000
--- a/site/src/routes/__layout.svelte
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-{#if $navigating && $navigating.to}
-
-{/if}
-
-{#if $page.path !== '/repl/embed'}
-
- Tutorial
- Docs
- Examples
- REPL
- Blog
- FAQ
-
- SvelteKit
-
-
-
-
-
-
-
-
-
-{/if}
-
-
-
-
-
-
diff --git a/site/src/routes/_components/Contributors.svelte b/site/src/routes/_components/Contributors.svelte
deleted file mode 100644
index 74eb3fa50f..0000000000
--- a/site/src/routes/_components/Contributors.svelte
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-{#each contributors as contributor, i}
-
- {contributor}
-
-{/each}
diff --git a/site/src/routes/_components/Donors.svelte b/site/src/routes/_components/Donors.svelte
deleted file mode 100644
index dc1f7ffcc8..0000000000
--- a/site/src/routes/_components/Donors.svelte
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-{#each donors as donor, i}
-
- {donor}
-
-{/each}
diff --git a/site/src/routes/_components/Example.svelte b/site/src/routes/_components/Example.svelte
deleted file mode 100644
index c07b4be0b5..0000000000
--- a/site/src/routes/_components/Example.svelte
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {#if intersecting}
-
-
- {/if}
-
-
-
-
\ No newline at end of file
diff --git a/site/src/routes/_components/WhosUsingSvelte.js b/site/src/routes/_components/WhosUsingSvelte.js
deleted file mode 100644
index 430bc95867..0000000000
--- a/site/src/routes/_components/WhosUsingSvelte.js
+++ /dev/null
@@ -1,80 +0,0 @@
-export const companies = [
- {
- href: "https://1password.com",
- filename: "1password.svg",
- alt: "1Password logo",
- },
- {
- href: "https://www.alaskaair.com/",
- style: "background-color: #01426a;",
- filename: "alaskaairlines.svg",
- alt: "Alaska Airlines logo",
- },
- {
- href: "https://avast.com",
- filename: "avast.svg",
- alt: "Avast logo",
- },
- {
- href: "https://chess.com",
- style: "background-color: #312e2b;",
- filename: "chess.svg",
- alt: "Chess.com logo",
- },
- {
- href: "https://fusioncharts.com",
- filename: "fusioncharts.svg",
- alt: "FusionCharts logo",
- },
- {
- href: "https://godaddy.com",
- filename: "godaddy.svg",
- alt: "GoDaddy logo",
- },
- {
- href: "https://www.ibm.com/",
- filename: "ibm.svg",
- alt: "IBM logo",
- },
- {
- href: "https://media.lesechos.fr/infographie",
- filename: "les-echos.svg",
- alt: "Les Echos",
- },
- {
- href: "https://www.philips.co.uk",
- filename: "philips.svg",
- alt: "Philips logo",
- },
- {
- href: "https://global.rakuten.com/corp/",
- filename: "rakuten.svg",
- alt: "Rakuten logo",
- },
- {
- href: "https://razorpay.com",
- filename: "razorpay.svg",
- alt: "Razorpay logo",
- },
- {
- href: "https://www.se.com",
- style: " background-color: #3dcd58; ",
- filename: "Schneider_Electric.svg",
- alt: "Schneider Electric",
- },
- {
- href: "https://squareup.com",
- filename: "square.svg",
- alt: "Square",
- },
- {
- href: "https://nytimes.com",
- filename: "nyt.svg",
- alt: "The New York Times logo",
- },
- {
- href: "https://transloadit.com",
- filename: "transloadit.svg",
- alt: "Transloadit",
- },
-];
diff --git a/site/src/routes/_components/WhosUsingSvelte.svelte b/site/src/routes/_components/WhosUsingSvelte.svelte
deleted file mode 100644
index 06094eac2c..0000000000
--- a/site/src/routes/_components/WhosUsingSvelte.svelte
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
diff --git a/site/src/routes/apps/index.json.js b/site/src/routes/apps/index.json.js
deleted file mode 100644
index e6b7d42e5b..0000000000
--- a/site/src/routes/apps/index.json.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { query as db_query } from '../../utils/db';
-
-export async function get({ query, locals }) {
- if (locals.user) {
- const page_size = 100;
- const offset = query.get('offset') ? parseInt(query.get('offset')) : 0;
- const rows = await db_query(`
- select g.uid, g.name, coalesce(g.updated_at, g.created_at) as updated_at
- from gists g
- where g.user_id = $1
- order by id desc
- limit ${page_size + 1}
- offset $2
- `, [locals.user.id, offset]);
-
- rows.forEach(row => {
- row.uid = row.uid.replace(/-/g, '');
- });
-
- const more = rows.length > page_size;
- return { body: { apps: rows.slice(0, page_size), offset: more ? offset + page_size : null }};
- } else {
- return { status: 401 };
- }
-}
diff --git a/site/src/routes/apps/index.svelte b/site/src/routes/apps/index.svelte
deleted file mode 100644
index 3c025f3b42..0000000000
--- a/site/src/routes/apps/index.svelte
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
- Your apps • Svelte
-
-
-
- {#if user}
-
- Your apps
-
-
-
-
- {user.name || user.username}
- (log out )
-
-
-
-
-
-
- {#if offset !== null}
-
- {/if}
- {:else}
-
Please log in to see your saved apps.
- {/if}
-
-
-
diff --git a/site/src/routes/auth/_config.js b/site/src/routes/auth/_config.js
deleted file mode 100644
index 58a9856bcc..0000000000
--- a/site/src/routes/auth/_config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export const oauth = 'https://github.com/login/oauth';
-export const baseurl = process.env['BASEURL'];
-export const secure = baseurl && baseurl.startsWith('https:');
-
-export const client_id = process.env['GITHUB_CLIENT_ID'];
-export const client_secret = process.env['GITHUB_CLIENT_SECRET'];
diff --git a/site/src/routes/auth/callback.js b/site/src/routes/auth/callback.js
deleted file mode 100644
index 971ac96071..0000000000
--- a/site/src/routes/auth/callback.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import devalue from 'devalue';
-import * as cookie from 'cookie';
-import * as httpie from 'httpie';
-import { parse, stringify } from 'querystring';
-import { sanitize_user, create_user, create_session } from '../../utils/auth';
-import { oauth, secure, client_id, client_secret } from './_config.js';
-
-export async function get({ query }) {
- try {
- // Trade "code" for "access_token"
- const r1 = await httpie.post(`${oauth}/access_token?` + stringify({
- code: query.get('code'),
- client_id,
- client_secret,
- }));
-
- // Now fetch User details
- const { access_token } = parse(r1.data);
- const r2 = await httpie.get('https://api.github.com/user', {
- headers: {
- 'User-Agent': 'svelte.dev',
- Authorization: `token ${access_token}`
- }
- });
-
- const user = await create_user(r2.data, access_token);
- const session = await create_session(user);
-
- return {
- headers: {
- 'Set-Cookie': cookie.serialize('sid', session.uid, {
- maxAge: 31536000,
- path: '/',
- httpOnly: true,
- secure
- }),
- 'Content-Type': 'text/html; charset=utf-8'
- },
- body: `
-
- `
- };
- } catch (err) {
- console.error('GET /auth/callback', err);
- return {
- status: 500,
- body: err.data
- };
- }
-}
diff --git a/site/src/routes/auth/login.js b/site/src/routes/auth/login.js
deleted file mode 100644
index b1f075d682..0000000000
--- a/site/src/routes/auth/login.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import { stringify } from 'querystring';
-import { oauth, baseurl, client_id } from './_config.js';
-
-export const get = client_id
- ? () => {
- const Location = `${oauth}/authorize?` + stringify({
- scope: 'read:user',
- client_id,
- redirect_uri: `${baseurl}/auth/callback`,
- });
-
- return {
- status: 302,
- headers: {
- Location
- }
- };
- }
- : () => {
- return {
- status: 500,
- headers: {
- 'Content-Type': 'text/html; charset=utf-8'
- },
- body: `
-
-
Missing .env file
-
In order to use GitHub authentication, you will need to register an OAuth application and create a local .env file:
-
GITHUB_CLIENT_ID=[YOUR_APP_ID]\nGITHUB_CLIENT_SECRET=[YOUR_APP_SECRET]\nBASEURL=http://localhost:3000
-
The BASEURL variable should match the callback URL specified for your app.
-
See also here
-
- `
- };
- };
diff --git a/site/src/routes/auth/logout.js b/site/src/routes/auth/logout.js
deleted file mode 100644
index cafc25ee04..0000000000
--- a/site/src/routes/auth/logout.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import * as cookie from 'cookie';
-import { secure } from './_config.js';
-import { delete_session } from '../../utils/auth.js';
-
-export async function get(request) {
- await delete_session(request.locals.cookies.sid);
-
- return {
- headers: {
- 'Set-Cookie': cookie.serialize('sid', '', {
- maxAge: -1,
- path: '/',
- httpOnly: true,
- secure
- })
- }
- };
-}
diff --git a/site/src/routes/blog/[slug].json.js b/site/src/routes/blog/[slug].json.js
deleted file mode 100644
index 60c48dd2f7..0000000000
--- a/site/src/routes/blog/[slug].json.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import get_posts from './_posts.js';
-
-let lookup;
-
-export function get({ params }) {
- if (!lookup || process.env.NODE_ENV !== 'production') {
- lookup = new Map();
- get_posts().forEach(post => {
- lookup.set(post.slug, post);
- });
- }
-
- const post = lookup.get(params.slug);
-
- if (post) {
- return {
- body: post,
- headers: {
- 'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes
- }
- };
- }
-}
diff --git a/site/src/routes/blog/[slug].svelte b/site/src/routes/blog/[slug].svelte
deleted file mode 100644
index 480a1aa4a0..0000000000
--- a/site/src/routes/blog/[slug].svelte
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
- {post.metadata.title}
-
-
-
-
-
-
-
- {post.metadata.title}
- {post.metadata.description}
-
- {post.metadata.author} {post.metadata.dateString}
-
- {@html post.html}
-
-
-
diff --git a/site/src/routes/blog/_posts.js b/site/src/routes/blog/_posts.js
deleted file mode 100644
index 2c86e13656..0000000000
--- a/site/src/routes/blog/_posts.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import fs from 'fs';
-import path from 'path';
-import { extract_frontmatter, link_renderer } from '@sveltejs/site-kit/utils/markdown.js';
-import marked from 'marked';
-import { makeSlugProcessor } from '../../utils/slug';
-import { highlight } from '../../utils/highlight';
-import { SLUG_PRESERVE_UNICODE } from '../../../config';
-
-const makeSlug = makeSlugProcessor(SLUG_PRESERVE_UNICODE);
-
-export default function get_posts() {
- return fs
- .readdirSync('content/blog')
- .map(file => {
- if (path.extname(file) !== '.md') return;
-
- const match = /^(\d+-\d+-\d+)-(.+)\.md$/.exec(file);
- if (!match) throw new Error(`Invalid filename '${file}'`);
-
- const [, pubdate, slug] = match;
-
- const markdown = fs.readFileSync(`content/blog/${file}`, 'utf-8');
-
- const { content, metadata } = extract_frontmatter(markdown);
-
- const date = new Date(`${pubdate} EDT`); // cheeky hack
- metadata.pubdate = pubdate;
- metadata.dateString = date.toDateString();
-
- const renderer = new marked.Renderer();
-
- renderer.link = link_renderer;
-
- renderer.code = highlight;
-
- renderer.heading = (text, level, rawtext) => {
- const fragment = makeSlug(rawtext);
-
- return `
-
-
-
- ${text}
- `;
- };
-
- const html = marked(
- content.replace(/^\t+/gm, match => match.split('\t').join(' ')),
- { renderer }
- );
-
- return {
- html,
- metadata,
- slug
- };
- })
- .sort((a, b) => a.metadata.pubdate < b.metadata.pubdate ? 1 : -1);
-}
diff --git a/site/src/routes/blog/index.json.js b/site/src/routes/blog/index.json.js
deleted file mode 100644
index b65451a5a1..0000000000
--- a/site/src/routes/blog/index.json.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import get_posts from './_posts.js';
-
-let json;
-
-export function get() {
- if (!json || process.env.NODE_ENV !== 'production') {
- const posts = get_posts()
- .filter(post => !post.metadata.draft)
- .map(post => {
- return {
- slug: post.slug,
- metadata: post.metadata
- };
- });
-
- json = JSON.stringify(posts);
- }
-
- return {
- body: json,
- headers: {
- 'Content-Type': 'application/json',
- 'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes
- }
- }
-}
diff --git a/site/src/routes/blog/index.svelte b/site/src/routes/blog/index.svelte
deleted file mode 100644
index 40131d7a19..0000000000
--- a/site/src/routes/blog/index.svelte
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
- Blog • Svelte
-
-
-
-
-
-
-
-
Blog
-
-
-
diff --git a/site/src/routes/blog/rss.xml.js b/site/src/routes/blog/rss.xml.js
deleted file mode 100644
index a82426a973..0000000000
--- a/site/src/routes/blog/rss.xml.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import get_posts from '../blog/_posts.js';
-
-const months = ',Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(',');
-
-function formatPubdate(str) {
- const [y, m, d] = str.split('-');
- return `${d} ${months[+m]} ${y} 12:00 +0000`;
-}
-
-function escapeHTML(html) {
- const chars = {
- '"' : 'quot',
- "'": '#39',
- '&': 'amp',
- '<' : 'lt',
- '>' : 'gt'
- };
-
- return html.replace(/["'&<>]/g, c => `&${chars[c]};`);
-}
-
-const rss = `
-
-
-
-
- Svelte blog
- https://svelte.dev/blog
- News and information about the magical disappearing UI framework
-
- https://svelte.dev/favicon.png
- Svelte
- https://svelte.dev/blog
-
- ${get_posts().filter(post => !post.metadata.draft).map(post => `
- -
-
${escapeHTML(post.metadata.title)}
- https://svelte.dev/blog/${post.slug}
- ${escapeHTML(post.metadata.description)}
- ${formatPubdate(post.metadata.pubdate)}
-
- `).join('')}
-
-
-
-`.replace(/>[^\S]+/gm, '>').replace(/[^\S]+ file[0] !== '.' && path.extname(file) === '.md')
- .map(file => {
- const markdown = fs.readFileSync(`content/docs/${file}`, 'utf-8');
-
- const { content, metadata } = extract_frontmatter(markdown);
-
- const section_slug = make_slug(metadata.title);
-
- const subsections = [];
-
- const renderer = new marked.Renderer();
-
- let block_open = false;
-
- renderer.link = link_renderer;
-
- renderer.hr = () => {
- block_open = true;
-
- return '
';
- };
-
- renderer.code = (source, lang) => {
- source = source.replace(/^ +/gm, match =>
- match.split(' ').join('\t')
- );
-
- const lines = source.split('\n');
-
- const meta = extract_metadata(lines[0], lang);
-
- let prefix = '';
- let className = 'code-block';
-
- if (meta) {
- source = lines.slice(1).join('\n');
- const filename = meta.filename || (lang === 'html' && 'App.svelte');
- if (filename) {
- prefix = `
${prefix} ${filename} `;
- className += ' named';
- }
- }
-
- if (meta && meta.hidden) return '';
-
- const html = `
${prefix}${highlight(source, lang)}
`;
-
- if (block_open) {
- block_open = false;
- return `
${html}
`;
- }
-
- return html;
- };
-
- renderer.heading = (text, level, rawtext) => {
- let slug;
-
- const match = /
]*>(.+)<\/a>/.exec(text);
- if (match) {
- slug = match[1];
- text = match[2];
- } else {
- slug = make_slug(rawtext);
- }
-
- if (level === 3 || level === 4) {
- const title = text
- .replace(/<\/?code>/g, '')
- .replace(/\.(\w+)(\((.+)?\))?/, (m, $1, $2, $3) => {
- if ($3) return `.${$1}(...)`;
- if ($2) return `.${$1}()`;
- return `.${$1}`;
- });
-
- subsections.push({ slug, title, level });
- }
-
- return `
-
- 4 ? 'data-scrollignore' : ''}>
-
- ${text}
- `;
- };
-
- blockTypes.forEach(type => {
- const fn = renderer[type];
- renderer[type] = function() {
- return fn.apply(this, arguments);
- };
- });
-
- const html = marked(content, { renderer });
-
- const hashes = {};
-
- return {
- html: html.replace(/@@(\d+)/g, (m, id) => hashes[id] || m),
- metadata,
- subsections,
- slug: section_slug,
- file,
- };
- });
-}
diff --git a/site/src/routes/docs/index.json.js b/site/src/routes/docs/index.json.js
deleted file mode 100644
index b056f8083d..0000000000
--- a/site/src/routes/docs/index.json.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import get_sections from './_sections.js';
-
-let json;
-
-export function get() {
- if (!json || process.env.NODE_ENV !== 'production') {
- json = get_sections();
- }
-
- return {
- body: json
- };
-}
diff --git a/site/src/routes/docs/index.svelte b/site/src/routes/docs/index.svelte
deleted file mode 100644
index 4496330bf4..0000000000
--- a/site/src/routes/docs/index.svelte
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
- API Docs • Svelte
-
-
-
-
-
-
-API Docs
-
diff --git a/site/src/routes/examples/[slug].json.js b/site/src/routes/examples/[slug].json.js
deleted file mode 100644
index 44e65aa840..0000000000
--- a/site/src/routes/examples/[slug].json.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { get_example } from './_examples.js';
-
-const cache = new Map();
-
-export function get({ params }) {
- const { slug } = params;
-
- let example = cache.get(slug);
-
- if (!example || process.env.NODE_ENV !== 'production') {
- example = get_example(slug);
- if (example) cache.set(slug, example);
- }
-
- if (example) {
- return {
- body: example
- };
- }
-}
diff --git a/site/src/routes/examples/_TableOfContents.svelte b/site/src/routes/examples/_TableOfContents.svelte
deleted file mode 100644
index d5a8b7240f..0000000000
--- a/site/src/routes/examples/_TableOfContents.svelte
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
- {#each sections as section}
-
- {section.title}
-
- {#each section.examples as example}
-
- {/each}
-
- {/each}
-
diff --git a/site/src/routes/examples/_examples.js b/site/src/routes/examples/_examples.js
deleted file mode 100644
index e4580d7fda..0000000000
--- a/site/src/routes/examples/_examples.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import fs from 'fs';
-
-let lookup;
-const titles = new Map();
-
-export function get_examples() {
- lookup = new Map();
-
- return fs.readdirSync(`content/examples`).map(group_dir => {
- const metadata = JSON.parse(fs.readFileSync(`content/examples/${group_dir}/meta.json`, 'utf-8'));
-
- return {
- title: metadata.title,
- examples: fs.readdirSync(`content/examples/${group_dir}`).filter(file => file !== 'meta.json').map(example_dir => {
- const slug = example_dir.replace(/^\d+-/, '');
-
- if (lookup.has(slug)) throw new Error(`Duplicate example slug "${slug}"`);
- lookup.set(slug, `${group_dir}/${example_dir}`);
-
- const metadata = JSON.parse(fs.readFileSync(`content/examples/${group_dir}/${example_dir}/meta.json`, 'utf-8'));
- titles.set(slug, metadata.title);
-
- return {
- slug,
- title: metadata.title
- };
- })
- };
- });
-}
-
-export function get_example(slug) {
- if (!lookup || !lookup.has(slug)) get_examples();
-
- const dir = lookup.get(slug);
- const title = titles.get(slug);
-
- if (!dir || !title) return null;
-
- const files = fs.readdirSync(`content/examples/${dir}`)
- .filter(name => name[0] !== '.' && name !== 'meta.json')
- .map(name => {
- return {
- name,
- source: fs.readFileSync(`content/examples/${dir}/${name}`, 'utf-8')
- };
- });
-
- return { title, files };
-}
diff --git a/site/src/routes/examples/index.json.js b/site/src/routes/examples/index.json.js
deleted file mode 100644
index d425d50203..0000000000
--- a/site/src/routes/examples/index.json.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { get_examples } from './_examples.js';
-
-let cached;
-
-export function get() {
- if (!cached || process.env.NODE_ENV !== 'production') {
- cached = get_examples().filter(section => section.title);
- }
-
- try {
- return {
- body: cached
- };
- } catch(err) {
- return {
- status: e.status || 500,
- body: {
- message: e.message
- }
- };
- }
-}
diff --git a/site/src/routes/examples/index.svelte b/site/src/routes/examples/index.svelte
deleted file mode 100644
index 099e39956c..0000000000
--- a/site/src/routes/examples/index.svelte
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
- {title} {title ? '•' : ''} Svelte Examples
-
-
-
-
-
-
-Examples
-
-
- {#if mobile}
-
- {/if}
-
-
-
diff --git a/site/src/routes/faq/_faqs.js b/site/src/routes/faq/_faqs.js
deleted file mode 100644
index fa48e02282..0000000000
--- a/site/src/routes/faq/_faqs.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import fs from 'fs';
-import path from 'path';
-import { extract_frontmatter, link_renderer } from '@sveltejs/site-kit/utils/markdown.js';
-import marked from 'marked';
-import { makeSlugProcessor } from '../../utils/slug';
-import { highlight } from '../../utils/highlight';
-import { SLUG_PRESERVE_UNICODE } from '../../../config';
-
-const makeSlug = makeSlugProcessor(SLUG_PRESERVE_UNICODE);
-
-export default function get_faqs() {
- return fs
- .readdirSync('content/faq')
- .map(file => {
- if (path.extname(file) !== '.md') return;
-
- const match = /^([0-9]+)-(.+)\.md$/.exec(file);
- if (!match) throw new Error(`Invalid filename '${file}'`);
-
- const [, order, slug] = match;
-
- const markdown = fs.readFileSync(`content/faq/${file}`, 'utf-8');
-
- const { content, metadata } = extract_frontmatter(markdown);
-
- const renderer = new marked.Renderer();
-
- renderer.link = link_renderer;
-
- renderer.code = highlight;
-
- renderer.heading = (text, level, rawtext) => {
- const fragment = makeSlug(rawtext);
-
- return `
-
-
-
- ${text}
- `;
- };
-
- const answer = marked(
- content.replace(/^\t+/gm, match => match.split('\t').join(' ')),
- { renderer }
- );
-
- const fragment = makeSlug(slug);
-
- return {
- fragment,
- order,
- answer,
- metadata
- };
- })
- .sort((a, b) => a.order - b.order);
-}
diff --git a/site/src/routes/faq/index.json.js b/site/src/routes/faq/index.json.js
deleted file mode 100644
index e41b051ae8..0000000000
--- a/site/src/routes/faq/index.json.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import get_faqs from './_faqs.js';
-
-let json;
-
-export function get() {
- if (!json || process.env.NODE_ENV !== 'production') {
- const faqs = get_faqs()
- .map(faq => {
- return {
- fragment: faq.fragment,
- answer: faq.answer,
- metadata: faq.metadata
- };
- });
-
- json = JSON.stringify(faqs);
- }
-
- return {
- body: json,
- headers: {
- 'Content-Type': 'application/json',
- 'Cache-Control': `max-age=${5 * 60 * 1e3}` // 5 minutes
- }
- };
-}
diff --git a/site/src/routes/faq/index.svelte b/site/src/routes/faq/index.svelte
deleted file mode 100644
index c36b6b30b7..0000000000
--- a/site/src/routes/faq/index.svelte
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
- Frequently Asked Questions • Svelte
-
-
-
-
-
-
-
-
Frequently Asked Questions
- {#each faqs as faq}
-
-
-
-
-
- {faq.metadata.question}
-
- {@html faq.answer}
-
- {/each}
-
-
-
diff --git a/site/src/routes/index.svelte b/site/src/routes/index.svelte
deleted file mode 100644
index 2e48531ec5..0000000000
--- a/site/src/routes/index.svelte
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
- Svelte • Cybernetically enhanced web apps
-
-
-
-
-
-
-Svelte
-
-
-
-
- Write less code
- Build boilerplate-free components using languages you already know — HTML, CSS and JavaScript
-
- learn more
-
-
-
- No virtual DOM
- Svelte compiles your code to tiny, framework-less vanilla JS — your app starts fast and stays fast
-
- learn more
-
-
-
- Truly reactive
- No more complex state management libraries — Svelte brings reactivity to JavaScript itself
-
- learn more
-
-
-
-
Svelte is a radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser , Svelte shifts that work into a compile step that happens when you build your app.
-
-
Instead of using techniques like virtual DOM diffing, Svelte writes code that surgically updates the DOM when the state of your app changes.
-
-
We're proud that Svelte was recently voted the most loved web framework with the most satisfied developers in a pair of industry surveys. We think you'll love it too. Read the introductory blog post to learn more.
-
-
-
-
-
-
-
- Svelte components are built on top of HTML. Just add data.
-
-
-
- CSS is component-scoped by default — no more style collisions or specificity wars. Or you can use your favourite CSS-in-JS library .
-
-
-
- Trigger efficient, granular updates by assigning to local variables. The compiler does the rest.
-
-
-
- Build beautiful UIs with a powerful, performant transition engine built right into the framework.
-
-
-
-
- Who's using Svelte?
-
-
-
-
-
- Supporters
-
- Svelte is free and open source software, made possible by the work of hundreds of volunteers and donors. Join us or give !
-
- Contributors
-
-
-
-
-
- Donors
-
-
-
diff --git a/site/src/routes/repl/[id]/_components/AppControls/UserMenu.svelte b/site/src/routes/repl/[id]/_components/AppControls/UserMenu.svelte
deleted file mode 100644
index c550d05e6c..0000000000
--- a/site/src/routes/repl/[id]/_components/AppControls/UserMenu.svelte
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
{name}
-
-
- {#if showMenu}
-
- {/if}
-
-
-
diff --git a/site/src/routes/repl/[id]/_components/AppControls/index.svelte b/site/src/routes/repl/[id]/_components/AppControls/index.svelte
deleted file mode 100644
index 94a019325f..0000000000
--- a/site/src/routes/repl/[id]/_components/AppControls/index.svelte
+++ /dev/null
@@ -1,285 +0,0 @@
-
-
-
-
-
-
-
-
-
- {#if zen_mode}
-
- {:else}
-
- {/if}
-
-
-
-
-
-
- fork(false)} title="fork">
- {#if justForked}
-
- {:else}
-
- {/if}
-
-
-
- {#if justSaved}
-
- {:else}
-
- {/if}
-
-
- {#if $session.user}
-
- {:else}
-
-
- Log in to save
-
- {/if}
-
-
-
-
diff --git a/site/src/routes/repl/[id]/index.json.js b/site/src/routes/repl/[id]/index.json.js
deleted file mode 100644
index 0a5f79c82a..0000000000
--- a/site/src/routes/repl/[id]/index.json.js
+++ /dev/null
@@ -1,173 +0,0 @@
-import * as httpie from 'httpie';
-import { query, find } from '../../../utils/db';
-import { get_example } from '../../examples/_examples.js';
-
-const GITHUB_CLIENT_ID = process.env['GITHUB_CLIENT_ID'];
-const GITHUB_CLIENT_SECRET = process.env['GITHUB_CLIENT_SECRET'];
-
-export async function get({ path, params }) {
- // is this an example?
- const example = get_example(params.id);
-
- if (example) {
- return {
- body: {
- relaxed: true,
- uid: params.id,
- name: example.title,
- files: example.files,
- owner: null
- }
- };
- }
-
- if (process.env.NODE_ENV === 'development') {
- // In dev, proxy requests to load particular REPLs to the real server.
- // This avoids needing to connect to the real database server.
- try {
- const res_proxy = await httpie.get(`https://svelte.dev${path}`);
- return {
- body: res_proxy.data,
- status: res_proxy.statusCode,
- headers: res_proxy.headers
- };
- } catch (err) {
- return {
- status: err.statusCode,
- body: { error: err.message }
- };
- }
- }
-
- const [row] = await query(`
- select g.*, u.uid as owner from gists g
- left join users u on g.user_id = u.id
- where g.uid = $1 limit 1
- `, [params.id]); // via filename pattern
-
- if (!row) {
- const base = `https://api.github.com/gists/${params.id}`;
- const url = `${base}?client_id=${GITHUB_CLIENT_ID}&client_secret=${GITHUB_CLIENT_SECRET}`;
-
- try {
- const { data } = await httpie.get(url, {
- headers: {
- 'User-Agent': 'https://svelte.dev'
- }
- });
-
- // create owner if necessary...
- let user = await find(`select * from users where uid = $1`, [data.owner.id]);
-
- if (!user) {
- const { id, name, login, avatar_url } = data.owner;
-
- user = await find(`
- insert into users(uid, name, username, avatar)
- values ($1, $2, $3, $4)
- returning *
- `, [id, name, login, avatar_url]);
- }
-
- delete data.files['README.md'];
- delete data.files['meta.json'];
-
- const files = Object.keys(data.files).map(key => {
- const name = key.replace(/\.html$/, '.svelte');
-
- return {
- name,
- source: data.files[key].content
- };
- });
-
- // add gist to database...
- await query(`
- insert into gists(uid, user_id, name, files)
- values ($1, $2, $3, $4)
- `, [params.id, user.id, data.description, JSON.stringify(files)]);
-
- return {
- body: {
- uid: params.id,
- name: data.description,
- files,
- owner: data.owner.id
- }
- };
- } catch (err) {
- return {
- status: err.statusCode,
- body: { error: err.message }
- };
- }
- }
-
- return {
- body: {
- uid: row.uid.replace(/-/g, ''),
- name: row.name,
- files: row.files,
- owner: row.owner
- }
- };
-}
-
-export async function patch({ params, locals, body }) {
- const { user } = locals;
- if (!user) return;
-
- let id;
- const uid = params.id;
-
- try {
- const [row] = await query(`select * from gists where uid = $1 limit 1`, [uid]);
- if (!row) {
- return {
- status: 404,
- body: {
- error: 'Gist not found'
- }
- };
- }
- if (row.user_id !== user.id) {
- return { status: 403, body: { error: 'Item does not belong to you' }};
- }
- id = row.id;
- } catch (err) {
- console.error('PATCH /gists @ select', err);
- return { status: 500 };
- }
-
- try {
- const obj = body;
- obj.updated_at = 'now()';
- let k;
- const cols = [];
- const vals = [];
- for (k in obj) {
- cols.push(k);
- vals.push(k === 'files' ? JSON.stringify(obj[k]) : obj[k]);
- }
-
- const tmp = vals.map((x, i) => `$${i + 1}`).join(',');
- const set = `set (${cols.join(',')}) = (${tmp})`;
-
- const [row] = await query(`update gists ${set} where id = ${id} returning *`, vals);
-
- return {
- body: {
- uid: row.uid.replace(/-/g, ''),
- name: row.name,
- files: row.files,
- owner: user.uid,
- }
- };
- } catch (err) {
- console.error('PATCH /gists @ update', err);
- return {
- status: 500,
- body: { error: err.message }
- };
- }
-}
diff --git a/site/src/routes/repl/[id]/index.svelte b/site/src/routes/repl/[id]/index.svelte
deleted file mode 100644
index 5bf06503b1..0000000000
--- a/site/src/routes/repl/[id]/index.svelte
+++ /dev/null
@@ -1,212 +0,0 @@
-
-
-
-
-
-
-
- {name} • REPL • Svelte
-
-
-
-
-
-
-
-
-
-
-
- {#if browser}
-
-
-
-
- {#if mobile}
-
- {/if}
- {/if}
-
diff --git a/site/src/routes/repl/_utils/body.js b/site/src/routes/repl/_utils/body.js
deleted file mode 100644
index 950208ab56..0000000000
--- a/site/src/routes/repl/_utils/body.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default function body(req) {
- return new Promise((fulfil, reject) => {
- let str = '';
-
- req.on('error', reject);
-
- req.on('data', chunk => {
- str += chunk;
- });
-
- req.on('end', () => {
- try {
- fulfil(JSON.parse(str));
- } catch (err) {
- reject(err);
- }
- });
- });
-}
\ No newline at end of file
diff --git a/site/src/routes/repl/_utils/downloadBlob.js b/site/src/routes/repl/_utils/downloadBlob.js
deleted file mode 100644
index d90ed40530..0000000000
--- a/site/src/routes/repl/_utils/downloadBlob.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default (blob, filename) => {
- const url = URL.createObjectURL(blob);
- const link = document.createElement('a');
- link.href = url;
- link.download = filename;
- link.style.display = 'none';
- document.body.appendChild(link);
- link.click();
- URL.revokeObjectURL(url);
- link.remove();
-};
diff --git a/site/src/routes/repl/create.json.js b/site/src/routes/repl/create.json.js
deleted file mode 100644
index 7695f80e83..0000000000
--- a/site/src/routes/repl/create.json.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { query } from '../../utils/db';
-
-export async function post({ locals, body }) {
- const { user } = locals;
- if (!user) return; // response already sent
-
- try {
- const { name, files } = body;
-
- const [row] = await query(`
- insert into gists(user_id, name, files)
- values ($1, $2, $3) returning *`, [user.id, name, JSON.stringify(files)]);
-
- return {
- status: 201,
- body: {
- uid: row.uid.replace(/-/g, ''),
- name: row.name,
- files: row.files,
- owner: user.uid,
- }
- };
- } catch (err) {
- return {
- status: 500,
- body: {
- error: err.message
- }
- };
- }
-}
diff --git a/site/src/routes/repl/embed.svelte b/site/src/routes/repl/embed.svelte
deleted file mode 100644
index ad88926d68..0000000000
--- a/site/src/routes/repl/embed.svelte
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
-
- REPL • Svelte
-
-
-
-
-
-
-
- {#if browser}
-
- {/if}
-
diff --git a/site/src/routes/repl/index.svelte b/site/src/routes/repl/index.svelte
deleted file mode 100644
index 483ab7e4cd..0000000000
--- a/site/src/routes/repl/index.svelte
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/site/src/routes/repl/local/[...path].js b/site/src/routes/repl/local/[...path].js
deleted file mode 100644
index 72bf70722f..0000000000
--- a/site/src/routes/repl/local/[...path].js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { readFileSync } from 'fs';
-
-export function get({ params: { path } }) {
- if (process.env.NODE_ENV !== 'development' || ('/' + path).includes('/.')) {
- return { status: 403 };
- }
- return {
- headers: { 'Content-Type': 'text/javascript' },
- body: readFileSync('../' + path)
- };
-}
diff --git a/site/src/routes/tutorial/[slug]/_TableOfContents.svelte b/site/src/routes/tutorial/[slug]/_TableOfContents.svelte
deleted file mode 100644
index 4a28c2335e..0000000000
--- a/site/src/routes/tutorial/[slug]/_TableOfContents.svelte
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- {selected.section.title} /
-
- {selected.chapter.title}
-
-
-
- {#each sections as section, i}
-
- {#each section.chapters as chapter, i}
- {String.fromCharCode(i + 97)}. {chapter.title}
- {/each}
-
- {/each}
-
-
-
-
-
-
-
diff --git a/site/src/routes/tutorial/[slug]/index.json.js b/site/src/routes/tutorial/[slug]/index.json.js
deleted file mode 100644
index 31ccfb1ff7..0000000000
--- a/site/src/routes/tutorial/[slug]/index.json.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import * as fs from 'fs';
-import * as path from 'path';
-import marked from 'marked';
-import { extract_frontmatter, extract_metadata, link_renderer } from '@sveltejs/site-kit/utils/markdown';
-import { highlight } from '../../../utils/highlight';
-
-const cache = new Map();
-
-function find_tutorial(slug) {
- const sections = fs.readdirSync(`content/tutorial`);
-
- for (const section of sections) {
- const chapters = fs.readdirSync(`content/tutorial/${section}`).filter(dir => /^\d+/.test(dir));
- for (const chapter of chapters) {
- if (slug === chapter.replace(/^\d+-/, '')) {
- return { section, chapter };
- }
- }
- }
-}
-
-function get_tutorial(slug) {
- const found = find_tutorial(slug);
- if (!found) return found;
-
- const dir = `content/tutorial/${found.section}/${found.chapter}`;
-
- const markdown = fs.readFileSync(`${dir}/text.md`, 'utf-8');
- const app_a = fs.readdirSync(`${dir}/app-a`);
- const app_b = fs.existsSync(`${dir}/app-b`) && fs.readdirSync(`${dir}/app-b`);
-
- const { content } = extract_frontmatter(markdown);
-
- const renderer = new marked.Renderer();
-
- renderer.link = link_renderer;
-
- renderer.code = (source, lang) => {
- source = source.replace(/^ +/gm, match =>
- match.split(' ').join('\t')
- );
-
- const lines = source.split('\n');
-
- const meta = extract_metadata(lines[0], lang);
-
- let prefix = '';
- let className = 'code-block';
-
- if (meta) {
- source = lines.slice(1).join('\n');
- const filename = meta.filename || (lang === 'html' && 'App.svelte');
- if (filename) {
- prefix = `${prefix} ${filename} `;
- className += ' named';
- }
- }
-
- return `${prefix}${highlight(source, lang)}
`;
- };
-
- let html = marked(content, { renderer });
- if (found.chapter.startsWith('01')) {
- const meta = JSON.parse(fs.readFileSync(`content/tutorial/${found.section}/meta.json`));
- html = `${meta.title} \n${html}`;
- }
-
- function get_file(stage, file) {
- const ext = path.extname(file);
- const name = file.slice(0, -ext.length);
- const type = ext.slice(1);
-
- return {
- name,
- type,
- source: fs.readFileSync(`${dir}/${stage}/${file}`, 'utf-8')
- };
- }
-
- return {
- html,
- app_a: app_a.map(file => get_file('app-a', file)),
- app_b: app_b && app_b.map(file => get_file('app-b', file))
- };
-}
-
-export function get({ params }) {
- const { slug } = params;
-
- let tut = cache.get(slug);
- if (!tut || process.env.NODE_ENV !== 'production') {
- tut = get_tutorial(slug);
- cache.set(slug, tut);
- }
-
- if (tut) {
- return {
- body: tut
- };
- }
-}
diff --git a/site/src/routes/tutorial/[slug]/index.svelte b/site/src/routes/tutorial/[slug]/index.svelte
deleted file mode 100644
index b6de219520..0000000000
--- a/site/src/routes/tutorial/[slug]/index.svelte
+++ /dev/null
@@ -1,323 +0,0 @@
-
-
-
-
-
-
-
- {selected.section.title} / {selected.chapter.title} • Svelte Tutorial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {@html chapter.html}
-
-
- {#if chapter.app_b}
-
-
- {completed ? 'Reset' : 'Show me'}
-
- {/if}
-
- {#if selected.next}
-
Next
- {/if}
-
-
-
-
-
-
-
-
-
-
-
- {#if mobile}
-
- {/if}
-
diff --git a/site/src/routes/tutorial/__layout.svelte b/site/src/routes/tutorial/__layout.svelte
deleted file mode 100644
index c762919dd2..0000000000
--- a/site/src/routes/tutorial/__layout.svelte
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
diff --git a/site/src/routes/tutorial/index.json.js b/site/src/routes/tutorial/index.json.js
deleted file mode 100644
index 9df41f9e26..0000000000
--- a/site/src/routes/tutorial/index.json.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import * as fs from 'fs';
-import { extract_frontmatter } from '@sveltejs/site-kit/utils/markdown';
-
-let json;
-
-function get_sections() {
- const slugs = new Set();
-
- const sections = fs.readdirSync(`content/tutorial`)
- .filter(dir => /^\d+/.test(dir))
- .map(dir => {
- let meta;
-
- try {
- meta = JSON.parse(fs.readFileSync(`content/tutorial/${dir}/meta.json`, 'utf-8'));
- } catch (err) {
- throw new Error(`Error reading metadata for ${dir}`);
- }
-
- return {
- title: meta.title,
- chapters: fs.readdirSync(`content/tutorial/${dir}`)
- .filter(dir => /^\d+/.test(dir))
- .map(tutorial => {
- try {
- const md = fs.readFileSync(`content/tutorial/${dir}/${tutorial}/text.md`, 'utf-8');
- const { metadata } = extract_frontmatter(md);
-
- const slug = tutorial.replace(/^\d+-/, '');
-
- if (slugs.has(slug)) throw new Error(`Duplicate slug: ${slug}`);
- slugs.add(slug);
-
- return {
- slug,
- title: metadata.title,
- section_dir: dir,
- chapter_dir: tutorial,
- };
- } catch (err) {
- throw new Error(`Error building tutorial ${dir}/${tutorial}: ${err.message}`);
- }
- })
- };
- });
-
- return sections;
-}
-
-export function get() {
- try {
- if (!json || process.env.NODE_ENV !== 'production') {
- json = get_sections();
- }
-
- return {
- body: json
- };
- } catch (err) {
- return {
- status: 500,
- body: {
- message: err.message
- }
- };
- }
-}
diff --git a/site/src/routes/tutorial/index.svelte b/site/src/routes/tutorial/index.svelte
deleted file mode 100644
index 69abd448aa..0000000000
--- a/site/src/routes/tutorial/index.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/site/src/routes/tutorial/random-number.js b/site/src/routes/tutorial/random-number.js
deleted file mode 100644
index 5a4d94e1f4..0000000000
--- a/site/src/routes/tutorial/random-number.js
+++ /dev/null
@@ -1,23 +0,0 @@
-export async function get(req) {
- let { min = '0', max = '100' } = req.query;
- min = +min;
- max = +max;
-
- // simulate a long delay
- await new Promise((res) => setTimeout(res, 1000));
-
- // fail sometimes
- if (Math.random() < 0.333) {
- return {
- status: 400,
- headers: { 'Access-Control-Allow-Origin': '*' },
- body: `Failed to generate random number. Please try again`
- };
- }
-
- const num = min + Math.round(Math.random() * (max - min));
- return {
- headers: { 'Access-Control-Allow-Origin': '*' },
- body: String(num)
- };
-}
diff --git a/site/src/utils/auth.js b/site/src/utils/auth.js
deleted file mode 100644
index e810a4fe32..0000000000
--- a/site/src/utils/auth.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import flru from 'flru';
-import { find, query } from './db';
-
-export const sanitize_user = obj => obj && ({
- uid: obj.uid,
- username: obj.username,
- name: obj.name,
- avatar: obj.avatar
-});
-
-const session_cache = flru(1000);
-
-export const create_user = async (gh_user, access_token) => {
- return await find(`
- insert into users(uid, name, username, avatar, github_token)
- values ($1, $2, $3, $4, $5) on conflict (uid) do update
- set (name, username, avatar, github_token, updated_at) = ($2, $3, $4, $5, now())
- returning id, uid, username, name, avatar
- `, [gh_user.id, gh_user.name, gh_user.login, gh_user.avatar_url, access_token]);
-};
-
-export const create_session = async user => {
- const session = await find(`
- insert into sessions(user_id)
- values ($1)
- returning uid
- `, [user.id]);
-
- session_cache.set(session.uid, user);
-
- return session;
-};
-
-export const delete_session = async sid => {
- await query(`delete from sessions where uid = $1`, [sid]);
- session_cache.set(sid, null);
-};
-
-export const get_user = async sid => {
- if (!sid) return null;
-
- if (!session_cache.has(sid)) {
- session_cache.set(sid, await find(`
- select users.id, users.uid, users.username, users.name, users.avatar
- from sessions
- left join users on sessions.user_id = users.id
- where sessions.uid = $1 and expiry > now()
- `, [sid]));
- }
-
- return session_cache.get(sid);
-};
diff --git a/site/src/utils/compat.js b/site/src/utils/compat.js
deleted file mode 100644
index 0b0f1e954b..0000000000
--- a/site/src/utils/compat.js
+++ /dev/null
@@ -1 +0,0 @@
-export const isMac = typeof navigator !== 'undefined' && navigator.platform === 'MacIntel';
diff --git a/site/src/utils/db.js b/site/src/utils/db.js
deleted file mode 100644
index 4d512aabe9..0000000000
--- a/site/src/utils/db.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import pg from 'pg';
-
-// Uses `PG*` ENV vars
-export const DB = process.env['PGHOST'] ? new pg.Pool() : null;
-
-export function query(text, values=[]) {
- return DB.query(text, values).then(r => r.rows);
-}
-
-export function find(text, values=[]) {
- return query(text, values).then(arr => arr[0]);
-}
diff --git a/site/src/utils/events.js b/site/src/utils/events.js
deleted file mode 100644
index 5575812a95..0000000000
--- a/site/src/utils/events.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export function keyEvent(code) {
- return function (node, callback) {
- node.addEventListener('keydown', handleKeydown);
-
- function handleKeydown(event) {
- if (event.keyCode === code) {
- callback.call(this, event);
- }
- }
-
- return {
- destroy() {
- node.removeEventListener('keydown', handleKeydown);
- }
- };
- };
-}
-
-export const enter = keyEvent(13);
diff --git a/site/src/utils/examples.js b/site/src/utils/examples.js
deleted file mode 100644
index fc61d79ad3..0000000000
--- a/site/src/utils/examples.js
+++ /dev/null
@@ -1,16 +0,0 @@
-export function process_example(files) {
- return files
- .map(file => {
- const [name, type] = file.name.split('.');
- return { name, type, source: file.source };
- })
- .sort((a, b) => {
- if (a.name === 'App' && a.type === 'svelte') return -1;
- if (b.name === 'App' && b.type === 'svelte') return 1;
-
- if (a.type === b.type) return a.name < b.name ? -1 : 1;
-
- if (a.type === 'svelte') return -1;
- if (b.type === 'svelte') return 1;
- });
-}
\ No newline at end of file
diff --git a/site/src/utils/highlight.js b/site/src/utils/highlight.js
deleted file mode 100644
index cbe227cec2..0000000000
--- a/site/src/utils/highlight.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { langs } from '@sveltejs/site-kit/utils/markdown.js';
-import PrismJS from 'prismjs';
-import 'prismjs/components/prism-bash.js';
-import 'prismjs/components/prism-diff.js';
-import 'prism-svelte';
-
-export function highlight(source, lang) {
- const plang = langs[lang] || '';
- const highlighted = plang ? PrismJS.highlight(
- source,
- PrismJS.languages[plang],
- lang,
- ) : source.replace(/[&<>]/g, c => ({ '&': '&', '<': '<', '>': '>' })[c]);
-
- return `${highlighted} `;
-}
diff --git a/site/src/utils/slug.js b/site/src/utils/slug.js
deleted file mode 100644
index 25afcdf017..0000000000
--- a/site/src/utils/slug.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import slugify from '@sindresorhus/slugify';
-import {SLUG_SEPARATOR} from '../../config.js';
-
-/* url-safe processor */
-
-export const urlsafeSlugProcessor = string =>
- slugify(string, {
- customReplacements: [ // runs before any other transformations
- ['$', 'DOLLAR'], // `$destroy` & co
- ['-', 'DASH'], // conflicts with `separator`
- ],
- separator: SLUG_SEPARATOR,
- decamelize: false,
- lowercase: false
- })
- .replace(/DOLLAR/g, '$')
- .replace(/DASH/g, '-');
-
-/* unicode-preserver processor */
-
-const alphaNumRegex = /[a-zA-Z0-9]/;
-const unicodeRegex = /\p{Letter}/u;
-const isNonAlphaNumUnicode =
- string => !alphaNumRegex.test(string) && unicodeRegex.test(string);
-
-export const unicodeSafeProcessor = string =>
- string.split('')
- .reduce((accum, char, index, array) => {
- const type = isNonAlphaNumUnicode(char) ? 'pass' : 'process';
-
- if (index === 0) {
- accum.current = {type, string: char};
- } else if (type === accum.current.type) {
- accum.current.string += char;
- } else {
- accum.chunks.push(accum.current);
- accum.current = {type, string: char};
- }
-
- if (index === array.length - 1) {
- accum.chunks.push(accum.current);
- }
-
- return accum;
- }, {chunks: [], current: {type: '', string: ''}})
- .chunks
- .reduce((accum, chunk) => {
- const processed = chunk.type === 'process'
- ? urlsafeSlugProcessor(chunk.string)
- : chunk.string;
-
- processed.length > 0 && accum.push(processed);
-
- return accum;
- }, [])
- .join(SLUG_SEPARATOR);
-
-/* processor */
-
-export const makeSlugProcessor = (preserveUnicode = false) => preserveUnicode
- ? unicodeSafeProcessor
- : urlsafeSlugProcessor;
-
-/* session processor */
-
-export const makeSessionSlugProcessor = (preserveUnicode = false) => {
- const processor = makeSlugProcessor(preserveUnicode);
- const seen = new Set();
-
- return string => {
- const slug = processor(string);
-
- if (seen.has(slug)) throw new Error(`Duplicate slug ${slug}`);
- seen.add(slug);
-
- return slug;
- };
-};
diff --git a/site/static/examples/thumbnails/7guis-circles.jpg b/site/static/examples/thumbnails/7guis-circles.jpg
deleted file mode 100644
index e2d58b9f36..0000000000
Binary files a/site/static/examples/thumbnails/7guis-circles.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/7guis-counter.jpg b/site/static/examples/thumbnails/7guis-counter.jpg
deleted file mode 100644
index b0b525fc42..0000000000
Binary files a/site/static/examples/thumbnails/7guis-counter.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/7guis-crud.jpg b/site/static/examples/thumbnails/7guis-crud.jpg
deleted file mode 100644
index ccebfb8a6b..0000000000
Binary files a/site/static/examples/thumbnails/7guis-crud.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/7guis-flight-booker.jpg b/site/static/examples/thumbnails/7guis-flight-booker.jpg
deleted file mode 100644
index c0aecc9fe1..0000000000
Binary files a/site/static/examples/thumbnails/7guis-flight-booker.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/7guis-temperature.jpg b/site/static/examples/thumbnails/7guis-temperature.jpg
deleted file mode 100644
index b58e9e09b9..0000000000
Binary files a/site/static/examples/thumbnails/7guis-temperature.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/7guis-timer.jpg b/site/static/examples/thumbnails/7guis-timer.jpg
deleted file mode 100644
index 6fd89dd75a..0000000000
Binary files a/site/static/examples/thumbnails/7guis-timer.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/actions.jpg b/site/static/examples/thumbnails/actions.jpg
deleted file mode 100644
index 33986769df..0000000000
Binary files a/site/static/examples/thumbnails/actions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/adding-parameters-to-actions.jpg b/site/static/examples/thumbnails/adding-parameters-to-actions.jpg
deleted file mode 100644
index 1963b7f41e..0000000000
Binary files a/site/static/examples/thumbnails/adding-parameters-to-actions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/adding-parameters-to-transitions.jpg b/site/static/examples/thumbnails/adding-parameters-to-transitions.jpg
deleted file mode 100644
index db4f939d2a..0000000000
Binary files a/site/static/examples/thumbnails/adding-parameters-to-transitions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/animate.jpg b/site/static/examples/thumbnails/animate.jpg
deleted file mode 100644
index 48cc6eb45d..0000000000
Binary files a/site/static/examples/thumbnails/animate.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/area-chart.jpg b/site/static/examples/thumbnails/area-chart.jpg
deleted file mode 100644
index 4f6a2c8e64..0000000000
Binary files a/site/static/examples/thumbnails/area-chart.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/auto-subscriptions.jpg b/site/static/examples/thumbnails/auto-subscriptions.jpg
deleted file mode 100644
index 9f14c15036..0000000000
Binary files a/site/static/examples/thumbnails/auto-subscriptions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/await-blocks.jpg b/site/static/examples/thumbnails/await-blocks.jpg
deleted file mode 100644
index 3d3dbe60f5..0000000000
Binary files a/site/static/examples/thumbnails/await-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/bar-chart.jpg b/site/static/examples/thumbnails/bar-chart.jpg
deleted file mode 100644
index ce303b926c..0000000000
Binary files a/site/static/examples/thumbnails/bar-chart.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/bind-this.jpg b/site/static/examples/thumbnails/bind-this.jpg
deleted file mode 100644
index 61c1957f69..0000000000
Binary files a/site/static/examples/thumbnails/bind-this.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/checkbox-inputs.jpg b/site/static/examples/thumbnails/checkbox-inputs.jpg
deleted file mode 100644
index 2831b458d7..0000000000
Binary files a/site/static/examples/thumbnails/checkbox-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/class-shorthand.jpg b/site/static/examples/thumbnails/class-shorthand.jpg
deleted file mode 100644
index 3c3937e4e0..0000000000
Binary files a/site/static/examples/thumbnails/class-shorthand.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/classes.jpg b/site/static/examples/thumbnails/classes.jpg
deleted file mode 100644
index b2081309e1..0000000000
Binary files a/site/static/examples/thumbnails/classes.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/clock.jpg b/site/static/examples/thumbnails/clock.jpg
deleted file mode 100644
index 9cab05c8cc..0000000000
Binary files a/site/static/examples/thumbnails/clock.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/component-bindings.jpg b/site/static/examples/thumbnails/component-bindings.jpg
deleted file mode 100644
index a28af2440f..0000000000
Binary files a/site/static/examples/thumbnails/component-bindings.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/component-events.jpg b/site/static/examples/thumbnails/component-events.jpg
deleted file mode 100644
index 3199aff9c9..0000000000
Binary files a/site/static/examples/thumbnails/component-events.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/conditional-slots.jpg b/site/static/examples/thumbnails/conditional-slots.jpg
deleted file mode 100644
index 39bdbf3a3e..0000000000
Binary files a/site/static/examples/thumbnails/conditional-slots.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/context-api.jpg b/site/static/examples/thumbnails/context-api.jpg
deleted file mode 100644
index 5c283cd63e..0000000000
Binary files a/site/static/examples/thumbnails/context-api.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/custom-css-transitions.jpg b/site/static/examples/thumbnails/custom-css-transitions.jpg
deleted file mode 100644
index fb406bff92..0000000000
Binary files a/site/static/examples/thumbnails/custom-css-transitions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/custom-js-transitions.jpg b/site/static/examples/thumbnails/custom-js-transitions.jpg
deleted file mode 100644
index 4f43705d99..0000000000
Binary files a/site/static/examples/thumbnails/custom-js-transitions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/custom-stores.jpg b/site/static/examples/thumbnails/custom-stores.jpg
deleted file mode 100644
index 9f14c15036..0000000000
Binary files a/site/static/examples/thumbnails/custom-stores.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/debug.jpg b/site/static/examples/thumbnails/debug.jpg
deleted file mode 100644
index e65fa074e2..0000000000
Binary files a/site/static/examples/thumbnails/debug.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/declaring-props.jpg b/site/static/examples/thumbnails/declaring-props.jpg
deleted file mode 100644
index 94759bc743..0000000000
Binary files a/site/static/examples/thumbnails/declaring-props.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/default-values.jpg b/site/static/examples/thumbnails/default-values.jpg
deleted file mode 100644
index 94033260b2..0000000000
Binary files a/site/static/examples/thumbnails/default-values.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/deferred-transitions.jpg b/site/static/examples/thumbnails/deferred-transitions.jpg
deleted file mode 100644
index 3a7fe90f2f..0000000000
Binary files a/site/static/examples/thumbnails/deferred-transitions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/derived-stores.jpg b/site/static/examples/thumbnails/derived-stores.jpg
deleted file mode 100644
index a2aade2920..0000000000
Binary files a/site/static/examples/thumbnails/derived-stores.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/dimensions.jpg b/site/static/examples/thumbnails/dimensions.jpg
deleted file mode 100644
index 065a62207c..0000000000
Binary files a/site/static/examples/thumbnails/dimensions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/dom-event-forwarding.jpg b/site/static/examples/thumbnails/dom-event-forwarding.jpg
deleted file mode 100644
index 4c23217bba..0000000000
Binary files a/site/static/examples/thumbnails/dom-event-forwarding.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/dom-events.jpg b/site/static/examples/thumbnails/dom-events.jpg
deleted file mode 100644
index 365d26e705..0000000000
Binary files a/site/static/examples/thumbnails/dom-events.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/dynamic-attributes.jpg b/site/static/examples/thumbnails/dynamic-attributes.jpg
deleted file mode 100644
index a0d5898ce2..0000000000
Binary files a/site/static/examples/thumbnails/dynamic-attributes.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/each-block-bindings.jpg b/site/static/examples/thumbnails/each-block-bindings.jpg
deleted file mode 100644
index 931f1dcf42..0000000000
Binary files a/site/static/examples/thumbnails/each-block-bindings.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/each-blocks.jpg b/site/static/examples/thumbnails/each-blocks.jpg
deleted file mode 100644
index efc9dcb88f..0000000000
Binary files a/site/static/examples/thumbnails/each-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/easing.jpg b/site/static/examples/thumbnails/easing.jpg
deleted file mode 100644
index 11c4871c2a..0000000000
Binary files a/site/static/examples/thumbnails/easing.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/else-blocks.jpg b/site/static/examples/thumbnails/else-blocks.jpg
deleted file mode 100644
index 69426d5ec3..0000000000
Binary files a/site/static/examples/thumbnails/else-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/else-if-blocks.jpg b/site/static/examples/thumbnails/else-if-blocks.jpg
deleted file mode 100644
index 15996af39f..0000000000
Binary files a/site/static/examples/thumbnails/else-if-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/event-forwarding.jpg b/site/static/examples/thumbnails/event-forwarding.jpg
deleted file mode 100644
index 3199aff9c9..0000000000
Binary files a/site/static/examples/thumbnails/event-forwarding.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/event-modifiers.jpg b/site/static/examples/thumbnails/event-modifiers.jpg
deleted file mode 100644
index 752c5b1a0a..0000000000
Binary files a/site/static/examples/thumbnails/event-modifiers.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/file-inputs.jpg b/site/static/examples/thumbnails/file-inputs.jpg
deleted file mode 100644
index d302633f6b..0000000000
Binary files a/site/static/examples/thumbnails/file-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/group-inputs.jpg b/site/static/examples/thumbnails/group-inputs.jpg
deleted file mode 100644
index c70f2afcdc..0000000000
Binary files a/site/static/examples/thumbnails/group-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/hacker-news.jpg b/site/static/examples/thumbnails/hacker-news.jpg
deleted file mode 100644
index 1792586cef..0000000000
Binary files a/site/static/examples/thumbnails/hacker-news.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/hello-world.jpg b/site/static/examples/thumbnails/hello-world.jpg
deleted file mode 100644
index 3b8d871ade..0000000000
Binary files a/site/static/examples/thumbnails/hello-world.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/html-tags.jpg b/site/static/examples/thumbnails/html-tags.jpg
deleted file mode 100644
index f208c04e4f..0000000000
Binary files a/site/static/examples/thumbnails/html-tags.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/if-blocks.jpg b/site/static/examples/thumbnails/if-blocks.jpg
deleted file mode 100644
index 69426d5ec3..0000000000
Binary files a/site/static/examples/thumbnails/if-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/immutable-data.jpg b/site/static/examples/thumbnails/immutable-data.jpg
deleted file mode 100644
index e339b8d459..0000000000
Binary files a/site/static/examples/thumbnails/immutable-data.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/in-and-out.jpg b/site/static/examples/thumbnails/in-and-out.jpg
deleted file mode 100644
index 397ca3b51b..0000000000
Binary files a/site/static/examples/thumbnails/in-and-out.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/inline-handlers.jpg b/site/static/examples/thumbnails/inline-handlers.jpg
deleted file mode 100644
index 365d26e705..0000000000
Binary files a/site/static/examples/thumbnails/inline-handlers.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/keyed-each-blocks.jpg b/site/static/examples/thumbnails/keyed-each-blocks.jpg
deleted file mode 100644
index 8f3d85b288..0000000000
Binary files a/site/static/examples/thumbnails/keyed-each-blocks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/media-elements.jpg b/site/static/examples/thumbnails/media-elements.jpg
deleted file mode 100644
index 579dcc707f..0000000000
Binary files a/site/static/examples/thumbnails/media-elements.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/modal.jpg b/site/static/examples/thumbnails/modal.jpg
deleted file mode 100644
index d6ec829865..0000000000
Binary files a/site/static/examples/thumbnails/modal.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/module-exports.jpg b/site/static/examples/thumbnails/module-exports.jpg
deleted file mode 100644
index 26c3e6a32f..0000000000
Binary files a/site/static/examples/thumbnails/module-exports.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/multiple-select-bindings.jpg b/site/static/examples/thumbnails/multiple-select-bindings.jpg
deleted file mode 100644
index ada9aaa433..0000000000
Binary files a/site/static/examples/thumbnails/multiple-select-bindings.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/named-slots.jpg b/site/static/examples/thumbnails/named-slots.jpg
deleted file mode 100644
index 54915f686f..0000000000
Binary files a/site/static/examples/thumbnails/named-slots.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/nested-components.jpg b/site/static/examples/thumbnails/nested-components.jpg
deleted file mode 100644
index 2352c21b6c..0000000000
Binary files a/site/static/examples/thumbnails/nested-components.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/numeric-inputs.jpg b/site/static/examples/thumbnails/numeric-inputs.jpg
deleted file mode 100644
index 0bcbbbbfd2..0000000000
Binary files a/site/static/examples/thumbnails/numeric-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/ondestroy.jpg b/site/static/examples/thumbnails/ondestroy.jpg
deleted file mode 100644
index c34d437017..0000000000
Binary files a/site/static/examples/thumbnails/ondestroy.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/onmount.jpg b/site/static/examples/thumbnails/onmount.jpg
deleted file mode 100644
index e42c874b90..0000000000
Binary files a/site/static/examples/thumbnails/onmount.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/reactive-assignments.jpg b/site/static/examples/thumbnails/reactive-assignments.jpg
deleted file mode 100644
index 3a57e27711..0000000000
Binary files a/site/static/examples/thumbnails/reactive-assignments.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/reactive-declarations.jpg b/site/static/examples/thumbnails/reactive-declarations.jpg
deleted file mode 100644
index 4f094d80ff..0000000000
Binary files a/site/static/examples/thumbnails/reactive-declarations.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/reactive-statements.jpg b/site/static/examples/thumbnails/reactive-statements.jpg
deleted file mode 100644
index 3a57e27711..0000000000
Binary files a/site/static/examples/thumbnails/reactive-statements.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/readable-stores.jpg b/site/static/examples/thumbnails/readable-stores.jpg
deleted file mode 100644
index 18b3ecc97f..0000000000
Binary files a/site/static/examples/thumbnails/readable-stores.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/scatterplot.jpg b/site/static/examples/thumbnails/scatterplot.jpg
deleted file mode 100644
index 065aabcc8b..0000000000
Binary files a/site/static/examples/thumbnails/scatterplot.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/select-bindings.jpg b/site/static/examples/thumbnails/select-bindings.jpg
deleted file mode 100644
index f1f2f1bf9c..0000000000
Binary files a/site/static/examples/thumbnails/select-bindings.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/sharing-code.jpg b/site/static/examples/thumbnails/sharing-code.jpg
deleted file mode 100644
index f3d5ec1045..0000000000
Binary files a/site/static/examples/thumbnails/sharing-code.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/slot-fallbacks.jpg b/site/static/examples/thumbnails/slot-fallbacks.jpg
deleted file mode 100644
index 44c083e49d..0000000000
Binary files a/site/static/examples/thumbnails/slot-fallbacks.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/slot-props.jpg b/site/static/examples/thumbnails/slot-props.jpg
deleted file mode 100644
index 424a0f2b1e..0000000000
Binary files a/site/static/examples/thumbnails/slot-props.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/slots.jpg b/site/static/examples/thumbnails/slots.jpg
deleted file mode 100644
index 845f3cb938..0000000000
Binary files a/site/static/examples/thumbnails/slots.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/spread-props.jpg b/site/static/examples/thumbnails/spread-props.jpg
deleted file mode 100644
index 0d0e2a9228..0000000000
Binary files a/site/static/examples/thumbnails/spread-props.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/spring.jpg b/site/static/examples/thumbnails/spring.jpg
deleted file mode 100644
index ca972a512d..0000000000
Binary files a/site/static/examples/thumbnails/spring.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/styling.jpg b/site/static/examples/thumbnails/styling.jpg
deleted file mode 100644
index 431c4bfe7b..0000000000
Binary files a/site/static/examples/thumbnails/styling.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-body.jpg b/site/static/examples/thumbnails/svelte-body.jpg
deleted file mode 100644
index 2494b1c95a..0000000000
Binary files a/site/static/examples/thumbnails/svelte-body.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-component.jpg b/site/static/examples/thumbnails/svelte-component.jpg
deleted file mode 100644
index b0b8922416..0000000000
Binary files a/site/static/examples/thumbnails/svelte-component.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-head.jpg b/site/static/examples/thumbnails/svelte-head.jpg
deleted file mode 100644
index fbf9c2a5e6..0000000000
Binary files a/site/static/examples/thumbnails/svelte-head.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-self.jpg b/site/static/examples/thumbnails/svelte-self.jpg
deleted file mode 100644
index d28a3ac940..0000000000
Binary files a/site/static/examples/thumbnails/svelte-self.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-window-bindings.jpg b/site/static/examples/thumbnails/svelte-window-bindings.jpg
deleted file mode 100644
index 4afdf49f7b..0000000000
Binary files a/site/static/examples/thumbnails/svelte-window-bindings.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svelte-window.jpg b/site/static/examples/thumbnails/svelte-window.jpg
deleted file mode 100644
index ff2d91423d..0000000000
Binary files a/site/static/examples/thumbnails/svelte-window.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/svg-transitions.jpg b/site/static/examples/thumbnails/svg-transitions.jpg
deleted file mode 100644
index ff2874f622..0000000000
Binary files a/site/static/examples/thumbnails/svg-transitions.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/text-inputs.jpg b/site/static/examples/thumbnails/text-inputs.jpg
deleted file mode 100644
index e27418de53..0000000000
Binary files a/site/static/examples/thumbnails/text-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/textarea-inputs.jpg b/site/static/examples/thumbnails/textarea-inputs.jpg
deleted file mode 100644
index 6245fd8d88..0000000000
Binary files a/site/static/examples/thumbnails/textarea-inputs.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/tick.jpg b/site/static/examples/thumbnails/tick.jpg
deleted file mode 100644
index 660f5ba94e..0000000000
Binary files a/site/static/examples/thumbnails/tick.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/transition-events.jpg b/site/static/examples/thumbnails/transition-events.jpg
deleted file mode 100644
index 40e7b05a19..0000000000
Binary files a/site/static/examples/thumbnails/transition-events.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/transition.jpg b/site/static/examples/thumbnails/transition.jpg
deleted file mode 100644
index d99be156f8..0000000000
Binary files a/site/static/examples/thumbnails/transition.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/tweened.jpg b/site/static/examples/thumbnails/tweened.jpg
deleted file mode 100644
index 89433e9f86..0000000000
Binary files a/site/static/examples/thumbnails/tweened.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/update.jpg b/site/static/examples/thumbnails/update.jpg
deleted file mode 100644
index 95c4d22d6a..0000000000
Binary files a/site/static/examples/thumbnails/update.jpg and /dev/null differ
diff --git a/site/static/examples/thumbnails/writable-stores.jpg b/site/static/examples/thumbnails/writable-stores.jpg
deleted file mode 100644
index 9f14c15036..0000000000
Binary files a/site/static/examples/thumbnails/writable-stores.jpg and /dev/null differ
diff --git a/site/static/favicon.ico b/site/static/favicon.ico
deleted file mode 100644
index d75d248ef0..0000000000
Binary files a/site/static/favicon.ico and /dev/null differ
diff --git a/site/static/favicon.png b/site/static/favicon.png
deleted file mode 100644
index 21bc302b68..0000000000
Binary files a/site/static/favicon.png and /dev/null differ
diff --git a/site/static/fonts/fira-mono/fira-mono-latin-400.woff2 b/site/static/fonts/fira-mono/fira-mono-latin-400.woff2
deleted file mode 100644
index e81b9f3c56..0000000000
Binary files a/site/static/fonts/fira-mono/fira-mono-latin-400.woff2 and /dev/null differ
diff --git a/site/static/fonts/overpass/overpass-latin-100.woff2 b/site/static/fonts/overpass/overpass-latin-100.woff2
deleted file mode 100644
index a828f98880..0000000000
Binary files a/site/static/fonts/overpass/overpass-latin-100.woff2 and /dev/null differ
diff --git a/site/static/fonts/overpass/overpass-latin-300.woff2 b/site/static/fonts/overpass/overpass-latin-300.woff2
deleted file mode 100644
index 15e204c35e..0000000000
Binary files a/site/static/fonts/overpass/overpass-latin-300.woff2 and /dev/null differ
diff --git a/site/static/fonts/overpass/overpass-latin-400.woff2 b/site/static/fonts/overpass/overpass-latin-400.woff2
deleted file mode 100644
index 8f469bb22e..0000000000
Binary files a/site/static/fonts/overpass/overpass-latin-400.woff2 and /dev/null differ
diff --git a/site/static/fonts/overpass/overpass-latin-600.woff2 b/site/static/fonts/overpass/overpass-latin-600.woff2
deleted file mode 100644
index 1956aca6e0..0000000000
Binary files a/site/static/fonts/overpass/overpass-latin-600.woff2 and /dev/null differ
diff --git a/site/static/fonts/overpass/overpass-latin-700.woff2 b/site/static/fonts/overpass/overpass-latin-700.woff2
deleted file mode 100644
index 14a7f9cce5..0000000000
Binary files a/site/static/fonts/overpass/overpass-latin-700.woff2 and /dev/null differ
diff --git a/site/static/fonts/roboto/roboto-latin-400.woff2 b/site/static/fonts/roboto/roboto-latin-400.woff2
deleted file mode 100644
index 7e854e669b..0000000000
Binary files a/site/static/fonts/roboto/roboto-latin-400.woff2 and /dev/null differ
diff --git a/site/static/fonts/roboto/roboto-latin-400italic.woff2 b/site/static/fonts/roboto/roboto-latin-400italic.woff2
deleted file mode 100644
index 3791c883e8..0000000000
Binary files a/site/static/fonts/roboto/roboto-latin-400italic.woff2 and /dev/null differ
diff --git a/site/static/fonts/roboto/roboto-latin-500.woff2 b/site/static/fonts/roboto/roboto-latin-500.woff2
deleted file mode 100644
index 8dceabcf6b..0000000000
Binary files a/site/static/fonts/roboto/roboto-latin-500.woff2 and /dev/null differ
diff --git a/site/static/fonts/roboto/roboto-latin-500italic.woff2 b/site/static/fonts/roboto/roboto-latin-500italic.woff2
deleted file mode 100644
index 1b9589945e..0000000000
Binary files a/site/static/fonts/roboto/roboto-latin-500italic.woff2 and /dev/null differ
diff --git a/site/static/global.css b/site/static/global.css
deleted file mode 100644
index 329a811545..0000000000
--- a/site/static/global.css
+++ /dev/null
@@ -1,44 +0,0 @@
-/* headers anchors */
-
-.offset-anchor {
- position: relative;
- display: block;
- top: calc(-1 * (var(--nav-h) + var(--top-offset)) + 11rem);
- width: 0;
- height: 0;
-}
-
-.anchor {
- position: absolute;
- display: block;
- background: url(/icons/link.svg) 0 50% no-repeat;
- background-size: 1em 1em;
- width: 1.4em;
- height: 1em;
- top: calc(((var(--h3) - 24px) / 2) + 0.6em);
- left: -1.4em;
- opacity: 0;
- transition: opacity 0.2s;
- border: none !important; /* TODO get rid of linkify */
-}
-
-h2:hover .anchor,
-h3:hover .anchor,
-h4:hover .anchor,
-h5:hover .anchor,
-h6:hover .anchor {
- opacity: 1;
-}
-
-/* visually hidden, but accessible to assistive tech */
-.visually-hidden {
- border: 0;
- clip: rect(0 0 0 0);
- height: auto;
- margin: 0;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px;
- white-space: nowrap;
-}
diff --git a/site/static/icons/arrow-right.svg b/site/static/icons/arrow-right.svg
deleted file mode 100644
index 57bb51ed28..0000000000
--- a/site/static/icons/arrow-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/check.svg b/site/static/icons/check.svg
deleted file mode 100644
index c3e46a42b6..0000000000
--- a/site/static/icons/check.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/chevron.svg b/site/static/icons/chevron.svg
deleted file mode 100644
index 9d582fa803..0000000000
--- a/site/static/icons/chevron.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/collapse.svg b/site/static/icons/collapse.svg
deleted file mode 100644
index 795939aec8..0000000000
--- a/site/static/icons/collapse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/download.svg b/site/static/icons/download.svg
deleted file mode 100644
index b286a882fe..0000000000
--- a/site/static/icons/download.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/dropdown.svg b/site/static/icons/dropdown.svg
deleted file mode 100644
index 69435856b4..0000000000
--- a/site/static/icons/dropdown.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/edit.svg b/site/static/icons/edit.svg
deleted file mode 100644
index 760321cd2f..0000000000
--- a/site/static/icons/edit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/expand.svg b/site/static/icons/expand.svg
deleted file mode 100644
index a026808da3..0000000000
--- a/site/static/icons/expand.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/flip.svg b/site/static/icons/flip.svg
deleted file mode 100644
index 3a18d5ffa1..0000000000
--- a/site/static/icons/flip.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/fork.svg b/site/static/icons/fork.svg
deleted file mode 100644
index 3e21885495..0000000000
--- a/site/static/icons/fork.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/link.svg b/site/static/icons/link.svg
deleted file mode 100644
index 3345bdd0ba..0000000000
--- a/site/static/icons/link.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/icons/loading.svg b/site/static/icons/loading.svg
deleted file mode 100644
index e54abff1dd..0000000000
--- a/site/static/icons/loading.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/site/static/icons/save.svg b/site/static/icons/save.svg
deleted file mode 100644
index a8a5fa1618..0000000000
--- a/site/static/icons/save.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/images/svelte-android-chrome-192.png b/site/static/images/svelte-android-chrome-192.png
deleted file mode 100644
index e3ccf28087..0000000000
Binary files a/site/static/images/svelte-android-chrome-192.png and /dev/null differ
diff --git a/site/static/images/svelte-android-chrome-512.png b/site/static/images/svelte-android-chrome-512.png
deleted file mode 100644
index e673c91c7b..0000000000
Binary files a/site/static/images/svelte-android-chrome-512.png and /dev/null differ
diff --git a/site/static/images/svelte-apple-touch-icon.png b/site/static/images/svelte-apple-touch-icon.png
deleted file mode 100644
index 5600445b1c..0000000000
Binary files a/site/static/images/svelte-apple-touch-icon.png and /dev/null differ
diff --git a/site/static/images/svelte-mstile-150.png b/site/static/images/svelte-mstile-150.png
deleted file mode 100644
index 7694b20455..0000000000
Binary files a/site/static/images/svelte-mstile-150.png and /dev/null differ
diff --git a/site/static/images/twitter-card.png b/site/static/images/twitter-card.png
deleted file mode 100644
index 7a66e94003..0000000000
Binary files a/site/static/images/twitter-card.png and /dev/null differ
diff --git a/site/static/manifest.json b/site/static/manifest.json
deleted file mode 100644
index 45a9d5b907..0000000000
--- a/site/static/manifest.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "background_color": "#ffffff",
- "theme_color": "#ff3e00",
- "name": "Svelte",
- "short_name": "Svelte",
- "display": "minimal-ui",
- "start_url": "/",
- "icons": [
- {
- "src": "images/svelte-android-chrome-192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "images/svelte-android-chrome-512.png",
- "sizes": "512x512",
- "type": "image/png"
- }
- ]
-}
diff --git a/site/static/media/rethinking-best-practices.jpg b/site/static/media/rethinking-best-practices.jpg
deleted file mode 100644
index fdbae403de..0000000000
Binary files a/site/static/media/rethinking-best-practices.jpg and /dev/null differ
diff --git a/site/static/media/svelte-ts.png b/site/static/media/svelte-ts.png
deleted file mode 100644
index ed562822c3..0000000000
Binary files a/site/static/media/svelte-ts.png and /dev/null differ
diff --git a/site/static/prism.css b/site/static/prism.css
deleted file mode 100644
index 0bedd0f02b..0000000000
--- a/site/static/prism.css
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
------------------------------------------------
- syntax-highlighting [prism]
------------------------------------------------
-*/
-
-/* colors --------------------------------- */
-pre[class*='language-'] {
- --background: var(--back-light);
- --base: #545454;
- --comment: #696969;
- --keyword: #007f8a;
- --function: #bb5525;
- --string: #856e3d;
- --number: #008000;
- --tags: var(--function);
- --important: var(--string);
-}
-
-/* type-base ------------------------------ */
-code[class*='language-'],
-pre[class*='language-'] {
- background: none;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- font: 300 var(--code-fs)/1.7 var(--font-mono);
- color: var(--base);
- tab-size: 2;
- -moz-tab-size: 2;
- -webkit-hyphens: none;
- hyphens: none;
-}
-
-/* code-blocks ---------------------------- */
-pre[class*='language-'] {
- overflow: auto;
- padding: 1.5rem 2rem;
- margin: .8rem 0 2.4rem;
- /* max-width: var(--code-w); */
- border-radius: var(--border-r);
- box-shadow: 1px 1px 1px rgba(68, 68, 68, .12) inset;
-}
-
-:not(pre) > code[class*='language-'],
-pre[class*='language-'] {
- background: var(--background);
-}
-
-/* tokens --------------------------------- */
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata { color: var(--comment) }
-
-.token.punctuation { color: var(--base) }
-
-.token.property,
-.token.tag,
-.token.constant,
-.token.symbol,
-.token.deleted { color: var(--tags) }
-
-.token.boolean,
-.token.number { color: var(--number) }
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted { color: var(--string) }
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string,
-.token.variable { color: var(--base) }
-
-.token.atrule,
-.token.attr-value,
-.token.function,
-.token.class-name { color: var(--function) }
-
-.token.keyword { color: var(--keyword) }
-
-.token.regex,
-.token.important { color: var(--important) }
-
-.token.important,
-.token.bold { font-weight: bold }
-.token.italic { font-style: italic }
-.token.entity { cursor: help }
\ No newline at end of file
diff --git a/site/static/svelte-logo-horizontal.svg b/site/static/svelte-logo-horizontal.svg
deleted file mode 100644
index 1d602a9051..0000000000
--- a/site/static/svelte-logo-horizontal.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/site/static/svelte-logo-mask.svg b/site/static/svelte-logo-mask.svg
deleted file mode 100644
index 8572d3da6c..0000000000
--- a/site/static/svelte-logo-mask.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/svelte-logo-outline.svg b/site/static/svelte-logo-outline.svg
deleted file mode 100644
index d93d71c593..0000000000
--- a/site/static/svelte-logo-outline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/svelte-logo-vertical.svg b/site/static/svelte-logo-vertical.svg
deleted file mode 100644
index 7e2888234d..0000000000
--- a/site/static/svelte-logo-vertical.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/svelte-logo.svg b/site/static/svelte-logo.svg
deleted file mode 100644
index d8b477bee1..0000000000
--- a/site/static/svelte-logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/svelte-logotype.svg b/site/static/svelte-logotype.svg
deleted file mode 100644
index 1e0aec15ef..0000000000
--- a/site/static/svelte-logotype.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/site/static/tutorial/dark-theme.css b/site/static/tutorial/dark-theme.css
deleted file mode 100644
index e6bfb771f1..0000000000
--- a/site/static/tutorial/dark-theme.css
+++ /dev/null
@@ -1,5 +0,0 @@
-body {
- background-color: #333;
- color: whitesmoke;
- transition: all 0.5s;
-}
\ No newline at end of file
diff --git a/site/static/tutorial/icons/email.svg b/site/static/tutorial/icons/email.svg
deleted file mode 100644
index 70d92ca430..0000000000
--- a/site/static/tutorial/icons/email.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/folder-open.svg b/site/static/tutorial/icons/folder-open.svg
deleted file mode 100644
index b2a58e7432..0000000000
--- a/site/static/tutorial/icons/folder-open.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/folder.svg b/site/static/tutorial/icons/folder.svg
deleted file mode 100644
index 2e1246a7f9..0000000000
--- a/site/static/tutorial/icons/folder.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/gif.svg b/site/static/tutorial/icons/gif.svg
deleted file mode 100644
index 4b28abcecd..0000000000
--- a/site/static/tutorial/icons/gif.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/map-marker.svg b/site/static/tutorial/icons/map-marker.svg
deleted file mode 100644
index 40a702db9d..0000000000
--- a/site/static/tutorial/icons/map-marker.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/md.svg b/site/static/tutorial/icons/md.svg
deleted file mode 100644
index 582204d3b7..0000000000
--- a/site/static/tutorial/icons/md.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/icons/xlsx.svg b/site/static/tutorial/icons/xlsx.svg
deleted file mode 100644
index 1a51093a97..0000000000
--- a/site/static/tutorial/icons/xlsx.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/tutorial/image.gif b/site/static/tutorial/image.gif
deleted file mode 100644
index 3ce9c237d5..0000000000
Binary files a/site/static/tutorial/image.gif and /dev/null differ
diff --git a/site/static/tutorial/kitten.png b/site/static/tutorial/kitten.png
deleted file mode 100644
index f1a0ecca19..0000000000
Binary files a/site/static/tutorial/kitten.png and /dev/null differ
diff --git a/site/static/whos-using-svelte/1password.svg b/site/static/whos-using-svelte/1password.svg
deleted file mode 100644
index ba8a63c014..0000000000
--- a/site/static/whos-using-svelte/1password.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/Schneider_Electric.svg b/site/static/whos-using-svelte/Schneider_Electric.svg
deleted file mode 100644
index c70ca1fceb..0000000000
--- a/site/static/whos-using-svelte/Schneider_Electric.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/alaskaairlines.svg b/site/static/whos-using-svelte/alaskaairlines.svg
deleted file mode 100644
index 15d172c08b..0000000000
--- a/site/static/whos-using-svelte/alaskaairlines.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/avast.svg b/site/static/whos-using-svelte/avast.svg
deleted file mode 100644
index 736eeff3d9..0000000000
--- a/site/static/whos-using-svelte/avast.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/chess.svg b/site/static/whos-using-svelte/chess.svg
deleted file mode 100644
index bd85352a52..0000000000
--- a/site/static/whos-using-svelte/chess.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/fusioncharts.svg b/site/static/whos-using-svelte/fusioncharts.svg
deleted file mode 100644
index 147dd9e026..0000000000
--- a/site/static/whos-using-svelte/fusioncharts.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/godaddy.svg b/site/static/whos-using-svelte/godaddy.svg
deleted file mode 100644
index df39638281..0000000000
--- a/site/static/whos-using-svelte/godaddy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/ibm.svg b/site/static/whos-using-svelte/ibm.svg
deleted file mode 100644
index d8982a47ab..0000000000
--- a/site/static/whos-using-svelte/ibm.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/les-echos.svg b/site/static/whos-using-svelte/les-echos.svg
deleted file mode 100644
index 6ab7eddeef..0000000000
--- a/site/static/whos-using-svelte/les-echos.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/nyt.svg b/site/static/whos-using-svelte/nyt.svg
deleted file mode 100644
index cef76f1afb..0000000000
--- a/site/static/whos-using-svelte/nyt.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/philips.svg b/site/static/whos-using-svelte/philips.svg
deleted file mode 100644
index 5f6c7fa343..0000000000
--- a/site/static/whos-using-svelte/philips.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/rakuten.svg b/site/static/whos-using-svelte/rakuten.svg
deleted file mode 100644
index 67b59c8354..0000000000
--- a/site/static/whos-using-svelte/rakuten.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/razorpay.svg b/site/static/whos-using-svelte/razorpay.svg
deleted file mode 100644
index b430dc5a5b..0000000000
--- a/site/static/whos-using-svelte/razorpay.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/square.svg b/site/static/whos-using-svelte/square.svg
deleted file mode 100644
index d1b0689c61..0000000000
--- a/site/static/whos-using-svelte/square.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/static/whos-using-svelte/transloadit.svg b/site/static/whos-using-svelte/transloadit.svg
deleted file mode 100644
index f3383655bb..0000000000
--- a/site/static/whos-using-svelte/transloadit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/site/svelte.config.js b/site/svelte.config.js
deleted file mode 100644
index 699dd19c68..0000000000
--- a/site/svelte.config.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import adapter from '@sveltejs/adapter-node';
-
-/** @type {import('@sveltejs/kit').Config} */
-export default {
- kit: {
- adapter: adapter(),
- target: '#svelte',
- prerender: {
- enabled: false
- },
- vite: () => ({
- optimizeDeps: {
- include: [
- 'codemirror',
- 'codemirror/mode/javascript/javascript.js',
- 'codemirror/mode/handlebars/handlebars.js',
- 'codemirror/mode/htmlmixed/htmlmixed.js',
- 'codemirror/mode/xml/xml.js',
- 'codemirror/mode/css/css.js',
- 'codemirror/mode/markdown/markdown.js',
- 'codemirror/addon/edit/closebrackets.js',
- 'codemirror/addon/edit/closetag.js',
- 'codemirror/addon/edit/continuelist.js',
- 'codemirror/addon/comment/comment.js',
- 'codemirror/addon/fold/foldcode.js',
- 'codemirror/addon/fold/foldgutter.js',
- 'codemirror/addon/fold/brace-fold.js',
- 'codemirror/addon/fold/xml-fold.js',
- 'codemirror/addon/fold/indent-fold.js',
- 'codemirror/addon/fold/markdown-fold.js',
- 'codemirror/addon/fold/comment-fold.js'
- ]
- }
- })
- }
-};
diff --git a/site/test/utils/slug.js b/site/test/utils/slug.js
deleted file mode 100644
index a25672171e..0000000000
--- a/site/test/utils/slug.js
+++ /dev/null
@@ -1,430 +0,0 @@
-import * as uvu from 'uvu';
-import * as assert from 'uvu/assert';
-import {urlsafeSlugProcessor, unicodeSafeProcessor} from '../../src/utils/slug.js';
-import {SLUG_SEPARATOR as _} from '../../config.js';
-
-function run(name, func) {
- const suite = uvu.suite(name);
- func(suite);
- suite.run();
-}
-
-run('urlsafeSlugProcessor -> ascii', it => {
- it('space separated words', () => {
- assert.equal(
- urlsafeSlugProcessor('Text expressions'),
- `Text${_}expressions`
- );
- });
- it('numbered text', () => {
- assert.equal(
- urlsafeSlugProcessor('1. export creates'),
- `1${_}export${_}creates`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte.VERSION'),
- `svelte${_}VERSION`
- );
- });
- it('text starting with the dollar sign', () => {
- assert.equal(
- urlsafeSlugProcessor('$destroy method'),
- `$destroy${_}method`
- );
- });
- it('numbered text containing the dollar sign', () => {
- assert.equal(
- urlsafeSlugProcessor('1. export $destroy'),
- `1${_}export${_}$destroy`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- urlsafeSlugProcessor('script context=module'),
- `script${_}context${_}module`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte:body'),
- `svelte${_}body`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte/motion'),
- `svelte${_}motion`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte, motion'),
- `svelte${_}motion`
- );
- });
-});
-
-run('urlsafeSlugProcessor - unicode', it => {
- it('should translate symbols to English', () => {
- assert.equal(
- urlsafeSlugProcessor('Ich ♥ Deutsch'),
- `Ich${_}love${_}Deutsch`
- );
- });
- it('should remove emoji', () => {
- assert.equal(
- urlsafeSlugProcessor('Ich 😍 Deutsch'),
- `Ich${_}Deutsch`
- );
- });
-});
-
-run('urlsafeSlugProcessor -> cyrillic', it => {
- it('space separated words', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие и перехват событий'),
- `Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('numbered text', () => {
- assert.equal(
- urlsafeSlugProcessor('1 Всплытие и перехват событий'),
- `1${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- urlsafeSlugProcessor('.Всплытие.и.перехват событий'),
- `Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text starting with the dollar sign', () => {
- assert.equal(
- urlsafeSlugProcessor('$Всплытие $ перехват событий'),
- `$Vsplytie${_}$${_}perehvat${_}sobytij`
- );
- });
- it('text containing the dollar sign', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие$перехват'),
- `Vsplytie$perehvat`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие = перехват=событий'),
- `Vsplytie${_}perehvat${_}sobytij`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие : перехват:событий'),
- `Vsplytie${_}perehvat${_}sobytij`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие / перехват/событий'),
- `Vsplytie${_}perehvat${_}sobytij`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие, перехват'),
- `Vsplytie${_}perehvat`
- );
- });
-});
-
-run('urlsafeSlugProcessor -> ascii + cyrillic', it => {
- it('space separated words', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие и export перехват событий'),
- `Vsplytie${_}i${_}export${_}perehvat${_}sobytij`
- );
- });
- it('ascii word concatenated to a cyrillic word', () => {
- assert.equal(
- urlsafeSlugProcessor('exportВсплытие'),
- 'exportVsplytie'
- );
- });
- it('cyrillic word concatenated to an ascii word', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытиеexport'),
- `Vsplytieexport`
- );
- });
- it('numbered text', () => {
- assert.equal(
- urlsafeSlugProcessor('1 export Всплытие и перехват событий'),
- `1${_}export${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- urlsafeSlugProcessor('.Всплытие.export.и.перехват событий'),
- `Vsplytie${_}export${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text starting with the dollar sign, followed by ascii char', () => {
- assert.equal(
- urlsafeSlugProcessor('$exportВсплытие перехват событий'),
- `$exportVsplytie${_}perehvat${_}sobytij`
- );
- });
- it('text starting with the dollar sign, followed by unicode char', () => {
- assert.equal(
- urlsafeSlugProcessor('$Всплытие export перехват событий'),
- `$Vsplytie${_}export${_}perehvat${_}sobytij`
- );
- });
- it('text containing the dollar sign, followed by ascii char', () => {
- assert.equal(
- urlsafeSlugProcessor('export $destroy a component prop Всплытие и перехват событий'),
- `export${_}$destroy${_}a${_}component${_}prop${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text containing the dollar sign, followed by unicode char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие export $Всплытие a component prop Всплытие и перехват событий'),
- `Vsplytie${_}export${_}$Vsplytie${_}a${_}component${_}prop${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- urlsafeSlugProcessor('script context=module Всплытие=и перехват событий'),
- `script${_}context${_}module${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte:body Всплытие и:перехват событий'),
- `svelte${_}body${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- urlsafeSlugProcessor('svelte/motion Всплытие и / перехват/событий'),
- `svelte${_}motion${_}Vsplytie${_}i${_}perehvat${_}sobytij`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- urlsafeSlugProcessor('Всплытие, export'),
- `Vsplytie${_}export`
- );
- });
-});
-
-run('unicodeSafeProcessor (preserve unicode) -> ascii', it => {
- it('space separated words', () => {
- assert.equal(
- unicodeSafeProcessor('Text expressions'),
- `Text${_}expressions`
- );
- });
- it('numbered text', () => {
- assert.equal(
- unicodeSafeProcessor('1. export creates'),
- `1${_}export${_}creates`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- unicodeSafeProcessor('svelte.VERSION'),
- `svelte${_}VERSION`
- );
- });
- it('text starting with the dollar sign', () => {
- assert.equal(
- unicodeSafeProcessor('$destroy method'),
- `$destroy${_}method`
- );
- });
- it('numbered text containing the dollar sign', () => {
- assert.equal(
- unicodeSafeProcessor('1. export $destroy'),
- `1${_}export${_}$destroy`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- unicodeSafeProcessor('script context=module'),
- `script${_}context${_}module`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- unicodeSafeProcessor('svelte:body'),
- `svelte${_}body`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- unicodeSafeProcessor('svelte/motion'),
- `svelte${_}motion`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- unicodeSafeProcessor('svelte, motion'),
- `svelte${_}motion`
- );
- });
-});
-
-run('unicodeSafeProcessor (preserve unicode) -> unicode', it => {
- it('should preserve symbols', () => {
- assert.equal(
- unicodeSafeProcessor('Ich ♥ Deutsch'),
- `Ich${_}love${_}Deutsch`
- );
- });
- it('should remove emoji', () => {
- assert.equal(
- unicodeSafeProcessor('Ich 😍 Deutsch'),
- `Ich${_}Deutsch`
- );
- });
-});
-
-run('unicodeSafeProcessor (preserve unicode) -> cyrillic', it => {
- it('space separated words', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие и перехват событий'),
- `Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('numbered text', () => {
- assert.equal(
- unicodeSafeProcessor('1 Всплытие и перехват событий'),
- `1${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- unicodeSafeProcessor('.Всплытие.и.перехват событий'),
- `Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text starting with the dollar sign', () => {
- assert.equal(
- unicodeSafeProcessor('$Всплытие $ перехват событий'),
- `$${_}Всплытие${_}$${_}перехват${_}событий`
- );
- });
- it('text containing the dollar sign', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие$перехват'),
- `Всплытие${_}$${_}перехват`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие = перехват=событий'),
- `Всплытие${_}перехват${_}событий`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие : перехват:событий'),
- `Всплытие${_}перехват${_}событий`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие / перехват/событий'),
- `Всплытие${_}перехват${_}событий`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие, перехват'),
- `Всплытие${_}перехват`
- );
- });
-});
-
-run('unicodeSafeProcessor (preserve unicode) -> ascii + cyrillic', it => {
- it('space separated words', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие и export перехват событий'),
- `Всплытие${_}и${_}export${_}перехват${_}событий`
- );
- });
- it('ascii word concatenated to a cyrillic word', () => {
- assert.equal(
- unicodeSafeProcessor('exportВсплытие'),
- `export${_}Всплытие`
- );
- });
- it('cyrillic word concatenated to an ascii word', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытиеexport'),
- `Всплытие${_}export`
- );
- });
- it('numbered text', () => {
- assert.equal(
- unicodeSafeProcessor('1 export Всплытие и перехват событий'),
- `1${_}export${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('punctuated text', () => {
- assert.equal(
- unicodeSafeProcessor('.Всплытие.export.и.перехват событий'),
- `Всплытие${_}export${_}и${_}перехват${_}событий`
- );
- });
- it('text starting with the dollar sign, followed by ascii char', () => {
- assert.equal(
- unicodeSafeProcessor('$exportВсплытие перехват событий'),
- `$export${_}Всплытие${_}перехват${_}событий`
- );
- });
- it('text starting with the dollar sign, followed by unicode char', () => {
- assert.equal(
- unicodeSafeProcessor('$Всплытие export перехват событий'),
- `$${_}Всплытие${_}export${_}перехват${_}событий`
- );
- });
- it('text containing the dollar sign, followed by ascii char', () => {
- assert.equal(
- unicodeSafeProcessor('export $destroy a component prop Всплытие и перехват событий'),
- `export${_}$destroy${_}a${_}component${_}prop${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text containing the dollar sign, followed by unicode char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие export $Всплытие a component prop Всплытие и перехват событий'),
- `Всплытие${_}export${_}$${_}Всплытие${_}a${_}component${_}prop${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text containing the equal char', () => {
- assert.equal(
- unicodeSafeProcessor('script context=module Всплытие=и перехват событий'),
- `script${_}context${_}module${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text containing the colon char', () => {
- assert.equal(
- unicodeSafeProcessor('svelte:body Всплытие и:перехват событий'),
- `svelte${_}body${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text containing the slash char', () => {
- assert.equal(
- unicodeSafeProcessor('svelte/motion Всплытие и / перехват/событий'),
- `svelte${_}motion${_}Всплытие${_}и${_}перехват${_}событий`
- );
- });
- it('text containing the comma char', () => {
- assert.equal(
- unicodeSafeProcessor('Всплытие, export'),
- `Всплытие${_}export`
- );
- });
-});
diff --git a/src/compiler/compile/Component.ts b/src/compiler/compile/Component.ts
index 4d4cf909fd..0347a28743 100644
--- a/src/compiler/compile/Component.ts
+++ b/src/compiler/compile/Component.ts
@@ -24,7 +24,7 @@ import TemplateScope from './nodes/shared/TemplateScope';
import fuzzymatch from '../utils/fuzzymatch';
import get_object from './utils/get_object';
import Slot from './nodes/Slot';
-import { Node, ImportDeclaration, ExportNamedDeclaration, Identifier, ExpressionStatement, AssignmentExpression, Literal, Property, RestElement, ExportDefaultDeclaration, ExportAllDeclaration } from 'estree';
+import { Node, ImportDeclaration, ExportNamedDeclaration, Identifier, ExpressionStatement, AssignmentExpression, Literal, Property, RestElement, ExportDefaultDeclaration, ExportAllDeclaration, FunctionDeclaration, FunctionExpression } from 'estree';
import add_to_set from './utils/add_to_set';
import check_graph_for_cycles from './utils/check_graph_for_cycles';
import { print, b } from 'code-red';
@@ -766,12 +766,13 @@ export default class Component {
};
let scope_updated = false;
- let generator_count = 0;
+ const current_function_stack = [];
+ let current_function: FunctionDeclaration | FunctionExpression = null;
walk(content, {
enter(node: Node, parent: Node, prop, index) {
- if ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression') && node.generator === true) {
- generator_count++;
+ if ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {
+ current_function_stack.push(current_function = node);
}
if (map.has(node)) {
@@ -800,12 +801,13 @@ export default class Component {
},
leave(node: Node) {
- if ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression') && node.generator === true) {
- generator_count--;
+ if ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {
+ current_function_stack.pop();
+ current_function = current_function_stack[current_function_stack.length - 1];
}
// do it on leave, to prevent infinite loop
- if (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0 && generator_count <= 0) {
+ if (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0 && (!current_function || (!current_function.generator && !current_function.async))) {
const to_replace_for_loop_protect = component.loop_protect(node, scope, component.compile_options.loopGuardTimeout);
if (to_replace_for_loop_protect) {
this.replace(to_replace_for_loop_protect);
diff --git a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
index 3f57d004be..7b6aed0d5a 100644
--- a/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
+++ b/src/compiler/compile/render_dom/wrappers/Element/Attribute.ts
@@ -10,6 +10,21 @@ import handle_select_value_binding from './handle_select_value_binding';
import { Identifier, Node } from 'estree';
import { namespaces } from '../../../../utils/namespaces';
+const non_textlike_input_types = new Set([
+ 'button',
+ 'checkbox',
+ 'color',
+ 'date',
+ 'datetime-local',
+ 'file',
+ 'hidden',
+ 'image',
+ 'radio',
+ 'range',
+ 'reset',
+ 'submit'
+]);
+
export class BaseAttributeWrapper {
node: Attribute;
parent: ElementWrapper;
@@ -203,8 +218,7 @@ export default class AttributeWrapper extends BaseAttributeWrapper {
if (this.is_input_value) {
const type = element.node.get_static_attribute_value('type');
-
- if (type === null || type === '' || type === 'text' || type === 'email' || type === 'password') {
+ if (type !== true && !non_textlike_input_types.has(type)) {
condition = x`${condition} && ${element.var}.${property_name} !== ${should_cache ? last : value}`;
}
}
diff --git a/src/compiler/utils/names.ts b/src/compiler/utils/names.ts
index 8df2a7247b..27acc8eb78 100644
--- a/src/compiler/utils/names.ts
+++ b/src/compiler/utils/names.ts
@@ -60,6 +60,7 @@ export const globals = new Set([
'undefined',
'URIError',
'URL',
+ 'URLSearchParams',
'window'
]);
diff --git a/src/runtime/internal/scheduler.ts b/src/runtime/internal/scheduler.ts
index 568739e4f8..c0b8e57b08 100644
--- a/src/runtime/internal/scheduler.ts
+++ b/src/runtime/internal/scheduler.ts
@@ -1,5 +1,5 @@
import { run_all } from './utils';
-import { set_current_component } from './lifecycle';
+import { current_component, set_current_component } from './lifecycle';
export const dirty_components = [];
export const intros = { enabled: false };
@@ -31,23 +31,42 @@ export function add_flush_callback(fn) {
flush_callbacks.push(fn);
}
-let flushing = false;
+// flush() calls callbacks in this order:
+// 1. All beforeUpdate callbacks, in order: parents before children
+// 2. All bind:this callbacks, in reverse order: children before parents.
+// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT
+// for afterUpdates called during the initial onMount, which are called in
+// reverse order: children before parents.
+// Since callbacks might update component values, which could trigger another
+// call to flush(), the following steps guard against this:
+// 1. During beforeUpdate, any updated components will be added to the
+// dirty_components array and will cause a reentrant call to flush(). Because
+// the flush index is kept outside the function, the reentrant call will pick
+// up where the earlier call left off and go through all dirty components. The
+// current_component value is saved and restored so that the reentrant call will
+// not interfere with the "parent" flush() call.
+// 2. bind:this callbacks cannot trigger new flush() calls.
+// 3. During afterUpdate, any updated components will NOT have their afterUpdate
+// callback called a second time; the seen_callbacks set, outside the flush()
+// function, guarantees this behavior.
const seen_callbacks = new Set();
+let flushidx = 0; // Do *not* move this inside the flush() function
export function flush() {
- if (flushing) return;
- flushing = true;
+ const saved_component = current_component;
do {
// first, call beforeUpdate functions
// and update components
- for (let i = 0; i < dirty_components.length; i += 1) {
- const component = dirty_components[i];
+ while (flushidx < dirty_components.length) {
+ const component = dirty_components[flushidx];
+ flushidx++;
set_current_component(component);
update(component.$$);
}
set_current_component(null);
dirty_components.length = 0;
+ flushidx = 0;
while (binding_callbacks.length) binding_callbacks.pop()();
@@ -73,8 +92,8 @@ export function flush() {
}
update_scheduled = false;
- flushing = false;
seen_callbacks.clear();
+ set_current_component(saved_component);
}
function update($$) {
diff --git a/test/js/samples/input-value/expected.js b/test/js/samples/input-value/expected.js
index 2491a24256..2f951c9ae1 100644
--- a/test/js/samples/input-value/expected.js
+++ b/test/js/samples/input-value/expected.js
@@ -2,12 +2,14 @@
import {
SvelteComponent,
append,
+ attr,
detach,
element,
init,
insert,
listen,
noop,
+ run_all,
safe_not_equal,
set_data,
space,
@@ -15,50 +17,388 @@ import {
} from "svelte/internal";
function create_fragment(ctx) {
- let input;
+ let input0;
let t0;
- let h1;
+ let input1;
let t1;
+ let input2;
let t2;
+ let input3;
+ let t3;
+ let input4;
+ let t4;
+ let input5;
+ let t5;
+ let input6;
+ let t6;
+ let input7;
+ let t7;
+ let input8;
+ let t8;
+ let input9;
+ let t9;
+ let input10;
+ let t10;
+ let input11;
+ let t11;
+ let input12;
+ let t12;
+ let input13;
+ let t13;
+ let input14;
+ let t14;
+ let input15;
+ let t15;
+ let input16;
+ let t16;
+ let input17;
+ let t17;
+ let input18;
+ let t18;
+ let input19;
+ let t19;
+ let input20;
+ let t20;
+ let input21;
+ let t21;
+ let input22;
+ let t22;
+ let h1;
+ let t23;
+ let t24;
let mounted;
let dispose;
return {
c() {
- input = element("input");
+ input0 = element("input");
t0 = space();
+ input1 = element("input");
+ t1 = space();
+ input2 = element("input");
+ t2 = space();
+ input3 = element("input");
+ t3 = space();
+ input4 = element("input");
+ t4 = space();
+ input5 = element("input");
+ t5 = space();
+ input6 = element("input");
+ t6 = space();
+ input7 = element("input");
+ t7 = space();
+ input8 = element("input");
+ t8 = space();
+ input9 = element("input");
+ t9 = space();
+ input10 = element("input");
+ t10 = space();
+ input11 = element("input");
+ t11 = space();
+ input12 = element("input");
+ t12 = space();
+ input13 = element("input");
+ t13 = space();
+ input14 = element("input");
+ t14 = space();
+ input15 = element("input");
+ t15 = space();
+ input16 = element("input");
+ t16 = space();
+ input17 = element("input");
+ t17 = space();
+ input18 = element("input");
+ t18 = space();
+ input19 = element("input");
+ t19 = space();
+ input20 = element("input");
+ t20 = space();
+ input21 = element("input");
+ t21 = space();
+ input22 = element("input");
+ t22 = space();
h1 = element("h1");
- t1 = text(/*name*/ ctx[0]);
- t2 = text("!");
- input.value = /*name*/ ctx[0];
+ t23 = text(/*name*/ ctx[0]);
+ t24 = text("!");
+ input0.value = /*name*/ ctx[0];
+ attr(input1, "type", "email");
+ input1.value = /*name*/ ctx[0];
+ attr(input2, "type", "month");
+ input2.value = /*name*/ ctx[0];
+ attr(input3, "type", "number");
+ input3.value = /*name*/ ctx[0];
+ attr(input4, "type", "password");
+ input4.value = /*name*/ ctx[0];
+ attr(input5, "type", "search");
+ input5.value = /*name*/ ctx[0];
+ attr(input6, "type", "tel");
+ input6.value = /*name*/ ctx[0];
+ attr(input7, "type", "text");
+ input7.value = /*name*/ ctx[0];
+ attr(input8, "type", "url");
+ input8.value = /*name*/ ctx[0];
+ attr(input9, "type", "week");
+ input9.value = /*name*/ ctx[0];
+ attr(input10, "type", "button");
+ input10.value = /*name*/ ctx[0];
+ attr(input11, "type", "checkbox");
+ input11.value = /*name*/ ctx[0];
+ attr(input12, "type", "color");
+ input12.value = /*name*/ ctx[0];
+ attr(input13, "type", "date");
+ input13.value = /*name*/ ctx[0];
+ attr(input14, "type", "datetime-local");
+ input14.value = /*name*/ ctx[0];
+ attr(input15, "type", "file");
+ input15.value = /*name*/ ctx[0];
+ attr(input16, "type", "hidden");
+ input16.value = /*name*/ ctx[0];
+ attr(input17, "type", "image");
+ input17.value = /*name*/ ctx[0];
+ attr(input17, "alt", /*name*/ ctx[0]);
+ attr(input18, "type", "radio");
+ input18.value = /*name*/ ctx[0];
+ attr(input19, "type", "range");
+ input19.value = /*name*/ ctx[0];
+ attr(input20, "type", "reset");
+ input20.value = /*name*/ ctx[0];
+ attr(input21, "type", "submit");
+ input21.value = /*name*/ ctx[0];
+ attr(input22, "type", "time");
+ input22.value = /*name*/ ctx[0];
},
m(target, anchor) {
- insert(target, input, anchor);
+ insert(target, input0, anchor);
insert(target, t0, anchor);
+ insert(target, input1, anchor);
+ insert(target, t1, anchor);
+ insert(target, input2, anchor);
+ insert(target, t2, anchor);
+ insert(target, input3, anchor);
+ insert(target, t3, anchor);
+ insert(target, input4, anchor);
+ insert(target, t4, anchor);
+ insert(target, input5, anchor);
+ insert(target, t5, anchor);
+ insert(target, input6, anchor);
+ insert(target, t6, anchor);
+ insert(target, input7, anchor);
+ insert(target, t7, anchor);
+ insert(target, input8, anchor);
+ insert(target, t8, anchor);
+ insert(target, input9, anchor);
+ insert(target, t9, anchor);
+ insert(target, input10, anchor);
+ insert(target, t10, anchor);
+ insert(target, input11, anchor);
+ insert(target, t11, anchor);
+ insert(target, input12, anchor);
+ insert(target, t12, anchor);
+ insert(target, input13, anchor);
+ insert(target, t13, anchor);
+ insert(target, input14, anchor);
+ insert(target, t14, anchor);
+ insert(target, input15, anchor);
+ insert(target, t15, anchor);
+ insert(target, input16, anchor);
+ insert(target, t16, anchor);
+ insert(target, input17, anchor);
+ insert(target, t17, anchor);
+ insert(target, input18, anchor);
+ insert(target, t18, anchor);
+ insert(target, input19, anchor);
+ insert(target, t19, anchor);
+ insert(target, input20, anchor);
+ insert(target, t20, anchor);
+ insert(target, input21, anchor);
+ insert(target, t21, anchor);
+ insert(target, input22, anchor);
+ insert(target, t22, anchor);
insert(target, h1, anchor);
- append(h1, t1);
- append(h1, t2);
+ append(h1, t23);
+ append(h1, t24);
if (!mounted) {
- dispose = listen(input, "input", /*onInput*/ ctx[1]);
+ dispose = [
+ listen(input0, "input", /*onInput*/ ctx[1]),
+ listen(input1, "input", /*onInput*/ ctx[1]),
+ listen(input2, "input", /*onInput*/ ctx[1]),
+ listen(input3, "input", /*onInput*/ ctx[1]),
+ listen(input4, "input", /*onInput*/ ctx[1]),
+ listen(input5, "input", /*onInput*/ ctx[1]),
+ listen(input6, "input", /*onInput*/ ctx[1]),
+ listen(input7, "input", /*onInput*/ ctx[1]),
+ listen(input8, "input", /*onInput*/ ctx[1]),
+ listen(input9, "input", /*onInput*/ ctx[1]),
+ listen(input10, "input", /*onInput*/ ctx[1]),
+ listen(input11, "input", /*onInput*/ ctx[1]),
+ listen(input12, "input", /*onInput*/ ctx[1]),
+ listen(input13, "input", /*onInput*/ ctx[1]),
+ listen(input14, "input", /*onInput*/ ctx[1]),
+ listen(input15, "input", /*onInput*/ ctx[1]),
+ listen(input16, "input", /*onInput*/ ctx[1]),
+ listen(input17, "input", /*onInput*/ ctx[1]),
+ listen(input18, "input", /*onInput*/ ctx[1]),
+ listen(input19, "input", /*onInput*/ ctx[1]),
+ listen(input20, "input", /*onInput*/ ctx[1]),
+ listen(input21, "input", /*onInput*/ ctx[1]),
+ listen(input22, "input", /*onInput*/ ctx[1])
+ ];
+
mounted = true;
}
},
p(ctx, [dirty]) {
- if (dirty & /*name*/ 1 && input.value !== /*name*/ ctx[0]) {
- input.value = /*name*/ ctx[0];
+ if (dirty & /*name*/ 1 && input0.value !== /*name*/ ctx[0]) {
+ input0.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input1.value !== /*name*/ ctx[0]) {
+ input1.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input2.value !== /*name*/ ctx[0]) {
+ input2.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input3.value !== /*name*/ ctx[0]) {
+ input3.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input4.value !== /*name*/ ctx[0]) {
+ input4.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input5.value !== /*name*/ ctx[0]) {
+ input5.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input6.value !== /*name*/ ctx[0]) {
+ input6.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input7.value !== /*name*/ ctx[0]) {
+ input7.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input8.value !== /*name*/ ctx[0]) {
+ input8.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input9.value !== /*name*/ ctx[0]) {
+ input9.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input10.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input11.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input12.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input13.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input14.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input15.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input16.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input17.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ attr(input17, "alt", /*name*/ ctx[0]);
+ }
+
+ if (dirty & /*name*/ 1) {
+ input18.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input19.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input20.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1) {
+ input21.value = /*name*/ ctx[0];
+ }
+
+ if (dirty & /*name*/ 1 && input22.value !== /*name*/ ctx[0]) {
+ input22.value = /*name*/ ctx[0];
}
- if (dirty & /*name*/ 1) set_data(t1, /*name*/ ctx[0]);
+ if (dirty & /*name*/ 1) set_data(t23, /*name*/ ctx[0]);
},
i: noop,
o: noop,
d(detaching) {
- if (detaching) detach(input);
+ if (detaching) detach(input0);
if (detaching) detach(t0);
+ if (detaching) detach(input1);
+ if (detaching) detach(t1);
+ if (detaching) detach(input2);
+ if (detaching) detach(t2);
+ if (detaching) detach(input3);
+ if (detaching) detach(t3);
+ if (detaching) detach(input4);
+ if (detaching) detach(t4);
+ if (detaching) detach(input5);
+ if (detaching) detach(t5);
+ if (detaching) detach(input6);
+ if (detaching) detach(t6);
+ if (detaching) detach(input7);
+ if (detaching) detach(t7);
+ if (detaching) detach(input8);
+ if (detaching) detach(t8);
+ if (detaching) detach(input9);
+ if (detaching) detach(t9);
+ if (detaching) detach(input10);
+ if (detaching) detach(t10);
+ if (detaching) detach(input11);
+ if (detaching) detach(t11);
+ if (detaching) detach(input12);
+ if (detaching) detach(t12);
+ if (detaching) detach(input13);
+ if (detaching) detach(t13);
+ if (detaching) detach(input14);
+ if (detaching) detach(t14);
+ if (detaching) detach(input15);
+ if (detaching) detach(t15);
+ if (detaching) detach(input16);
+ if (detaching) detach(t16);
+ if (detaching) detach(input17);
+ if (detaching) detach(t17);
+ if (detaching) detach(input18);
+ if (detaching) detach(t18);
+ if (detaching) detach(input19);
+ if (detaching) detach(t19);
+ if (detaching) detach(input20);
+ if (detaching) detach(t20);
+ if (detaching) detach(input21);
+ if (detaching) detach(t21);
+ if (detaching) detach(input22);
+ if (detaching) detach(t22);
if (detaching) detach(h1);
mounted = false;
- dispose();
+ run_all(dispose);
}
};
}
@@ -80,4 +420,4 @@ class Component extends SvelteComponent {
}
}
-export default Component;
\ No newline at end of file
+export default Component;
diff --git a/test/js/samples/input-value/input.svelte b/test/js/samples/input-value/input.svelte
index 476458a195..ee1d9e3de7 100644
--- a/test/js/samples/input-value/input.svelte
+++ b/test/js/samples/input-value/input.svelte
@@ -1,11 +1,33 @@
+
+
+
+
+
+
+
+
+
-{name}!
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+{name}!
diff --git a/test/runtime/samples/component-binding-onMount/Mount.svelte b/test/runtime/samples/component-binding-onMount/Mount.svelte
new file mode 100644
index 0000000000..ce3b0c48f8
--- /dev/null
+++ b/test/runtime/samples/component-binding-onMount/Mount.svelte
@@ -0,0 +1,15 @@
+
+
+
+
+ Bound? {bound}
+
diff --git a/test/runtime/samples/component-binding-onMount/_config.js b/test/runtime/samples/component-binding-onMount/_config.js
new file mode 100644
index 0000000000..4ae78b588a
--- /dev/null
+++ b/test/runtime/samples/component-binding-onMount/_config.js
@@ -0,0 +1,11 @@
+export default {
+ async test({ assert, target }) {
+ assert.htmlEqual(target.innerHTML, `
+
+ `);
+ }
+};
diff --git a/test/runtime/samples/component-binding-onMount/main.svelte b/test/runtime/samples/component-binding-onMount/main.svelte
new file mode 100644
index 0000000000..971b13c1ce
--- /dev/null
+++ b/test/runtime/samples/component-binding-onMount/main.svelte
@@ -0,0 +1,13 @@
+
+
+
diff --git a/test/runtime/samples/loop-protect-async-opt-out/_config.js b/test/runtime/samples/loop-protect-async-opt-out/_config.js
new file mode 100644
index 0000000000..b1855c83eb
--- /dev/null
+++ b/test/runtime/samples/loop-protect-async-opt-out/_config.js
@@ -0,0 +1,9 @@
+export default {
+ compileOptions: {
+ dev: true,
+ loopGuardTimeout: 1
+ },
+ async test({ component }) {
+ await component.run_async_function();
+ }
+};
diff --git a/test/runtime/samples/loop-protect-async-opt-out/main.svelte b/test/runtime/samples/loop-protect-async-opt-out/main.svelte
new file mode 100644
index 0000000000..bc711ac5a3
--- /dev/null
+++ b/test/runtime/samples/loop-protect-async-opt-out/main.svelte
@@ -0,0 +1,12 @@
+
diff --git a/test/runtime/samples/loop-protect-generator-opt-out/_config.js b/test/runtime/samples/loop-protect-generator-opt-out/_config.js
index 0fe83a36db..2680ecfdfb 100644
--- a/test/runtime/samples/loop-protect-generator-opt-out/_config.js
+++ b/test/runtime/samples/loop-protect-generator-opt-out/_config.js
@@ -2,5 +2,8 @@ export default {
compileOptions: {
dev: true,
loopGuardTimeout: 1
+ },
+ async test({ component }) {
+ await component.run_generator();
}
};
diff --git a/test/runtime/samples/loop-protect-generator-opt-out/main.svelte b/test/runtime/samples/loop-protect-generator-opt-out/main.svelte
index a7aa790681..514089435d 100644
--- a/test/runtime/samples/loop-protect-generator-opt-out/main.svelte
+++ b/test/runtime/samples/loop-protect-generator-opt-out/main.svelte
@@ -1,10 +1,12 @@