Merge branch 'TandoorRecipes:develop' into fix-iOS-view
This commit is contained in:
commit
d94de6abd1
4
.github/workflows/build-docker-open-data.yml
vendored
4
.github/workflows/build-docker-open-data.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
||||
suffix: ""
|
||||
continue-on-error: false
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get version number
|
||||
id: get_version
|
||||
@ -43,7 +43,7 @@ jobs:
|
||||
path: ./recipes/plugins/open_data_plugin
|
||||
|
||||
# Build Vue frontend
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18'
|
||||
cache: yarn
|
||||
|
4
.github/workflows/build-docker.yml
vendored
4
.github/workflows/build-docker.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
||||
suffix: ""
|
||||
continue-on-error: false
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get version number
|
||||
id: get_version
|
||||
@ -35,7 +35,7 @@ jobs:
|
||||
fi
|
||||
|
||||
# Build Vue frontend
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18'
|
||||
cache: yarn
|
||||
|
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -12,13 +12,13 @@ jobs:
|
||||
python-version: ['3.10']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.10
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
# Build Vue frontend
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18'
|
||||
- name: Install Vue dependencies
|
||||
|
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
with:
|
||||
languages: python, javascript
|
||||
@ -47,6 +47,6 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
languages: javascript, python
|
||||
|
4
.github/workflows/docs.yml
vendored
4
.github/workflows/docs.yml
vendored
@ -9,8 +9,8 @@ jobs:
|
||||
if: github.repository_owner == 'TandoorRecipes'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.x
|
||||
- run: pip install mkdocs-material mkdocs-include-markdown-plugin
|
||||
|
2
boot.sh
2
boot.sh
@ -76,4 +76,4 @@ echo "Done"
|
||||
|
||||
chmod -R 755 /opt/recipes/mediafiles
|
||||
|
||||
exec gunicorn -b :$TANDOOR_PORT --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level $GUNICORN_LOG_LEVEL recipes.wsgi
|
||||
exec gunicorn -b "[::]:$TANDOOR_PORT" --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level $GUNICORN_LOG_LEVEL recipes.wsgi
|
||||
|
@ -10,9 +10,12 @@ Tandoor can be installed as a progressive web app (PWA) on mobile and desktop de
|
||||
#### Safari (iPhone/iPad)
|
||||
Open Tandoor, click Safari's share button, select `Add to Home Screen`
|
||||
|
||||
### Chrome/Chromium
|
||||
#### Chrome/Chromium
|
||||
Open Tandoor, click the `add Tandoor to the home screen` message that pops up at the bottom of the screen
|
||||
|
||||
#### Firefox for Android
|
||||
Open Tandoor, click on the `⋮` menu icon, then on `Install`
|
||||
|
||||
### Desktop browsers
|
||||
|
||||
#### Google Chrome
|
||||
@ -124,13 +127,13 @@ to your dream setup.
|
||||
## How can I upgrade postgres (major versions)?
|
||||
Postgres requires manual intervention when updating from one major version to another. The steps are roughly
|
||||
|
||||
1. use `pg_dumpall` to dump your database into SQL (for Docker `docker-compose exec -T <database_container_name> pg_dumpall -U <postgres_user_name> -f /path/to/dump.sql`)
|
||||
1. use `pg_dumpall` to dump your database into SQL (for Docker `docker-compose exec -T <postgres_container_name> pg_dumpall -U <postgres_user_name> -f /path/to/dump.sql`)
|
||||
2. stop the DB / down the container
|
||||
3. move your postgres directory in order to keep it as a backup (e.g. `mv postgres postgres_old`)
|
||||
4. update postgres to the new major version (for Docker just change the version number and pull)
|
||||
5. start the db / up the container (do not start tandoor as it will automatically perform the database migrations which will conflict with loading the dump)
|
||||
6. if not using docker, you might need to create the same postgres user you had in the old database
|
||||
7. load the postgres dump (for Docker `'/usr/local/bin/docker-compose exec -T <database_container_name> psql -U <postgres_user_name> postgres < /path/to/dump.sql`)
|
||||
7. load the postgres dump (for Docker `'/usr/local/bin/docker-compose exec -T <postgres_container_name> psql -U <postgres_user_name> <postgres_database_name> < /path/to/dump.sql`)
|
||||
|
||||
If anything fails, go back to the old postgres version and data directory and try again.
|
||||
|
||||
|
@ -50,7 +50,7 @@ In order to prevent denial of service attacks on the RegEx engine the number of
|
||||
and the length of the inputs that are processed are limited. Those limits should never be reached
|
||||
during normal usage.
|
||||
|
||||
## Instructtion Replace, Title Replace, Food Replace & Unit Replace
|
||||
## Instruction Replace, Title Replace, Food Replace & Unit Replace
|
||||
|
||||
These work just like the Description Replace automation.
|
||||
Instruction, Food and Unit Replace will run against every iteration of the object in a recipe during import.
|
||||
|
@ -1,5 +1,5 @@
|
||||
!!! info "WIP"
|
||||
While being around for a while there are still a lot of features that i plan on adding to the shopping list.
|
||||
While being around for a while there are still a lot of features that I plan on adding to the shopping list.
|
||||
You can see an overview of what is still planned on [this](https://github.com/vabene1111/recipes/issues/114) issue.
|
||||
|
||||
|
||||
@ -41,4 +41,4 @@ There are a few more features worth pointing out
|
||||
|
||||
1. You can export recipes for use in other applications (Google Keep, etc.) by using the export button
|
||||
2. In the export popup you can define a prefix to be put before each row in case an external app requires that
|
||||
3. Marking a shopping list as finished will hide it from the shopping list page
|
||||
3. Marking a shopping list as finished will hide it from the shopping list page
|
||||
|
@ -59,6 +59,155 @@ I used two paths `<sub path>` and `<www path>` for simplicity. In my case I have
|
||||
|
||||
I left out the TLS config in this example for simplicity.
|
||||
|
||||
## Docker + Apache + Sub-Path
|
||||
|
||||
The following could prove to be useful if you are not using Traefik, but instead run Apache as your reverse proxy to route all calls for a shared (sub)domain to a sub path, e.g. https://mydomain.tld/tandoor
|
||||
|
||||
As a side note, I am using [Blocky](https://0xerr0r.github.io/blocky/) + [Consul](https://hub.docker.com/r/hashicorp/consul) + [Registrator](https://hub.docker.com/r/gliderlabs/registrator) as a DNS solution.
|
||||
|
||||
The relevant Apache config:
|
||||
```
|
||||
<Location /tandoor>
|
||||
# in case you want to restrict access to specific IP addresses:
|
||||
Require local
|
||||
Require forward-dns [myhomedomain.useyourdomain.com]
|
||||
Require ip [anylocalorremoteipyouwanttowhitelist]
|
||||
|
||||
# The following assumes that tandoor.service.consul.local resolves to the IP address of the Docker container.
|
||||
ProxyPass http://tandoor.service.consul.local:8080/tandoor
|
||||
ProxyPassReverse http://tandoor.service.consul.local:8080/tandoor
|
||||
RequestHeader add X-Script-Name /tandoor
|
||||
RequestHeader set X-Forwarded-Proto "https"
|
||||
ProxyPreserveHost On
|
||||
</Location>
|
||||
<Location /tandoor/static>
|
||||
Require local
|
||||
Require forward-dns [myhomedomain.useyourdomain.com]
|
||||
Require ip [anylocalorremoteipyouwanttowhitelist]
|
||||
|
||||
ProxyPass http://tandoor.service.consul.local:8080/tandoor/tandoor/static
|
||||
ProxyPassReverse http://tandoor.service.consul.local:8080/tandoor/static
|
||||
RequestHeader add X-Script-Name /tandoor
|
||||
RequestHeader set X-Forwarded-Proto "https"
|
||||
ProxyPreserveHost On
|
||||
</Location>
|
||||
```
|
||||
and the relevant section from the docker-compose.yml:
|
||||
```
|
||||
tandoor:
|
||||
restart: always
|
||||
container_name: tandoor
|
||||
image: vabene1111/recipes
|
||||
environment:
|
||||
- SCRIPT_NAME=/tandoor
|
||||
- JS_REVERSE_SCRIPT_PREFIX=/tandoor
|
||||
- STATIC_URL=/tandoor/static/
|
||||
- MEDIA_URL=/tandoor/media/
|
||||
- GUNICORN_MEDIA=0
|
||||
- SECRET_KEY=${YOUR_TANDOOR_SECRET_KEY}
|
||||
- POSTGRES_HOST=postgres.service.consul.local
|
||||
- POSTGRES_PORT=${POSTGRES_PORT}
|
||||
- POSTGRES_USER=${YOUR_TANDOOR_POSTGRES_USER}
|
||||
- POSTGRES_PASSWORD=${YOUR_TANDOOR_POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=${YOUR_TANDOOR_POSTGRES_DB}
|
||||
labels:
|
||||
# The following is relevant only if you are using Registrator and Consul
|
||||
- "SERVICE_NAME=tandoor"
|
||||
volumes:
|
||||
- ${YOUR_DOCKER_VOLUME_BASE_DIR}/tandoor/static:/opt/recipes/staticfiles:rw
|
||||
# Do not make this a bind mount, see https://docs.tandoor.dev/install/docker/#volumes- vs-bind-mounts
|
||||
- tandoor_nginx_config:/opt/recipes/nginx/conf.d
|
||||
- ${YOUR_DOCKER_VOLUME_BASE_DIR}}/tandoor/media:/opt/recipes/mediafiles:rw
|
||||
depends_on:
|
||||
# You will have to set up postgres accordingly
|
||||
- postgres
|
||||
```
|
||||
|
||||
The relevant docker-compose.yml for Registrator, Consul, and Blocky, and Autoheal:
|
||||
```
|
||||
consul:
|
||||
image: hashicorp/consul
|
||||
container_name: consul
|
||||
command: >
|
||||
agent -server
|
||||
-domain consul.local
|
||||
-advertise=${YOUR_DOCKER_HOST_IP_ON_THE_LAN}
|
||||
-client=0.0.0.0
|
||||
-encrypt=${SOME_SECRET_KEY}
|
||||
-datacenter=${YOUR_DC_NAME}
|
||||
-bootstrap-expect=1
|
||||
-ui
|
||||
-log-level=info
|
||||
environment:
|
||||
- "CONSUL_LOCAL_CONFIG={\"skip_leave_on_interrupt\": true, \"dns_config\": { \"service_ttl\": { \"*\": \"0s\" } } }"
|
||||
network_mode: "host"
|
||||
restart: always
|
||||
|
||||
registrator:
|
||||
image: gliderlabs/registrator:latest
|
||||
container_name: registrator
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
command: >
|
||||
-internal
|
||||
-cleanup=true
|
||||
-deregister="always"
|
||||
-resync=60
|
||||
consul://host.docker.internal:8500
|
||||
restart: always
|
||||
|
||||
blocky:
|
||||
image: spx01/blocky
|
||||
container_name: blocky
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
start_period: 1m
|
||||
labels:
|
||||
# The following is only relevant if you use autoheal
|
||||
autoheal: true
|
||||
# Optional the instance hostname for logging purpose
|
||||
hostname: blocky
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
ports:
|
||||
- "1153:53/tcp"
|
||||
- "1153:53/udp"
|
||||
- 4000:4000
|
||||
environment:
|
||||
- TZ=YOUR_TIMEZONE # Optional to synchronize the log timestamp with host
|
||||
volumes:
|
||||
# Optional to synchronize the log timestamp with host
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
# config file
|
||||
- ${YOUR_DOCKER_VOLUME_BASE_DIR}/blocky/config.yml:/app/config.yml
|
||||
networks:
|
||||
# in case you want to bind Blocky to an IP address
|
||||
your-docker-network-name:
|
||||
ipv4_address: 'some-ip-address-in-the-docker-network-subnet'
|
||||
|
||||
autoheal:
|
||||
image: willfarrell/autoheal
|
||||
volumes:
|
||||
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||
environment:
|
||||
- AUTOHEAL_CONTAINER_LABEL=autoheal
|
||||
restart: always
|
||||
container_name: autoheal
|
||||
|
||||
```
|
||||
as well as a snippet of the Blocky configuration:
|
||||
```
|
||||
conditional:
|
||||
fallbackUpstream: false
|
||||
mapping:
|
||||
consul.local: tcp+udp:host.docker.internal:8600
|
||||
```
|
||||
|
||||
|
||||
## WSL
|
||||
|
||||
If you want to install Tandoor on the Windows Subsystem for Linux you can find a detailed post here: <https://github.com/TandoorRecipes/recipes/issues/1733>.
|
||||
|
@ -1,5 +1,6 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80 ipv6only=on;
|
||||
server_name localhost;
|
||||
|
||||
client_max_body_size 128M;
|
||||
|
@ -1,7 +1,7 @@
|
||||
Django==4.2.7
|
||||
cryptography===41.0.6
|
||||
cryptography===41.0.7
|
||||
django-annoying==0.10.6
|
||||
django-autocomplete-light==3.9.4
|
||||
django-autocomplete-light==3.9.7
|
||||
django-cleanup==8.0.0
|
||||
django-crispy-forms==2.0
|
||||
crispy-bootstrap4==2022.1
|
||||
@ -14,7 +14,7 @@ bleach==6.0.0
|
||||
gunicorn==20.1.0
|
||||
lxml==4.9.3
|
||||
Markdown==3.5.1
|
||||
Pillow==10.0.1
|
||||
Pillow==10.1.0
|
||||
psycopg2-binary==2.9.5
|
||||
python-dotenv==1.0.0
|
||||
requests==2.31.0
|
||||
@ -26,7 +26,7 @@ pyyaml==6.0.1
|
||||
uritemplate==4.1.1
|
||||
beautifulsoup4==4.12.2
|
||||
microdata==0.8.0
|
||||
Jinja2==3.1.2
|
||||
Jinja2==3.1.3
|
||||
django-webpack-loader==1.8.1
|
||||
git+https://github.com/BITSOLVER/django-js-reverse@071e304fd600107bc64bbde6f2491f1fe049ec82
|
||||
django-allauth==0.58.1
|
||||
@ -36,13 +36,13 @@ pytest==7.4.3
|
||||
pytest-django==4.6.0
|
||||
django-treebeard==4.7
|
||||
django-cors-headers==4.2.0
|
||||
django-storages==1.13.2
|
||||
django-storages==1.14.2
|
||||
boto3==1.28.75
|
||||
django-prometheus==2.2.0
|
||||
django-hCaptcha==0.2.0
|
||||
python-ldap==3.4.3
|
||||
django-auth-ldap==4.4.0
|
||||
pytest-factoryboy==2.5.1
|
||||
pytest-factoryboy==2.6.0
|
||||
pyppeteer==1.0.2
|
||||
validators==0.20.0
|
||||
pytube==15.0.0
|
||||
|
@ -46,7 +46,7 @@
|
||||
"vue2-touch-events": "^3.2.2",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"workbox-webpack-plugin": "^6.5.4",
|
||||
"workbox-window": "^6.5.4"
|
||||
"workbox-window": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@kazupon/vue-i18n-loader": "^0.5.0",
|
||||
@ -65,11 +65,11 @@
|
||||
"typescript": "~5.1.6",
|
||||
"vue-cli-plugin-i18n": "^2.3.2",
|
||||
"webpack-bundle-tracker": "1.8.1",
|
||||
"workbox-background-sync": "^6.5.4",
|
||||
"workbox-background-sync": "^7.0.0",
|
||||
"workbox-expiration": "^6.5.4",
|
||||
"workbox-navigation-preload": "^6.5.4",
|
||||
"workbox-navigation-preload": "^7.0.0",
|
||||
"workbox-precaching": "^6.5.4",
|
||||
"workbox-routing": "^6.5.4",
|
||||
"workbox-routing": "^7.0.0",
|
||||
"workbox-strategies": "^6.2.4"
|
||||
},
|
||||
"eslintConfig": {
|
||||
|
@ -364,7 +364,7 @@ export default {
|
||||
},
|
||||
mobileSimpleGrid() {
|
||||
let grid = [];
|
||||
let currentDate = moment();
|
||||
let currentDate = moment(this.showDate);
|
||||
for (let x = 0; x < 7; x++) {
|
||||
let moment_date = currentDate.clone().add(x, "d");
|
||||
grid.push({
|
||||
@ -483,7 +483,7 @@ export default {
|
||||
this.setShowDate(ctx.selectedDate)
|
||||
},
|
||||
setShowDate(d) {
|
||||
this.showDate = d
|
||||
this.showDate = d ?? new Date();
|
||||
},
|
||||
createEntryClick(data) {
|
||||
this.mealplan_default_date = moment(data).format("YYYY-MM-DD")
|
||||
|
@ -7,7 +7,7 @@
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<td class="d-print-none" v-if="detailed" @click="done">
|
||||
<td class="d-print-none align-baseline py-2" v-if="detailed" @click="done">
|
||||
<i class="far fa-check-circle text-success" v-if="ingredient.checked"></i>
|
||||
<i class="far fa-check-circle text-primary" v-if="!ingredient.checked"></i>
|
||||
</td>
|
||||
@ -40,9 +40,9 @@
|
||||
</template>
|
||||
</template>
|
||||
</td>
|
||||
<td v-if="detailed">
|
||||
<td v-if="detailed" class="align-baseline">
|
||||
<template v-if="ingredient.note">
|
||||
<span v-b-popover.hover="ingredient.note" class="d-print-none touchable py-0 px-2">
|
||||
<span class="d-print-none touchable py-0 px-2" v-b-popover.hover="ingredient.note">
|
||||
<i class="far fa-comment"></i>
|
||||
</span>
|
||||
|
||||
@ -106,9 +106,22 @@ export default {
|
||||
<style scoped>
|
||||
/* increase size of hover/touchable space without changing spacing */
|
||||
.touchable {
|
||||
/* padding-right: 2em;
|
||||
padding-left: 2em; */
|
||||
margin-right: -1em;
|
||||
margin-left: -1em;
|
||||
--target-increase: 2em;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.touchable::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: var(--target-increase);
|
||||
margin-right: calc(var(--target-increase) * -1);
|
||||
}
|
||||
|
||||
.touchable::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: var(--target-increase);
|
||||
margin-left: calc(var(--target-increase) * -1);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
@ -534,5 +534,25 @@
|
||||
"Food_Replace": "Zastąp produkt",
|
||||
"Unit_Replace": "Zastąp jednostkę",
|
||||
"Alignment": "Wyrównanie",
|
||||
"make_now_count": "Najbardziej brakujące składniki"
|
||||
"make_now_count": "Najbardziej brakujące składniki",
|
||||
"CustomTheme": "Własny motyw",
|
||||
"CustomThemeHelp": "Zastąp style wybranego motywu, przesyłając własny plik CSS.",
|
||||
"CustomLogoHelp": "Prześlij kwadratowe obrazy w różnych rozmiarach, aby zmienić logo w zakładce przeglądarki i zainstalowanej aplikacji internetowej.",
|
||||
"Logo": "Logo",
|
||||
"Show_Logo_Help": "Pokaż logo Tandoor lub przestrzeni na pasku nawigacyjnym.",
|
||||
"Space_Cosmetic_Settings": "Administratorzy przestrzeni mogą zmienić niektóre ustawienia kosmetyczne, które zastąpią ustawienia klienta dla tej przestrzeni.",
|
||||
"err_importing_recipe": "Wystąpił błąd podczas importowania przepisu!",
|
||||
"Properties_Food_Amount": "Właściwości ilości żywności",
|
||||
"Properties_Food_Unit": "Właściwości jednostek żywności",
|
||||
"FDC_Search": "Wyszukiwanie w FDC",
|
||||
"property_type_fdc_hint": "Tylko właściwe typy z identyfikatorem FDC mogą automatycznie pobierać dane z bazy danych FDC",
|
||||
"Property_Editor": "Edytor właściwości",
|
||||
"FDC_ID": "Identyfikator FDC",
|
||||
"FDC_ID_help": "Identyfikator bazy FDC",
|
||||
"CustomImageHelp": "Prześlij obraz, który będzie wyświetlany w przeglądzie przestrzeni.",
|
||||
"CustomNavLogoHelp": "Prześlij obraz, który będzie używany jako logo paska nawigacyjnego.",
|
||||
"CustomLogos": "Własne loga",
|
||||
"Show_Logo": "Pokaż logo",
|
||||
"Nav_Text_Mode": "Tryb nawigacji tekstowej",
|
||||
"Nav_Text_Mode_Help": "Zachowuje się inaczej dla każdego motywu."
|
||||
}
|
||||
|
@ -6049,9 +6049,9 @@ flush-write-stream@^1.0.0:
|
||||
readable-stream "^2.3.6"
|
||||
|
||||
follow-redirects@^1.0.0, follow-redirects@^1.15.0:
|
||||
version "1.15.2"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
|
||||
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
|
||||
version "1.15.4"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
|
||||
integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
|
||||
|
||||
for-each@^0.3.3:
|
||||
version "0.3.3"
|
||||
@ -11848,7 +11848,7 @@ wildcard@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"
|
||||
integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
|
||||
|
||||
workbox-background-sync@6.6.1, workbox-background-sync@^6.5.4:
|
||||
workbox-background-sync@6.6.1:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f"
|
||||
integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg==
|
||||
@ -11863,6 +11863,14 @@ workbox-background-sync@^5.1.4:
|
||||
dependencies:
|
||||
workbox-core "^5.1.4"
|
||||
|
||||
workbox-background-sync@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz#2b84b96ca35fec976e3bd2794b70e4acec46b3a5"
|
||||
integrity sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==
|
||||
dependencies:
|
||||
idb "^7.0.1"
|
||||
workbox-core "7.0.0"
|
||||
|
||||
workbox-broadcast-update@6.6.1:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e"
|
||||
@ -11981,6 +11989,11 @@ workbox-core@6.6.1:
|
||||
resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265"
|
||||
integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw==
|
||||
|
||||
workbox-core@7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-7.0.0.tgz#dec114ec923cc2adc967dd9be1b8a0bed50a3545"
|
||||
integrity sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==
|
||||
|
||||
workbox-core@^5.1.4:
|
||||
version "5.1.4"
|
||||
resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4"
|
||||
@ -12021,7 +12034,7 @@ workbox-google-analytics@^5.1.4:
|
||||
workbox-routing "^5.1.4"
|
||||
workbox-strategies "^5.1.4"
|
||||
|
||||
workbox-navigation-preload@6.6.1, workbox-navigation-preload@^6.5.4:
|
||||
workbox-navigation-preload@6.6.1:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059"
|
||||
integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA==
|
||||
@ -12035,6 +12048,13 @@ workbox-navigation-preload@^5.1.4:
|
||||
dependencies:
|
||||
workbox-core "^5.1.4"
|
||||
|
||||
workbox-navigation-preload@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz#4913878dbbd97057181d57baa18d2bbdde085c6c"
|
||||
integrity sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==
|
||||
dependencies:
|
||||
workbox-core "7.0.0"
|
||||
|
||||
workbox-precaching@6.6.1, workbox-precaching@^6.5.4:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2"
|
||||
@ -12077,7 +12097,7 @@ workbox-recipes@6.6.1:
|
||||
workbox-routing "6.6.1"
|
||||
workbox-strategies "6.6.1"
|
||||
|
||||
workbox-routing@6.6.1, workbox-routing@^6.5.4:
|
||||
workbox-routing@6.6.1:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581"
|
||||
integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg==
|
||||
@ -12091,6 +12111,13 @@ workbox-routing@^5.1.4:
|
||||
dependencies:
|
||||
workbox-core "^5.1.4"
|
||||
|
||||
workbox-routing@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-7.0.0.tgz#6668438a06554f60645aedc77244a4fe3a91e302"
|
||||
integrity sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==
|
||||
dependencies:
|
||||
workbox-core "7.0.0"
|
||||
|
||||
workbox-strategies@6.6.1, workbox-strategies@^6.2.4:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf"
|
||||
@ -12155,7 +12182,7 @@ workbox-webpack-plugin@^6.5.4:
|
||||
webpack-sources "^1.4.3"
|
||||
workbox-build "6.6.1"
|
||||
|
||||
workbox-window@6.6.1, workbox-window@^6.5.4:
|
||||
workbox-window@6.6.1:
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e"
|
||||
integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ==
|
||||
@ -12170,6 +12197,14 @@ workbox-window@^5.1.4:
|
||||
dependencies:
|
||||
workbox-core "^5.1.4"
|
||||
|
||||
workbox-window@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-7.0.0.tgz#a683ab33c896e4f16786794eac7978fc98a25d08"
|
||||
integrity sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==
|
||||
dependencies:
|
||||
"@types/trusted-types" "^2.0.2"
|
||||
workbox-core "7.0.0"
|
||||
|
||||
worker-farm@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
|
||||
|
Loading…
Reference in New Issue
Block a user