diff --git a/.env.example b/.env.example index 98dfb05..e97fe21 100644 --- a/.env.example +++ b/.env.example @@ -1,12 +1,11 @@ AUTH_SECRET=myauthsecret # generate with https://generate-secret.vercel.app/32 or openssl rand -hex 32 on unix-like -DB_HOST=localhost -DB_PORT=5432 -DB_USERNAME=postgres -DB_PASSWORD=your-db-password +DB_URL=mongodb://localhost:27017 GHOST_API_KEY=your-ghost-api-key AUTH_CLIENT_ID=your-authentik-client-id AUTH_CLIENT_SECRET=your-authentik-client-secret AUTH_ISSUER=https://authentik-domain/application/o/app-name/ HCAPTCHA_SECRET=your-hcaptcha-secret HCAPTCHA_SITEKEY=your-hcaptcha-sitekey -WEBHOOK=your-discord-webhook \ No newline at end of file +WEBHOOK=your-discord-webhook +MONGO_USER=mongodb +MONGO_PASSWORD=mongodb \ No newline at end of file diff --git a/compose.yml b/compose.yml index 5e7f95d..059c1c0 100644 --- a/compose.yml +++ b/compose.yml @@ -24,18 +24,17 @@ services: WEBHOOK: ${WEBHOOK} #args: [ "ORIGIN=" ] - website-db-dev: - image: postgres + website-db: + image: mongo container_name: website-db - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - PGDATA: /data/postgres - POSTGRES_DB: website - volumes: - - website-db-data:/data/postgres - restart: unless-stopped + volumes: + - website-db-data:/data/db + environment: + MONGO_INITDB_ROOT_USERNAME: $MONGO_USER + MONGO_INITDB_ROOT_PASSWORD: $MONGO_PASSWORD + MONGO_INITDB_DATABASE: website + command: [--auth] volumes: website-db-data: \ No newline at end of file diff --git a/package.json b/package.json index 7e0f3ab..0024ace 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "@auth/sveltekit": "^0.1.11", "dotenv": "^16.0.3", "joi": "^17.7.0", - "knex": "^2.4.0", - "pg": "^8.8.0" + "mongodb": "^4.13.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c68019..ac83a15 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,10 +15,9 @@ specifiers: discord-webhook-node: ^1.1.8 dotenv: ^16.0.3 joi: ^17.7.0 - knex: ^2.4.0 marked: ^4.2.5 mdsvex: ^0.10.6 - pg: ^8.8.0 + mongodb: ^4.13.0 prettier: ^2.8.1 prettier-plugin-svelte: ^2.9.0 sanitize-html: ^2.8.1 @@ -38,8 +37,7 @@ dependencies: '@auth/sveltekit': 0.1.11_f5fzfhbe3oooig6fzl5vkyl5v4 dotenv: 16.0.3 joi: 17.7.0 - knex: 2.4.0_pg@8.8.0 - pg: 8.8.0 + mongodb: 4.13.0 devDependencies: '@iconify-json/ic': 1.1.12 @@ -138,6 +136,823 @@ packages: - nodemailer dev: false + /@aws-crypto/ie11-detection/2.0.2: + resolution: {integrity: sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==} + dependencies: + tslib: 1.14.1 + dev: false + optional: true + + /@aws-crypto/sha256-browser/2.0.0: + resolution: {integrity: sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==} + dependencies: + '@aws-crypto/ie11-detection': 2.0.2 + '@aws-crypto/sha256-js': 2.0.0 + '@aws-crypto/supports-web-crypto': 2.0.2 + '@aws-crypto/util': 2.0.2 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-locate-window': 3.208.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + tslib: 1.14.1 + dev: false + optional: true + + /@aws-crypto/sha256-js/2.0.0: + resolution: {integrity: sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==} + dependencies: + '@aws-crypto/util': 2.0.2 + '@aws-sdk/types': 3.226.0 + tslib: 1.14.1 + dev: false + optional: true + + /@aws-crypto/supports-web-crypto/2.0.2: + resolution: {integrity: sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==} + dependencies: + tslib: 1.14.1 + dev: false + optional: true + + /@aws-crypto/util/2.0.2: + resolution: {integrity: sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==} + dependencies: + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + tslib: 1.14.1 + dev: false + optional: true + + /@aws-sdk/abort-controller/3.226.0: + resolution: {integrity: sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/client-cognito-identity/3.245.0: + resolution: {integrity: sha512-c5briTS05rAioO5b84bVng9M1KyAXcxJtDHeuoeAAZBuU+Dd0Scg3vyXyAFlGI+TsNyxqHAqqRdAoG4WNxJo/Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 2.0.0 + '@aws-crypto/sha256-js': 2.0.0 + '@aws-sdk/client-sts': 3.245.0 + '@aws-sdk/config-resolver': 3.234.0 + '@aws-sdk/credential-provider-node': 3.245.0 + '@aws-sdk/fetch-http-handler': 3.226.0 + '@aws-sdk/hash-node': 3.226.0 + '@aws-sdk/invalid-dependency': 3.226.0 + '@aws-sdk/middleware-content-length': 3.226.0 + '@aws-sdk/middleware-endpoint': 3.226.0 + '@aws-sdk/middleware-host-header': 3.226.0 + '@aws-sdk/middleware-logger': 3.226.0 + '@aws-sdk/middleware-recursion-detection': 3.226.0 + '@aws-sdk/middleware-retry': 3.235.0 + '@aws-sdk/middleware-serde': 3.226.0 + '@aws-sdk/middleware-signing': 3.226.0 + '@aws-sdk/middleware-stack': 3.226.0 + '@aws-sdk/middleware-user-agent': 3.226.0 + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/node-http-handler': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/smithy-client': 3.234.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + '@aws-sdk/util-base64': 3.208.0 + '@aws-sdk/util-body-length-browser': 3.188.0 + '@aws-sdk/util-body-length-node': 3.208.0 + '@aws-sdk/util-defaults-mode-browser': 3.234.0 + '@aws-sdk/util-defaults-mode-node': 3.234.0 + '@aws-sdk/util-endpoints': 3.245.0 + '@aws-sdk/util-retry': 3.229.0 + '@aws-sdk/util-user-agent-browser': 3.226.0 + '@aws-sdk/util-user-agent-node': 3.226.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + '@aws-sdk/util-utf8-node': 3.208.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/client-sso-oidc/3.245.0: + resolution: {integrity: sha512-0pGPA00kEsu2Yq1Ul+OwftHxws5YVllm4iZrPtGnqmXr7wmf6B9lOtrMQF44y7Tfw53po6+bKz08OKTEWkkjUA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 2.0.0 + '@aws-crypto/sha256-js': 2.0.0 + '@aws-sdk/config-resolver': 3.234.0 + '@aws-sdk/fetch-http-handler': 3.226.0 + '@aws-sdk/hash-node': 3.226.0 + '@aws-sdk/invalid-dependency': 3.226.0 + '@aws-sdk/middleware-content-length': 3.226.0 + '@aws-sdk/middleware-endpoint': 3.226.0 + '@aws-sdk/middleware-host-header': 3.226.0 + '@aws-sdk/middleware-logger': 3.226.0 + '@aws-sdk/middleware-recursion-detection': 3.226.0 + '@aws-sdk/middleware-retry': 3.235.0 + '@aws-sdk/middleware-serde': 3.226.0 + '@aws-sdk/middleware-stack': 3.226.0 + '@aws-sdk/middleware-user-agent': 3.226.0 + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/node-http-handler': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/smithy-client': 3.234.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + '@aws-sdk/util-base64': 3.208.0 + '@aws-sdk/util-body-length-browser': 3.188.0 + '@aws-sdk/util-body-length-node': 3.208.0 + '@aws-sdk/util-defaults-mode-browser': 3.234.0 + '@aws-sdk/util-defaults-mode-node': 3.234.0 + '@aws-sdk/util-endpoints': 3.245.0 + '@aws-sdk/util-retry': 3.229.0 + '@aws-sdk/util-user-agent-browser': 3.226.0 + '@aws-sdk/util-user-agent-node': 3.226.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + '@aws-sdk/util-utf8-node': 3.208.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/client-sso/3.245.0: + resolution: {integrity: sha512-dxzRwRo55ZNQ4hQigC+cishxLSWlBrbr3iszG0FLviavLDOlnVG5UUxWpOIGvwr8pYiSfM4jnfMxiwYwiCLg1g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 2.0.0 + '@aws-crypto/sha256-js': 2.0.0 + '@aws-sdk/config-resolver': 3.234.0 + '@aws-sdk/fetch-http-handler': 3.226.0 + '@aws-sdk/hash-node': 3.226.0 + '@aws-sdk/invalid-dependency': 3.226.0 + '@aws-sdk/middleware-content-length': 3.226.0 + '@aws-sdk/middleware-endpoint': 3.226.0 + '@aws-sdk/middleware-host-header': 3.226.0 + '@aws-sdk/middleware-logger': 3.226.0 + '@aws-sdk/middleware-recursion-detection': 3.226.0 + '@aws-sdk/middleware-retry': 3.235.0 + '@aws-sdk/middleware-serde': 3.226.0 + '@aws-sdk/middleware-stack': 3.226.0 + '@aws-sdk/middleware-user-agent': 3.226.0 + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/node-http-handler': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/smithy-client': 3.234.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + '@aws-sdk/util-base64': 3.208.0 + '@aws-sdk/util-body-length-browser': 3.188.0 + '@aws-sdk/util-body-length-node': 3.208.0 + '@aws-sdk/util-defaults-mode-browser': 3.234.0 + '@aws-sdk/util-defaults-mode-node': 3.234.0 + '@aws-sdk/util-endpoints': 3.245.0 + '@aws-sdk/util-retry': 3.229.0 + '@aws-sdk/util-user-agent-browser': 3.226.0 + '@aws-sdk/util-user-agent-node': 3.226.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + '@aws-sdk/util-utf8-node': 3.208.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/client-sts/3.245.0: + resolution: {integrity: sha512-E+7v2sy34TLni/Dmz6bTU20NWvbHYH9sVUHKQ9kHhmFopUWrs4Nt77f85PbuiKJz/irjUh9ppT5q1odJNRKRVQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 2.0.0 + '@aws-crypto/sha256-js': 2.0.0 + '@aws-sdk/config-resolver': 3.234.0 + '@aws-sdk/credential-provider-node': 3.245.0 + '@aws-sdk/fetch-http-handler': 3.226.0 + '@aws-sdk/hash-node': 3.226.0 + '@aws-sdk/invalid-dependency': 3.226.0 + '@aws-sdk/middleware-content-length': 3.226.0 + '@aws-sdk/middleware-endpoint': 3.226.0 + '@aws-sdk/middleware-host-header': 3.226.0 + '@aws-sdk/middleware-logger': 3.226.0 + '@aws-sdk/middleware-recursion-detection': 3.226.0 + '@aws-sdk/middleware-retry': 3.235.0 + '@aws-sdk/middleware-sdk-sts': 3.226.0 + '@aws-sdk/middleware-serde': 3.226.0 + '@aws-sdk/middleware-signing': 3.226.0 + '@aws-sdk/middleware-stack': 3.226.0 + '@aws-sdk/middleware-user-agent': 3.226.0 + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/node-http-handler': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/smithy-client': 3.234.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + '@aws-sdk/util-base64': 3.208.0 + '@aws-sdk/util-body-length-browser': 3.188.0 + '@aws-sdk/util-body-length-node': 3.208.0 + '@aws-sdk/util-defaults-mode-browser': 3.234.0 + '@aws-sdk/util-defaults-mode-node': 3.234.0 + '@aws-sdk/util-endpoints': 3.245.0 + '@aws-sdk/util-retry': 3.229.0 + '@aws-sdk/util-user-agent-browser': 3.226.0 + '@aws-sdk/util-user-agent-node': 3.226.0 + '@aws-sdk/util-utf8-browser': 3.188.0 + '@aws-sdk/util-utf8-node': 3.208.0 + fast-xml-parser: 4.0.11 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/config-resolver/3.234.0: + resolution: {integrity: sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/signature-v4': 3.226.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-config-provider': 3.208.0 + '@aws-sdk/util-middleware': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/credential-provider-cognito-identity/3.245.0: + resolution: {integrity: sha512-DkiPv7Yb9iw3yAzvWUAkXrI23F1+kV8grdXzlSzob5suqv/dVON5pFXK9Siz62WwWsa2FeCEpgEF7RA0mrWLtA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-cognito-identity': 3.245.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/credential-provider-env/3.226.0: + resolution: {integrity: sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/credential-provider-imds/3.226.0: + resolution: {integrity: sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/credential-provider-ini/3.245.0: + resolution: {integrity: sha512-1SjfVc5Wg0lLRUvwMrfjGgFkl+zfxn74gnkPr6by1QyMAoTzmeUkalPLAIqd+uHtFom9e3K633BQtX7zVPZ5XQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.226.0 + '@aws-sdk/credential-provider-imds': 3.226.0 + '@aws-sdk/credential-provider-process': 3.226.0 + '@aws-sdk/credential-provider-sso': 3.245.0 + '@aws-sdk/credential-provider-web-identity': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/credential-provider-node/3.245.0: + resolution: {integrity: sha512-Dwv8zmRLTDLeEkGrK/sLNFZSC+ahXZxr07CuID054QKACIdUEvkqYlnalRiTeXngiHGQ54u8wU7f0D32R2oL0g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.226.0 + '@aws-sdk/credential-provider-imds': 3.226.0 + '@aws-sdk/credential-provider-ini': 3.245.0 + '@aws-sdk/credential-provider-process': 3.226.0 + '@aws-sdk/credential-provider-sso': 3.245.0 + '@aws-sdk/credential-provider-web-identity': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/credential-provider-process/3.226.0: + resolution: {integrity: sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/credential-provider-sso/3.245.0: + resolution: {integrity: sha512-txWrJc0WNBhXMi7q+twjx7cs/qzgTfbQ+vbag5idRmdoUeiR8rfLvihCab2NaGg50xhh+TaoUCXrgJp3E/XjYQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso': 3.245.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/token-providers': 3.245.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/credential-provider-web-identity/3.226.0: + resolution: {integrity: sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/credential-providers/3.245.0: + resolution: {integrity: sha512-6Uhsxk6MOuWplejhPJf7XDhegHmcZfj8hwnF4mXFJ6u4b2RxWPQCnqPcA0+VoAzIMUqbjqvkSzmVjQelGFtjNg==} + engines: {node: '>=14.0.0'} + requiresBuild: true + dependencies: + '@aws-sdk/client-cognito-identity': 3.245.0 + '@aws-sdk/client-sso': 3.245.0 + '@aws-sdk/client-sts': 3.245.0 + '@aws-sdk/credential-provider-cognito-identity': 3.245.0 + '@aws-sdk/credential-provider-env': 3.226.0 + '@aws-sdk/credential-provider-imds': 3.226.0 + '@aws-sdk/credential-provider-ini': 3.245.0 + '@aws-sdk/credential-provider-node': 3.245.0 + '@aws-sdk/credential-provider-process': 3.226.0 + '@aws-sdk/credential-provider-sso': 3.245.0 + '@aws-sdk/credential-provider-web-identity': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/fetch-http-handler/3.226.0: + resolution: {integrity: sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/querystring-builder': 3.226.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-base64': 3.208.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/hash-node/3.226.0: + resolution: {integrity: sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-buffer-from': 3.208.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/invalid-dependency/3.226.0: + resolution: {integrity: sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/is-array-buffer/3.201.0: + resolution: {integrity: sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-content-length/3.226.0: + resolution: {integrity: sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-endpoint/3.226.0: + resolution: {integrity: sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-serde': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/signature-v4': 3.226.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/url-parser': 3.226.0 + '@aws-sdk/util-config-provider': 3.208.0 + '@aws-sdk/util-middleware': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-host-header/3.226.0: + resolution: {integrity: sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-logger/3.226.0: + resolution: {integrity: sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-recursion-detection/3.226.0: + resolution: {integrity: sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-retry/3.235.0: + resolution: {integrity: sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/service-error-classification': 3.229.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-middleware': 3.226.0 + '@aws-sdk/util-retry': 3.229.0 + tslib: 2.4.1 + uuid: 8.3.2 + dev: false + optional: true + + /@aws-sdk/middleware-sdk-sts/3.226.0: + resolution: {integrity: sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-signing': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/signature-v4': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-serde/3.226.0: + resolution: {integrity: sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-signing/3.226.0: + resolution: {integrity: sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/signature-v4': 3.226.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-middleware': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-stack/3.226.0: + resolution: {integrity: sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/middleware-user-agent/3.226.0: + resolution: {integrity: sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/node-config-provider/3.226.0: + resolution: {integrity: sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/node-http-handler/3.226.0: + resolution: {integrity: sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/abort-controller': 3.226.0 + '@aws-sdk/protocol-http': 3.226.0 + '@aws-sdk/querystring-builder': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/property-provider/3.226.0: + resolution: {integrity: sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/protocol-http/3.226.0: + resolution: {integrity: sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/querystring-builder/3.226.0: + resolution: {integrity: sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-uri-escape': 3.201.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/querystring-parser/3.226.0: + resolution: {integrity: sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/service-error-classification/3.229.0: + resolution: {integrity: sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==} + engines: {node: '>=14.0.0'} + dev: false + optional: true + + /@aws-sdk/shared-ini-file-loader/3.226.0: + resolution: {integrity: sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/signature-v4/3.226.0: + resolution: {integrity: sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/is-array-buffer': 3.201.0 + '@aws-sdk/types': 3.226.0 + '@aws-sdk/util-hex-encoding': 3.201.0 + '@aws-sdk/util-middleware': 3.226.0 + '@aws-sdk/util-uri-escape': 3.201.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/smithy-client/3.234.0: + resolution: {integrity: sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-stack': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/token-providers/3.245.0: + resolution: {integrity: sha512-m/spXR/vEXGb+zMqRUMQYVMwFZSTdK5RkddYqamYkNhIoLm60EYeRu57JsMMs5djKi8dBRSKiXwVHx0l2rXMjg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso-oidc': 3.245.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/shared-ini-file-loader': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + transitivePeerDependencies: + - aws-crt + dev: false + optional: true + + /@aws-sdk/types/3.226.0: + resolution: {integrity: sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/url-parser/3.226.0: + resolution: {integrity: sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==} + dependencies: + '@aws-sdk/querystring-parser': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-base64/3.208.0: + resolution: {integrity: sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/util-buffer-from': 3.208.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-body-length-browser/3.188.0: + resolution: {integrity: sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-body-length-node/3.208.0: + resolution: {integrity: sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-buffer-from/3.208.0: + resolution: {integrity: sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/is-array-buffer': 3.201.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-config-provider/3.208.0: + resolution: {integrity: sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-defaults-mode-browser/3.234.0: + resolution: {integrity: sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + bowser: 2.11.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-defaults-mode-node/3.234.0: + resolution: {integrity: sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/config-resolver': 3.234.0 + '@aws-sdk/credential-provider-imds': 3.226.0 + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/property-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-endpoints/3.245.0: + resolution: {integrity: sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-hex-encoding/3.201.0: + resolution: {integrity: sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-locate-window/3.208.0: + resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-middleware/3.226.0: + resolution: {integrity: sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-retry/3.229.0: + resolution: {integrity: sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==} + engines: {node: '>= 14.0.0'} + dependencies: + '@aws-sdk/service-error-classification': 3.229.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-uri-escape/3.201.0: + resolution: {integrity: sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-user-agent-browser/3.226.0: + resolution: {integrity: sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==} + dependencies: + '@aws-sdk/types': 3.226.0 + bowser: 2.11.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-user-agent-node/3.226.0: + resolution: {integrity: sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==} + engines: {node: '>=14.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + dependencies: + '@aws-sdk/node-config-provider': 3.226.0 + '@aws-sdk/types': 3.226.0 + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-utf8-browser/3.188.0: + resolution: {integrity: sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==} + dependencies: + tslib: 2.4.1 + dev: false + optional: true + + /@aws-sdk/util-utf8-node/3.208.0: + resolution: {integrity: sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/util-buffer-from': 3.208.0 + tslib: 2.4.1 + dev: false + optional: true + /@esbuild/android-arm/0.16.12: resolution: {integrity: sha512-CTWgMJtpCyCltrvipZrrcjjRu+rzm6pf9V8muCsJqtKujR3kPmU4ffbckvugNNaRmhxAF1ZI3J+0FUIFLFg8KA==} engines: {node: '>=12'} @@ -571,7 +1386,6 @@ packages: /@types/node/18.11.18: resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} - dev: true /@types/pug/2.0.6: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} @@ -597,6 +1411,17 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true + /@types/webidl-conversions/7.0.0: + resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} + dev: false + + /@types/whatwg-url/8.2.2: + resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} + dependencies: + '@types/node': 18.11.18 + '@types/webidl-conversions': 7.0.0 + dev: false + /@unocss/astro/0.48.0_vite@4.0.3: resolution: {integrity: sha512-MoINkgukO6YxVVEmEsY0oLWqU+Fv/dzPtUQhfsfek1mqtUbnwQ3n1xuOJ2S0eJSYmbprSuhvW/yTFVn1twsM1A==} dependencies: @@ -784,11 +1609,20 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true + /bowser/2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + dev: false + optional: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -809,13 +1643,22 @@ packages: fill-range: 7.0.1 dev: true + /bson/4.7.1: + resolution: {integrity: sha512-XkuFtlCzi0WSy8D6PMhvrQ/q8VlZHN/2bJ/shJglwuA6TPD2ZP/hHLB7iDxOEWVINHN/UVTxP4pqZqOKMXPIXg==} + engines: {node: '>=6.9.0'} + dependencies: + buffer: 5.7.1 + dev: false + /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true - /buffer-writer/2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 dev: false /builtin-modules/3.3.0: @@ -856,6 +1699,7 @@ packages: /colorette/2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -864,11 +1708,6 @@ packages: delayed-stream: 1.0.0 dev: true - /commander/9.4.1: - resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} - engines: {node: ^12.20.0 || >=14} - dev: false - /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -1025,11 +1864,6 @@ packages: '@esbuild/win32-ia32': 0.16.12 '@esbuild/win32-x64': 0.16.12 - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: false - /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1038,11 +1872,6 @@ packages: /esm-env/1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - /esm/3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} - dev: false - /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true @@ -1073,6 +1902,14 @@ packages: micromatch: 4.0.5 dev: true + /fast-xml-parser/4.0.11: + resolution: {integrity: sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + optional: true + /fastq/1.14.0: resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} dependencies: @@ -1136,20 +1973,11 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: false - /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /getopts/2.3.0: - resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} - dev: false - /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1216,6 +2044,10 @@ packages: engines: {node: '>=10.17.0'} dev: true + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false + /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -1235,9 +2067,8 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /interpret/2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} + /ip/2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: false /is-binary-path/2.1.0: @@ -1323,53 +2154,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - /knex/2.4.0_pg@8.8.0: - resolution: {integrity: sha512-i0GWwqYp1Hs2yvc2rlDO6nzzkLhwdyOZKRdsMTB8ZxOs2IXQyL5rBjSbS1krowCh6V65T4X9CJaKtuIfkaPGSA==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - better-sqlite3: '*' - mysql: '*' - mysql2: '*' - pg: '*' - pg-native: '*' - sqlite3: '*' - tedious: '*' - peerDependenciesMeta: - better-sqlite3: - optional: true - mysql: - optional: true - mysql2: - optional: true - pg: - optional: true - pg-native: - optional: true - sqlite3: - optional: true - tedious: - optional: true - dependencies: - colorette: 2.0.19 - commander: 9.4.1 - debug: 4.3.4 - escalade: 3.1.1 - esm: 3.2.25 - get-package-type: 0.1.0 - getopts: 2.3.0 - interpret: 2.2.0 - lodash: 4.17.21 - pg: 8.8.0 - pg-connection-string: 2.5.0 - rechoir: 0.8.0 - resolve-from: 5.0.0 - tarn: 3.0.2 - tildify: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: false - /kolorist/1.6.0: resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} dev: true @@ -1386,10 +2170,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - /magic-string/0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} @@ -1418,6 +2198,11 @@ packages: vfile-message: 2.0.4 dev: true + /memory-pager/1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + dev: false + optional: true + /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -1486,6 +2271,27 @@ packages: minimist: 1.2.7 dev: true + /mongodb-connection-string-url/2.6.0: + resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} + dependencies: + '@types/whatwg-url': 8.2.2 + whatwg-url: 11.0.0 + dev: false + + /mongodb/4.13.0: + resolution: {integrity: sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==} + engines: {node: '>=12.9.0'} + dependencies: + bson: 4.7.1 + mongodb-connection-string-url: 2.6.0 + socks: 2.7.1 + optionalDependencies: + '@aws-sdk/credential-providers': 3.245.0 + saslprep: 1.0.3 + transitivePeerDependencies: + - aws-crt + dev: false + /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -1574,10 +2380,6 @@ packages: p-limit: 3.1.0 dev: true - /packet-reader/1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - dev: false - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1615,62 +2417,6 @@ packages: resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} dev: true - /pg-connection-string/2.5.0: - resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} - dev: false - - /pg-int8/1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - dev: false - - /pg-pool/3.5.2_pg@8.8.0: - resolution: {integrity: sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==} - peerDependencies: - pg: '>=8.0' - dependencies: - pg: 8.8.0 - dev: false - - /pg-protocol/1.5.0: - resolution: {integrity: sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==} - dev: false - - /pg-types/2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - dev: false - - /pg/8.8.0: - resolution: {integrity: sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.5.0 - pg-pool: 3.5.2_pg@8.8.0 - pg-protocol: 1.5.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - dev: false - - /pgpass/1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - dependencies: - split2: 4.1.0 - dev: false - /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -1687,28 +2433,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /postgres-array/2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - dev: false - - /postgres-bytea/1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-date/1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-interval/1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - dependencies: - xtend: 4.0.2 - dev: false - /preact-render-to-string/5.2.3_preact@10.11.3: resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} peerDependencies: @@ -1755,6 +2479,11 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true + /punycode/2.2.0: + resolution: {integrity: sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==} + engines: {node: '>=6'} + dev: false + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -1766,23 +2495,11 @@ packages: picomatch: 2.3.1 dev: true - /rechoir/0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - dependencies: - resolve: 1.22.1 - dev: false - /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: false - /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -1842,6 +2559,15 @@ packages: postcss: 8.4.20 dev: true + /saslprep/1.0.3: + resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + sparse-bitfield: 3.0.3 + dev: false + optional: true + /schema-dts/0.8.3_typescript@4.9.4: resolution: {integrity: sha512-GSLeVkUgEe8DzS8/FGWou1wlC8tQ1KXA5amCqCIH/psUzF74fWswtT0QFlSoJLT08CYyixnc3S/lkAm+RExoLQ==} peerDependencies: @@ -1877,6 +2603,19 @@ packages: mrmime: 1.0.1 totalist: 3.0.0 + /smart-buffer/4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: false + + /socks/2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: false + /sorcery/0.10.0: resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} hasBin: true @@ -1896,10 +2635,12 @@ packages: deprecated: Please use @jridgewell/sourcemap-codec instead dev: true - /split2/4.1.0: - resolution: {integrity: sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==} - engines: {node: '>= 10.x'} + /sparse-bitfield/3.0.3: + resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + dependencies: + memory-pager: 1.5.0 dev: false + optional: true /streamsearch/1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -1917,6 +2658,11 @@ packages: min-indent: 1.0.1 dev: true + /strnum/1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + optional: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2028,16 +2774,6 @@ packages: resolution: {integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==} engines: {node: '>= 8'} - /tarn/3.0.2: - resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} - engines: {node: '>=8.0.0'} - dev: false - - /tildify/2.0.0: - resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} - engines: {node: '>=8'} - dev: false - /tiny-glob/0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: @@ -2059,9 +2795,20 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.2.0 + dev: false + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + optional: true + /tslib/2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - dev: true /typescript/4.9.4: resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} @@ -2125,6 +2872,12 @@ packages: - vite dev: true + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + optional: true + /vfile-message/2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} dependencies: @@ -2178,6 +2931,19 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: false + + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: false + /whatwg-url/5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -2197,11 +2963,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} diff --git a/src/lib/server/db.ts b/src/lib/server/db.ts index 4c240ba..3a3685b 100644 --- a/src/lib/server/db.ts +++ b/src/lib/server/db.ts @@ -1,31 +1,14 @@ -import knex from "knex"; -import type { Knex } from "knex"; import { env } from "$env/dynamic/private"; import { building } from "$app/environment"; +import { MongoClient } from "mongodb"; +import type { Db } from "mongodb"; -export let db: Knex; +export let db: Db; if (!building) { - db = knex({ - client: "pg", - connection: { - host: String(env.DB_HOST), - port: Number(env.DB_PORT), - user: String(env.DB_USERNAME), - password: String(env.DB_PASSWORD), - database: "website" - } - }) + const client = new MongoClient(env.DB_URL); - if (! await db.schema.hasTable("Announcements")) { - await db.schema.createTable("Announcements", (table) => { - table.increments("id"); - table.specificType("title", "varchar").notNullable(); - table.string("severity").notNullable(); - table.string("author").notNullable(); - table.string("link").nullable(); - table.bigInteger("created").notNullable(); - table.timestamps(true, true, true); - }); - } + await client.connect(); + + db = client.db("website"); } \ No newline at end of file diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 46e8bb5..fb1e3a5 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -5,7 +5,9 @@ import { db } from "$lib/server/db"; export const load: PageServerLoad = async () => { - const data = await db("Announcements").select("*"); + const collection = db.collection("announcements"); + + const data = await collection.find({}, { projection: { _id: 0 } }).toArray(); if (data.length !== 0 || data[0] !== undefined) { diff --git a/src/routes/admin/announcements/+page.server.ts b/src/routes/admin/announcements/+page.server.ts index 938e9ea..7eb794d 100644 --- a/src/routes/admin/announcements/+page.server.ts +++ b/src/routes/admin/announcements/+page.server.ts @@ -4,6 +4,8 @@ import { fail } from "@sveltejs/kit"; import { db } from "$lib/server/db"; import dayjs from "dayjs"; +const collection = db.collection("announcements"); + export const actions: Actions = { add: async ({ request, locals }) => { if (!await locals.getSession()) { @@ -24,14 +26,12 @@ export const actions: Actions = { const now = Math.floor(Date.now() / 1000); const data = { ...Object.fromEntries(formData.entries()), - created: now, - createdAt: dayjs.unix(now).toISOString(), - updatedAt: dayjs.unix(now).toISOString() + created: now }; - - await db.delete("*").from("Announcements"); + + await collection.deleteMany({}); - await db("Announcements").insert(data); + await collection.insertOne(data); return { addSuccess: true, addMessage: "Your announcement has been posted." }; } @@ -43,7 +43,7 @@ export const actions: Actions = { return fail(401, { deleteError: true, deleteMessage: "You must be logged in to delete an announcement." }); } else { - await db.delete("*").from("Announcements"); + await collection.deleteMany({}); return { deleteSuccess: true, deleteMessage: "Your announcement has been deleted." }; }