diff --git a/.gitignore b/.gitignore index 32582b277..228136cbc 100644 --- a/.gitignore +++ b/.gitignore @@ -23,14 +23,3 @@ node_modules _actual*.* _output /types - -/site/.svelte-kit/ -/site/build/ -/site/.env -/site/static/svelte-app.json -/site/static/contributors.jpg -/site/static/donors.jpg -/site/static/workers/ -/site/scripts/svelte-app/ -/site/src/routes/_contributors.js -/site/src/routes/_donors.js diff --git a/site/.dockerignore b/site/.dockerignore deleted file mode 100644 index c8dd6b530..000000000 --- a/site/.dockerignore +++ /dev/null @@ -1,7 +0,0 @@ -/* -!/Dockerfile -!/package.json -!/package-lock.json -!/build -!/static -!/content diff --git a/site/.env.example b/site/.env.example deleted file mode 100644 index ce4a90665..000000000 --- a/site/.env.example +++ /dev/null @@ -1,13 +0,0 @@ -NODE_ENV= - -PORT=3000 -BASEURL=http://localhost:3000 -GITHUB_CLIENT_ID= -GITHUB_CLIENT_SECRET= -VITE_MAPBOX_ACCESS_TOKEN= - -PGHOST=localhost -PGPORT=5432 -PGUSER=username -PGPASSWORD=password -PGDATABASE=database_name diff --git a/site/.eslintrc.cjs b/site/.eslintrc.cjs deleted file mode 100644 index 255b8af9c..000000000 --- a/site/.eslintrc.cjs +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = { - root: true, - rules: { - indent: [2, 'tab', { SwitchCase: 1 }], - semi: [2, 'always'], - 'keyword-spacing': [2, { before: true, after: true }], - 'space-before-blocks': [2, 'always'], - 'no-mixed-spaces-and-tabs': [2, 'smart-tabs'], - 'no-cond-assign': 0, - 'no-unused-vars': 2, - 'object-shorthand': [2, 'always'], - 'no-const-assign': 2, - 'no-class-assign': 2, - 'no-this-before-super': 2, - 'no-var': 2, - 'no-unreachable': 2, - 'valid-typeof': 2, - 'quote-props': [2, 'as-needed'], - 'one-var': [2, 'never'], - 'prefer-arrow-callback': 2, - 'prefer-const': [2, { destructuring: 'all' }], - 'arrow-spacing': 2, - 'no-inner-declarations': 0, - 'require-atomic-updates': 0 - }, - env: { - es6: true, - browser: true, - node: true, - mocha: true - }, - extends: [ - 'eslint:recommended', - 'plugin:import/errors', - 'plugin:import/warnings' - ], - plugins: ['svelte3'], - overrides: [ - { - files: ['*.svelte'], - processor: 'svelte3/svelte3' - } - ], - parserOptions: { - ecmaVersion: 9, - sourceType: 'module' - }, - settings: { - 'import/core-modules': ['svelte'], - 'svelte3/compiler': (() => { - try { - return require('svelte/compiler'); - } catch (e) { - return null; - } - })() - } -}; diff --git a/site/.gcloudignore b/site/.gcloudignore deleted file mode 100644 index c46042a27..000000000 --- a/site/.gcloudignore +++ /dev/null @@ -1 +0,0 @@ -#!include:.dockerignore diff --git a/site/Dockerfile b/site/Dockerfile deleted file mode 100644 index 493cfe3f9..000000000 --- a/site/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -# IMPORTANT: Don't use this Dockerfile in your own projects without also looking at the .dockerignore file. -# Without an appropriate .dockerignore, this Dockerfile will copy a large number of unneeded files into your image. - -FROM mhart/alpine-node:14 - -# install dependencies -WORKDIR /app -COPY package.json package-lock.json ./ -RUN npm ci --production - -### -# Only copy over the Node pieces we need -# ~> Saves 35MB -### -FROM mhart/alpine-node:slim-14 - -WORKDIR /app -COPY --from=0 /app . -COPY . . - -EXPOSE 3000 -CMD ["node", "build"] diff --git a/site/Makefile b/site/Makefile deleted file mode 100644 index ebf7223f4..000000000 --- a/site/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -HASH := `git rev-parse --short HEAD` - -SERVICE := svelte-website -PROJECT := svelte-dev - -IMAGE := gcr.io/$(PROJECT)/$(SERVICE):$(HASH) - -sveltekit: - @echo "\n~> updating template & contributors list" - @npm run update - @echo "\n~> building SvelteKit app" - @npm run build - - -docker: - @echo "\n~> building docker image" - @gcloud builds submit --project $(PROJECT) -t $(IMAGE) - - -deploy: sveltekit docker - @echo "\n~> deploying $(SERVICE) to Cloud Run servers" - @gcloud run deploy $(SERVICE) --project $(PROJECT) --allow-unauthenticated --platform managed --region us-central1 --image $(IMAGE) --memory=512Mi diff --git a/site/README.md b/site/README.md deleted file mode 100644 index 4c1d462a9..000000000 --- a/site/README.md +++ /dev/null @@ -1,84 +0,0 @@ -## Running locally - -Set up the site sub-project: - -```bash -git clone https://github.com/sveltejs/svelte.git -cd site -npm ci -npm run dev -``` - -and navigate to [localhost:3000](http://localhost:3000). - -The first time you run the site locally, it will update the list of Contributors and REPL dependencies. After this it won't run again unless you force it by running: - -```bash -npm run update -``` - -## Running using the local copy of Svelte - -By default, the REPL will fetch the most recent version of Svelte from https://unpkg.com/svelte. When running the site locally, you can also use your local copy of Svelte. - -To produce the proper browser-compatible UMD build of the compiler, you will need to run `npm run build` (or `npm run dev`) in the root of this repository with the `PUBLISH` environment variable set to any non-empty string: - -```bash -git clone https://github.com/sveltejs/svelte.git -cd svelte -npm ci -PUBLISH=1 npm run build -cd site -npm ci -npm run dev -``` - -Then visit the REPL at [localhost:3000/repl?version=local](http://localhost:3000/repl?version=local). Please note that the local REPL only works with `npm run dev` and not when building the site for production usage. - -## REPL GitHub integration - -In order for the REPL's GitHub integration to work properly when running locally, you will need to: -- [create a GitHub OAuth app](https://github.com/settings/developers): - - set `Authorization callback URL` to `http://localhost:3000/auth/callback`; - - set `Application name` as you like, and `Homepage URL` as `http://localhost:3000/`; - - create the app and take note of `Client ID` and `Client Secret` -- in this repo, create `site/.env` containing: - ``` - GITHUB_CLIENT_ID=[your app's Client ID] - GITHUB_CLIENT_SECRET=[your app's Client Secret] - BASEURL=http://localhost:3000 - ``` - -## Building the site - -To build the website, run `npm run build`. The output can be found in `build`. - -## Testing - -Tests can be run using `npm run test`. - - -## Linking `@sveltejs/site-kit` and `@sveltejs/svelte-repl` - -This site depends on `@sveltejs/site-kit` (a collection of styles, components and icons used in common by *.svelte.dev websites), and `@sveltejs/svelte-repl`. - -In order to work on features that depend on those packages, you need to [link](https://docs.npmjs.com/cli/link) their repositories: - -- `cd ` -- `git clone https://github.com/sveltejs/site-kit` -- `git clone https://github.com/sveltejs/svelte-repl` -- `cd /site-kit` -- `npm link` -- `cd /svelte-repl` -- `npm link` -- `cd /site` -- `npm link @sveltejs/site-kit` -- `npm link @sveltejs/svelte-repl` - - - -## Translating the API docs - -Anchors are automatically generated using headings in the documentation and by default (for the english language) they are latinised to make sure the URL is always conforming to RFC3986. - -If we need to translate the API documentation to a language using unicode chars, we can setup this app to export the correct anchors by setting up `SLUG_PRESERVE_UNICODE` to `true` in `config.js`. diff --git a/site/config.js b/site/config.js deleted file mode 100644 index 097bd173a..000000000 --- a/site/config.js +++ /dev/null @@ -1,2 +0,0 @@ -export const SLUG_PRESERVE_UNICODE = false; -export const SLUG_SEPARATOR = '_'; diff --git a/site/docker-compose.yml b/site/docker-compose.yml deleted file mode 100644 index 910119796..000000000 --- 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 76dde745a..000000000 --- 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 22293f573..000000000 --- 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 c24fc6911..000000000 --- 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 e0594e86e..000000000 --- a/site/package-lock.json +++ /dev/null @@ -1,3976 +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": "^4.0.6", - "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.1", - "@sveltejs/svelte-repl": "^0.4.1", - "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/@rollup/pluginutils/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/@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.55", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.55.tgz", - "integrity": "sha512-Kmh8lx8kIY7W6rkqjC78y4dQTyjiAHD9D1WfmUTtYuDW1jAIG+YbZmPC9127kH5KOSGK4+tI8mpReDVB1lgf8g==", - "dev": true, - "dependencies": { - "esbuild": "^0.13.4", - "tiny-glob": "^0.2.9" - } - }, - "node_modules/@sveltejs/kit": { - "version": "1.0.0-next.201", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.201.tgz", - "integrity": "sha512-WcYexOEPWgDWOk0oOteTU5QwWykdIcOFJig+akeHqwE/jVtPURLZFtTNx0ymUWXN4S+dUXf60KF6HEMv74FHpA==", - "dev": true, - "dependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.30", - "cheap-watch": "^1.0.4", - "sade": "^1.7.4", - "vite": "^2.6.12" - }, - "bin": { - "svelte-kit": "svelte-kit.js" - }, - "engines": { - "node": ">=14.13" - }, - "peerDependencies": { - "svelte": "^3.44.0" - } - }, - "node_modules/@sveltejs/site-kit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@sveltejs/site-kit/-/site-kit-1.4.1.tgz", - "integrity": "sha512-K2HplwTqWS5Jw38+GB1LwnojVfTJPxZ3d9FtjbjXoaJ8pCHTBJ+khAV8zeWLlOWkYpJuGD04EZTS87sW7mfVDA==", - "dev": true, - "dependencies": { - "@sindresorhus/slugify": "^0.9.1", - "golden-fleece": "^1.0.9" - } - }, - "node_modules/@sveltejs/svelte-repl": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sveltejs/svelte-repl/-/svelte-repl-0.4.1.tgz", - "integrity": "sha512-NsnWS3emGPKW8oZAekf9DcQlm8RoAivaolxpNT1DvEAwpAqPPaFWtHC5JccqzhHKJGVMmBHq92AcYV1ULCsdhg==", - "dev": true, - "dependencies": { - "codemirror": "^5.49.2", - "estree-walker": "^0.9.0", - "marked": "^4.0.0", - "sourcemap-codec": "^1.4.6", - "svelte-json-tree": "0.0.5", - "yootils": "0.0.16" - } - }, - "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.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "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/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/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/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/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/codemirror": { - "version": "5.64.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.64.0.tgz", - "integrity": "sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg==", - "dev": true - }, - "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/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/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.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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/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/esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", - "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/esbuild-darwin-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", - "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", - "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", - "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-linux-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", - "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", - "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", - "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", - "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", - "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", - "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", - "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ] - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", - "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/esbuild-sunos-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", - "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ] - }, - "node_modules/esbuild-windows-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", - "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", - "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", - "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", - "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": "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/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.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/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/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": "4.0.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.6.tgz", - "integrity": "sha512-+H0bTf8DM8zLuFBUm/2VklxaCrwlBFgoJzHJcMZCnZ9cPgsllHwKpL6TPLdDeA38yPluMuVKOL1hO5w6HmG5Mg==", - "bin": { - "marked": "bin/marked.js" - }, - "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/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "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/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.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "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/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/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": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "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.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", - "dev": true, - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "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.60.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz", - "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==", - "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.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/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/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/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": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "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-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/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/svelte": { - "version": "3.44.2", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz", - "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==", - "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.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", - "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", - "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/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/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/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/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/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/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" - }, - "dependencies": { - "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 - } - } - }, - "@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.55", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.55.tgz", - "integrity": "sha512-Kmh8lx8kIY7W6rkqjC78y4dQTyjiAHD9D1WfmUTtYuDW1jAIG+YbZmPC9127kH5KOSGK4+tI8mpReDVB1lgf8g==", - "dev": true, - "requires": { - "esbuild": "^0.13.4", - "tiny-glob": "^0.2.9" - } - }, - "@sveltejs/kit": { - "version": "1.0.0-next.201", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.201.tgz", - "integrity": "sha512-WcYexOEPWgDWOk0oOteTU5QwWykdIcOFJig+akeHqwE/jVtPURLZFtTNx0ymUWXN4S+dUXf60KF6HEMv74FHpA==", - "dev": true, - "requires": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.30", - "cheap-watch": "^1.0.4", - "sade": "^1.7.4", - "vite": "^2.6.12" - } - }, - "@sveltejs/site-kit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@sveltejs/site-kit/-/site-kit-1.4.1.tgz", - "integrity": "sha512-K2HplwTqWS5Jw38+GB1LwnojVfTJPxZ3d9FtjbjXoaJ8pCHTBJ+khAV8zeWLlOWkYpJuGD04EZTS87sW7mfVDA==", - "dev": true, - "requires": { - "@sindresorhus/slugify": "^0.9.1", - "golden-fleece": "^1.0.9" - } - }, - "@sveltejs/svelte-repl": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sveltejs/svelte-repl/-/svelte-repl-0.4.1.tgz", - "integrity": "sha512-NsnWS3emGPKW8oZAekf9DcQlm8RoAivaolxpNT1DvEAwpAqPPaFWtHC5JccqzhHKJGVMmBHq92AcYV1ULCsdhg==", - "dev": true, - "requires": { - "codemirror": "^5.49.2", - "estree-walker": "^0.9.0", - "marked": "^4.0.0", - "sourcemap-codec": "^1.4.6", - "svelte-json-tree": "0.0.5", - "yootils": "0.0.16" - } - }, - "@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.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "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" - } - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "codemirror": { - "version": "5.64.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.64.0.tgz", - "integrity": "sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg==", - "dev": true - }, - "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 - }, - "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.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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" - } - }, - "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 - }, - "esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", - "dev": true, - "requires": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" - } - }, - "esbuild-android-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", - "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", - "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", - "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", - "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", - "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", - "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", - "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", - "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", - "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", - "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", - "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", - "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", - "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", - "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", - "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", - "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", - "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": "0.9.0", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.9.0.tgz", - "integrity": "sha512-12U47o7XHUX329+x3FzNVjCx3SHEzMF0nkDv7r/HnBzX/xNTKxajBk6gyygaxrAFtLj39219oMfbtxv4KpaOiA==", - "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.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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 - }, - "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" - } - }, - "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": "4.0.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.6.tgz", - "integrity": "sha512-+H0bTf8DM8zLuFBUm/2VklxaCrwlBFgoJzHJcMZCnZ9cPgsllHwKpL6TPLdDeA38yPluMuVKOL1hO5w6HmG5Mg==" - }, - "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" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "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" - } - }, - "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.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "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": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "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": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "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.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "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.60.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz", - "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==", - "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.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "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": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "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" - } - }, - "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" - } - }, - "svelte": { - "version": "3.44.2", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz", - "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==", - "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.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", - "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", - "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" - } - }, - "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" - } - }, - "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==" - }, - "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 - }, - "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 66439f3dd..000000000 --- a/site/package.json +++ /dev/null @@ -1,44 +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", - "preview": "svelte-kit preview", - "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": "^4.0.6", - "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.1", - "@sveltejs/svelte-repl": "^0.4.1", - "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 733714b21..000000000 --- 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 4c920a3b5..000000000 --- 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 50a39ca2f..000000000 --- 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 a98696793..000000000 --- a/site/scripts/get_contributors.js +++ /dev/null @@ -1,68 +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 MAX = 20; -const SIZE = 128; - -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) - .slice(0, MAX); - - 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 a636c6093..000000000 --- a/site/scripts/get_donors.js +++ /dev/null @@ -1,65 +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 MAX = 20; -const SIZE = 128; - -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) - .slice(0, 3 * MAX); - - const included = []; - for (let i = 0; included.length < MAX; i += 1) { - const backer = backers[i]; - console.log(`${included.length + 1} / ${MAX}: ${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 724c0d1be..000000000 --- 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 77395efa5..000000000 --- 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 d051adb2f..000000000 --- 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 210fd524f..000000000 --- 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 ef81d68f0..000000000 --- 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 8b88029ab..000000000 --- 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 8233ee58b..000000000 --- a/site/src/components/Repl/InputOutputToggle.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - - - \ 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 ced2aafee..000000000 --- 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 87d90aa7a..000000000 --- a/site/src/components/ScreenToggle.svelte +++ /dev/null @@ -1,46 +0,0 @@ - - - - -
- {#each labels as label, index} - - {/each} -
diff --git a/site/src/config.js b/site/src/config.js deleted file mode 100644 index a3589957f..000000000 --- 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 961fc5bb8..000000000 --- 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 37f33acb5..000000000 --- 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 the 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} -
diff --git a/site/src/routes/__layout.svelte b/site/src/routes/__layout.svelte deleted file mode 100644 index f01c312cc..000000000 --- a/site/src/routes/__layout.svelte +++ /dev/null @@ -1,70 +0,0 @@ - - - - -{#if $navigating && $navigating.to} - -{/if} - -{#if $page.path !== '/repl/embed'} - -{/if} - -
- -
- - diff --git a/site/src/routes/_components/Contributors.svelte b/site/src/routes/_components/Contributors.svelte deleted file mode 100644 index aee4c031d..000000000 --- a/site/src/routes/_components/Contributors.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - -
- {#each contributors as contributor, i} - - {contributor} - - {/each} -
- -

And so many more →

diff --git a/site/src/routes/_components/Donors.svelte b/site/src/routes/_components/Donors.svelte deleted file mode 100644 index be6091b6e..000000000 --- a/site/src/routes/_components/Donors.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - -
- {#each donors as donor, i} - - {donor} - - {/each} -
- -

And so many more →

diff --git a/site/src/routes/_components/Example.svelte b/site/src/routes/_components/Example.svelte deleted file mode 100644 index c07b4be0b..000000000 --- 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 430bc9586..000000000 --- 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 06094eac2..000000000 --- a/site/src/routes/_components/WhosUsingSvelte.svelte +++ /dev/null @@ -1,66 +0,0 @@ - - -
- {#each sortedCompanies as { href, filename, alt, style, picture, span }, index} - - {#if picture} - - {#each picture as { type, srcset }} - - {/each} - - - {:else} - - {#if span} - {span} - {/if} - {/if} - - {/each} -
- - diff --git a/site/src/routes/apps/index.json.js b/site/src/routes/apps/index.json.js deleted file mode 100644 index e6b7d42e5..000000000 --- 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 3c025f3b4..000000000 --- a/site/src/routes/apps/index.svelte +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - Your apps • Svelte - - -
- {#if user} -
-

Your apps

- -
- {user.name || user.username} avatar - - {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 58a9856bc..000000000 --- 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 971ac9607..000000000 --- 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 b1f075d68..000000000 --- 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 cafc25ee0..000000000 --- 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 60c48dd2f..000000000 --- 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 480a1aa4a..000000000 --- a/site/src/routes/blog/[slug].svelte +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - {post.metadata.title} - - - - - - -
-

{post.metadata.title}

-

{post.metadata.description}

- - - - {@html post.html} -
- - diff --git a/site/src/routes/blog/_posts.js b/site/src/routes/blog/_posts.js deleted file mode 100644 index 0f66833c0..000000000 --- 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 b65451a5a..000000000 --- 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 40131d7a1..000000000 --- a/site/src/routes/blog/index.svelte +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - Blog • Svelte - - - - - - - -

Blog

-
- {#each posts as post} - - {/each} -
- - diff --git a/site/src/routes/blog/rss.xml.js b/site/src/routes/blog/rss.xml.js deleted file mode 100644 index a82426a97..000000000 --- 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 b056f8083..000000000 --- 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 4496330bf..000000000 --- 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 44e65aa84..000000000 --- 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 d5a8b7240..000000000 --- a/site/src/routes/examples/_TableOfContents.svelte +++ /dev/null @@ -1,116 +0,0 @@ - - - - -
    - {#each sections as section} -
  • - {section.title} - - {#each section.examples as example} -
    - - {example.title} thumbnail - - {example.title} - - {#if example.slug === active_section} - REPL - {/if} -
    - {/each} -
  • - {/each} -
diff --git a/site/src/routes/examples/_examples.js b/site/src/routes/examples/_examples.js deleted file mode 100644 index e4580d7fd..000000000 --- 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 d425d5020..000000000 --- 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 099e39956..000000000 --- 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 7a12418e9..000000000 --- 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 e41b051ae..000000000 --- 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 c36b6b30b..000000000 --- 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 f64753417..000000000 --- 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.

-
- -
-
-npx degit sveltejs/template my-svelte-project
-# or download and extract this .zip file
-cd my-svelte-project
-# to use TypeScript run:
-# node scripts/setupTypeScript.js
-
-npm install
-npm run dev
-		
- -

See the quickstart guide for more information.

- -

Learn Svelte

-
-
- -
- -

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 c550d05e6..000000000 --- a/site/src/routes/repl/[id]/_components/AppControls/UserMenu.svelte +++ /dev/null @@ -1,114 +0,0 @@ - - -
- {name} - {name} avatar - - {#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 334387c37..000000000 --- a/site/src/routes/repl/[id]/_components/AppControls/index.svelte +++ /dev/null @@ -1,315 +0,0 @@ - - - - -
- - -
- - - - - - - - - {#if $session.user} - - {:else} - - {/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 0a5f79c82..000000000 --- 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 e890a3919..000000000 --- a/site/src/routes/repl/[id]/index.svelte +++ /dev/null @@ -1,221 +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 950208ab5..000000000 --- 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 d90ed4053..000000000 --- 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 7695f80e8..000000000 --- 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 ad88926d6..000000000 --- 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 483ab7e4c..000000000 --- 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 72bf70722..000000000 --- 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 4a28c2335..000000000 --- a/site/src/routes/tutorial/[slug]/_TableOfContents.svelte +++ /dev/null @@ -1,94 +0,0 @@ - - - - - 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 cd12c6e9b..000000000 --- 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 b6de21952..000000000 --- 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} - - - {/if} - - {#if selected.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 c762919dd..000000000 --- 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 9df41f9e2..000000000 --- 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 69abd448a..000000000 --- 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 5a4d94e1f..000000000 --- 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 e810a4fe3..000000000 --- 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 0b0f1e954..000000000 --- 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 4d512aabe..000000000 --- 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 5575812a9..000000000 --- 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 fc61d79ad..000000000 --- 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 cbe227cec..000000000 --- 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 25afcdf01..000000000 --- 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 e2d58b9f3..000000000 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 b0b525fc4..000000000 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 ccebfb8a6..000000000 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 c0aecc9fe..000000000 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 b58e9e09b..000000000 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 6fd89dd75..000000000 Binary files a/site/static/examples/thumbnails/7guis-timer.jpg and /dev/null differ diff --git a/site/static/examples/thumbnails/actions-pannable.jpg b/site/static/examples/thumbnails/actions-pannable.jpg deleted file mode 100644 index 3c152ab57..000000000 Binary files a/site/static/examples/thumbnails/actions-pannable.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 33986769d..000000000 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 1963b7f41..000000000 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 db4f939d2..000000000 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 48cc6eb45..000000000 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 4f6a2c8e6..000000000 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 9f14c1503..000000000 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 3d3dbe60f..000000000 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 ce303b926..000000000 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 61c1957f6..000000000 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 2831b458d..000000000 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 3c3937e4e..000000000 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 b2081309e..000000000 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 9cab05c8c..000000000 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 a28af2440..000000000 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 3199aff9c..000000000 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 39bdbf3a3..000000000 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 5c283cd63..000000000 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 fb406bff9..000000000 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 4f43705d9..000000000 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 9f14c1503..000000000 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 e65fa074e..000000000 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 94759bc74..000000000 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 94033260b..000000000 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 3a7fe90f2..000000000 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 a2aade292..000000000 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 065a62207..000000000 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 4c23217bb..000000000 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 365d26e70..000000000 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 a0d5898ce..000000000 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 931f1dcf4..000000000 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 efc9dcb88..000000000 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 11c4871c2..000000000 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 69426d5ec..000000000 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 15996af39..000000000 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 3199aff9c..000000000 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 752c5b1a0..000000000 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 d302633f6..000000000 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 c70f2afcd..000000000 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 1792586ce..000000000 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 3b8d871ad..000000000 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 f208c04e4..000000000 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 69426d5ec..000000000 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 e339b8d45..000000000 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 397ca3b51..000000000 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 365d26e70..000000000 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 8f3d85b28..000000000 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 579dcc707..000000000 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 d6ec82986..000000000 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 26c3e6a32..000000000 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 ada9aaa43..000000000 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 54915f686..000000000 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 2352c21b6..000000000 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 0bcbbbbfd..000000000 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 c34d43701..000000000 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 e42c874b9..000000000 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 3a57e2771..000000000 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 4f094d80f..000000000 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 3a57e2771..000000000 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 18b3ecc97..000000000 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 065aabcc8..000000000 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 f1f2f1bf9..000000000 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 f3d5ec104..000000000 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 44c083e49..000000000 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 424a0f2b1..000000000 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 845f3cb93..000000000 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 0d0e2a922..000000000 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 ca972a512..000000000 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 431c4bfe7..000000000 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 2494b1c95..000000000 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 b0b892241..000000000 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 fbf9c2a5e..000000000 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 d28a3ac94..000000000 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 4afdf49f7..000000000 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 ff2d91423..000000000 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 ff2874f62..000000000 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 e27418de5..000000000 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 6245fd8d8..000000000 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 660f5ba94..000000000 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 40e7b05a1..000000000 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 d99be156f..000000000 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 89433e9f8..000000000 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 95c4d22d6..000000000 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 9f14c1503..000000000 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 d75d248ef..000000000 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 21bc302b6..000000000 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 e81b9f3c5..000000000 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 a828f9888..000000000 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 15e204c35..000000000 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 8f469bb22..000000000 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 1956aca6e..000000000 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 14a7f9cce..000000000 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 7e854e669..000000000 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 3791c883e..000000000 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 8dceabcf6..000000000 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 1b9589945..000000000 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 329a81154..000000000 --- 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 57bb51ed2..000000000 --- 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 c3e46a42b..000000000 --- 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 9d582fa80..000000000 --- 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 795939aec..000000000 --- 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 b286a882f..000000000 --- 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 69435856b..000000000 --- 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 760321cd2..000000000 --- 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 a026808da..000000000 --- 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 3a18d5ffa..000000000 --- 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 3e2188549..000000000 --- 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 3345bdd0b..000000000 --- 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 e54abff1d..000000000 --- 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 a8a5fa161..000000000 --- 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 e3ccf2808..000000000 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 e673c91c7..000000000 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 5600445b1..000000000 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 7694b2045..000000000 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 7a66e9400..000000000 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 45a9d5b90..000000000 --- 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 fdbae403d..000000000 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 ed562822c..000000000 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 0bedd0f02..000000000 --- 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 1d602a905..000000000 --- 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 8572d3da6..000000000 --- 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 d93d71c59..000000000 --- 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 7e2888234..000000000 --- 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 d8b477bee..000000000 --- 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 1e0aec15e..000000000 --- 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 e6bfb771f..000000000 --- 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 70d92ca43..000000000 --- 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 b2a58e743..000000000 --- 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 2e1246a7f..000000000 --- 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 4b28abcec..000000000 --- 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 40a702db9..000000000 --- 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 582204d3b..000000000 --- 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 1a51093a9..000000000 --- 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 3ce9c237d..000000000 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 f1a0ecca1..000000000 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 ba8a63c01..000000000 --- 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 c70ca1fce..000000000 --- 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 15d172c08..000000000 --- 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 736eeff3d..000000000 --- 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 bd85352a5..000000000 --- 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 147dd9e02..000000000 --- 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 df3963828..000000000 --- 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 d8982a47a..000000000 --- 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 6ab7eddee..000000000 --- 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 cef76f1af..000000000 --- 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 5f6c7fa34..000000000 --- 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 67b59c835..000000000 --- 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 b430dc5a5..000000000 --- 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 d1b0689c6..000000000 --- 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 f3383655b..000000000 --- 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 48c0747ed..000000000 --- a/site/svelte.config.js +++ /dev/null @@ -1,44 +0,0 @@ -import adapter from '@sveltejs/adapter-node'; - -/** @type {import('@sveltejs/kit').Config} */ -export default { - kit: { - adapter: adapter(), - target: '#svelte', - prerender: { - enabled: false - }, - vite: () => ({ - // https://github.com/sveltejs/kit/issues/1632#issuecomment-854056053 - build: { - rollupOptions: { - output: { - manualChunks: undefined - } - } - }, - 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 a25672171..000000000 --- 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` - ); - }); -});