summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-06-05 15:43:08 +0200
committerivarlovlie <git@ivarlovlie.no>2022-06-05 15:43:33 +0200
commit1cb220ef54ddaf635b322d8c24f38613f371285e (patch)
tree8fa0445d9642b8774b7ecfeea5d45a244403d82d
parentdccb6a5cf79699ed78bc3101f76c97b21f5a842e (diff)
downloadgreatoffice-1cb220ef54ddaf635b322d8c24f38613f371285e.tar.xz
greatoffice-1cb220ef54ddaf635b322d8c24f38613f371285e.zip
feat: New frontpage
-rw-r--r--apps/frontpage/.editorconfig9
-rw-r--r--apps/frontpage/.npmrc1
-rw-r--r--apps/frontpage/CHANGELOG.md1
-rw-r--r--apps/frontpage/README.md39
-rwxr-xr-xapps/frontpage/build_and_push.sh1
-rw-r--r--apps/frontpage/cliff.toml62
-rw-r--r--apps/frontpage/index.html10
-rw-r--r--apps/frontpage/package.json45
-rw-r--r--apps/frontpage/playwright.config.js9
-rw-r--r--apps/frontpage/playwright.config.ts10
-rw-r--r--apps/frontpage/pnpm-lock.yaml913
-rw-r--r--apps/frontpage/src/app.d.ts10
-rw-r--r--apps/frontpage/src/app.html20
-rw-r--r--apps/frontpage/src/routes/__layout.svelte80
-rw-r--r--apps/frontpage/src/routes/app.scss7
-rw-r--r--apps/frontpage/src/routes/docs/__layout.svelte4
-rw-r--r--apps/frontpage/src/routes/docs/index.svelte1
-rw-r--r--apps/frontpage/src/routes/index.svelte2
-rw-r--r--apps/frontpage/src/routes/privacy.svelte1
-rw-r--r--apps/frontpage/src/routes/terms.svelte1
-rw-r--r--apps/frontpage/svelte.config.js28
-rw-r--r--apps/frontpage/tests/test.js6
-rw-r--r--apps/frontpage/tests/test.ts6
-rw-r--r--apps/frontpage/tsconfig.json37
-rw-r--r--apps/portal/src/app/pages/_layout.svelte47
-rw-r--r--apps/portal/src/vite.config.ts4
-rw-r--r--apps/projects/src/app/lib/services/user-service.ts6
-rw-r--r--apps/projects/src/vite.config.ts11
-rw-r--r--apps/web-shared/src/components/screens/GeneralErrorScreen.svelte7
-rw-r--r--apps/web-shared/src/components/screens/NotFoundScreen.svelte161
-rw-r--r--apps/web-shared/src/lib/configuration.ts14
-rw-r--r--apps/web-shared/src/styles/base/_breakpoints.scss20
-rw-r--r--apps/web-shared/src/styles/base/_util.scss2
-rw-r--r--apps/web-shared/src/styles/components/404.scss43
-rw-r--r--apps/web-shared/src/styles/components/responsive-sidebar.scss110
35 files changed, 1269 insertions, 459 deletions
diff --git a/apps/frontpage/.editorconfig b/apps/frontpage/.editorconfig
new file mode 100644
index 0000000..ebe6a94
--- /dev/null
+++ b/apps/frontpage/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = false
+trim_trailing_whitespace = true
diff --git a/apps/frontpage/.npmrc b/apps/frontpage/.npmrc
new file mode 100644
index 0000000..b6f27f1
--- /dev/null
+++ b/apps/frontpage/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/apps/frontpage/CHANGELOG.md b/apps/frontpage/CHANGELOG.md
deleted file mode 100644
index 825c32f..0000000
--- a/apps/frontpage/CHANGELOG.md
+++ /dev/null
@@ -1 +0,0 @@
-# Changelog
diff --git a/apps/frontpage/README.md b/apps/frontpage/README.md
index 42ee3ec..374efec 100644
--- a/apps/frontpage/README.md
+++ b/apps/frontpage/README.md
@@ -1,3 +1,38 @@
-# Frontpage
+# create-svelte
-This is a sveltekit app that makes up the frontpage on greatoffice.life
+Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
+
+## Creating a project
+
+If you're seeing this, you've probably already done this step. Congrats!
+
+```bash
+# create a new project in the current directory
+npm init svelte
+
+# create a new project in my-app
+npm init svelte my-app
+```
+
+## Developing
+
+Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
+
+```bash
+npm run dev
+
+# or start the server and open the app in a new browser tab
+npm run dev -- --open
+```
+
+## Building
+
+To create a production version of your app:
+
+```bash
+npm run build
+```
+
+You can preview the production build with `npm run preview`.
+
+> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
diff --git a/apps/frontpage/build_and_push.sh b/apps/frontpage/build_and_push.sh
index 3e048f5..e2eaff2 100755
--- a/apps/frontpage/build_and_push.sh
+++ b/apps/frontpage/build_and_push.sh
@@ -63,7 +63,6 @@ pnpm run build
cd build
echo "$NEW_VERSION" >version.txt
-
if [ ${1-prod} == "dev" ]; then
scp -r * contabo-fast-1:services/public/dev.greatoffice.life/www
else
diff --git a/apps/frontpage/cliff.toml b/apps/frontpage/cliff.toml
deleted file mode 100644
index 955a72b..0000000
--- a/apps/frontpage/cliff.toml
+++ /dev/null
@@ -1,62 +0,0 @@
-# configuration file for git-cliff (0.1.0)
-
-[changelog]
-# changelog header
-header = """
-# Changelog\n
-"""
-# template for the changelog body
-# https://tera.netlify.app/docs/#introduction
-body = """
-{% if version %}\
- ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
-{% else %}\
- ## [unreleased]
-{% endif %}\
-{% for group, commits in commits | group_by(attribute="group") %}
- ### {{ group | upper_first }}
- {% for commit in commits %}
- - {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
- {% endfor %}
-{% endfor %}\n
-"""
-# remove the leading and trailing whitespace from the template
-trim = true
-# changelog footer
-footer = """
-<!-- generated by git-cliff -->
-"""
-
-[git]
-# parse the commits based on https://www.conventionalcommits.org
-conventional_commits = true
-# filter out the commits that are not conventional
-filter_unconventional = true
-# regex for preprocessing the commit messages
-commit_preprocessors = [
- { pattern = "([ \\n])(([a-f0-9]{7})[a-f0-9]*)", replace = "${1}commit # [${3}](https://git.ivarlovlie.no/time-tracker/commit/${2})" },
- { pattern = "https://git.ivarlovlie.no/time-tracker/commit/([a-f0-9]{7})[a-f0-9]*", replace = "commit # [${1}](${0})" },
-]
-# regex for parsing and grouping commits
-commit_parsers = [
- { message = "^feat", group = "Features" },
- { message = "^fix", group = "Bug Fixes" },
- { message = "^doc", group = "Documentation" },
- { message = "^perf", group = "Performance" },
- { message = "^refactor", group = "Refactor" },
- { message = "^style", group = "Styling" },
- { message = "^test", group = "Testing" },
- { message = "^chore", group = "Miscellaneous Tasks" },
-]
-# filter out the commits that are not matched by commit parsers
-filter_commits = true
-# glob pattern for matching git tags
-tag_pattern = "v.*"
-# regex for skipping tags
-skip_tags = "v0.1.0-beta.1"
-# regex for ignoring tags
-ignore_tags = ""
-# sort the tags chronologically
-date_order = true
-# sort the commits inside sections by oldest/newest order
-sort_commits = "newest"
diff --git a/apps/frontpage/index.html b/apps/frontpage/index.html
deleted file mode 100644
index e149a39..0000000
--- a/apps/frontpage/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
diff --git a/apps/frontpage/package.json b/apps/frontpage/package.json
index 69ccf89..cde11de 100644
--- a/apps/frontpage/package.json
+++ b/apps/frontpage/package.json
@@ -1,26 +1,21 @@
{
- "name": "greatoffice-frontpage",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "svelte-kit dev",
- "build": "svelte-kit build",
- "package": "svelte-kit package",
- "preview": "svelte-kit preview",
- "prepare": "svelte-kit sync",
- "test": "playwright test",
- "check": "svelte-check --tsconfig ./tsconfig.json",
- "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch"
- },
- "devDependencies": {
- "@playwright/test": "^1.21.0",
- "@sveltejs/adapter-static": "1.0.0-next.34",
- "@sveltejs/kit": "next",
- "svelte": "^3.44.0",
- "svelte-check": "^2.2.6",
- "svelte-preprocess": "^4.10.1",
- "tslib": "^2.3.1",
- "typescript": "~4.6.2"
- },
- "type": "module"
-}
+ "name": "frontpage",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "svelte-kit dev",
+ "build": "svelte-kit build",
+ "package": "svelte-kit package",
+ "preview": "svelte-kit preview",
+ "prepare": "svelte-kit sync",
+ "test": "playwright test"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.21.0",
+ "@sveltejs/adapter-auto": "next",
+ "@sveltejs/adapter-static": "1.0.0-next.34",
+ "@sveltejs/kit": "next",
+ "sass": "^1.52.2",
+ "svelte": "^3.44.0"
+ },
+ "type": "module"
+} \ No newline at end of file
diff --git a/apps/frontpage/playwright.config.js b/apps/frontpage/playwright.config.js
new file mode 100644
index 0000000..c97fd46
--- /dev/null
+++ b/apps/frontpage/playwright.config.js
@@ -0,0 +1,9 @@
+/** @type {import("@playwright/test").PlaywrightTestConfig} */
+const config = {
+ webServer: {
+ command: "npm run build && npm run preview",
+ port: 3000
+ }
+};
+
+export default config;
diff --git a/apps/frontpage/playwright.config.ts b/apps/frontpage/playwright.config.ts
deleted file mode 100644
index 05dea1f..0000000
--- a/apps/frontpage/playwright.config.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import type {PlaywrightTestConfig} from "@playwright/test";
-
-const config: PlaywrightTestConfig = {
- webServer: {
- command: "pnpm run build && pnpm run preview",
- port: 3000
- }
-};
-
-export default config;
diff --git a/apps/frontpage/pnpm-lock.yaml b/apps/frontpage/pnpm-lock.yaml
index 9486720..5b1b562 100644
--- a/apps/frontpage/pnpm-lock.yaml
+++ b/apps/frontpage/pnpm-lock.yaml
@@ -2,61 +2,42 @@ lockfileVersion: 5.4
specifiers:
'@playwright/test': ^1.21.0
+ '@sveltejs/adapter-auto': next
'@sveltejs/adapter-static': 1.0.0-next.34
'@sveltejs/kit': next
+ sass: ^1.52.2
svelte: ^3.44.0
- svelte-check: ^2.2.6
- svelte-preprocess: ^4.10.1
- tslib: ^2.3.1
- typescript: ~4.6.2
devDependencies:
'@playwright/test': 1.22.2
+ '@sveltejs/adapter-auto': 1.0.0-next.50
'@sveltejs/adapter-static': 1.0.0-next.34
- '@sveltejs/kit': 1.0.0-next.347_svelte@3.48.0
+ '@sveltejs/kit': 1.0.0-next.348_sass@1.52.2+svelte@3.48.0
+ sass: 1.52.2
svelte: 3.48.0
- svelte-check: 2.7.1_svelte@3.48.0
- svelte-preprocess: 4.10.6_wwvk7nlptlrqo2czohjtk6eiqm
- tslib: 2.4.0
- typescript: 4.6.4
packages:
- /@jridgewell/resolve-uri/3.0.7:
- resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==}
- engines: {node: '>=6.0.0'}
+ /@iarna/toml/2.2.5:
+ resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
dev: true
- /@jridgewell/sourcemap-codec/1.4.13:
- resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==}
- dev: true
-
- /@jridgewell/trace-mapping/0.3.13:
- resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==}
- dependencies:
- '@jridgewell/resolve-uri': 3.0.7
- '@jridgewell/sourcemap-codec': 1.4.13
- dev: true
-
- /@nodelib/fs.scandir/2.1.5:
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
- dev: true
-
- /@nodelib/fs.stat/2.0.5:
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
- dev: true
-
- /@nodelib/fs.walk/1.2.8:
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
+ /@mapbox/node-pre-gyp/1.0.9:
+ resolution: {integrity: sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==}
+ hasBin: true
dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
+ detect-libc: 2.0.1
+ https-proxy-agent: 5.0.1
+ make-dir: 3.1.0
+ node-fetch: 2.6.7
+ nopt: 5.0.0
+ npmlog: 5.0.1
+ rimraf: 3.0.2
+ semver: 7.3.7
+ tar: 6.1.11
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
dev: true
/@playwright/test/1.22.2:
@@ -64,7 +45,7 @@ packages:
engines: {node: '>=14'}
hasBin: true
dependencies:
- '@types/node': 17.0.38
+ '@types/node': 17.0.40
playwright-core: 1.22.2
dev: true
@@ -76,24 +57,61 @@ packages:
picomatch: 2.3.1
dev: true
+ /@sveltejs/adapter-auto/1.0.0-next.50:
+ resolution: {integrity: sha512-5OkBxw+0Wmq7+Cr0DcOEOTHyOm4VmiWTUsKwMrSc47zcjbXB8n4UvEC0XUtJ5ZSBJRZz7hmVubqH1zm1SANtdw==}
+ dependencies:
+ '@sveltejs/adapter-cloudflare': 1.0.0-next.23
+ '@sveltejs/adapter-netlify': 1.0.0-next.64
+ '@sveltejs/adapter-vercel': 1.0.0-next.58
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /@sveltejs/adapter-cloudflare/1.0.0-next.23:
+ resolution: {integrity: sha512-WaDE25Ib3Q9kM1BBxvGxr57vfExg0Q1Wu2H3dSFV4Apw18UHKS89P/U6wd4u4zAzAw+Mcm8gduX/rRs5z0YMwA==}
+ dependencies:
+ esbuild: 0.14.42
+ worktop: 0.8.0-next.14
+ dev: true
+
+ /@sveltejs/adapter-netlify/1.0.0-next.64:
+ resolution: {integrity: sha512-n2oBAIdv1s4magogcCYbequDmPgOKviNfy40JJ5ZavansboYeaygFri9HcOwcHqrTOmEo3ZDIBoc1UTpbmzMYg==}
+ dependencies:
+ '@iarna/toml': 2.2.5
+ esbuild: 0.14.42
+ set-cookie-parser: 2.5.0
+ tiny-glob: 0.2.9
+ dev: true
+
/@sveltejs/adapter-static/1.0.0-next.34:
resolution: {integrity: sha512-XjuMhemme5z0L/B2nTZpA6k+RJjF+b6L96ts6gIQ6ixiCzJQSbBqJhrrBYBCaeLAKvdUMoGEmX8m862JhKjRFg==}
dependencies:
tiny-glob: 0.2.9
dev: true
- /@sveltejs/kit/1.0.0-next.347_svelte@3.48.0:
- resolution: {integrity: sha512-kxan2F8g9nM/4QzLINsPiZdLZLx6X2Tjg+Ft8KR2QPhHKCEQ3jlosnGTzmznt572PTg89UhiUhQWKK4IDk2nSA==}
+ /@sveltejs/adapter-vercel/1.0.0-next.58:
+ resolution: {integrity: sha512-Gw76HhwHh2sWP2RN8jwm4jMmO5rnvvWsPsnAhFRCYlIs6gwKf/mNE/CfTQ1nkqKEm15YEYHjKXRVRjI8BniwxA==}
+ dependencies:
+ '@vercel/nft': 0.19.1
+ esbuild: 0.14.42
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /@sveltejs/kit/1.0.0-next.348_sass@1.52.2+svelte@3.48.0:
+ resolution: {integrity: sha512-K9dfgzIbotWmbcdCsQ6ROGs9R+bsGWwmSdN6l6km1QV5esQehqg1UYHGD9q0VJsg4rJg/zmKVBYo0oBquSHPZw==}
engines: {node: '>=16.7'}
hasBin: true
peerDependencies:
svelte: ^3.44.0
dependencies:
- '@sveltejs/vite-plugin-svelte': 1.0.0-next.46_svelte@3.48.0+vite@2.9.9
+ '@sveltejs/vite-plugin-svelte': 1.0.0-next.47_svelte@3.48.0+vite@2.9.9
chokidar: 3.5.3
sade: 1.8.1
svelte: 3.48.0
- vite: 2.9.9
+ vite: 2.9.9_sass@1.52.2
transitivePeerDependencies:
- diff-match-patch
- less
@@ -102,8 +120,8 @@ packages:
- supports-color
dev: true
- /@sveltejs/vite-plugin-svelte/1.0.0-next.46_svelte@3.48.0+vite@2.9.9:
- resolution: {integrity: sha512-dumtaI5XusnDgXoQ3vxQAdoCaTWf8zKVezJdiTGjuaS/GSsmLIvtHUvMt0NlwEikPQ/hL53eIzMliRQ/j35w9w==}
+ /@sveltejs/vite-plugin-svelte/1.0.0-next.47_svelte@3.48.0+vite@2.9.9:
+ resolution: {integrity: sha512-J6n8UN51aq/TEZGQ89/EtdXTtca3cRcTJGzi6fi+xK8LkgsHQLCZhRj+PJ+swktRSWTX9IOmQS55SqVg6bz5fA==}
engines: {node: ^14.13.1 || >= 16}
peerDependencies:
diff-match-patch: ^1.0.5
@@ -120,23 +138,62 @@ packages:
magic-string: 0.26.2
svelte: 3.48.0
svelte-hmr: 0.14.12_svelte@3.48.0
- vite: 2.9.9
+ vite: 2.9.9_sass@1.52.2
transitivePeerDependencies:
- supports-color
dev: true
- /@types/node/17.0.38:
- resolution: {integrity: sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==}
+ /@types/node/17.0.40:
+ resolution: {integrity: sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==}
dev: true
- /@types/pug/2.0.6:
- resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
+ /@vercel/nft/0.19.1:
+ resolution: {integrity: sha512-klR5oN7S3WJsZz0r6Xsq7o8YlFEyU3/00VmlpZzIPVFzKfbcEjXo/sVR5lQBUqNKuOzhcbxaFtzW9aOyHjmPYA==}
+ hasBin: true
+ dependencies:
+ '@mapbox/node-pre-gyp': 1.0.9
+ acorn: 8.7.1
+ bindings: 1.5.0
+ estree-walker: 2.0.2
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ micromatch: 4.0.5
+ node-gyp-build: 4.4.0
+ node-pre-gyp: 0.13.0
+ resolve-from: 5.0.0
+ rollup-pluginutils: 2.8.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
+
+ /abbrev/1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
dev: true
- /@types/sass/1.43.1:
- resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==}
+ /acorn/8.7.1:
+ resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /agent-base/6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
dependencies:
- '@types/node': 17.0.38
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /ansi-regex/2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ansi-regex/5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
dev: true
/anymatch/3.1.2:
@@ -147,6 +204,29 @@ packages:
picomatch: 2.3.1
dev: true
+ /aproba/1.2.0:
+ resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
+ dev: true
+
+ /aproba/2.0.0:
+ resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
+ dev: true
+
+ /are-we-there-yet/1.1.7:
+ resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==}
+ dependencies:
+ delegates: 1.0.0
+ readable-stream: 2.3.7
+ dev: true
+
+ /are-we-there-yet/2.0.0:
+ resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
+ engines: {node: '>=10'}
+ dependencies:
+ delegates: 1.0.0
+ readable-stream: 3.6.0
+ dev: true
+
/balanced-match/1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
@@ -156,6 +236,12 @@ packages:
engines: {node: '>=8'}
dev: true
+ /bindings/1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ dependencies:
+ file-uri-to-path: 1.0.0
+ dev: true
+
/brace-expansion/1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
@@ -170,15 +256,6 @@ packages:
fill-range: 7.0.1
dev: true
- /buffer-crc32/0.2.13:
- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
- dev: true
-
- /callsites/3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
- dev: true
-
/chokidar/3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
@@ -194,10 +271,48 @@ packages:
fsevents: 2.3.2
dev: true
+ /chownr/1.1.4:
+ resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+ dev: true
+
+ /chownr/2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /code-point-at/1.1.0:
+ resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /color-support/1.1.3:
+ resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
+ hasBin: true
+ dev: true
+
/concat-map/0.0.1:
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
dev: true
+ /console-control-strings/1.1.0:
+ resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
+ dev: true
+
+ /core-util-is/1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ dev: true
+
+ /debug/3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: true
+
/debug/4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -210,18 +325,33 @@ packages:
ms: 2.1.2
dev: true
+ /deep-extend/0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+ dev: true
+
/deepmerge/4.2.2:
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
engines: {node: '>=0.10.0'}
dev: true
- /detect-indent/6.1.0:
- resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ /delegates/1.0.0:
+ resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
+ dev: true
+
+ /detect-libc/1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: true
+
+ /detect-libc/2.0.1:
+ resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
engines: {node: '>=8'}
dev: true
- /es6-promise/3.3.1:
- resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
+ /emoji-regex/8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
/esbuild-android-64/0.14.42:
@@ -432,25 +562,16 @@ packages:
esbuild-windows-arm64: 0.14.42
dev: true
- /estree-walker/2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ /estree-walker/0.6.1:
+ resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
dev: true
- /fast-glob/3.2.11:
- resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
- engines: {node: '>=8.6.0'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.5
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
- /fastq/1.13.0:
- resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
- dependencies:
- reusify: 1.0.4
+ /file-uri-to-path/1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
dev: true
/fill-range/7.0.1:
@@ -460,6 +581,19 @@ packages:
to-regex-range: 5.0.1
dev: true
+ /fs-minipass/1.2.7:
+ resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==}
+ dependencies:
+ minipass: 2.9.0
+ dev: true
+
+ /fs-minipass/2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.1.6
+ dev: true
+
/fs.realpath/1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
@@ -476,6 +610,34 @@ packages:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
+ /gauge/2.7.4:
+ resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==}
+ dependencies:
+ aproba: 1.2.0
+ console-control-strings: 1.1.0
+ has-unicode: 2.0.1
+ object-assign: 4.1.1
+ signal-exit: 3.0.7
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ wide-align: 1.1.5
+ dev: true
+
+ /gauge/3.0.2:
+ resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ aproba: 2.0.0
+ color-support: 1.1.3
+ console-control-strings: 1.1.0
+ has-unicode: 2.0.1
+ object-assign: 4.1.1
+ signal-exit: 3.0.7
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wide-align: 1.1.5
+ dev: true
+
/glob-parent/5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -506,6 +668,10 @@ packages:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
dev: true
+ /has-unicode/2.0.1:
+ resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
+ dev: true
+
/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
@@ -513,12 +679,31 @@ packages:
function-bind: 1.1.1
dev: true
- /import-fresh/3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
- engines: {node: '>=6'}
+ /https-proxy-agent/5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /iconv-lite/0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
+ safer-buffer: 2.1.2
+ dev: true
+
+ /ignore-walk/3.0.4:
+ resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==}
+ dependencies:
+ minimatch: 3.1.2
+ dev: true
+
+ /immutable/4.1.0:
+ resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==}
dev: true
/inflight/1.0.6:
@@ -532,6 +717,10 @@ packages:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
+ /ini/1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ dev: true
+
/is-binary-path/2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -550,6 +739,18 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /is-fullwidth-code-point/1.0.0:
+ resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ number-is-nan: 1.0.1
+ dev: true
+
+ /is-fullwidth-code-point/3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
/is-glob/4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -562,15 +763,20 @@ packages:
engines: {node: '>=0.12.0'}
dev: true
+ /isarray/1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ dev: true
+
/kleur/4.1.4:
resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==}
engines: {node: '>=6'}
dev: true
- /magic-string/0.25.9:
- resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+ /lru-cache/6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
dependencies:
- sourcemap-codec: 1.4.8
+ yallist: 4.0.0
dev: true
/magic-string/0.26.2:
@@ -580,9 +786,11 @@ packages:
sourcemap-codec: 1.4.8
dev: true
- /merge2/1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
+ /make-dir/3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+ dependencies:
+ semver: 6.3.0
dev: true
/micromatch/4.0.5:
@@ -593,11 +801,6 @@ packages:
picomatch: 2.3.1
dev: true
- /min-indent/1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
- dev: true
-
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -608,6 +811,34 @@ packages:
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
dev: true
+ /minipass/2.9.0:
+ resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==}
+ dependencies:
+ safe-buffer: 5.2.1
+ yallist: 3.1.1
+ dev: true
+
+ /minipass/3.1.6:
+ resolution: {integrity: sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /minizlib/1.3.3:
+ resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==}
+ dependencies:
+ minipass: 2.9.0
+ dev: true
+
+ /minizlib/2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.1.6
+ yallist: 4.0.0
+ dev: true
+
/mkdirp/0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@@ -615,41 +846,176 @@ packages:
minimist: 1.2.6
dev: true
+ /mkdirp/1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dev: true
+
/mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
dev: true
+ /mrmime/1.0.0:
+ resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}
+ engines: {node: '>=10'}
+ dev: true
+
/ms/2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
+ /ms/2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
+
/nanoid/3.3.4:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
+ /needle/2.9.1:
+ resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==}
+ engines: {node: '>= 4.4.x'}
+ hasBin: true
+ dependencies:
+ debug: 3.2.7
+ iconv-lite: 0.4.24
+ sax: 1.2.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /node-fetch/2.6.7:
+ resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: true
+
+ /node-gyp-build/4.4.0:
+ resolution: {integrity: sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==}
+ hasBin: true
+ dev: true
+
+ /node-pre-gyp/0.13.0:
+ resolution: {integrity: sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==}
+ deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future'
+ hasBin: true
+ dependencies:
+ detect-libc: 1.0.3
+ mkdirp: 0.5.6
+ needle: 2.9.1
+ nopt: 4.0.3
+ npm-packlist: 1.4.8
+ npmlog: 4.1.2
+ rc: 1.2.8
+ rimraf: 2.7.1
+ semver: 5.7.1
+ tar: 4.4.19
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /nopt/4.0.3:
+ resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+ osenv: 0.1.5
+ dev: true
+
+ /nopt/5.0.0:
+ resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+ dev: true
+
/normalize-path/3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
+ /npm-bundled/1.1.2:
+ resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
+ dependencies:
+ npm-normalize-package-bin: 1.0.1
+ dev: true
+
+ /npm-normalize-package-bin/1.0.1:
+ resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==}
+ dev: true
+
+ /npm-packlist/1.4.8:
+ resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==}
+ dependencies:
+ ignore-walk: 3.0.4
+ npm-bundled: 1.1.2
+ npm-normalize-package-bin: 1.0.1
+ dev: true
+
+ /npmlog/4.1.2:
+ resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==}
+ dependencies:
+ are-we-there-yet: 1.1.7
+ console-control-strings: 1.1.0
+ gauge: 2.7.4
+ set-blocking: 2.0.0
+ dev: true
+
+ /npmlog/5.0.1:
+ resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
+ dependencies:
+ are-we-there-yet: 2.0.0
+ console-control-strings: 1.1.0
+ gauge: 3.0.2
+ set-blocking: 2.0.0
+ dev: true
+
+ /number-is-nan/1.0.1:
+ resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-assign/4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/once/1.4.0:
- resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: true
- /parent-module/1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
+ /os-homedir/1.0.2:
+ resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /os-tmpdir/1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /osenv/0.1.5:
+ resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==}
dependencies:
- callsites: 3.1.0
+ os-homedir: 1.0.2
+ os-tmpdir: 1.0.2
dev: true
/path-is-absolute/1.0.1:
- resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
dev: true
@@ -681,8 +1047,39 @@ packages:
source-map-js: 1.0.2
dev: true
- /queue-microtask/1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ /process-nextick-args/2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ dev: true
+
+ /rc/1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+ dependencies:
+ deep-extend: 0.6.0
+ ini: 1.3.8
+ minimist: 1.2.6
+ strip-json-comments: 2.0.1
+ dev: true
+
+ /readable-stream/2.3.7:
+ resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+ dev: true
+
+ /readable-stream/3.6.0:
+ resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
dev: true
/readdirp/3.6.0:
@@ -692,9 +1089,14 @@ packages:
picomatch: 2.3.1
dev: true
- /resolve-from/4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
+ /regexparam/2.0.0:
+ resolution: {integrity: sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /resolve-from/5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
dev: true
/resolve/1.22.0:
@@ -706,11 +1108,6 @@ packages:
supports-preserve-symlinks-flag: 1.0.0
dev: true
- /reusify/1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- dev: true
-
/rimraf/2.7.1:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
hasBin: true
@@ -718,18 +1115,25 @@ packages:
glob: 7.2.3
dev: true
- /rollup/2.75.4:
- resolution: {integrity: sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==}
- engines: {node: '>=10.0.0'}
+ /rimraf/3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
- optionalDependencies:
- fsevents: 2.3.2
+ dependencies:
+ glob: 7.2.3
dev: true
- /run-parallel/1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ /rollup-pluginutils/2.8.2:
+ resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
dependencies:
- queue-microtask: 1.2.3
+ estree-walker: 0.6.1
+ dev: true
+
+ /rollup/2.75.5:
+ resolution: {integrity: sha512-JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
dev: true
/sade/1.8.1:
@@ -739,23 +1143,60 @@ packages:
mri: 1.2.0
dev: true
- /sander/0.5.1:
- resolution: {integrity: sha1-dB4kXiMfB8r7b98PEzrfohalAq0=}
+ /safe-buffer/5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: true
+
+ /safe-buffer/5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
+ /safer-buffer/2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ dev: true
+
+ /sass/1.52.2:
+ resolution: {integrity: sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==}
+ engines: {node: '>=12.0.0'}
+ hasBin: true
dependencies:
- es6-promise: 3.3.1
- graceful-fs: 4.2.10
- mkdirp: 0.5.6
- rimraf: 2.7.1
+ chokidar: 3.5.3
+ immutable: 4.1.0
+ source-map-js: 1.0.2
dev: true
- /sorcery/0.10.0:
- resolution: {integrity: sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=}
+ /sax/1.2.4:
+ resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
+ dev: true
+
+ /semver/5.7.1:
+ resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ hasBin: true
+ dev: true
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+ dev: true
+
+ /semver/7.3.7:
+ resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
+ engines: {node: '>=10'}
hasBin: true
dependencies:
- buffer-crc32: 0.2.13
- minimist: 1.2.6
- sander: 0.5.1
- sourcemap-codec: 1.4.8
+ lru-cache: 6.0.0
+ dev: true
+
+ /set-blocking/2.0.0:
+ resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
+ dev: true
+
+ /set-cookie-parser/2.5.0:
+ resolution: {integrity: sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==}
+ dev: true
+
+ /signal-exit/3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
/source-map-js/1.0.2:
@@ -767,44 +1208,58 @@ packages:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
dev: true
- /strip-indent/3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ /string-width/1.0.2:
+ resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ code-point-at: 1.1.0
+ is-fullwidth-code-point: 1.0.0
+ strip-ansi: 3.0.1
+ dev: true
+
+ /string-width/4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
dependencies:
- min-indent: 1.0.1
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
dev: true
- /supports-preserve-symlinks-flag/1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
+ /string_decoder/1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
dev: true
- /svelte-check/2.7.1_svelte@3.48.0:
- resolution: {integrity: sha512-vHVu2+SQ6ibt77iTQaq2oiOjBgGL48qqcg0ZdEOsP5pPOjgeyR9QbnaEdzdBs9nsVYBc/42haKtzb2uFqS8GVw==}
- hasBin: true
- peerDependencies:
- svelte: ^3.24.0
+ /string_decoder/1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
- '@jridgewell/trace-mapping': 0.3.13
- chokidar: 3.5.3
- fast-glob: 3.2.11
- import-fresh: 3.3.0
- picocolors: 1.0.0
- sade: 1.8.1
- svelte: 3.48.0
- svelte-preprocess: 4.10.6_wwvk7nlptlrqo2czohjtk6eiqm
- typescript: 4.6.4
- transitivePeerDependencies:
- - '@babel/core'
- - coffeescript
- - less
- - node-sass
- - postcss
- - postcss-load-config
- - pug
- - sass
- - stylus
- - sugarss
+ safe-buffer: 5.2.1
+ dev: true
+
+ /strip-ansi/3.0.1:
+ resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ ansi-regex: 2.1.1
+ dev: true
+
+ /strip-ansi/6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-json-comments/2.0.1:
+ resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
dev: true
/svelte-hmr/0.14.12_svelte@3.48.0:
@@ -816,62 +1271,36 @@ packages:
svelte: 3.48.0
dev: true
- /svelte-preprocess/4.10.6_wwvk7nlptlrqo2czohjtk6eiqm:
- resolution: {integrity: sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==}
- engines: {node: '>= 9.11.2'}
- requiresBuild: true
- peerDependencies:
- '@babel/core': ^7.10.2
- coffeescript: ^2.5.1
- less: ^3.11.3 || ^4.0.0
- node-sass: '*'
- postcss: ^7 || ^8
- postcss-load-config: ^2.1.0 || ^3.0.0
- pug: ^3.0.0
- sass: ^1.26.8
- stylus: ^0.55.0
- sugarss: ^2.0.0
- svelte: ^3.23.0
- typescript: ^3.9.5 || ^4.0.0
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- coffeescript:
- optional: true
- less:
- optional: true
- node-sass:
- optional: true
- postcss:
- optional: true
- postcss-load-config:
- optional: true
- pug:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- typescript:
- optional: true
- dependencies:
- '@types/pug': 2.0.6
- '@types/sass': 1.43.1
- detect-indent: 6.1.0
- magic-string: 0.25.9
- sorcery: 0.10.0
- strip-indent: 3.0.0
- svelte: 3.48.0
- typescript: 4.6.4
- dev: true
-
/svelte/3.48.0:
resolution: {integrity: sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==}
engines: {node: '>= 8'}
dev: true
+ /tar/4.4.19:
+ resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==}
+ engines: {node: '>=4.5'}
+ dependencies:
+ chownr: 1.1.4
+ fs-minipass: 1.2.7
+ minipass: 2.9.0
+ minizlib: 1.3.3
+ mkdirp: 0.5.6
+ safe-buffer: 5.2.1
+ yallist: 3.1.1
+ dev: true
+
+ /tar/6.1.11:
+ resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==}
+ engines: {node: '>= 10'}
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 3.1.6
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+ dev: true
+
/tiny-glob/0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
@@ -886,17 +1315,15 @@ packages:
is-number: 7.0.0
dev: true
- /tslib/2.4.0:
- resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
+ /tr46/0.0.3:
+ resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=}
dev: true
- /typescript/4.6.4:
- resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
- engines: {node: '>=4.2.0'}
- hasBin: true
+ /util-deprecate/1.0.2:
+ resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
dev: true
- /vite/2.9.9:
+ /vite/2.9.9_sass@1.52.2:
resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==}
engines: {node: '>=12.2.0'}
hasBin: true
@@ -915,11 +1342,45 @@ packages:
esbuild: 0.14.42
postcss: 8.4.14
resolve: 1.22.0
- rollup: 2.75.4
+ rollup: 2.75.5
+ sass: 1.52.2
optionalDependencies:
fsevents: 2.3.2
dev: true
+ /webidl-conversions/3.0.1:
+ resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
+ dev: true
+
+ /whatwg-url/5.0.0:
+ resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ dev: true
+
+ /wide-align/1.1.5:
+ resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
+ dependencies:
+ string-width: 4.2.3
+ dev: true
+
+ /worktop/0.8.0-next.14:
+ resolution: {integrity: sha512-RZgqHu1w/JcUdWOE/BUEAzarrUUHh39eWkLdX8XpA6MfgLJF6X5Vl26CV7/wcm4O/UpZvHMGJUtB9eYTqDjc9g==}
+ engines: {node: '>=12'}
+ dependencies:
+ mrmime: 1.0.0
+ regexparam: 2.0.0
+ dev: true
+
/wrappy/1.0.2:
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
dev: true
+
+ /yallist/3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ dev: true
+
+ /yallist/4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
diff --git a/apps/frontpage/src/app.d.ts b/apps/frontpage/src/app.d.ts
deleted file mode 100644
index 121720c..0000000
--- a/apps/frontpage/src/app.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/// <reference types="@sveltejs/kit" />
-
-// See https://kit.svelte.dev/docs/types#app
-// for information about these interfaces
-declare namespace App {
- // interface Locals {}
- // interface Platform {}
- // interface Session {}
- // interface Stuff {}
-}
diff --git a/apps/frontpage/src/app.html b/apps/frontpage/src/app.html
index 3dff376..917c2aa 100644
--- a/apps/frontpage/src/app.html
+++ b/apps/frontpage/src/app.html
@@ -1,12 +1,14 @@
<!DOCTYPE html>
<html lang="en">
- <head>
- <meta charset="utf-8" />
- <link rel="icon" href="%sveltekit.assets%/favicon.png" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- %sveltekit.head%
- </head>
- <body>
- <main>%sveltekit.body%</main>
- </body>
+<head>
+ <meta charset="utf-8"/>
+ <link rel="icon"
+ href="%sveltekit.assets%/favicon.png"/>
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1"/>
+ %sveltekit.head%
+</head>
+<body>
+<div>%sveltekit.body%</div>
+</body>
</html>
diff --git a/apps/frontpage/src/routes/__layout.svelte b/apps/frontpage/src/routes/__layout.svelte
new file mode 100644
index 0000000..f1a7eaa
--- /dev/null
+++ b/apps/frontpage/src/routes/__layout.svelte
@@ -0,0 +1,80 @@
+<script>
+ import {portal_base} from "$shared/lib/configuration";
+ import "./app.scss";
+ import {afterNavigate} from "$app/navigation";
+ import {page} from "$app/stores";
+
+ let showSidebar = false;
+ afterNavigate(() => showSidebar = false);
+</script>
+
+<div class="padding-component flex justify-between hide@sm">
+ <span class="text-lg">Greatoffice</span>
+ <button class="btn btn--primary"
+ on:click={() => showSidebar = !showSidebar}>{showSidebar ? "Close" : "Show"} menu
+ </button>
+</div>
+
+<style>
+ .nav-active {
+ color: var(--color-primary);
+ background: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.075)
+ }
+</style>
+
+<div class="flex@sm">
+ <aside class="sidebar {showSidebar ? 'sidebar--is-visible': ''}">
+ <div class="sidebar__panel">
+ <header class="sidebar__header bg padding-y-sm padding-x-md border-bottom z-index-2">
+ <span class="text-md text-truncate">Menu</span>
+ <button class="reset sidebar__close-btn"
+ on:click={() => showSidebar = !showSidebar}>
+ <svg class="icon icon--xs"
+ viewBox="0 0 16 16"><title>Close panel</title>
+ <g stroke-width="2"
+ stroke="currentColor"
+ fill="none"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ stroke-miterlimit="10">
+ <line x1="13.5"
+ y1="2.5"
+ x2="2.5"
+ y2="13.5"></line>
+ <line x1="2.5"
+ y1="2.5"
+ x2="13.5"
+ y2="13.5"></line>
+ </g>
+ </svg>
+ </button>
+ </header>
+ <div class="position-relative padding-sm z-index-1">
+ <nav class="flex flex-column gap-xs text-lg">
+ <span class="text-lg hide block@sm">Greatoffice</span>
+ <a href="/"
+ class="reset"
+ title="Learn about the Greatoffice platform"
+ class:nav-active={$page.url.pathname === "/"}>About</a>
+ <a href="/privacy"
+ title="Read our privacy policy"
+ class="reset"
+ class:nav-active={$page.url.pathname.startsWith("/privacy")}>Privacy Policy</a>
+ <a href="/terms"
+ title="Read our terms of service"
+ class="reset"
+ class:nav-active={$page.url.pathname.startsWith("/terms")}>Terms of service</a>
+ <a href="{portal_base()}"
+ title="Login to you Greatoffice account"
+ >Login</a>
+ <a href="/docs"
+ title="Learn how to use Greatoffice">Documentation</a>
+ </nav>
+ </div>
+ </div>
+ </aside>
+
+ <main class="position-relative padding-sm z-index-1 flex-grow">
+ <slot></slot>
+ </main>
+</div>
diff --git a/apps/frontpage/src/routes/app.scss b/apps/frontpage/src/routes/app.scss
new file mode 100644
index 0000000..73a46ba
--- /dev/null
+++ b/apps/frontpage/src/routes/app.scss
@@ -0,0 +1,7 @@
+@use '../../web-shared/src/styles/base' as *;
+@use '../../web-shared/src/styles/custom-style/colors';
+@use '../../web-shared/src/styles/custom-style/spacing';
+@use '../../web-shared/src/styles/custom-style/shared-styles';
+@use '../../web-shared/src/styles/custom-style/typography';
+@use '../../web-shared/src/styles/custom-style/util';
+@use '../../web-shared/src/styles/components/responsive-sidebar';
diff --git a/apps/frontpage/src/routes/docs/__layout.svelte b/apps/frontpage/src/routes/docs/__layout.svelte
new file mode 100644
index 0000000..34c3139
--- /dev/null
+++ b/apps/frontpage/src/routes/docs/__layout.svelte
@@ -0,0 +1,4 @@
+<nav>
+ <a href="/">Home</a>
+</nav>
+<slot></slot> \ No newline at end of file
diff --git a/apps/frontpage/src/routes/docs/index.svelte b/apps/frontpage/src/routes/docs/index.svelte
new file mode 100644
index 0000000..da83065
--- /dev/null
+++ b/apps/frontpage/src/routes/docs/index.svelte
@@ -0,0 +1 @@
+<h1>Documentation</h1> \ No newline at end of file
diff --git a/apps/frontpage/src/routes/index.svelte b/apps/frontpage/src/routes/index.svelte
index 8038f19..ae068f6 100644
--- a/apps/frontpage/src/routes/index.svelte
+++ b/apps/frontpage/src/routes/index.svelte
@@ -1 +1 @@
-<h1>Welcome to Greatoffice</h1>
+<h1>About</h1>
diff --git a/apps/frontpage/src/routes/privacy.svelte b/apps/frontpage/src/routes/privacy.svelte
new file mode 100644
index 0000000..aaff3a9
--- /dev/null
+++ b/apps/frontpage/src/routes/privacy.svelte
@@ -0,0 +1 @@
+<h1>Privacy Policy</h1>
diff --git a/apps/frontpage/src/routes/terms.svelte b/apps/frontpage/src/routes/terms.svelte
new file mode 100644
index 0000000..d495e19
--- /dev/null
+++ b/apps/frontpage/src/routes/terms.svelte
@@ -0,0 +1 @@
+<h1>Terms of service</h1>
diff --git a/apps/frontpage/svelte.config.js b/apps/frontpage/svelte.config.js
index 20f856b..60a9bcf 100644
--- a/apps/frontpage/svelte.config.js
+++ b/apps/frontpage/svelte.config.js
@@ -1,20 +1,22 @@
import adapter from "@sveltejs/adapter-static";
-import preprocess from "svelte-preprocess";
/** @type {import("@sveltejs/kit").Config} */
const config = {
- // Consult https://github.com/sveltejs/svelte-preprocess
- // for more information about preprocessors
- preprocess: preprocess(),
-
- kit: {
- adapter: adapter({
- fallback: "index.html",
- prerender: {
- default: false
- }
- })
- }
+ kit: {
+ prerender: {
+ default: true,
+ },
+ adapter: adapter(),
+ alias: {
+ "$shared": "../web-shared/src",
+ "$routes": "./src/routes"
+ },
+ vite: {
+ server: {
+ port: 3002
+ },
+ },
+ },
};
export default config;
diff --git a/apps/frontpage/tests/test.js b/apps/frontpage/tests/test.js
new file mode 100644
index 0000000..68d7b7e
--- /dev/null
+++ b/apps/frontpage/tests/test.js
@@ -0,0 +1,6 @@
+import {expect, test} from "@playwright/test";
+
+test("index page has expected h1", async ({page}) => {
+ await page.goto("/");
+ expect(await page.textContent("h1")).toBe("About");
+});
diff --git a/apps/frontpage/tests/test.ts b/apps/frontpage/tests/test.ts
deleted file mode 100644
index af64ad3..0000000
--- a/apps/frontpage/tests/test.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { expect, test } from '@playwright/test';
-
-test('index page has expected h1', async ({ page }) => {
- await page.goto('/');
- expect(await page.textContent('h1')).toBe("Welcome to Greatoffice");
-});
diff --git a/apps/frontpage/tsconfig.json b/apps/frontpage/tsconfig.json
index 0f47472..374cec6 100644
--- a/apps/frontpage/tsconfig.json
+++ b/apps/frontpage/tsconfig.json
@@ -1,13 +1,28 @@
{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true
- }
+ "include": [
+ "./**/*.d.ts",
+ "./**/*.ts",
+ "./**/*.js",
+ "./**/*.svelte"
+ ],
+ "exclude": [
+ "./node_modules"
+ ],
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "target": "esnext",
+ "useDefineForClassFields": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "allowJs": true,
+ "checkJs": false,
+ "paths": {
+ "$routes/*": [
+ "./src/pages/*"
+ ],
+ "$shared/*": [
+ "../web-shared/src/*"
+ ]
+ }
+ }
}
diff --git a/apps/portal/src/app/pages/_layout.svelte b/apps/portal/src/app/pages/_layout.svelte
index 8c2e4a8..713a430 100644
--- a/apps/portal/src/app/pages/_layout.svelte
+++ b/apps/portal/src/app/pages/_layout.svelte
@@ -1,5 +1,4 @@
<script>
- import Details from "$shared/components/details.svelte";
import Button from "$shared/components/button.svelte";
import {switch_theme} from "$shared/lib/helpers";
</script>
@@ -31,52 +30,6 @@
<main class="container-fluid padding-x-xs padding-x-xxl@xs padding-y-md padding-y-lg@md max-width-sm">
<slot/>
- <Details summary="About">
- <p>Time Tracker is a tool to keep track of time spent.</p>
- <p>Use demo@demo.demo 123456 to demo the app.</p>
- <a href="https://git.ivarlovlie.no/time-tracker">Source</a>
- <a href="https://git.ivarlovlie.no/time-tracker/tree/LICENSE">License</a>
- <a href="/assets/third-party-licenses.txt">License notices</a>
- </Details>
-
- <Details summary="Pricing"/>
-
- <Details summary="Privacy policy">
- <h3>Information we collect</h3>
- <p>We collect information you the user provide, explicitly this means:</p>
- <ul>
- <li>Username</li>
- <li>Password</li>
- <li>Entries generated by you</li>
- <li>Labels generated by you</li>
- <li>Categories generated by you</li>
- <li>Your IP address when making requests to our API (using the service)</li>
- </ul>
-
- <h3>How we use your information</h3>
- <p>We use your information to provide the time-tracker service.</p>
-
- <h3>How we share your information</h3>
- <p>
- We do not share your information with anyone nor any entity. All information is handled by us the provider and you the user
- exclusively.
- </p>
-
- <h3>Right to delete</h3>
- <p>
- You can at any time delete any data related to your personal information by navigating to your profile page inside of the
- service.
- </p>
-
- <h3>Right to inspect</h3>
- <p>You can at any time download all of your generated data by navigating to your profile page inside of the service.</p>
-
- <h3>Contact</h3>
- <p>Please direct any inquires about your personal data to time-tracker@ivarlovlie.no.</p>
- </Details>
-
- <Details summary="Terms of service"/>
-
<Button on:click={() => switch_theme()}
text="Switch theme"
variant="secondary"/>
diff --git a/apps/portal/src/vite.config.ts b/apps/portal/src/vite.config.ts
index 907422e..684ef14 100644
--- a/apps/portal/src/vite.config.ts
+++ b/apps/portal/src/vite.config.ts
@@ -21,7 +21,9 @@ export default defineConfig({
}
}
},
-
+ server: {
+ port: 3001
+ },
plugins: [
svelte({
preprocess: sveltePreprocess()
diff --git a/apps/projects/src/app/lib/services/user-service.ts b/apps/projects/src/app/lib/services/user-service.ts
index 7bffa49..6e4a200 100644
--- a/apps/projects/src/app/lib/services/user-service.ts
+++ b/apps/projects/src/app/lib/services/user-service.ts
@@ -1,5 +1,5 @@
import {delete_account, logout} from "$shared/lib/api/user";
-import {accounts_base} from "$shared/lib/configuration";
+import {portal_base} from "$shared/lib/configuration";
import {clear_session_data} from "$shared/lib/session";
import {clear_categories} from "$app/lib/stores/categories";
import {clear_entries} from "$app/lib/stores/entries";
@@ -11,11 +11,11 @@ export async function logout_user(reason: string = "") {
clear_categories();
clear_labels();
clear_entries();
- location.replace(accounts_base("#/login" + (reason ? "?" + reason : "")));
+ location.replace(portal_base("#/login" + (reason ? "?" + reason : "")));
}
export async function delete_user() {
await delete_account();
clear_session_data();
- location.replace(accounts_base("#/login?deleted"));
+ location.replace(portal_base("#/login?deleted"));
}
diff --git a/apps/projects/src/vite.config.ts b/apps/projects/src/vite.config.ts
index ac44266..1686884 100644
--- a/apps/projects/src/vite.config.ts
+++ b/apps/projects/src/vite.config.ts
@@ -1,5 +1,5 @@
-import { defineConfig } from "vite";
-import { svelte } from "@sveltejs/vite-plugin-svelte";
+import {defineConfig} from "vite";
+import {svelte} from "@sveltejs/vite-plugin-svelte";
import sveltePreprocess from "svelte-preprocess";
// @ts-ignore
import path from "path";
@@ -9,8 +9,7 @@ export default defineConfig({
resolve: {
alias: {
"$shared": path.resolve(__dirname, "../../web-shared/src"),
- "$app": path.resolve(__dirname, "./app"),
- "$public": path.resolve(__dirname, "./_public"),
+ "$app": path.resolve(__dirname, "./app")
}
},
build: {
@@ -22,7 +21,9 @@ export default defineConfig({
}
}
},
-
+ server: {
+ port: 3000
+ },
plugins: [
svelte({
preprocess: sveltePreprocess()
diff --git a/apps/web-shared/src/components/screens/GeneralErrorScreen.svelte b/apps/web-shared/src/components/screens/GeneralErrorScreen.svelte
new file mode 100644
index 0000000..dd4b5bd
--- /dev/null
+++ b/apps/web-shared/src/components/screens/GeneralErrorScreen.svelte
@@ -0,0 +1,7 @@
+<script>
+ export let message;
+ export let status;
+</script>
+
+<h1>{status}</h1>
+<p>{message}</p>
diff --git a/apps/web-shared/src/components/screens/NotFoundScreen.svelte b/apps/web-shared/src/components/screens/NotFoundScreen.svelte
new file mode 100644
index 0000000..69d55af
--- /dev/null
+++ b/apps/web-shared/src/components/screens/NotFoundScreen.svelte
@@ -0,0 +1,161 @@
+<style>
+ .fof__animation svg {
+ display: block;
+ max-width: 520px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ #i-fof-browser {
+ -webkit-transform-origin: 260px 304px;
+ transform-origin: 260px 304px;
+ -webkit-animation: i-fof-browser 4s infinite;
+ animation: i-fof-browser 4s infinite;
+ }
+
+ #i-fof-shadow {
+ -webkit-transform-origin: 282px 410px;
+ transform-origin: 282px 410px;
+ -webkit-animation: i-fof-shadow 4s infinite;
+ animation: i-fof-shadow 4s infinite;
+ }
+
+ @-webkit-keyframes i-fof-browser {
+ 0%, 100% {
+ -webkit-transform: translateY(0) scale(1);
+ transform: translateY(0) scale(1);
+ }
+ 50% {
+ -webkit-transform: translateY(-10%) scale(0.9);
+ transform: translateY(-10%) scale(0.9);
+ }
+ }
+
+ @keyframes i-fof-browser {
+ 0%, 100% {
+ -webkit-transform: translateY(0) scale(1);
+ transform: translateY(0) scale(1);
+ }
+ 50% {
+ -webkit-transform: translateY(-10%) scale(0.9);
+ transform: translateY(-10%) scale(0.9);
+ }
+ }
+
+ @-webkit-keyframes i-fof-shadow {
+ 0%, 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 50% {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+ }
+ }
+
+ @keyframes i-fof-shadow {
+ 0%, 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 50% {
+ -webkit-transform: scale(0.8);
+ transform: scale(0.8);
+ }
+ }
+</style>
+
+<section class="fof">
+ <div class="container max-width-sm">
+ <div class="text-component text-center margin-bottom-lg">
+ <h1>Page not found</h1>
+ <p>Sorry, but the page you were looking for could not be found.</p>
+ <p><a href="/">Go to homepage</a>.</p>
+ </div>
+
+ <div class="fof__animation"
+ aria-lable="404 animation">
+ <svg id="i-fof"
+ viewBox="0 0 520 450">
+ <g id="i-fof-ship">
+ <path id="i-fof-capsule"
+ d="M260,9a53,53,0,0,0-53,53H313A53,53,0,0,0,260,9Z"
+ fill="var(--color-contrast-lower)"/>
+ <path id="i-fof-ship-top"
+ d="M448,73H72s78-37,188-37S448,73,448,73Z"
+ fill="var(--color-contrast-low)"/>
+ <path id="i-fof-ship-bottom"
+ d="M448,73A1185.633,1185.633,0,0,0,72,73c80.173,34.484,144.2,37,188,37C370,110,448,73,448,73Z"
+ fill="var(--color-contrast-high)"/>
+ </g>
+ <g id="i-fof-browser">
+ <rect id="i-fof-browser-canvas"
+ x="179"
+ y="243"
+ width="160"
+ height="109"
+ rx="6"
+ transform="translate(131.361 -75.723) rotate(22.162)"
+ fill="var(--color-contrast-higher)"/>
+ <g id="i-fof-browser-dots"
+ fill="var(--color-bg)">
+ <circle cx="211.713"
+ cy="228.029"
+ r="3"/>
+ <circle cx="221.9"
+ cy="232.179"
+ r="3"/>
+ <circle cx="232.088"
+ cy="236.328"
+ r="3"/>
+ </g>
+ <rect id="i-fof-browser-body"
+ x="180.737"
+ y="258.557"
+ width="152"
+ height="89"
+ rx="2"
+ transform="translate(133.29 -74.459) rotate(22.162)"
+ fill="var(--color-bg)"/>
+ <g id="i-fof-emoji">
+ <path d="M248.626,322.968A22,22,0,1,1,277.3,310.893,22,22,0,0,1,248.626,322.968Z"
+ fill="#ffd764"/>
+ <path d="M264.3,311a7,7,0,1,1,9.124-3.843A7,7,0,0,1,264.3,311Z"
+ fill="#fff"/>
+ <path d="M245.778,303.452a7,7,0,1,1,9.123-3.842A7,7,0,0,1,245.778,303.452Z"
+ fill="#fff"/>
+ <path d="M258.5,317.274l-12.966-5.281a1,1,0,0,1,.755-1.853l12.966,5.282a1,1,0,0,1-.755,1.852Z"
+ fill="#444"/>
+ <path d="M247.287,299.747a3,3,0,1,1,3.91-1.646A3,3,0,0,1,247.287,299.747Z"
+ fill="#444"/>
+ <path d="M265.809,307.292a3,3,0,1,1,3.91-1.647A3,3,0,0,1,265.809,307.292Z"
+ fill="#444"/>
+ </g>
+ </g>
+ <polygon id="i-fof-radar-body"
+ points="415 410 105 410 196 106 324 106 415 410"
+ fill="#4ad36b"
+ opacity="0.5"/>
+ <ellipse id="i-fof-radar-bottom"
+ cx="260"
+ cy="410"
+ rx="155"
+ ry="28"
+ fill="#4ad36b"/>
+ <ellipse id="i-fof-shadow"
+ cx="282"
+ cy="410"
+ rx="72"
+ ry="10"
+ opacity="0.4"
+ fill="var(--color-black)"/>
+ <ellipse id="i-fof-radar-top"
+ cx="260"
+ cy="106"
+ rx="64"
+ ry="6"
+ fill="#4ad36b"/>
+ </svg>
+ </div>
+ </div>
+</section>
diff --git a/apps/web-shared/src/lib/configuration.ts b/apps/web-shared/src/lib/configuration.ts
index e4cd1ef..188d615 100644
--- a/apps/web-shared/src/lib/configuration.ts
+++ b/apps/web-shared/src/lib/configuration.ts
@@ -1,26 +1,26 @@
export const API_ADDRESS = "https://api.dev.greatoffice.life";
export const PROJECTS_ADDRESS = "https://projects.dev.greatoffice.life";
-export const ACCOUNTS_ADDRESS = "https://a.dev.greatoffice.life";
+export const PORTAL_ADDRESS = "https://portal.dev.greatoffice.life";
export const FRONTPAGE_ADDRESS = "https://greatoffice.life";
-export const DEV_ACCOUNTS_ADDRESS = "http://localhost:3001";
+export const DEV_PORTAL_ADDRESS = "http://localhost:3001";
export const DEV_FRONTPAGE_ADDRESS = "http://localhost:3002";
export const DEV_API_ADDRESS = "http://localhost:5000";
export const DEV_PROJECTS_ADDRESS = "http://localhost:3000";
export const SECONDS_BETWEEN_SESSION_CHECK = 600;
-export function projects_base(path: string): string {
+export function projects_base(path: string = ""): string {
return (is_development() ? DEV_PROJECTS_ADDRESS : PROJECTS_ADDRESS) + (path ? "/" + path : "/");
}
-export function frontpage_base(path: string): string {
+export function frontpage_base(path: string = ""): string {
return (is_development() ? DEV_FRONTPAGE_ADDRESS : FRONTPAGE_ADDRESS) + (path ? "/" + path : "/");
}
-export function accounts_base(path: string): string {
- return (is_development() ? DEV_ACCOUNTS_ADDRESS : ACCOUNTS_ADDRESS) + (path ? "/" + path : "/");
+export function portal_base(path: string = ""): string {
+ return (is_development() ? DEV_PORTAL_ADDRESS : PORTAL_ADDRESS) + (path ? "/" + path : "/");
}
-export function api_base(path: string): string {
+export function api_base(path: string = ""): string {
return (is_development() ? DEV_API_ADDRESS : API_ADDRESS) + (path ? "/" + path : "/");
}
diff --git a/apps/web-shared/src/styles/base/_breakpoints.scss b/apps/web-shared/src/styles/base/_breakpoints.scss
index a7f1eda..9b61af3 100644
--- a/apps/web-shared/src/styles/base/_breakpoints.scss
+++ b/apps/web-shared/src/styles/base/_breakpoints.scss
@@ -1,15 +1,19 @@
$breakpoints: (
- xs: 32rem, // ~512px
- sm: 48rem, // ~768px
- md: 64rem, // ~1024px
- lg: 80rem, // ~1280px
- xl: 90rem // ~1440px
+ xs: "768px",
+ sm: "768px",
+ md: "1200px",
+ lg: "1200px",
+ xl: "1600px"
) !default;
@mixin breakpoint($breakpoint, $logic: false) {
- @if( $logic ) {
- @media #{$logic} and (min-width: map-get($map: $breakpoints, $key: $breakpoint)) { @content; }
+ @if ($logic) {
+ @media #{$logic} and (min-width: map-get($map: $breakpoints, $key: $breakpoint)) {
+ @content;
+ }
} @else {
- @media (min-width: map-get($map: $breakpoints, $key: $breakpoint)) { @content; }
+ @media (min-width: map-get($map: $breakpoints, $key: $breakpoint)) {
+ @content;
+ }
}
}
diff --git a/apps/web-shared/src/styles/base/_util.scss b/apps/web-shared/src/styles/base/_util.scss
index d688e1c..c384c2c 100644
--- a/apps/web-shared/src/styles/base/_util.scss
+++ b/apps/web-shared/src/styles/base/_util.scss
@@ -1250,7 +1250,7 @@ $breakpointsNr: length($breakpoints);
[class^="translate"], [class*=" translate"],
[class^="-scale"], [class*=" -scale"],
[class^="scale"], [class*=" scale"],
-[class^="-skew"], [class*=" -skew"]
+[class^="-skew"], [class*=" -skew"],
[class^="skew"], [class*=" skew"] {
--translate: 0;
--rotate: 0;
diff --git a/apps/web-shared/src/styles/components/404.scss b/apps/web-shared/src/styles/components/404.scss
new file mode 100644
index 0000000..1a0267a
--- /dev/null
+++ b/apps/web-shared/src/styles/components/404.scss
@@ -0,0 +1,43 @@
+@use '../base' as *;
+
+.fof {
+}
+
+.fof__animation {
+ svg {
+ display: block;
+ max-width: 520px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+}
+
+#i-fof-browser {
+ transform-origin: 260px 304px;
+ animation: i-fof-browser 4s infinite;
+}
+
+#i-fof-shadow {
+ transform-origin: 282px 410px;
+ animation: i-fof-shadow 4s infinite;
+}
+
+@keyframes i-fof-browser {
+ 0%, 100% {
+ transform: translateY(0) scale(1);
+ }
+
+ 50% {
+ transform: translateY(-10%) scale(0.9);
+ }
+}
+
+@keyframes i-fof-shadow {
+ 0%, 100% {
+ transform: scale(1);
+ }
+
+ 50% {
+ transform: scale(0.8);
+ }
+}
diff --git a/apps/web-shared/src/styles/components/responsive-sidebar.scss b/apps/web-shared/src/styles/components/responsive-sidebar.scss
new file mode 100644
index 0000000..29a45f4
--- /dev/null
+++ b/apps/web-shared/src/styles/components/responsive-sidebar.scss
@@ -0,0 +1,110 @@
+@use '../base' as *;
+
+/* --------------------------------
+File#: _1_responsive-sidebar
+Title: Responsive Sidebar
+Descr: Responsive sidebar container
+Usage: codyhouse.co/license
+-------------------------------- */
+
+$maxwidth: 250px;
+
+.sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--z-index-fixed-element, 10);
+ width: 100%;
+ height: 100%;
+ visibility: hidden;
+
+ &::after { /* overlay layer */
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: alpha(var(--color-black), 0);
+ z-index: 1;
+ }
+
+ @include breakpoint(sm) {
+ visibility: visible;
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ max-width: $maxwidth;
+ border-right: var(--border-width, 1px) var(--border-style, solid) hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), var(--border-o, 1));
+
+ .sidebar__header {
+ display: none;
+ }
+
+ .sidebar__panel {
+ position: relative !important;
+ }
+ }
+
+ .sidebar__panel {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 2;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ background-color: var(--color-bg);
+ }
+
+ &.sidebar--right-on-mobile {
+ .sidebar__panel {
+ left: auto;
+ right: 0;
+ transform: translateX(100%);
+ }
+ }
+
+ &.sidebar--is-visible {
+ visibility: visible;
+
+ &::after {
+ background-color: alpha(var(--color-black), 0.55);
+ }
+
+ .sidebar__panel {
+ transform: translateX(0);
+ box-shadow: var(--shadow-md);
+ }
+ }
+}
+
+.sidebar__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: sticky;
+ top: 0;
+}
+
+.sidebar__close-btn {
+ --size: 32px;
+ width: var(--size);
+ height: var(--size);
+ display: flex;
+ border-radius: 50%;
+ background-color: var(--color-bg-light);
+ box-shadow: var(--inner-glow), var(--shadow-sm);
+ flex-shrink: 0;
+
+ .icon {
+ display: block;
+ margin: auto;
+ }
+
+ &:hover {
+ background-color: var(--color-bg-lighter);
+ box-shadow: var(--inner-glow), var(--shadow-md);
+ }
+}