Change form fields to array

This commit is contained in:
Nicolas Meienberger 2022-06-19 10:26:24 +02:00
parent 16f3e3313d
commit ac712013da
46 changed files with 507 additions and 408 deletions

View File

@ -12,5 +12,5 @@
"requirements": {
"ports": [53]
},
"form_fields": {}
"form_fields": []
}

View File

@ -10,21 +10,21 @@
"requirements": {
"ports": [25]
},
"form_fields": {
"username": {
"form_fields": [
{
"type": "text",
"label": "Username",
"required": true,
"env_variable": "ANONADDY_USERNAME"
},
"key": {
{
"type": "text",
"label": "App key",
"hint": "Application key for encrypter service. Generate one with : echo \"base64:$(openssl rand -base64 32)\"",
"required": true,
"env_variable": "ANONADDY_KEY"
},
"domain": {
{
"type": "fqdn",
"label": "Your email domain (eg. example.com)",
"max": 50,
@ -32,7 +32,7 @@
"required": true,
"env_variable": "ANONADDY_DOMAIN"
},
"secret": {
{
"type": "text",
"label": "App secret",
"hint": "Long random string used when hashing data for the anonymous replies",
@ -41,5 +41,5 @@
"required": true,
"env_variable": "ANONADDY_SECRET"
}
}
]
}

View File

@ -9,5 +9,5 @@
"author": "https://github.com/janeczku/",
"source": "https://github.com/janeczku/calibre-web",
"image": "/logos/apps/calibre-web.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,8 +9,8 @@
"author": "https://github.com/coder",
"source": "https://github.com/linuxserver/docker-code-server",
"image": "https://avatars.githubusercontent.com/u/95932066",
"form_fields": {
"password": {
"form_fields": [
{
"type": "password",
"label": "Password",
"max": 50,
@ -18,5 +18,5 @@
"required": true,
"env_variable": "CODESERVER_PASSWORD"
}
}
]
}

View File

@ -10,5 +10,5 @@
"website": "https://filebrowser.org/",
"source": "https://github.com/filebrowser/filebrowser",
"image": "/logos/apps/filebrowser.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -8,5 +8,5 @@
"author": "FileRun, LDA - Portugal",
"source": "https://www.filerun.com/",
"image": "https://avatars.githubusercontent.com/u/6422152?v=4",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "https://freshrss.org/",
"source": "https://github.com/FreshRSS/FreshRSS",
"image": "/logos/apps/freshrss.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "go-gitea",
"source": "https://github.com/go-gitea/gitea",
"image": "/logos/apps/gitea.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -10,5 +10,5 @@
"source": "https://github.com/ajnart/homarr",
"website": "https://discord.gg/C2WTXkzkwK",
"image": "/logos/apps/homarr.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "ArneNaessens",
"source": "https://github.com/home-assistant/core",
"image": "/logos/apps/homeassistant.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "iv-org",
"source": "https://github.com/iv-org/invidious",
"image": "https://raw.githubusercontent.com/iv-org/invidious/master/assets/invidious-colored-vector.svg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "",
"source": "https://github.com/Jackett/Jackett",
"image": "/logos/apps/jackett.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "jellyfin.org",
"source": "https://github.com/jellyfin/jellyfin",
"image": "https://avatars.githubusercontent.com/u/45698031?s=200&v=4",
"form_fields": {}
"form_fields": []
}

View File

@ -10,5 +10,5 @@
"source": "https://github.com/laurent22/joplin",
"website": "https://joplinapp.org",
"image": "/logos/apps/joplin.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "spikecodes",
"source": "https://github.com/spikecodes/libreddit",
"image": "/logos/apps/libreddit.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"categories": [],
"source": "https://github.com/hay-kot/mealie",
"image": "https://raw.githubusercontent.com/hay-kot/mealie/mealie-next/frontend/static/icons/android-chrome-512x512.png",
"form_fields": {}
"form_fields": []
}

View File

@ -10,5 +10,5 @@
"source": "https://github.com/n8n-io/n8n",
"website": "https://n8n.io/",
"image": "/logos/apps/n8n.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,8 +9,8 @@
"author": "Nextcloud GmbH",
"source": "https://github.com/nextcloud/server",
"image": "https://avatars.githubusercontent.com/u/19211038?s=200&v=4",
"form_fields": {
"username": {
"form_fields": [
{
"type": "text",
"label": "Username",
"max": 50,
@ -18,7 +18,7 @@
"required": true,
"env_variable": "NEXTCLOUD_ADMIN_USER"
},
"password": {
{
"type": "password",
"label": "Password",
"max": 50,
@ -26,5 +26,5 @@
"required": true,
"env_variable": "NEXTCLOUD_ADMIN_PASSWORD"
}
}
]
}

View File

@ -9,5 +9,5 @@
"author": "zedeus",
"source": "https://github.com/zedeus/nitter",
"image": "/logos/apps/nitter.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "node-red",
"source": "https://github.com/node-red/node-red",
"image": "https://avatars.githubusercontent.com/u/5375661?s=200&v=4",
"form_fields": {}
"form_fields": []
}

View File

@ -9,8 +9,8 @@
"author": "PhotoPrism",
"source": "https://github.com/photoprism/photoprism",
"image": "/logos/apps/photoprism.jpg",
"form_fields": {
"password": {
"form_fields": [
{
"type": "password",
"label": "Photoprism admin password",
"max": 50,
@ -18,5 +18,5 @@
"required": true,
"env_variable": "PHOTOPRISM_ADMIN_PASSWORD"
}
}
]
}

View File

@ -12,8 +12,8 @@
"author": "pi-hole.net",
"source": "https://github.com/pi-hole/pi-hole",
"image": "/logos/apps/pihole.jpg",
"form_fields": {
"password": {
"form_fields": [
{
"type": "password",
"label": "Password",
"max": 50,
@ -21,5 +21,5 @@
"required": true,
"env_variable": "APP_PASSWORD"
}
}
]
}

View File

@ -10,5 +10,5 @@
"author": "plexinc",
"source": "https://github.com/plexinc/pms-docker",
"image": "/logos/apps/plex.png",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "Prowlarr",
"source": "https://github.com/Prowlarr/Prowlarr/",
"image": "/logos/apps/prowlarr.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "radarr.video",
"source": "https://github.com/Radarr/Radarr",
"image": "/logos/apps/radarr.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "Resilio, Inc.",
"source": "https://github.com/bt-sync",
"image": "/logos/apps/resilio-sync.png",
"form_fields": {}
"form_fields": []
}

View File

@ -7,5 +7,5 @@
"author": "",
"source": "https://github.com/boypt/simple-torrent",
"image": "https://getumbrel.github.io/umbrel-apps-gallery/simple-torrent/icon.svg",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "sonarr.tv",
"source": "https://github.com/Sonarr/Sonarr",
"image": "/logos/apps/sonarr.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -10,5 +10,5 @@
"source": "https://github.com/syncthing",
"website": "https://syncthing.net",
"image": "/logos/apps/syncthing.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -10,5 +10,5 @@
"source": "https://github.com/tailscale/tailscale",
"website": "https://tailscale.com/",
"image": "https://avatars.githubusercontent.com/u/48932923?s=200&v=4",
"form_fields": {}
"form_fields": []
}

View File

@ -9,5 +9,5 @@
"author": "JonnyWong16",
"source": "https://github.com/Tautulli/Tautulli",
"image": "/logos/apps/tautulli.jpg",
"form_fields": {}
"form_fields": []
}

View File

@ -12,8 +12,8 @@
"author": "Transmission Project",
"source": "https://github.com/transmission/transmission",
"image": "https://avatars.githubusercontent.com/u/223312?s=200&v=4",
"form_fields": {
"username": {
"form_fields": [
{
"type": "text",
"label": "Username",
"max": 50,
@ -21,7 +21,7 @@
"required": true,
"env_variable": "TRANSMISSION_USERNAME"
},
"password": {
{
"type": "password",
"label": "Password",
"max": 50,
@ -29,5 +29,5 @@
"required": true,
"env_variable": "TRANSMISSION_PASSWORD"
}
}
]
}

View File

@ -1,29 +1,28 @@
{
"name": "TTYD - Web terminal",
"port": 8092,
"id": "ttyd",
"description": "",
"short_desc": "A utility that allows you to access a command line from your web browser",
"author": "",
"source": "",
"image": "",
"form_fields": {
"username": {
"type": "text",
"label": "Username",
"max": 50,
"min": 3,
"required": true,
"env_variable": "TRANSMISSION_USERNAME"
},
"password": {
"type": "password",
"label": "Password",
"max": 50,
"min": 3,
"required": true,
"env_variable": "TRANSMISSION_PASSWORD"
}
"name": "TTYD - Web terminal",
"port": 8092,
"id": "ttyd",
"description": "",
"short_desc": "A utility that allows you to access a command line from your web browser",
"author": "",
"source": "",
"image": "",
"form_fields": [
{
"type": "text",
"label": "Username",
"max": 50,
"min": 3,
"required": true,
"env_variable": "TRANSMISSION_USERNAME"
},
{
"type": "password",
"label": "Password",
"max": 50,
"min": 3,
"required": true,
"env_variable": "TRANSMISSION_PASSWORD"
}
}
]
}

View File

@ -9,8 +9,8 @@
"author": "Daniel García",
"source": "https://github.com/dani-garcia/vaultwarden",
"image": "/logos/apps/vaultwarden.jpg",
"form_fields": {
"admin_password": {
"form_fields": [
{
"type": "password",
"label": "Admin Panel Password",
"max": 50,
@ -18,5 +18,5 @@
"required": true,
"env_variable": "VAULTWARDEN_ADMIN_PASSWORD"
}
}
]
}

View File

@ -12,14 +12,14 @@
"author": "WeeJeWel",
"source": "https://github.com/WeeJeWel/wg-easy/",
"image": "/logos/apps/wireguard.jpg",
"form_fields": {
"host": {
"form_fields": [
{
"type": "fqdnip",
"label": "Your public IP address or domain name",
"required": true,
"env_variable": "WIREGUARD_HOST"
},
"password": {
{
"type": "password",
"label": "Password",
"max": 50,
@ -27,11 +27,11 @@
"required": true,
"env_variable": "WIREGUARD_PASSWORD"
},
"dns": {
{
"type": "ip",
"label": "Default DNS server",
"required": false,
"env_variable": "WIREGUARD_DNS"
}
}
]
}

View File

@ -15,15 +15,6 @@ services:
networks:
- tipi_main_network
redis:
container_name: redis
image: redis:latest
restart: on-failure
volumes:
- ./data/redis:/data
networks:
- tipi_main_network
api:
build:
context: .
@ -31,7 +22,6 @@ services:
command: bash -c "cd /api && npm run dev"
depends_on:
- postgres
- redis
container_name: api
ports:
- 3001:3001

View File

@ -16,7 +16,6 @@
"axios": "^0.26.1",
"class-validator": "^0.13.2",
"compression": "^1.7.4",
"connect-redis": "^6.1.3",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dotenv": "^16.0.0",
@ -36,8 +35,8 @@
"passport-http-bearer": "^1.0.1",
"pg": "^8.7.3",
"public-ip": "^5.0.0",
"redis": "^4.1.0",
"reflect-metadata": "^0.1.13",
"session-file-store": "^1.5.0",
"systeminformation": "^5.11.9",
"tcp-port-used": "^1.0.2",
"type-graphql": "^1.1.1",
@ -46,7 +45,6 @@
},
"devDependencies": {
"@types/compression": "^1.7.2",
"@types/connect-redis": "^0.0.18",
"@types/cookie-parser": "^1.4.3",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
@ -56,6 +54,7 @@
"@types/mock-fs": "^4.13.1",
"@types/passport": "^1.0.7",
"@types/passport-http-bearer": "^1.0.37",
"@types/session-file-store": "^1.2.2",
"@types/tcp-port-used": "^1.0.1",
"@types/validator": "^13.7.2",
"@typescript-eslint/eslint-plugin": "^5.18.0",
@ -1420,6 +1419,8 @@
"node_modules/@redis/bloom": {
"version": "1.0.2",
"license": "MIT",
"optional": true,
"peer": true,
"peerDependencies": {
"@redis/client": "^1.0.0"
}
@ -1427,6 +1428,8 @@
"node_modules/@redis/client": {
"version": "1.1.0",
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"cluster-key-slot": "1.1.0",
"generic-pool": "3.8.2",
@ -1439,6 +1442,8 @@
"node_modules/@redis/graph": {
"version": "1.0.1",
"license": "MIT",
"optional": true,
"peer": true,
"peerDependencies": {
"@redis/client": "^1.0.0"
}
@ -1446,6 +1451,8 @@
"node_modules/@redis/json": {
"version": "1.0.3",
"license": "MIT",
"optional": true,
"peer": true,
"peerDependencies": {
"@redis/client": "^1.0.0"
}
@ -1453,6 +1460,8 @@
"node_modules/@redis/search": {
"version": "1.0.6",
"license": "MIT",
"optional": true,
"peer": true,
"peerDependencies": {
"@redis/client": "^1.0.0"
}
@ -1460,6 +1469,8 @@
"node_modules/@redis/time-series": {
"version": "1.0.3",
"license": "MIT",
"optional": true,
"peer": true,
"peerDependencies": {
"@redis/client": "^1.0.0"
}
@ -1590,17 +1601,6 @@
"@types/node": "*"
}
},
"node_modules/@types/connect-redis": {
"version": "0.0.18",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/express": "*",
"@types/express-session": "*",
"@types/ioredis": "*",
"@types/redis": "^2.8.0"
}
},
"node_modules/@types/content-disposition": {
"version": "0.5.5",
"dev": true,
@ -1686,14 +1686,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/ioredis": {
"version": "4.28.10",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
"dev": true,
@ -1836,14 +1828,6 @@
"version": "1.2.4",
"license": "MIT"
},
"node_modules/@types/redis": {
"version": "2.8.32",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/responselike": {
"version": "1.0.0",
"license": "MIT",
@ -1863,6 +1847,16 @@
"@types/node": "*"
}
},
"node_modules/@types/session-file-store": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@types/session-file-store/-/session-file-store-1.2.2.tgz",
"integrity": "sha512-l9yZ+PQ8vaXhch03MrV+25BIbhKpeWfZB++3njPIm6lKeDGRS2qF2elLuVa4XrhfJbObqW0puhB3A6FCbkraZg==",
"dev": true,
"dependencies": {
"@types/express": "*",
"@types/express-session": "*"
}
},
"node_modules/@types/stack-utils": {
"version": "2.0.1",
"dev": true,
@ -2406,6 +2400,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/asn1.js": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
"integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"dependencies": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0",
"safer-buffer": "^2.1.0"
}
},
"node_modules/async": {
"version": "3.2.4",
"license": "MIT"
@ -2510,6 +2515,11 @@
"@babel/core": "^7.0.0"
}
},
"node_modules/bagpipe": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz",
"integrity": "sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g=="
},
"node_modules/balanced-match": {
"version": "1.0.2",
"license": "MIT"
@ -2540,6 +2550,11 @@
"node": ">=8"
}
},
"node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/body-parser": {
"version": "1.20.0",
"license": "MIT",
@ -2704,8 +2719,7 @@
},
"node_modules/buffer-writer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
"license": "MIT",
"engines": {
"node": ">=4"
}
@ -2975,6 +2989,8 @@
"node_modules/cluster-key-slot": {
"version": "1.1.0",
"license": "APACHE-2.0",
"optional": true,
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@ -3166,13 +3182,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/connect-redis": {
"version": "6.1.3",
"license": "MIT",
"engines": {
"node": ">=12"
}
},
"node_modules/console-control-strings": {
"version": "1.1.0",
"license": "ISC"
@ -4466,6 +4475,19 @@
"node": ">= 0.6"
}
},
"node_modules/fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
},
"engines": {
"node": ">=6 <7 || >=8"
}
},
"node_modules/fs-minipass": {
"version": "2.1.0",
"license": "ISC",
@ -4535,6 +4557,8 @@
"node_modules/generic-pool": {
"version": "3.8.2",
"license": "MIT",
"optional": true,
"peer": true,
"engines": {
"node": ">= 4"
}
@ -4702,7 +4726,6 @@
},
"node_modules/graceful-fs": {
"version": "4.2.10",
"dev": true,
"license": "ISC"
},
"node_modules/graphql": {
@ -4970,7 +4993,6 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.8.19"
@ -5318,7 +5340,6 @@
},
"node_modules/is-typedarray": {
"version": "1.0.0",
"dev": true,
"license": "MIT"
},
"node_modules/is-url": {
@ -6308,6 +6329,14 @@
"node": ">=6"
}
},
"node_modules/jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/jsonwebtoken": {
"version": "8.5.1",
"license": "MIT",
@ -6371,6 +6400,17 @@
"node": ">=6"
}
},
"node_modules/kruptein": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz",
"integrity": "sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==",
"dependencies": {
"asn1.js": "^5.4.1"
},
"engines": {
"node": ">6"
}
},
"node_modules/kuler": {
"version": "2.0.0",
"license": "MIT"
@ -6640,6 +6680,11 @@
"node": ">=4"
}
},
"node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"node_modules/minimatch": {
"version": "3.1.2",
"license": "ISC",
@ -7255,8 +7300,7 @@
},
"node_modules/packet-reader": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
"license": "MIT"
},
"node_modules/parent-module": {
"version": "1.0.1",
@ -7392,8 +7436,7 @@
},
"node_modules/pg": {
"version": "8.7.3",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
"integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
"license": "MIT",
"dependencies": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
@ -7417,34 +7460,29 @@
},
"node_modules/pg-connection-string": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
"license": "MIT"
},
"node_modules/pg-int8": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
"license": "ISC",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/pg-pool": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
"integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
"license": "MIT",
"peerDependencies": {
"pg": ">=8.0"
}
},
"node_modules/pg-protocol": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
"license": "MIT"
},
"node_modules/pg-types": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
"license": "MIT",
"dependencies": {
"pg-int8": "1.0.1",
"postgres-array": "~2.0.0",
@ -7458,8 +7496,7 @@
},
"node_modules/pgpass": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
"integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
"license": "MIT",
"dependencies": {
"split2": "^4.1.0"
}
@ -7565,32 +7602,28 @@
},
"node_modules/postgres-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/postgres-bytea": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
"integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/postgres-date": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/postgres-interval": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
"license": "MIT",
"dependencies": {
"xtend": "^4.0.0"
},
@ -7860,6 +7893,8 @@
"node_modules/redis": {
"version": "4.1.0",
"license": "MIT",
"optional": true,
"peer": true,
"workspaces": [
"./packages/*"
],
@ -8161,6 +8196,41 @@
"node": ">= 0.8.0"
}
},
"node_modules/session-file-store": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz",
"integrity": "sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==",
"dependencies": {
"bagpipe": "^0.3.5",
"fs-extra": "^8.0.1",
"kruptein": "^2.0.4",
"object-assign": "^4.1.1",
"retry": "^0.12.0",
"write-file-atomic": "3.0.3"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/session-file-store/node_modules/retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"engines": {
"node": ">= 4"
}
},
"node_modules/session-file-store/node_modules/write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
"integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dependencies": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
"signal-exit": "^3.0.2",
"typedarray-to-buffer": "^3.1.5"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"license": "ISC"
@ -8266,8 +8336,7 @@
},
"node_modules/split2": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
"integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==",
"license": "ISC",
"engines": {
"node": ">= 10.x"
}
@ -8827,7 +8896,6 @@
},
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
"dev": true,
"license": "MIT",
"dependencies": {
"is-typedarray": "^1.0.0"
@ -8991,6 +9059,14 @@
"node": ">=8"
}
},
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/unpipe": {
"version": "1.0.0",
"license": "MIT",
@ -9286,8 +9362,7 @@
},
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"license": "MIT",
"engines": {
"node": ">=0.4"
}
@ -10220,10 +10295,14 @@
},
"@redis/bloom": {
"version": "1.0.2",
"optional": true,
"peer": true,
"requires": {}
},
"@redis/client": {
"version": "1.1.0",
"optional": true,
"peer": true,
"requires": {
"cluster-key-slot": "1.1.0",
"generic-pool": "3.8.2",
@ -10232,18 +10311,26 @@
},
"@redis/graph": {
"version": "1.0.1",
"optional": true,
"peer": true,
"requires": {}
},
"@redis/json": {
"version": "1.0.3",
"optional": true,
"peer": true,
"requires": {}
},
"@redis/search": {
"version": "1.0.6",
"optional": true,
"peer": true,
"requires": {}
},
"@redis/time-series": {
"version": "1.0.3",
"optional": true,
"peer": true,
"requires": {}
},
"@runtipi/common": {
@ -10351,16 +10438,6 @@
"@types/node": "*"
}
},
"@types/connect-redis": {
"version": "0.0.18",
"dev": true,
"requires": {
"@types/express": "*",
"@types/express-session": "*",
"@types/ioredis": "*",
"@types/redis": "^2.8.0"
}
},
"@types/content-disposition": {
"version": "0.5.5",
"dev": true
@ -10434,13 +10511,6 @@
"version": "1.8.2",
"dev": true
},
"@types/ioredis": {
"version": "4.28.10",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/istanbul-lib-coverage": {
"version": "2.0.4",
"dev": true
@ -10561,13 +10631,6 @@
"@types/range-parser": {
"version": "1.2.4"
},
"@types/redis": {
"version": "2.8.32",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/responselike": {
"version": "1.0.0",
"requires": {
@ -10584,6 +10647,16 @@
"@types/node": "*"
}
},
"@types/session-file-store": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@types/session-file-store/-/session-file-store-1.2.2.tgz",
"integrity": "sha512-l9yZ+PQ8vaXhch03MrV+25BIbhKpeWfZB++3njPIm6lKeDGRS2qF2elLuVa4XrhfJbObqW0puhB3A6FCbkraZg==",
"dev": true,
"requires": {
"@types/express": "*",
"@types/express-session": "*"
}
},
"@types/stack-utils": {
"version": "2.0.1",
"dev": true
@ -10894,6 +10967,17 @@
"es-shim-unscopables": "^1.0.0"
}
},
"asn1.js": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
"integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"requires": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0",
"safer-buffer": "^2.1.0"
}
},
"async": {
"version": "3.2.4"
},
@ -10969,6 +11053,11 @@
"babel-preset-current-node-syntax": "^1.0.0"
}
},
"bagpipe": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz",
"integrity": "sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g=="
},
"balanced-match": {
"version": "1.0.2"
},
@ -10979,6 +11068,11 @@
"version": "2.2.0",
"dev": true
},
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"body-parser": {
"version": "1.20.0",
"requires": {
@ -11081,9 +11175,7 @@
"dev": true
},
"buffer-writer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
"version": "2.0.0"
},
"bytes": {
"version": "3.1.2"
@ -11243,7 +11335,9 @@
}
},
"cluster-key-slot": {
"version": "1.1.0"
"version": "1.1.0",
"optional": true,
"peer": true
},
"co": {
"version": "4.6.0",
@ -11385,9 +11479,6 @@
"version": "1.0.11",
"dev": true
},
"connect-redis": {
"version": "6.1.3"
},
"console-control-strings": {
"version": "1.1.0"
},
@ -12205,6 +12296,16 @@
"fresh": {
"version": "0.5.2"
},
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
},
"fs-minipass": {
"version": "2.1.0",
"requires": {
@ -12250,7 +12351,9 @@
}
},
"generic-pool": {
"version": "3.8.2"
"version": "3.8.2",
"optional": true,
"peer": true
},
"gensync": {
"version": "1.0.0-beta.2",
@ -12345,8 +12448,7 @@
}
},
"graceful-fs": {
"version": "4.2.10",
"dev": true
"version": "4.2.10"
},
"graphql": {
"version": "15.8.0"
@ -12487,8 +12589,7 @@
}
},
"imurmurhash": {
"version": "0.1.4",
"dev": true
"version": "0.1.4"
},
"inflight": {
"version": "1.0.6",
@ -12677,8 +12778,7 @@
}
},
"is-typedarray": {
"version": "1.0.0",
"dev": true
"version": "1.0.0"
},
"is-url": {
"version": "1.2.4"
@ -13356,6 +13456,14 @@
"version": "2.2.1",
"dev": true
},
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"jsonwebtoken": {
"version": "8.5.1",
"requires": {
@ -13402,6 +13510,14 @@
"version": "3.0.3",
"dev": true
},
"kruptein": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz",
"integrity": "sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==",
"requires": {
"asn1.js": "^5.4.1"
}
},
"kuler": {
"version": "2.0.0"
},
@ -13567,6 +13683,11 @@
"mimic-response": {
"version": "1.0.1"
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimatch": {
"version": "3.1.2",
"requires": {
@ -13943,9 +14064,7 @@
}
},
"packet-reader": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
"version": "1.0.0"
},
"parent-module": {
"version": "1.0.1",
@ -14029,8 +14148,6 @@
},
"pg": {
"version": "8.7.3",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
"integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
"requires": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
@ -14042,30 +14159,20 @@
}
},
"pg-connection-string": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
"version": "2.5.0"
},
"pg-int8": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
"version": "1.0.1"
},
"pg-pool": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
"integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
"requires": {}
},
"pg-protocol": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
"version": "1.5.0"
},
"pg-types": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
"requires": {
"pg-int8": "1.0.1",
"postgres-array": "~2.0.0",
@ -14076,8 +14183,6 @@
},
"pgpass": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
"integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
"requires": {
"split2": "^4.1.0"
}
@ -14141,24 +14246,16 @@
}
},
"postgres-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
"version": "2.0.0"
},
"postgres-bytea": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
"integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="
"version": "1.0.0"
},
"postgres-date": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
"version": "1.0.7"
},
"postgres-interval": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
"requires": {
"xtend": "^4.0.0"
}
@ -14311,6 +14408,8 @@
},
"redis": {
"version": "4.1.0",
"optional": true,
"peer": true,
"requires": {
"@redis/bloom": "1.0.2",
"@redis/client": "1.1.0",
@ -14498,6 +14597,37 @@
"send": "0.18.0"
}
},
"session-file-store": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz",
"integrity": "sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==",
"requires": {
"bagpipe": "^0.3.5",
"fs-extra": "^8.0.1",
"kruptein": "^2.0.4",
"object-assign": "^4.1.1",
"retry": "^0.12.0",
"write-file-atomic": "3.0.3"
},
"dependencies": {
"retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="
},
"write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
"integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"requires": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
"signal-exit": "^3.0.2",
"typedarray-to-buffer": "^3.1.5"
}
}
}
},
"set-blocking": {
"version": "2.0.0"
},
@ -14571,9 +14701,7 @@
"dev": true
},
"split2": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
"integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ=="
"version": "4.1.0"
},
"sprintf-js": {
"version": "1.0.3",
@ -14895,7 +15023,6 @@
},
"typedarray-to-buffer": {
"version": "3.1.5",
"dev": true,
"requires": {
"is-typedarray": "^1.0.0"
}
@ -14953,6 +15080,11 @@
"crypto-random-string": "^2.0.0"
}
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"unpipe": {
"version": "1.0.0"
},
@ -15139,9 +15271,7 @@
}
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
"version": "4.0.2"
},
"y18n": {
"version": "5.0.8"

View File

@ -28,7 +28,6 @@
"axios": "^0.26.1",
"class-validator": "^0.13.2",
"compression": "^1.7.4",
"connect-redis": "^6.1.3",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dotenv": "^16.0.0",
@ -48,8 +47,8 @@
"passport-http-bearer": "^1.0.1",
"pg": "^8.7.3",
"public-ip": "^5.0.0",
"redis": "^4.1.0",
"reflect-metadata": "^0.1.13",
"session-file-store": "^1.5.0",
"systeminformation": "^5.11.9",
"tcp-port-used": "^1.0.2",
"type-graphql": "^1.1.1",
@ -58,7 +57,6 @@
},
"devDependencies": {
"@types/compression": "^1.7.2",
"@types/connect-redis": "^0.0.18",
"@types/cookie-parser": "^1.4.3",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
@ -68,6 +66,7 @@
"@types/mock-fs": "^4.13.1",
"@types/passport": "^1.0.7",
"@types/passport-http-bearer": "^1.0.37",
"@types/session-file-store": "^1.2.2",
"@types/tcp-port-used": "^1.0.1",
"@types/validator": "^13.7.2",
"@typescript-eslint/eslint-plugin": "^5.18.0",

View File

@ -1,6 +1,6 @@
import * as dotenv from 'dotenv';
import redis from 'redis';
import { DataSourceOptions } from 'typeorm';
import App from '../modules/apps/app.entity';
import { __prod__ } from './constants/constants';
interface IConfig {
@ -10,7 +10,6 @@ interface IConfig {
LOGS_ERROR: string;
};
typeorm: DataSourceOptions;
redis: Parameters<typeof redis.createClient>[0];
NODE_ENV: string;
ROOT_FOLDER: string;
JWT_SECRET: string;
@ -51,11 +50,7 @@ const config: IConfig = {
port: 5432,
logging: !__prod__,
synchronize: true,
entities: [],
},
redis: {
url: 'redis://redis:6379',
legacyMode: true,
entities: [App],
},
NODE_ENV,
ROOT_FOLDER: '/tipi',

View File

@ -1,19 +1,14 @@
import connectRedis from 'connect-redis';
import session from 'express-session';
import { createClient } from 'redis';
import config from '../../config';
import SessionFileStore from 'session-file-store';
import { COOKIE_MAX_AGE, __prod__ } from '../../config/constants/constants';
const getSessionMiddleware = async (): Promise<any> => {
const RedisStore = connectRedis(session);
const redisClient = createClient(config.redis);
await redisClient.connect();
const FileStore = SessionFileStore(session);
return session({
name: 'qid',
store: new RedisStore({ client: redisClient as any, disableTouch: true }),
store: new FileStore(),
cookie: { maxAge: COOKIE_MAX_AGE, secure: __prod__, sameSite: 'lax', httpOnly: true },
secret: config.JWT_SECRET,
resave: false,

View File

@ -6,17 +6,25 @@ import { BaseEntity, Column, CreateDateColumn, Entity, UpdateDateColumn } from '
@Entity()
class App extends BaseEntity {
@Field(() => String)
@Column({ primary: true, unique: true })
@Column({ type: 'varchar', primary: true, unique: true })
id!: string;
@Field(() => Boolean)
@Column({ type: 'boolean', default: false })
installed!: boolean;
@Field(() => AppStatusEnum)
@Field(() => String)
@Column({ type: 'enum', enum: AppStatusEnum, default: AppStatusEnum.STOPPED, nullable: false })
status!: AppStatusEnum;
@Field(() => Date)
@Column({ type: 'date', nullable: true })
lastOpened!: Date;
@Field(() => Number)
@Column({ type: 'integer', default: 0, nullable: false })
numOpened!: number;
@Field(() => Date)
@CreateDateColumn()
createdAt!: Date;

View File

@ -55,12 +55,12 @@ export const getInitalFormValues = (appName: string): Record<string, string> =>
const envMap = getEnvMap(appName);
const formValues: Record<string, string> = {};
Object.keys(configFile.form_fields).forEach((key) => {
const envVar = configFile.form_fields[key].env_variable;
configFile.form_fields.forEach((field) => {
const envVar = field.env_variable;
const envVarValue = envMap.get(envVar);
if (envVarValue) {
formValues[key] = envVarValue;
formValues[field.env_variable] = envVarValue;
}
});

View File

@ -1,11 +1,23 @@
import { Query, Resolver } from 'type-graphql';
import { Arg, Authorized, Query, Resolver } from 'type-graphql';
import AppsService from './apps.service';
import { ListAppsResonse } from './apps.types';
import { AppConfig, ListAppsResonse } from './apps.types';
import App from './app.entity';
@Resolver()
export default class AppsResolver {
@Query(() => ListAppsResonse)
getChannels(): Promise<ListAppsResonse> {
listAppsInfo(): Promise<ListAppsResonse> {
return AppsService.listApps();
}
@Query(() => AppConfig)
getAppInfo(@Arg('id', () => String) appId: string): Promise<AppConfig> {
return AppsService.getAppInfo(appId);
}
@Authorized()
@Query(() => [App])
async installedApps(): Promise<App[]> {
return App.find();
}
}

View File

@ -1,8 +1,8 @@
import si from 'systeminformation';
import { AppConfig, AppStatusEnum } from '@runtipi/common';
import { AppStatusEnum } from '@runtipi/common';
import { createFolder, fileExists, readFile, readJsonFile } from '../fs/fs.helpers';
import { checkAppExists, checkAppRequirements, checkEnvFile, ensureAppState, generateEnvFile, getAvailableApps, getInitalFormValues, getStateFile, runAppScript } from './apps.helpers';
import { ListAppsResonse } from './apps.types';
import { AppConfig, ListAppsResonse } from './apps.types';
const startApp = async (appName: string): Promise<void> => {
checkAppExists(appName);
@ -66,7 +66,7 @@ const listApps = async (): Promise<ListAppsResonse> => {
app.description = readFile(`/apps/${app.id}/metadata/description.md`);
});
return { apps };
return { apps, total: apps.length };
};
const getAppInfo = async (id: string): Promise<AppConfig> => {

View File

@ -1,32 +1,32 @@
import { AppCategoriesEnum, AppStatusEnum } from '@runtipi/common';
import { AppCategoriesEnum, AppStatusEnum, FieldTypes } from '@runtipi/common';
import { Field, ObjectType } from 'type-graphql';
// @ObjectType(() => FormField)
// class FormField {
// @Field()
// type!: FieldTypes;
@ObjectType()
class FormField {
@Field(() => String)
type!: FieldTypes;
// @Field()
// label!: string;
@Field(() => String)
label!: string;
// @Field({ nullable: true })
// max?: number;
@Field(() => Number, { nullable: true })
max?: number;
// @Field({ nullable: true })
// min?: number;
@Field(() => Number, { nullable: true })
min?: number;
// @Field({ nullable: true })
// hint?: string;
@Field(() => String, { nullable: true })
hint?: string;
// @Field({ nullable: true })
// required?: boolean;
@Field(() => Boolean, { nullable: true })
required?: boolean;
// @Field()
// env_variable!: string;
// }
@Field(() => String)
env_variable!: string;
}
@ObjectType()
class App {
class AppConfig {
@Field(() => String)
id!: string;
@ -60,23 +60,26 @@ class App {
@Field(() => Boolean)
installed!: boolean;
@Field(() => [AppCategoriesEnum])
@Field(() => [String])
categories!: AppCategoriesEnum[];
@Field(() => AppStatusEnum)
@Field(() => String)
status!: AppStatusEnum;
@Field(() => String, { nullable: true })
url_suffix?: string;
// @Field(() => [FormField])
// form_fields?: FormField[];
@Field(() => [FormField])
form_fields?: FormField[];
}
@ObjectType()
class ListAppsResonse {
@Field(() => [App])
apps!: App[];
@Field(() => [AppConfig])
apps!: AppConfig[];
@Field(() => Number)
total!: number;
}
export { ListAppsResonse, App };
export { ListAppsResonse, AppConfig };

View File

@ -127,7 +127,6 @@ importers:
specifiers:
'@runtipi/common': file:../common
'@types/compression': ^1.7.2
'@types/connect-redis': ^0.0.18
'@types/cookie-parser': ^1.4.3
'@types/cors': ^2.8.12
'@types/express': ^4.17.13
@ -137,6 +136,7 @@ importers:
'@types/mock-fs': ^4.13.1
'@types/passport': ^1.0.7
'@types/passport-http-bearer': ^1.0.37
'@types/session-file-store': ^1.2.2
'@types/tcp-port-used': ^1.0.1
'@types/validator': ^13.7.2
'@typescript-eslint/eslint-plugin': ^5.18.0
@ -148,7 +148,6 @@ importers:
class-validator: ^0.13.2
compression: ^1.7.4
concurrently: ^7.1.0
connect-redis: ^6.1.3
cookie-parser: ^1.4.6
cors: ^2.8.5
dotenv: ^16.0.0
@ -177,9 +176,9 @@ importers:
pg: ^8.7.3
prettier: 2.6.2
public-ip: ^5.0.0
redis: ^4.1.0
reflect-metadata: ^0.1.13
rimraf: ^3.0.2
session-file-store: ^1.5.0
systeminformation: ^5.11.9
tcp-port-used: ^1.0.2
ts-jest: ^28.0.2
@ -195,7 +194,6 @@ importers:
axios: 0.26.1
class-validator: 0.13.2
compression: 1.7.4
connect-redis: 6.1.3
cookie-parser: 1.4.6
cors: 2.8.5
dotenv: 16.0.0
@ -215,16 +213,15 @@ importers:
passport-http-bearer: 1.0.1
pg: 8.7.3
public-ip: 5.0.0
redis: 4.1.0
reflect-metadata: 0.1.13
session-file-store: 1.5.0
systeminformation: 5.11.14
tcp-port-used: 1.0.2
type-graphql: 1.1.1_v2revtygxcm7xrdg2oz3ssohfu
typeorm: 0.3.6_pg@8.7.3+redis@4.1.0
typeorm: 0.3.6_pg@8.7.3
winston: 3.7.2
devDependencies:
'@types/compression': 1.7.2
'@types/connect-redis': 0.0.18
'@types/cookie-parser': 1.4.3
'@types/cors': 2.8.12
'@types/express': 4.17.13
@ -234,6 +231,7 @@ importers:
'@types/mock-fs': 4.13.1
'@types/passport': 1.0.7
'@types/passport-http-bearer': 1.0.37
'@types/session-file-store': 1.2.2
'@types/tcp-port-used': 1.0.1
'@types/validator': 13.7.2
'@typescript-eslint/eslint-plugin': 5.22.0_tal4xlmvnofklupd3hwjtzfb4q
@ -2194,55 +2192,6 @@ packages:
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
dev: false
/@redis/bloom/1.0.2_@redis+client@1.1.0:
resolution: {integrity: sha512-EBw7Ag1hPgFzdznK2PBblc1kdlj5B5Cw3XwI9/oG7tSn85/HKy3X9xHy/8tm/eNXJYHLXHJL/pkwBpFMVVefkw==}
peerDependencies:
'@redis/client': ^1.0.0
dependencies:
'@redis/client': 1.1.0
dev: false
/@redis/client/1.1.0:
resolution: {integrity: sha512-xO9JDIgzsZYDl3EvFhl6LC52DP3q3GCMUer8zHgKV6qSYsq1zB+pZs9+T80VgcRogrlRYhi4ZlfX6A+bHiBAgA==}
engines: {node: '>=14'}
dependencies:
cluster-key-slot: 1.1.0
generic-pool: 3.8.2
yallist: 4.0.0
dev: false
/@redis/graph/1.0.1_@redis+client@1.1.0:
resolution: {integrity: sha512-oDE4myMCJOCVKYMygEMWuriBgqlS5FqdWerikMoJxzmmTUErnTRRgmIDa2VcgytACZMFqpAOWDzops4DOlnkfQ==}
peerDependencies:
'@redis/client': ^1.0.0
dependencies:
'@redis/client': 1.1.0
dev: false
/@redis/json/1.0.3_@redis+client@1.1.0:
resolution: {integrity: sha512-4X0Qv0BzD9Zlb0edkUoau5c1bInWSICqXAGrpwEltkncUwcxJIGEcVryZhLgb0p/3PkKaLIWkjhHRtLe9yiA7Q==}
peerDependencies:
'@redis/client': ^1.0.0
dependencies:
'@redis/client': 1.1.0
dev: false
/@redis/search/1.0.6_@redis+client@1.1.0:
resolution: {integrity: sha512-pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA==}
peerDependencies:
'@redis/client': ^1.0.0
dependencies:
'@redis/client': 1.1.0
dev: false
/@redis/time-series/1.0.3_@redis+client@1.1.0:
resolution: {integrity: sha512-OFp0q4SGrTH0Mruf6oFsHGea58u8vS/iI5+NpYdicaM+7BgqBZH8FFvNZ8rYYLrUO/QRqMq72NpXmxLVNcdmjA==}
peerDependencies:
'@redis/client': ^1.0.0
dependencies:
'@redis/client': 1.1.0
dev: false
/@rushstack/eslint-patch/1.0.8:
resolution: {integrity: sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==}
dev: true
@ -2352,15 +2301,6 @@ packages:
'@types/express': 4.17.13
dev: true
/@types/connect-redis/0.0.18:
resolution: {integrity: sha512-iGygGbXgPIr94DEAuoluWhzre3c2/ew5NPlbW9IWvwCTXMM1YCmc7M9wpXMkYqt6kB9aO1sjZnmDzyugUu+2vQ==}
dependencies:
'@types/express': 4.17.13
'@types/express-session': 1.17.4
'@types/ioredis': 4.28.10
'@types/redis': 2.8.32
dev: true
/@types/connect/3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
@ -2464,12 +2404,6 @@ packages:
resolution: {integrity: sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==}
dev: true
/@types/ioredis/4.28.10:
resolution: {integrity: sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==}
dependencies:
'@types/node': 17.0.31
dev: true
/@types/istanbul-lib-coverage/2.0.4:
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
dev: true
@ -2651,12 +2585,6 @@ packages:
'@types/scheduler': 0.16.2
csstype: 3.0.11
/@types/redis/2.8.32:
resolution: {integrity: sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==}
dependencies:
'@types/node': 17.0.31
dev: true
/@types/responselike/1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
@ -2675,6 +2603,13 @@ packages:
'@types/mime': 1.3.2
'@types/node': 17.0.31
/@types/session-file-store/1.2.2:
resolution: {integrity: sha512-l9yZ+PQ8vaXhch03MrV+25BIbhKpeWfZB++3njPIm6lKeDGRS2qF2elLuVa4XrhfJbObqW0puhB3A6FCbkraZg==}
dependencies:
'@types/express': 4.17.13
'@types/express-session': 1.17.4
dev: true
/@types/stack-utils/2.0.1:
resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
dev: true
@ -3296,6 +3231,15 @@ packages:
es-shim-unscopables: 1.0.0
dev: true
/asn1.js/5.4.1:
resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
dependencies:
bn.js: 4.12.0
inherits: 2.0.4
minimalistic-assert: 1.0.1
safer-buffer: 2.1.2
dev: false
/ast-types-flow/0.0.7:
resolution: {integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0=}
dev: true
@ -3423,6 +3367,10 @@ packages:
babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.10
dev: true
/bagpipe/0.3.5:
resolution: {integrity: sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g==}
dev: false
/bail/2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
dev: false
@ -3439,6 +3387,10 @@ packages:
engines: {node: '>=8'}
dev: true
/bn.js/4.12.0:
resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
dev: false
/body-parser/1.20.0:
resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@ -3731,11 +3683,6 @@ packages:
engines: {node: '>=6'}
dev: false
/cluster-key-slot/1.1.0:
resolution: {integrity: sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==}
engines: {node: '>=0.10.0'}
dev: false
/co/4.6.0:
resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@ -3868,11 +3815,6 @@ packages:
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
dev: true
/connect-redis/6.1.3:
resolution: {integrity: sha512-aaNluLlAn/3JPxRwdzw7lhvEoU6Enb+d83xnokUNhC9dktqBoawKWL+WuxinxvBLTz6q9vReTnUDnUslaz74aw==}
engines: {node: '>=12'}
dev: false
/console-control-strings/1.1.0:
resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=}
dev: false
@ -4741,7 +4683,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.22.0_hcfsmds2fshutdssjqluwm76uu
'@typescript-eslint/parser': 5.22.0_uhoeudlwl7kc47h4kncsfowede
debug: 3.2.7
eslint-import-resolver-node: 0.3.6
find-up: 2.1.0
@ -5382,6 +5324,15 @@ packages:
engines: {node: '>= 0.6'}
dev: false
/fs-extra/8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
dependencies:
graceful-fs: 4.2.10
jsonfile: 4.0.0
universalify: 0.1.2
dev: false
/fs-minipass/2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
@ -5436,11 +5387,6 @@ packages:
wide-align: 1.1.5
dev: false
/generic-pool/3.8.2:
resolution: {integrity: sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==}
engines: {node: '>= 4'}
dev: false
/gensync/1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@ -5598,7 +5544,6 @@ packages:
/graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
dev: true
/graphql-query-complexity/0.7.2_graphql@15.8.0:
resolution: {integrity: sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==}
@ -5812,7 +5757,6 @@ packages:
/imurmurhash/0.1.4:
resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
engines: {node: '>=0.8.19'}
dev: true
/inflight/1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
@ -6072,8 +6016,7 @@ packages:
dev: true
/is-typedarray/1.0.0:
resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=}
dev: true
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
/is-url/1.2.4:
resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
@ -6726,6 +6669,12 @@ packages:
hasBin: true
dev: true
/jsonfile/4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies:
graceful-fs: 4.2.10
dev: false
/jsonwebtoken/8.5.1:
resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==}
engines: {node: '>=4', npm: '>=1.4.28'}
@ -6788,6 +6737,13 @@ packages:
engines: {node: '>=6'}
dev: false
/kruptein/2.2.3:
resolution: {integrity: sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==}
engines: {node: '>6'}
dependencies:
asn1.js: 5.4.1
dev: false
/kuler/2.0.0:
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
dev: false
@ -7553,6 +7509,10 @@ packages:
engines: {node: '>=10'}
dev: false
/minimalistic-assert/1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
dev: false
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@ -8707,17 +8667,6 @@ packages:
picomatch: 2.3.1
dev: true
/redis/4.1.0:
resolution: {integrity: sha512-5hvJ8wbzpCCiuN1ges6tx2SAh2XXCY0ayresBmu40/SGusWHFW86TAlIPpbimMX2DFHOX7RN34G2XlPA1Z43zg==}
dependencies:
'@redis/bloom': 1.0.2_@redis+client@1.1.0
'@redis/client': 1.1.0
'@redis/graph': 1.0.1_@redis+client@1.1.0
'@redis/json': 1.0.3_@redis+client@1.1.0
'@redis/search': 1.0.6_@redis+client@1.1.0
'@redis/time-series': 1.0.3_@redis+client@1.1.0
dev: false
/reflect-metadata/0.1.13:
resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==}
dev: false
@ -8864,6 +8813,11 @@ packages:
lowercase-keys: 2.0.0
dev: false
/retry/0.12.0:
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
engines: {node: '>= 4'}
dev: false
/retry/0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@ -8981,6 +8935,18 @@ packages:
- supports-color
dev: false
/session-file-store/1.5.0:
resolution: {integrity: sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==}
engines: {node: '>= 6'}
dependencies:
bagpipe: 0.3.5
fs-extra: 8.1.0
kruptein: 2.2.3
object-assign: 4.1.1
retry: 0.12.0
write-file-atomic: 3.0.3
dev: false
/set-blocking/2.0.0:
resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
dev: false
@ -9557,9 +9523,8 @@ packages:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
dependencies:
is-typedarray: 1.0.0
dev: true
/typeorm/0.3.6_pg@8.7.3+redis@4.1.0:
/typeorm/0.3.6_pg@8.7.3:
resolution: {integrity: sha512-DRqgfqcelMiGgWSMbBmVoJNFN2nPNA3EeY2gC324ndr2DZoGRTb9ILtp2oGVGnlA+cu5zgQ6it5oqKFNkte7Aw==}
engines: {node: '>= 12.9.0'}
hasBin: true
@ -9629,7 +9594,6 @@ packages:
js-yaml: 4.1.0
mkdirp: 1.0.4
pg: 8.7.3
redis: 4.1.0
reflect-metadata: 0.1.13
sha.js: 2.4.11
tslib: 2.4.0
@ -9754,6 +9718,11 @@ packages:
unist-util-visit-parents: 5.1.0
dev: false
/universalify/0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
dev: false
/unpipe/1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
@ -9998,7 +9967,6 @@ packages:
is-typedarray: 1.0.0
signal-exit: 3.0.7
typedarray-to-buffer: 3.1.5
dev: true
/write-file-atomic/4.0.1:
resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==}