Updates for Wasp 0.15.0 (#255)

* Bumps Prisma to v5

Signed-off-by: Mihovil Ilakovac <mihovil@ilakovac.com>

* Update Prisma to 5.19.1

* Update for React Router v6

* Update types dep

* Update Prisma version

* Update package-lock.json

* update docs

* Update main.wasp.diff

* Add type: module

* Updated app_diff with type:module change from package.json.

* Updated version of Wasp in CI to 0.15.0-rc2.

* Removed type:module from e2e-tests/package.json.

---------

Signed-off-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: vincanger <70215737+vincanger@users.noreply.github.com>
Co-authored-by: Filip Sodić <filip.sodic@fer.hr>
Co-authored-by: Martin Sosic <sosic.martin@gmail.com>
This commit is contained in:
Mihovil Ilakovac 2024-10-10 18:13:48 +02:00 committed by GitHub
parent e7cf1ee582
commit 8a368532b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 2190 additions and 1398 deletions

View File

@ -10,7 +10,7 @@ on:
env:
WASP_TELEMETRY_DISABLE: 1
WASP_VERSION: 0.14.0
WASP_VERSION: 0.15.0-rc2
jobs:
test:
@ -56,7 +56,7 @@ jobs:
run: |
./tools/patch.sh
- name: "[e2e-tests] Install Node.js dependencies for Playwright tests"
- name: '[e2e-tests] Install Node.js dependencies for Playwright tests'
if: steps.cache-e2e-tests.outputs.cache-hit != 'true'
working-directory: ./template
run: |
@ -78,14 +78,14 @@ jobs:
path: ~/.cache/ms-playwright
key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }}-${{ runner.os }}
- name: "[e2e-tests] Set up Playwright"
- name: '[e2e-tests] Set up Playwright'
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true'
working-directory: ./template
run: |
cd e2e-tests
npx playwright install --with-deps
- name: "[e2e-tests] Install Stripe CLI"
- name: '[e2e-tests] Install Stripe CLI'
run: |
curl -s https://packages.stripe.dev/api/security/keypair/stripe-cli-gpg/public | gpg --dearmor | sudo tee /usr/share/keyrings/stripe.gpg
echo "deb [signed-by=/usr/share/keyrings/stripe.gpg] https://packages.stripe.dev/stripe-cli-debian-local stable main" | sudo tee -a /etc/apt/sources.list.d/stripe.list
@ -95,13 +95,13 @@ jobs:
# For Stripe webhooks to work in development, we need to run the Stripe CLI to listen for webhook events.
# The Stripe CLI will receive the webhook events from Stripe test payments and
# forward them to our local server so that we can test the payment flow in our e2e tests.
- name: "[e2e-tests] Run Stripe CLI to listen for webhooks"
- name: '[e2e-tests] Run Stripe CLI to listen for webhooks'
env:
STRIPE_DEVICE_NAME: ${{ secrets.STRIPE_DEVICE_NAME }}
run: |
stripe listen --api-key ${{ secrets.STRIPE_KEY }} --forward-to localhost:3001/payments-webhook &
- name: "[e2e-tests] Run Playwright tests"
- name: '[e2e-tests] Run Playwright tests'
env:
# The e2e tests are testing parts of the app that need certain env vars, so we need to access them here.
# These secretes can be set in your GitHub repo settings, e.g. https://github.com/<account>/<repo>/settings/secrets/actions

View File

@ -14,8 +14,8 @@ Since the demo app is just the open saas template with some small tweaks, and we
So because we don't version the actual demo app (`app/`) but its diffs instead (`app_diff`), the typical workflow is as follows:
1. Run `./tools/patch.sh` to generate `app/` from `../template/` and `app_diff/`.
2. If there are any conflicts (normally due to updates to the template), modify `app_diff/` till you resolve them.
3. Make any changes in the `app/` if you wish, and then generate new `app_diff/` by running `./tools/diff.sh`.
2. If there are any conflicts (normally due to updates to the template), modify `app/` till you resolve them. Do any additional changes also if you wish.
3. Generate new `app_diff/`, based on the current updated `app/`, by running `./tools/diff.sh`.
> [!WARNING]
> If you're running the `patch.sh` or `diff.sh` scripts on Mac, you need to have `grealpath` (packaged within `coreutils`) and `gpatch` installed. You should also create aliases for `realpath` and `patch`:

View File

@ -11,16 +11,16 @@
+DOTENV_VAULT_DEVELOPMENT_VERSION=12
+
+# ci
+DOTENV_VAULT_CI="2d/o/GNlLDr4CLqJdyEeusuZxMCIJw7lfqOmnC8TWMpqS+GMGHEUAQqssLTseFlEXWs9OIzxBaZosMter6cUOTcPri0yyGeIbrjqVjZHasmZ6f2fE6DtA6f/tzxuNOGwX186i9qQFRyE3oVUbzs1NLvbdSH5uGADJRZTaFD03BUbkWL01SoySWRWXQpZ88ZOENdfg4reaFTVsdb3auDW7pn19xUt+PnuZkupaXOVWScrM2kDdCC6njuovPRWBt5jgYcOEXSCwEhvRBcfd4kjEVT2Q5CJAvY3CGi9oVlw5164Y7jpShG8Yw+7FtwuIJYcQjXmMNG71j1JE+up8dPGi/vjP6EUFzbPguxzu7QtSMPoDgIcmA+OcrJA1zRhWEGTZvBsgc3i4lbPUHXYKtLtIRhRTX2KVp2z3Px+3dmaMycOkwmnKJ1yvRwaDCntpxlDtw11NuVSaDAoVxqbQe+BNxYMdnZAidGQN+Uhz6s94EMwcIaS2eH/lJc5OMTIJKHfT6lyvjVfQGmmKWmV+7A+iM0Yq+T3EWUY7/qCTdYexFBe+VmhD48pQJc/UBnf2RZknFLzKjXbXwtXLlbqCw0qnphDu/TaQOwPUNOLoDPEx4Ou9Iq4hDMeLIhY0lcQgBOP5fZl1IWMnT6itnyWGQgpFwhO5id4+nosytcOStsCe8ewBvTosxPqWNydXucJAgV5K1hlDfmZvtWHaLcLJJwcvx7B2k4qwWwQc/mmPJOisSgf1+MWW0OX/JcJkRF+Pw7n87CM015kJ7Vm3KPHxc2vRNWM0dlMgSqneHBlrgRbJK9qpce9+7fk93Er32squIG581Uv9aMArrO2uqeFeLR7senuYhWhl5Q1/ahrQVWz1b7jeGHd9tMOTVrs6jAyui70GacorztbRkS9r1EohxoMP5XismHgS7okvEPy16b3q/UBvNOTMm63+Jx5V0/RTa7eHe4lqNX98r8Nb3r87VHiZ9T9MwZ3FAwG4/RY3vuN52dMuzHmiBs30XE4fboLiQirUI8waCh/GhsrGeGUZT6S7zzqF06ahUm4th1kw++V0iIvzwTQYURMpMYhSQK5A5lN0xFDo31QqQr9eNZFtr6cKFW2fhbUrbRKLPLV/2A1CJBRXm54D+KMmeGD/x6DXDDeQmbu1UVO89/AIyBBnYZZ/egDF/lOoMC13VPsoXkOfGJ9OQVQwu8asa3CNurl+dn3WYoOk+TsIlj9uD+CY2d94jVyZ81MP+uSYfgkiXSmXy7i9YEVFBRZ2Ip+K1PEXdDCmbHZOkC5R5JCMKvYsQLXiRmUDPpbZmx9Ne3IC/eCTfHpz2lO+nvB7amsjXtOrXkIAGw26/2v3y/tpsC28wnlaHnO3Eo/TFkSAXxf7ihWYRnbNnWKeCUnDm/lrQ=="
+DOTENV_VAULT_CI_VERSION=7
+DOTENV_VAULT_CI="pveNDc605iqf5ZOh9mvYpFOc925852DGrvz7y+vs82ub3bZvTiLhJMuJKZEDtyjn7yBUdfMRsAP6wAL8/73te+4y7K56lT48MuvFlpvwM9ERkCzJY1yZ6ib3eBzTax/jon2H5kfEHBM9TRIa5B8JrCHbYqhcrnxj0VyLEa4x1I4pMTdesRZ+907FTdExaRSFFujdkUaScytOV93DTr2lQZpUGBga5CbKr3KyeSS1+ONGSWc+BQiAkdhmnvPsyKHnWRKHSFVhInne2W00LFZLBZ56I4+G7D+x+ze3/WNb5GSq7eNlVwnTJgj5AXJBjtAV/uD7cmOnJ3h+lOkvz3Wry10BaICTAx5SVfOuD5Pr/FLgR2zJau+pgqhRdcp7gG4y2thWN5ZtlLGnJlL7xgnRaD+oIYBn6fg8CCZsnsX2XZHAzJcgntph2pUd0At4UawSijDVZuylcneNdF3CJ68/fcqqpR94LYU61w4WasrAWj1hFiRV1MTpLkdQWTMT6K5k5TDouuljI3nt+Upf9mDK7efjy7OTiiArNxKpUxUy31Kl0TgWTsttDFbcOGwbsxq1t/Tu9Ph0eEhwHc2dTUuSuhV+PHxE8GwUvGiIDBbAZZq7ZyeLc5btdP++8zdXBtYM7bIa9qubaCWakruk31w6Gm5ySjGY+R1HGURldXJmypsAEcu5kK3IX4Z8IubF79T8ZvutLdoXJPSaH9x8ij7EcamTVfZPmekj6FpI3sqy7rmaUup73MBld9a3r9AQTzXbEmR+2xbK488D1il8PUqu9J3QkUeF2rpB97Uy2mgl1zF8VXiGkdP1Hpqeck8FpS89GWFF4FA3oBE/Keqvqvvs/f+KzDn2AvHHwrT6fnVBdeuSp4hK+sSkig1rh+1P69zYjIDqpph0kT+Ri7uNMkbrXX7iT5he9J1LrXtiM/DLxXqi8M3FfeN7aaSxQ2nzac1mlN+vwsIqJbzOSm+ABGHNJNjPjBZpMbeBZsFwogaCbFd2oorp02h6yC6741qwH7gFEr1EJVcu+TJspHyKpq4TFIk+srRMhuCqwUAkdzY4skjEGVhxxYMiKAtRg5IKYICqbfNsestMipAcf22teriGnmqBe9Yuzq9IXZXRcl/etagr0/B3SQhNlVj2u9VMBfhj5ZY+QcQDfSjqOcW/DyphyBU4T1/rHn1x5RznCvtbOPZ+XXFApZaeoKzj/s8JxHzM8aegITx3jVRwXnr0/0FnHTnC34b124K6HM3oKxdPdrtACgW8gH+mgXCaStBqwBdk1aV62+YQxWdHXjy9FAvTF8BktcxwE0TXC5Qu0JsoS8uYbbQmaQCNWIJWF/KptW+g9gkKDBV2Iq5mXwMLHzCtzxGarj5jqznVEX4OdbYbgSOZ5mB5JEU2OwSn2QtzqUVquAN+DygbDVrh1+KA9bk4HMt38rMKHV/i9VBHkuApYT7OUIexCu4jxUDBnid/Hnm3OfMvXrUesoqFv2cYEHX8R/jvhLx36jEWeaTYL+e9XFpSLlWJTGc7wAg0Zj+XJlNtLhFlB6pw"
+DOTENV_VAULT_CI_VERSION=8
+
+# staging
+DOTENV_VAULT_STAGING="GSG9LIe/+1lHgCvXcwD2kCP70mEVLrzT3/8sOvSpylcf3q4wn4j5G0RoeEVbShGqJNXDpvhA4v+zW5kDw+zIrWN2cnesoaZ83CjqbpwNIDYyX7T7EgeNB7EySvIs+2HI9gdSM5IU1c9zC/q/5BIgIaMrwaTT7+FWudeKhmQvCBaxgctFSc/b+Ft5y9jhkjC9mHnfmtkBqNKJiqzEJVkd6Rg64qmjE87SDQL87QH8YgU5xje7Rgcie07F9kLxXy8YRgADvWJjHdRrBlXg8wZkDXTcBCVQZNdtxWiYVArIDFxUc2obCBevL+wKTGzyBuvjQDoh1Dl0eMaAovIhejWKwfEK3g5Go6+YT8rK2ol61ONBAJ8sbzu425MZ3aGYAJ97kgdpIUjGVdh/j6x2GFhNgHX3AwRdXRVdhoAAlzbQG7rGaZXUKLaYKkpshDmo8f0dgNvp2waoq5fM9+sMwoUaZKr/rmPmOTmIOzpqztIboYYE9MXRsOGMXcCxAqLMHNzvD/JSFdz2DiOqzq1EnPspsyIQfMniF+QOQKABTX7ttGB7Lr5cy1DFjcg3e8jC/9d2Ip47RrRF50AabuoefkjMEMQamuxWD1sdZ2WodakObyFO0t+JC+GxL3UDLtxLjdGLztLAjKomxGE1Lkbjr65ptxyuOJIiG7WfmgyxNsZXnFW40M+Jk0CbW2xytuoVrtc1Eys23NcWRqvs6HR/oN+F2765dkrsgmb03gEMl9ePwzZMtU2H5SUhCDqkr19pKHNFul5k2BxwehSPqOlek5lIcULlY7I/TxutwfHsfunUx+KmkrAHhRboETinG0SP3HR2OqH/wo4wYKwmED/AwGsboLmGjXI24sLRyxwiJ3kEzyXgkk+8a/1KYggCKmsG914bWYu0qdvr2xAN/xrt5ouLk9TdJwNoAjBk4H5cx25WAIVWijjHsOHAaYVpfmHd6QZlskQZsHje/6AmA65nRKd94ARPe7+Qr6teuXpbA/2nV9ZmguOg0BWIEsBW3qPIZqyBxfspYsqCGWR5NdBwddN6wKQDeJZKQOg3BOoU0zfPT4asEQ13UDuWy3kBEj9idbz1K2UjHSePX/ahB2Ox9wodlFf0JMOLG+xL8H2Ji4J/pxEAarxXe3I3LngWz5nQUZ21XRUcS58eEH+X/9RKwQ/Twoec/q8YNGvtmB0cc/D/pgA0wigWiF9PabzyjReg3mNYr6j1IeYAZt+LVks5JpDNGH8LyanH77q2X9D6IyJNYJ3JMhERTW9KCl06PqWZThUBxXhXveo92+AeM9681L5TJVW6Pv47vh1M1dR2Vzu9LlRkgewnzojae9eZ2bLz3ODjm3+01nJQlCSLUt5W3KrbjaqLbfD4cx3s+YIRbIhFRSFNSSTqnBW9pCHEEA=="
+DOTENV_VAULT_STAGING_VERSION=7
+DOTENV_VAULT_STAGING="nAXVAHQaoF1R6J23PDrfp6kH0L+nXmZaI0OUfcCBU7QSfP+K3mbkdO92cbKVUN6ycc1wxRue6BFLEUgBLuCJQwUdKYevK81fs/ACrHYxuW6Px85FG3NJVLGvgF/3qiqu0RRfcpeB6lYJCAPFsYcoA9Cx8QDkYmvSlWAGmLJQ7cqzHUNlveOqtrXsLFV2OjlWjlYD1l7VQkaXnsY+Mij60DbRIadusoDuAB3z5m7N8/ogMOGENlUl9HRJJ4ppcJiHoBm7pxrLpK0oubx3KEDTSkPVlpNb1YYMeU2VKiGYCOMyXX8IguISrrgU4hHEvbLM8F3gnKHyx59qbwU/32yX7ofIIPsTLLTwD+mHWElPoLs9WWq249RYEmRT7w5iuCdjl9Qlr36EJKPYc7UG+P0DZROb7pXcbtYg8/gfaCXOQG5Ue2FMon4bEphkmY1CKaJKtPTXNuecDVTa8O4hEM65xrEClieVUgexEaM0g7fEUo8wOljZx96gG8Mf4RqHX3xy4M0d4/2UluE053kavUaTULhRPG/oTHIGiKFRnG0BfgQFcGRXkFgLG9zerVAoWEGAcBGHn5NECIUWqaD2Z7sdEZd9R0SZmtwUXoPV1jqHNeKEvt7fUN8xcPsV1MFAUi2cAyGLkrl541KbWpU0IpHK1pIkbfUVyDOL4htSD/SajhtlyJ79q7Xd5sKsb273ZQsmtk3ZREBjQUFA2NP+fPH7ifttVeWi3EFUi8+8cWwgNHM6Cn7LaFitah6+DcCQ6+l7SneFTEbzMlprzazBBL/Gu4kr6pNXGX0RZnR8uhs6aZZgV2h9V14s0uZx3EcAFqC3g+I5X08Fi+2ERpcfWUvFdjx5akmDQllSB+oqy6SxiJvqFnfWvVPQNhx1xh2x8OplZbzykEJ+Tfl0mlc5UHHoLQqje0jagBRSHWQbxC0jIGGyqdhnz3uG672krM/zTTc2wKWMk4EZFDG7Yc7oz3DcJXjFBgxEagd9jYxqLIN0RAH9pq+0aUP7daz0CbX+xhTd988dl+LblcnEN59XEsBOhWCd5bm51KJZcKQ1UpsVVPGHnTT7MPE2+6BheEr1dgu/LDUPDW8NT0QwBUwXwxH1ROuTOu2+LWNdFrV11sEpKGfW2bjqrkpbx/xovahbFyCSq12T0EBInAFF5bq2pB0Ik2vfEH8gNL0Z+FoqH0/aDrSuw6j8xqmd2rKL3XwL5bYVZDCc1isAWXESA9CHHTSx1NGoa1kpunJkGJY//2rn5srK9RlOOHxxUrtqVBMfEGsj7qIv/Ebsgr3dvFpdVXiRZ5s3KZZs6YlSXyukklehkjtYoMM2TaZ478ioFOtD8yx12PjI3Pfoapo2La2boM48RFcipmVNpWNsLjGXaYyhYVV3RBsZAMvkOnYRVFUiZ50+ETdfizX0H23+mmkBt8FjNqHhvg9BIRaYnKTar1FPAd840lo4w2e7n2mKufHwykI5ILrJV0ozhPy7Yr8kltPiQYjpy1ua2scUdnKCngdX0KjqNQz072e6uYlhRpOib6CEwZXqMbr/"
+DOTENV_VAULT_STAGING_VERSION=8
+
+# production
+DOTENV_VAULT_PRODUCTION="tnCGeONjuw95xeIn1a/07iux4KekBaVVjCZ6Rf9CKWnV/jRojO1rbF2zJLpSdAY1FoSgiZhUntnyJNGJBdx3QlCD2o5MSkNKtBre0W6rHj825ZgoICRuz2cwfWq5WVEPiPA16uZhHdujbnWfR646tTnkMb6LN+1wPpwuetwsHBEXabMG/7H2UT20XUChtzzm+qFmFPTg2dcS62xyXnJM1NvU5vL8D1By9Jc4uYezrIgFvPKENky6mg3S1uQhqRyzcSxLG1+amC18q1c0bOzgGJoJ5j06tbGvSES7aY09gKlNjduPstAWABoCBFQScPqgi/DttxjW2GDdOS0csOaWDAsgT9wHzrzdFTAEXKFHBUxebIlNvwOvX1ME+hPlHeBcicHHfDLbcFbj3L/2Su19KzmD4LOAcApZrkoQwrWIZE7KkluetQXIRHiDKAA4cd+UXHQe6PURT7ObiX7zHNXPM6shSSAPa6iWMOMZndM4CAUZJrzYYMnlZ1D9MCkMZTN608+f2A8JsbmbceUbLeiHpXtpmLkvkKb1pJ9uKQP38VGBQtqylcfStpEVOPX67VV/U88+BZu8E8+am072mb+fvrT+yNqmcNm6byo1+48Y96QN8i1J3qerrv3kcVWDbNKQEgyOG7UJEe2JXEFnLXYdnph10X7KAlsmfVacY8quXB8tIWdx2LbBTAB6zokifoLq5rikbXjFUKw0q0vREIspy5vtoKNDyttbc6Emsy+J/sHlS8c1TKdu1bQRPlMyoANCBVZpNuV9FRSSKJR0jRzNq4hBid28MSR8G0r059UH2nNekge9Yig35OifaLmDv6kBLmUMMKyLO/dCSH0MsOWl1TD86XZZBWCUrYayt/Ev6WbQQcDA7OOww+1OzhX712BxPZWB7iSKqaQl9wImn/cKLHa8vBvQWuq9MK9NAMNHzu8bytoaUiixgPRHsGuR8OPyvCH0EG1NnilcRSHwSDP1n+11WFsjeCYORMSdXpFzmWsuHCVMQ9T7Z/oLmAbVcAjUvGQUce9ABOeOwp2R4+p8YOFX8sAP8EkORXgKZCk+o7siusHj9nd5xNojQxDGfREQhx76Mdn6Gtg0fAT8iEGfS7+RQwu5wwr/wlxaBC8TXuunOzcgi6CO/Q+i56JBiyGKOt8Sg5MZVE9QXiEBT9rd3Emnqeu9gTJ0RuU18FwLuyM9f1VNx+JJmRBACsn1nc6JFtpd+3+yihoxyIKf/PTpyO2SMKybo8q1fVrXTlTOfNkHRTROUVpwBzAVzjWqajuY70Bz8TM6+tFKXCF7/RS94RmQCp/grc6c1DrIeAjOl1YUYPeOjVCyyY9EcMS8z+lmoIftz4ul0EH8AMPSZTw9bpJ3Waeo/V6zra5vuVPxaO0Mc66B8j4VsMUuVg=="
+DOTENV_VAULT_PRODUCTION_VERSION=7
+DOTENV_VAULT_PRODUCTION="zGpYx7O6vRv3vYt0aW1H6UF3TSi6DUFgqjeKzkNcJukFWQWvTgX5HYtLKQnBAGCDpuWY+KWfiFGNu/zVouo5LTlQb6apzBLzj0dr+PxxDpjXe8s+q7OSPH7Ist4UiVurC2nAMjgFsUpDA2LUkfPOuWPRvg1UGYjTaxEADTYCI/vk0Uegv4R11K1/HcCGXlliJk2QAVaT5ZYSo0VKvcRu5HYHSX4aAwJgnucm3xvNmPn9Cjkxx1jZL5jYfzLS1etDEPn6slDj88NzZ8BvXHeSJUftpR352azOJpL0GbSKrwoPNYU9F2JCthilLqPZPC6LJzg0/4p5vUKA83gqnDnUxEHR+ZlNK0MRTQPEwrZitruOaP1ggWIsEJA/DZFMLA5oQrq4kp+p2E99YbsPNmV0LfvsA6LtqKv393jsuzSdJ94zeLhQlRRECiTQRVEee3ug5tJ0f34N7acRSv4EdgriKp8poIsE4miVK2xXwrek9jRxeXLHzu7Oo8yBkYaX2DqtXyxf+8Qq2WgvdRm9QgfGdiwftYsjXO52jhHI7z7bJ3R/W5BR+Z0QbR83LR3ZWdI+AYY9F2CkYF62nW5TVxiWU0M4DZ5KUgVo+iNgm+AV0nefgFvud6Ln3VtNcb2bT0RFAw4MJK0LyYlNewZBJQhlfRiN+3xJKqLbDKMlhGmSHF8RRNYN9MfKwOfF62jNFlwPjgyGCjuQL96L97z50Q63TMbpEciR0uNcMavIADPs1qDhCSkYO4rQO1IgOUF34trra9KKRfoP2UdDJhiqvlTQ2Ygu2uc164Vho0E003jlBBZBI+UUJhPz4cYTtFJjpinRCp/Q0mUeiTLbo1V7T32IQ+ZkUqO7FRuwxR282OzKQVRZiUxuOAa7WxdQzrcXbCOcCvJWX8hTVrSim9z+NAFxNyTCwVBhek9EfwCfxJSCuFuI9axlb6xA1sZ/61G5+wuKeEpUvlTbQC/ZT1QJqpKMmujEePAfW++dzJJgW/nX9o0CIt3KTzwVzImAe+/oNhzKn0TbzsvMqeOaTgymo2re0Rdw3P/Fk5SUQTM7+2GIFC+iRC5a3LN7UOFP+UdQ21J+WGkkl+yvJyyjY3IRSoFWqSCU7BAjULmJmtkl1Y/60vIj+GET5hu7VGaTlIgaWiVZc4eGAu6UAeGzasTjYWNQh50p44VxQlYBijJC+JUhzPkFOLjaLx6rRZzTQVl9NUxIxdkaOn+BImJQadaC2Ad3YOMpsLVJF/p25fi2L2e2MtsDdcx2ZNlpV1GIrYGqMIiujPdpoMzibj4VmObVMB6dazpyqgAf/QXdGguyv/4JJBcNUNPbqHqMl0yY+DzGzxPCKx6WViR63HZJeC5hJE39wNEgeYGJcXrL5K2siwrFENns8Os93aoE/8xgiPdj3vLQmcL0Z30XEqPl6/V4mTgc2Oa1SAi1NGLXnVsYJ/h1Rr4a9T11zkKhRCIvT4Jd5WpvGjG3f9t7YUigb6BqlMc0BTJ6ufQP/xBBOHqzoUs3gVk4HTMDfpYwO9k9SJNkfWBn1iV102BJ"
+DOTENV_VAULT_PRODUCTION_VERSION=8
+
+#/----------------settings/metadata-----------------/
+DOTENV_VAULT="vlt_47e3eeb0730e831e688049600e59f8975260a1f00302ae08684ed87ba67872d0"

View File

@ -1,7 +1,7 @@
--- template/app/main.wasp
+++ opensaas-sh/app/main.wasp
@@ -3,24 +3,24 @@
version: "^0.14.0"
version: "^0.15.0"
},
- title: "My Open SaaS App",

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,9 @@
--- template/app/package.json
+++ opensaas-sh/app/package.json
@@ -1,12 +1,16 @@
@@ -1,13 +1,17 @@
{
"name": "opensaas",
"type": "module",
+ "scripts": {
+ "env:pull": "npx dotenv-vault@latest pull development .env.server",
+ "env:push": "npx dotenv-vault@latest push development .env.server",

View File

@ -3,7 +3,7 @@
@@ -1,8 +1,14 @@
-import { Link } from 'react-router-dom';
-import { LoginForm } from 'wasp/client/auth';
+import { Redirect, Link } from 'react-router-dom';
+import { Navigate, Link } from 'react-router-dom';
+import { LoginForm, useAuth } from 'wasp/client/auth';
import { AuthPageLayout } from './AuthPageLayout';
@ -11,7 +11,7 @@
+ const { data: user } = useAuth();
+
+ if (user) {
+ return <Redirect to='/demo-app' />;
+ return <Navigate to='/demo-app' />;
+ }
+
return (

View File

@ -2,7 +2,7 @@
title: Admin Dashboard
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This is a reference on how the Admin dashboard is set up and works.

View File

@ -2,7 +2,7 @@
title: User Overview
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This reference will help you understand how the User entity works in this template.

View File

@ -2,7 +2,7 @@
title: Analytics
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will show you how to integrate analytics for your app. You can choose between [Google Analytics](#google-analytics) and [Plausible](#plausible).

View File

@ -2,7 +2,7 @@
title: Authentication
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
Setting up your app's authentication is easy with Wasp. In fact, it's already set up for you in the `main.wasp` file:

View File

@ -2,7 +2,7 @@
title: Authorization
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will help you get started with authorization in your SaaS app.

View File

@ -2,7 +2,7 @@
title: Cookie Consent Modal
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
<img src="/cookie-consent/cookiebanner.png" alt="cookie banner" width="400px" />

View File

@ -2,7 +2,7 @@
title: Deploying
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
Because this SaaS app is a React/NodeJS/Postgres app built on top of [Wasp](https://wasp-lang.dev), we will direct you to the [Wasp Deployment Guide](https://wasp-lang.dev/docs/advanced/deployment/overview/) for more detailed instructions, except for where the instructions are specific to this template.

View File

@ -2,7 +2,7 @@
title: Email Sending
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
import { Tabs, TabItem } from '@astrojs/starlight/components';

View File

@ -2,7 +2,7 @@
title: File Uploading
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will show you how to set up file uploading in your SaaS app.

View File

@ -2,7 +2,7 @@
title: Payments Integration
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will show you how to set up Payments for testing and local development with the following payment processors:

View File

@ -2,7 +2,7 @@
title: SEO
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guides explains how to improve SEO for of your app

View File

@ -2,7 +2,7 @@
title: Tests
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will show you how to use the included end-to-end (e2e) tests for your Open SaaS application.

View File

@ -2,7 +2,7 @@
title: Introduction
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
## Welcome to your new SaaS App!

View File

@ -2,7 +2,7 @@
title: Getting Started
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
This guide will help you get your new SaaS app up and running.

View File

@ -2,7 +2,7 @@
title: Guided Tour
banner:
content: |
Open SaaS is now running on <a href='https://wasp-lang.dev'>Wasp v0.14</a>! <br/>🐝🚀<br/>If you're running an older version, please follow the <a href="https://wasp-lang.dev/docs/migrate-from-0-13-to-0-14">migration instructions.</a>
🆕 Open SaaS is now running on <b><a href='https://wasp-lang.dev'>Wasp v0.15</a></b>! <br/>⚙️<br/>If you're running an older version and would like to upgrade, please follow the <a href="https://wasp-lang.dev/docs/migration-guides/migrate-from-0-14-to-0-15">migration instructions.</a>
---
Awesome, you now have your very own SaaS app up and running! But, first, here are some important things you need to know about your app in its current state:

View File

@ -1,6 +1,6 @@
app OpenSaaS {
wasp: {
version: "^0.14.0"
version: "^0.15.0"
},
title: "My Open SaaS App",

View File

@ -1,5 +1,6 @@
{
"name": "opensaas",
"type": "module",
"dependencies": {
"@aws-sdk/client-s3": "^3.523.0",
"@aws-sdk/s3-request-presigner": "^3.523.0",
@ -29,8 +30,7 @@
"devDependencies": {
"@types/express": "^4.17.13",
"@types/react": "^18.0.37",
"@types/react-router-dom": "^5.3.3",
"prisma": "4.16.2",
"prisma": "5.19.1",
"typescript": "^5.1.0",
"vite": "^4.3.9"
}

View File

@ -103,8 +103,8 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
{/* <!-- Menu Item Dashboard --> */}
<NavLink
to='/admin'
isActive={(_match, location) => location.pathname === '/admin'}
className={(isActive) =>
end
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
@ -147,7 +147,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/users'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
@ -185,7 +185,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/settings'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
@ -234,7 +234,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/chart'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
@ -279,15 +279,12 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<React.Fragment>
<NavLink
to='#'
isActive={(_match, location) => location.pathname.includes('forms')}
className={(isActive) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
'bg-gray-700 dark:bg-meta-4': isActive,
}
)
}
className={cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
'bg-gray-700 dark:bg-meta-4': pathname.includes('forms'),
}
)}
onClick={(e) => {
e.preventDefault();
sidebarExpanded ? handleClick() : setSidebarExpanded(true);
@ -347,7 +344,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/forms/form-elements'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-md px-4 font-medium text-bodydark2 duration-300 ease-in-out hover:text-white',
{ '!text-white': isActive }
@ -360,7 +357,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/forms/form-layouts'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-md px-4 font-medium text-bodydark2 duration-300 ease-in-out hover:text-white',
{ '!text-white': isActive }
@ -383,7 +380,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/calendar'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
@ -417,15 +414,12 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<React.Fragment>
<NavLink
to='#'
isActive={(_match, location) => location.pathname.includes('ui')}
className={(isActive) =>
cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
'bg-gray-700 dark:bg-meta-4': isActive,
}
)
}
className={cn(
'group relative flex items-center gap-2.5 rounded-sm py-2 px-4 font-medium text-bodydark1 duration-300 ease-in-out hover:bg-gray-700 dark:hover:bg-meta-4',
{
'bg-gray-700 dark:bg-meta-4': pathname.includes('ui'),
}
)}
onClick={(e) => {
e.preventDefault();
sidebarExpanded ? handleClick() : setSidebarExpanded(true);
@ -484,7 +478,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/ui/alerts'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-md px-4 font-medium text-bodydark2 duration-300 ease-in-out hover:text-white',
{ '!text-white': isActive }
@ -497,7 +491,7 @@ const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => {
<li>
<NavLink
to='/admin/ui/buttons'
className={(isActive) =>
className={({ isActive }) =>
cn(
'group relative flex items-center gap-2.5 rounded-md px-4 font-medium text-bodydark2 duration-300 ease-in-out hover:text-white',
{ '!text-white': isActive }

View File

@ -1,13 +1,13 @@
import { type AuthUser } from 'wasp/auth';
import { useEffect } from 'react';
import { useHistory } from 'react-router-dom';
import { useNavigate } from 'react-router-dom';
export function useRedirectHomeUnlessUserIsAdmin({ user }: { user: AuthUser }) {
const history = useHistory();
const navigate = useNavigate();
useEffect(() => {
if (!user.isAdmin) {
history.push('/');
navigate('/');
}
}, [user, history]);
}

View File

@ -4,13 +4,13 @@ import './Main.css';
import AppNavBar from './components/AppNavBar';
import CookieConsentBanner from './components/cookie-consent/Banner';
import { useMemo, useEffect, ReactNode } from 'react';
import { useLocation } from 'react-router-dom';
import { Outlet, useLocation } from 'react-router-dom';
/**
* use this component to wrap all child components
* this is useful for templates, themes, and context
*/
export default function App({ children }: { children: ReactNode }) {
export default function App() {
const location = useLocation();
const { data: user } = useAuth();
@ -46,11 +46,13 @@ export default function App({ children }: { children: ReactNode }) {
<>
<div className='min-h-screen dark:text-white dark:bg-boxdark-2'>
{isAdminDashboard ? (
<>{children}</>
<Outlet />
) : (
<>
{shouldDisplayAppNavBar && <AppNavBar />}
<div className='mx-auto max-w-7xl sm:px-6 lg:px-8'>{children}</div>
<div className='mx-auto max-w-7xl sm:px-6 lg:px-8'>
<Outlet />
</div>
</>
)}
</div>

View File

@ -1,16 +1,16 @@
import { useEffect, useState } from 'react';
import { useHistory, useLocation } from 'react-router-dom';
import { useNavigate, useLocation } from 'react-router-dom';
export default function CheckoutPage() {
const [paymentStatus, setPaymentStatus] = useState('loading');
const history = useHistory();
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
function delayedRedirect() {
return setTimeout(() => {
history.push('/account');
navigate('/account');
}, 4000);
}
@ -23,7 +23,7 @@ export default function CheckoutPage() {
} else if (isSuccess) {
setPaymentStatus('paid');
} else {
history.push('/account');
navigate('/account');
}
delayedRedirect();
return () => {

View File

@ -3,7 +3,7 @@ import { generateCheckoutSession, getCustomerPortalUrl, useQuery } from 'wasp/cl
import { PaymentPlanId, paymentPlans, prettyPaymentPlanName } from './plans';
import { AiFillCheckCircle } from 'react-icons/ai';
import { useState } from 'react';
import { useHistory } from 'react-router-dom';
import { useNavigate } from 'react-router-dom';
import { cn } from '../client/cn';
const bestDealPaymentPlanId: PaymentPlanId = PaymentPlanId.Pro;
@ -48,11 +48,11 @@ const PricingPage = () => {
error: customerPortalUrlError,
} = useQuery(getCustomerPortalUrl, { enabled: isUserSubscribed });
const history = useHistory();
const navigate = useNavigate();
async function handleBuyNowClick(paymentPlanId: PaymentPlanId) {
if (!user) {
history.push('/login');
navigate('/login');
return;
}
try {
@ -73,7 +73,7 @@ const PricingPage = () => {
const handleCustomerPortalClick = () => {
if (!user) {
history.push('/login');
navigate('/login');
return;
}

View File

@ -10,9 +10,9 @@
"license": "ISC",
"dependencies": {
"@playwright/test": "^1.42.1",
"@prisma/client": "^4.16.2",
"@prisma/client": "5.19.1",
"linebyline": "^1.3.0",
"prisma": "^4.16.2"
"prisma": "5.19.1"
},
"devDependencies": {
"@types/node": "^18.0.0"
@ -33,15 +33,13 @@
}
},
"node_modules/@prisma/client": {
"version": "4.16.2",
"resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.16.2.tgz",
"integrity": "sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==",
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz",
"integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==",
"hasInstallScript": true,
"dependencies": {
"@prisma/engines-version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81"
},
"license": "Apache-2.0",
"engines": {
"node": ">=14.17"
"node": ">=16.13"
},
"peerDependencies": {
"prisma": "*"
@ -52,16 +50,50 @@
}
}
},
"node_modules/@prisma/debug": {
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.19.1.tgz",
"integrity": "sha512-lAG6A6QnG2AskAukIEucYJZxxcSqKsMK74ZFVfCTOM/7UiyJQi48v6TQ47d6qKG3LbMslqOvnTX25dj/qvclGg==",
"license": "Apache-2.0"
},
"node_modules/@prisma/engines": {
"version": "4.16.2",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.16.2.tgz",
"integrity": "sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==",
"hasInstallScript": true
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.19.1.tgz",
"integrity": "sha512-kR/PoxZDrfUmbbXqqb8SlBBgCjvGaJYMCOe189PEYzq9rKqitQ2fvT/VJ8PDSe8tTNxhc2KzsCfCAL+Iwm/7Cg==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"@prisma/debug": "5.19.1",
"@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3",
"@prisma/fetch-engine": "5.19.1",
"@prisma/get-platform": "5.19.1"
}
},
"node_modules/@prisma/engines-version": {
"version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81",
"resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81.tgz",
"integrity": "sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg=="
"version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3",
"resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz",
"integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==",
"license": "Apache-2.0"
},
"node_modules/@prisma/fetch-engine": {
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.19.1.tgz",
"integrity": "sha512-pCq74rtlOVJfn4pLmdJj+eI4P7w2dugOnnTXpRilP/6n5b2aZiA4ulJlE0ddCbTPkfHmOL9BfaRgA8o+1rfdHw==",
"license": "Apache-2.0",
"dependencies": {
"@prisma/debug": "5.19.1",
"@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3",
"@prisma/get-platform": "5.19.1"
}
},
"node_modules/@prisma/get-platform": {
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.19.1.tgz",
"integrity": "sha512-sCeoJ+7yt0UjnR+AXZL7vXlg5eNxaFOwC23h0KvW1YIXUoa7+W2ZcAUhoEQBmJTW4GrFqCuZ8YSP0mkDa4k3Zg==",
"license": "Apache-2.0",
"dependencies": {
"@prisma/debug": "5.19.1"
}
},
"node_modules/@types/node": {
"version": "18.19.24",
@ -119,19 +151,36 @@
}
},
"node_modules/prisma": {
"version": "4.16.2",
"resolved": "https://registry.npmjs.org/prisma/-/prisma-4.16.2.tgz",
"integrity": "sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==",
"version": "5.19.1",
"resolved": "https://registry.npmjs.org/prisma/-/prisma-5.19.1.tgz",
"integrity": "sha512-c5K9MiDaa+VAAyh1OiYk76PXOme9s3E992D7kvvIOhCrNsBQfy2mP2QAQtX0WNj140IgG++12kwZpYB9iIydNQ==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"@prisma/engines": "4.16.2"
"@prisma/engines": "5.19.1"
},
"bin": {
"prisma": "build/index.js",
"prisma2": "build/index.js"
"prisma": "build/index.js"
},
"engines": {
"node": ">=14.17"
"node": ">=16.13"
},
"optionalDependencies": {
"fsevents": "2.3.3"
}
},
"node_modules/prisma/node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/undici-types": {

View File

@ -24,9 +24,9 @@
"license": "ISC",
"dependencies": {
"@playwright/test": "^1.42.1",
"@prisma/client": "^4.16.2",
"@prisma/client": "5.19.1",
"linebyline": "^1.3.0",
"prisma": "^4.16.2"
"prisma": "5.19.1"
},
"devDependencies": {
"@types/node": "^18.0.0"