Compare commits
56 Commits
@nhost/rea
...
@nhost/cor
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee2dd8481b | ||
|
|
b8e787cb47 | ||
|
|
2ef5c238c1 | ||
|
|
197d1d5cfc | ||
|
|
abd43d0a8b | ||
|
|
70383c8c80 | ||
|
|
da7c2a2362 | ||
|
|
4a7940b59a | ||
|
|
ddda8bb031 | ||
|
|
b146e60f7e | ||
|
|
5591789840 | ||
|
|
fac5ddb866 | ||
|
|
f2fab8dac2 | ||
|
|
6e3f2c382d | ||
|
|
05385d01dc | ||
|
|
7ea72b799c | ||
|
|
4936261cee | ||
|
|
80902b9cf1 | ||
|
|
c3af490e67 | ||
|
|
6a24e32857 | ||
|
|
0ebddd30cf | ||
|
|
d019f1de21 | ||
|
|
3abb57f510 | ||
|
|
4a2ad15f14 | ||
|
|
ca45b612c9 | ||
|
|
27ee9b721f | ||
|
|
2a373dd50f | ||
|
|
a91f714c4c | ||
|
|
3b4d89d5b6 | ||
|
|
16d1b26298 | ||
|
|
86d8beb044 | ||
|
|
17f870f31f | ||
|
|
fbfffe25ca | ||
|
|
87a472b27e | ||
|
|
779b03b0b2 | ||
|
|
9d933b6ffd | ||
|
|
34d643868d | ||
|
|
0023f5f6f6 | ||
|
|
48f5c8bfb9 | ||
|
|
f398b2e3ac | ||
|
|
11795abe61 | ||
|
|
e2eafc9ee1 | ||
|
|
4a908af7ef | ||
|
|
a7b6498053 | ||
|
|
7f418a7559 | ||
|
|
50474810bf | ||
|
|
ead2c16aac | ||
|
|
21fa83d115 | ||
|
|
522839d8f7 | ||
|
|
87aad599f3 | ||
|
|
5b097e635d | ||
|
|
bfdcacd5a3 | ||
|
|
dcb9055475 | ||
|
|
6f0bf3d67c | ||
|
|
3c96c561a0 | ||
|
|
3d319364f3 |
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npx lint-staged
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"packages/(docgen|hasura-auth-js|hasura-storage-js|nextjs|nhost-js|react|core|vue)/src/**/*.{js,ts,jsx,tsx}": [
|
||||
"pnpm docgen",
|
||||
"git add docs"
|
||||
]
|
||||
}
|
||||
27
README.md
27
README.md
@@ -147,13 +147,6 @@ Here are some ways of contributing to making Nhost better:
|
||||
<sub><b>Johan Eliasson</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/szilarddoro">
|
||||
<img src="https://avatars.githubusercontent.com/u/310881?v=4" width="100;" alt="szilarddoro"/>
|
||||
<br />
|
||||
<sub><b>Szilárd Dóró</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/gdangelo">
|
||||
<img src="https://avatars.githubusercontent.com/u/4352286?v=4" width="100;" alt="gdangelo"/>
|
||||
@@ -174,15 +167,15 @@ Here are some ways of contributing to making Nhost better:
|
||||
<br />
|
||||
<sub><b>Guido Curcio</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/subatuba21">
|
||||
<img src="https://avatars.githubusercontent.com/u/34824571?v=4" width="100;" alt="subatuba21"/>
|
||||
<br />
|
||||
<sub><b>Subha Das</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/sebagudelo">
|
||||
<img src="https://avatars.githubusercontent.com/u/43288271?v=4" width="100;" alt="sebagudelo"/>
|
||||
@@ -204,6 +197,13 @@ Here are some ways of contributing to making Nhost better:
|
||||
<sub><b>Pratim</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/szilarddoro">
|
||||
<img src="https://avatars.githubusercontent.com/u/310881?v=4" width="100;" alt="szilarddoro"/>
|
||||
<br />
|
||||
<sub><b>Szilárd Dóró</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/FuzzyReason">
|
||||
<img src="https://avatars.githubusercontent.com/u/62517920?v=4" width="100;" alt="FuzzyReason"/>
|
||||
@@ -391,6 +391,13 @@ Here are some ways of contributing to making Nhost better:
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/nachoaldamav">
|
||||
<img src="https://avatars.githubusercontent.com/u/22749943?v=4" width="100;" alt="nachoaldamav"/>
|
||||
<br />
|
||||
<sub><b>Nacho Aldama</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ghoshnirmalya">
|
||||
<img src="https://avatars.githubusercontent.com/u/6391763?v=4" width="100;" alt="ghoshnirmalya"/>
|
||||
|
||||
4
config/.husky/pre-commit
Executable file
4
config/.husky/pre-commit
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npx lint-staged --config config/.lintstagedrc.js
|
||||
8
config/.lintstagedrc.js
Normal file
8
config/.lintstagedrc.js
Normal file
@@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
'packages/(docgen|hasura-auth-js|hasura-storage-js|nextjs|nhost-js|react|core|vue)/src/**/*.{js,ts,jsx,tsx}':
|
||||
['pnpm docgen', 'git add docs'],
|
||||
'(nhost-cloud.yaml|**/nhost/config.yaml)': () => [
|
||||
'pnpm sync-versions',
|
||||
"git add ':(glob)**/nhost/config.yaml'"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: Sign In with Apple
|
||||
sidebar_label: Apple
|
||||
slug: /platform/authentication/sign-in-with-apple
|
||||
image: /img/og/platform/sign-in-with-apple.png
|
||||
---
|
||||
|
||||
Follow this guide to sign in users with Apple with your Nhost App.
|
||||
|
||||
<p align="center">
|
||||
<img
|
||||
alt="Apple Sign In Preview"
|
||||
src="/img/social-providers/apple-preview.svg"
|
||||
width={480}
|
||||
height={267}
|
||||
/>
|
||||
</p>
|
||||
|
||||
## Create Apple Developer Account
|
||||
|
||||
- Click on "Account" in the top menu.
|
||||
- Create a new [Apple Developer account](https://developer.apple.com) if you don't have one already and sign in to the Apple Developer platform.
|
||||
|
||||
## Get an App ID
|
||||
|
||||
- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
|
||||
- Click on **Certificates, IDs & Profiles** in the left menu.
|
||||
- Click on **Identifiers** in the left menu.
|
||||
- Click on the "+" button in the header next to "Identifiers".
|
||||
- Select **App IDs** and click **Continue**.
|
||||
- Select type **App** and click **Continue**.
|
||||
- Fill in the App information:
|
||||
|
||||
- Description.
|
||||
- Bundle ID (ex. io.nhost.app or com.your-startup.app).
|
||||
- Scroll down and check **Sign In With Apple**.
|
||||
- Click **Continue** in the top right corner.
|
||||
- Click **Register** in the top right corner.
|
||||
|
||||
- Click on the newly created app to see **Team ID**.
|
||||
|
||||
- **Team ID**: Copy and paste the **Team ID** to your Nhost OAuth settings for Apple.
|
||||
|
||||
## Get a Service ID
|
||||
|
||||
- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
|
||||
- Click on **Certificates, IDs & Profiles** in the left menu.
|
||||
- Click on **Identifiers** in the left menu.
|
||||
- Click on **Certificates, IDs & Profiles** in the left menu.
|
||||
- Click on **Identifiers** in the left menu.
|
||||
- Click on the "+" button in the header next to "Identifiers".
|
||||
- Select **Service IDs** and click **Continue**.
|
||||
|
||||
- Fill in the Service information:
|
||||
|
||||
- Description.
|
||||
- Identifier (Service ID) (ex. _service_.io.nhost.app or _service_.com.your-startup.app). Notice you can't use the same identifier as for the app so we recommend adding "service" at the beginning if the identifier.
|
||||
- **Service ID**: Copy and paste the **Identifier (Service ID)** to your Nhost OAuth settings for Apple.
|
||||
- Click **Continue** in the top right corner.
|
||||
- Click **Register** in the top right corner.
|
||||
|
||||
- Click on the newly created service in the list of Identifiers.
|
||||
- Click the checkbox to enable "Sign in with Apple".
|
||||
- Click **Configure** next to "Sign in with Apple".
|
||||
- Make sure your newly created Bundle ID is selected under Primary App ID.
|
||||
- Add your base auth domain under "Domains and Subdomains". E.g. `<subdomain>.nhost.run`.
|
||||
- Add the full callback URL under "Return URLs". E.g. `https://<subdomain>.nhost.run/v1/auth/signin/provider/apple/callback`.
|
||||
- Click **Next**.
|
||||
- Click **Done**.
|
||||
- Click **Continue** in the top right corner.
|
||||
- Click **Save** in the top right corner.
|
||||
|
||||
## Generate Key
|
||||
|
||||
- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
|
||||
- Click on **Certificates, IDs & Profiles** in the left menu.
|
||||
- Click on **Keys** in the left menu.
|
||||
- Click on **Create a key**.
|
||||
- Fill in a name for your key.
|
||||
- Click the checkbox to enable "Sign in with Apple".
|
||||
- Click **Configure** next to "Sign in with Apple".
|
||||
- Select your newly created App ID in the dropdown selector.
|
||||
- Click **Save** in the top right corner.
|
||||
- Click **Continue** in the top right corner.
|
||||
- Click **Register** in the top right corner.
|
||||
- **Key ID**: Copy and paste the **Key ID** to your Nhost OAuth settings for Apple.
|
||||
- Click **Download** to download the key to your computer.
|
||||
- **Private Key**: Copy and paste the content of the downloaded key to your Nhost OAuth settings for Apple.
|
||||
|
||||
## Sign In Users
|
||||
|
||||
Use the [Nhost JavaScript client](/reference/javascript) to sign in users in your app:
|
||||
|
||||
```js
|
||||
nhost.auth.signIn({
|
||||
provider: 'apple'
|
||||
})
|
||||
```
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: Sign In with Discord
|
||||
sidebar_label: Discord
|
||||
slug: /platform/authentication/sign-in-with-discord
|
||||
image: /img/og/platform/sign-in-with-discord.png
|
||||
---
|
||||
|
||||
Follow this guide to sign in users with Discord with your Nhost App.
|
||||
|
||||
<p align="center">
|
||||
<img
|
||||
alt="Discord Sign In Preview"
|
||||
src="/img/social-providers/discord-preview.svg"
|
||||
width={480}
|
||||
height={267}
|
||||
/>
|
||||
</p>
|
||||
|
||||
## Create Discord Account
|
||||
|
||||
- Create a new [Discord account](https://discord.com/) if you don't have one already.
|
||||
|
||||
## Create Discord App
|
||||
|
||||
- Sign in to the [Discord Developer Portal](https://discord.com/developers/applications).
|
||||
- Click on **New Application** in the top right corner.
|
||||
- Fill in the name of your Discord Application and click **Create**.
|
||||
- Click on **OAuth2** settings in the left menu.
|
||||
- Copy the **Client ID** and paste it into your Nhost OAuth settings for Discord.
|
||||
- Click on **Reset Secret**.
|
||||
- Click **Yes, do it** to generate a new secret.
|
||||
- Copy the **Client Secret** and paste it into your Nhost OAuth settings for Discord.
|
||||
- Click on **Add Redirect**.
|
||||
- Copy and paste the callback URL from your Nhost OAuth settings for Discord to the input field in the Discord Developer portal.
|
||||
- Click **Save Changes** to save the added callback URL.
|
||||
|
||||
## Sign In Users
|
||||
|
||||
Use the [Nhost JavaScript client](/reference/javascript) to sign in users in your app:
|
||||
|
||||
```js
|
||||
nhost.auth.signIn({
|
||||
provider: 'discord'
|
||||
})
|
||||
```
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: Sign In with Twitch
|
||||
sidebar_label: Twitch
|
||||
slug: /platform/authentication/sign-in-with-twitch
|
||||
image: /img/og/platform/sign-in-with-twitch.png
|
||||
---
|
||||
|
||||
Follow this guide to sign in users with Twitch with your Nhost App.
|
||||
|
||||
<p align="center">
|
||||
<img
|
||||
alt="Twitch Sign In Preview"
|
||||
src="/img/social-providers/twitch-preview.svg"
|
||||
width={480}
|
||||
height={267}
|
||||
/>
|
||||
</p>
|
||||
|
||||
## Create Twitch Account
|
||||
|
||||
- Create a new [Twitch account](https://twitch.tv/) if you don't have one already.
|
||||
|
||||
## Create Twitch App
|
||||
|
||||
- Sign in to the [Twitch Developer Console](https://dev.twitch.tv/console).
|
||||
- Click on **Register Your Application**.
|
||||
- Fill in a **Twitch application name**.
|
||||
- Copy and paste the callback URL from your Nhost OAuth settings for Twitch to the input field under **OAuth Redirect URLs** and click **Add** to the right of the input field.
|
||||
- Select an application **Category**. E.g. _Application Integration_.
|
||||
- Click **Create**.
|
||||
|
||||
## Get Twitch Appplication Client ID and Client Secret
|
||||
|
||||
- Click on **Manage** on your newly created Twitch application.
|
||||
- Copy the **Client ID** and paste it into your Nhost OAuth settings for Twitch.
|
||||
- Click on **New Secret** to generate a new client secret.
|
||||
- Copy the **Client Secret** and paste it into your Nhost OAuth settings for Twitch.
|
||||
|
||||
## Sign In Users
|
||||
|
||||
Use the [Nhost JavaScript client](/reference/javascript) to sign in users in your app:
|
||||
|
||||
```js
|
||||
nhost.auth.signIn({
|
||||
provider: 'twitch'
|
||||
})
|
||||
```
|
||||
@@ -35,6 +35,18 @@ nhost.auth.signIn({
|
||||
|
||||
Users are redirected to your Nhost app's **client URL** by default. By default, your Nhost app's client URL is set to `http://localhost:3000`. You can change the value of your client URL in the Nhost console by going to **Users** → **Authentication Settings** → **Client URL**.
|
||||
|
||||
|
||||
Here is an example of how to redirect to another host or path:
|
||||
|
||||
```js
|
||||
nhost.auth.signIn({
|
||||
provider: '<provider>'
|
||||
options: {
|
||||
redirectTo: "<host>/<slug>" // Example: "https://example.com/dashboard"
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
## Provider OAuth scopes
|
||||
|
||||
Scopes are a mechanism in OAuth to allow or limit an application's access to a user's account.
|
||||
|
||||
BIN
docs/static/img/og/platform/sign-in-with-apple.png
vendored
Normal file
BIN
docs/static/img/og/platform/sign-in-with-apple.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
BIN
docs/static/img/og/platform/sign-in-with-discord.png
vendored
Normal file
BIN
docs/static/img/og/platform/sign-in-with-discord.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
BIN
docs/static/img/og/platform/sign-in-with-twitch.png
vendored
Normal file
BIN
docs/static/img/og/platform/sign-in-with-twitch.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 160 KiB |
16
docs/static/img/social-providers/apple-preview.svg
vendored
Normal file
16
docs/static/img/social-providers/apple-preview.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 22 KiB |
1
docs/static/img/social-providers/discord-preview.svg
vendored
Normal file
1
docs/static/img/social-providers/discord-preview.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 67 KiB |
1
docs/static/img/social-providers/twitch-preview.svg
vendored
Normal file
1
docs/static/img/social-providers/twitch-preview.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/static/videos/add-user.mp4
vendored
BIN
docs/static/videos/add-user.mp4
vendored
Binary file not shown.
BIN
docs/static/videos/open-hasura-console.mp4
vendored
BIN
docs/static/videos/open-hasura-console.mp4
vendored
Binary file not shown.
@@ -1,4 +1,5 @@
|
||||
metadata_directory: metadata
|
||||
services:
|
||||
mailhog:
|
||||
port: 8025
|
||||
hasura:
|
||||
@@ -6,9 +7,9 @@ metadata_directory: metadata
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
minio:
|
||||
environment:
|
||||
minio_root_password: minioaccesskey123123
|
||||
@@ -20,12 +21,12 @@ metadata_directory: metadata
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
allowed_email_domains: ""
|
||||
allowed_emails: ""
|
||||
blocked_email_domains: ""
|
||||
blocked_emails: ""
|
||||
allowed_email_domains: ''
|
||||
allowed_emails: ''
|
||||
blocked_email_domains: ''
|
||||
blocked_emails: ''
|
||||
url:
|
||||
allowed_redirect_urls: ""
|
||||
allowed_redirect_urls: ''
|
||||
anonymous_users_enabled: false
|
||||
client_url: http://localhost:3000
|
||||
disable_new_users: false
|
||||
@@ -34,11 +35,11 @@ auth:
|
||||
passwordless:
|
||||
enabled: false
|
||||
signin_email_verified_required: true
|
||||
template_fetch_url: ""
|
||||
template_fetch_url: ''
|
||||
gravatar:
|
||||
default: ""
|
||||
default: ''
|
||||
enabled: true
|
||||
rating: ""
|
||||
rating: ''
|
||||
locale:
|
||||
allowed: en
|
||||
default: en
|
||||
@@ -47,65 +48,65 @@ auth:
|
||||
min_length: 3
|
||||
provider:
|
||||
apple:
|
||||
client_id: ""
|
||||
client_id: ''
|
||||
enabled: false
|
||||
key_id: ""
|
||||
private_key: ""
|
||||
key_id: ''
|
||||
private_key: ''
|
||||
scope: name,email
|
||||
team_id: ""
|
||||
team_id: ''
|
||||
bitbucket:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
facebook:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: email,photos,displayName
|
||||
github:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: user:email
|
||||
token_url: ""
|
||||
user_profile_url: ""
|
||||
token_url: ''
|
||||
user_profile_url: ''
|
||||
gitlab:
|
||||
base_url: ""
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
base_url: ''
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: read_user
|
||||
google:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: email,profile
|
||||
linkedin:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: r_emailaddress,r_liteprofile
|
||||
spotify:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: user-read-email,user-read-private
|
||||
strava:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
twilio:
|
||||
account_sid: ""
|
||||
auth_token: ""
|
||||
account_sid: ''
|
||||
auth_token: ''
|
||||
enabled: false
|
||||
messaging_service_id: ""
|
||||
messaging_service_id: ''
|
||||
twitter:
|
||||
consumer_key: ""
|
||||
consumer_secret: ""
|
||||
consumer_key: ''
|
||||
consumer_secret: ''
|
||||
enabled: false
|
||||
windows_live:
|
||||
client_id: ""
|
||||
client_secret: ""
|
||||
client_id: ''
|
||||
client_secret: ''
|
||||
enabled: false
|
||||
scope: wl.basic,wl.emails,wl.contacts_emails
|
||||
sms:
|
||||
@@ -114,13 +115,13 @@ auth:
|
||||
enabled: false
|
||||
provider:
|
||||
twilio:
|
||||
account_sid: ""
|
||||
auth_token: ""
|
||||
from: ""
|
||||
messaging_service_id: ""
|
||||
account_sid: ''
|
||||
auth_token: ''
|
||||
from: ''
|
||||
messaging_service_id: ''
|
||||
smtp:
|
||||
host: nhost_mailhog
|
||||
method: ""
|
||||
method: ''
|
||||
pass: password
|
||||
port: 1706
|
||||
secure: false
|
||||
|
||||
@@ -101,7 +101,7 @@ services:
|
||||
- "traefik.http.routers.storage.middlewares=strip-suffix@docker"
|
||||
command: serve
|
||||
functions:
|
||||
build: docker-functions
|
||||
image: nhost/functions:latest
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.strip-functions.stripprefix.prefixes=/v1/functions"
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
FROM node:14-alpine
|
||||
|
||||
# * Same version as in Watchtower
|
||||
ARG EXPRESS_VERSION 4.17.1
|
||||
ENV EXPRESS_VERSION $EXPRESS_VERSION
|
||||
|
||||
# * path to the server files
|
||||
ARG SERVER_PATH /opt/server
|
||||
ENV SERVER_PATH=$SERVER_PATH
|
||||
|
||||
# * Required to access to the globally installed modules
|
||||
ENV NODE_PATH=/usr/local/lib/node_modules
|
||||
|
||||
# * Add path to the stored pnpm packages
|
||||
ENV PNPM_HOME=/root/.local/share/pnpm
|
||||
ENV PATH=$PATH:$PNPM_HOME
|
||||
|
||||
# * Directory where the Nhost project is located
|
||||
ENV NHOST_PROJECT_PATH=/opt/project
|
||||
|
||||
# * Default package manager
|
||||
ENV PACKAGE_MANAGER=pnpm
|
||||
|
||||
# * Install packages that are required for this docker image to run
|
||||
RUN npm install -g pnpm nodemon express@$EXPRESS_VERSION glob @swc-node/register typescript @antfu/ni
|
||||
|
||||
# * The pnpm store should be mounted in the same volume as node_modules (requires hard links)
|
||||
# * See https://pnpm.io/6.x/npmrc#store-dir
|
||||
RUN pnpm config set store-dir $NHOST_PROJECT_PATH/node_modules/.pnpm-store
|
||||
|
||||
# * Copy server files
|
||||
COPY nodemon.json start.sh server.ts $SERVER_PATH/
|
||||
|
||||
# * Change working directory to the Nhost project directory
|
||||
WORKDIR $NHOST_PROJECT_PATH
|
||||
|
||||
CMD $SERVER_PATH/start.sh
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"ignore": ["!(package*.json|pnpm-*.yaml|yarn.lock)"],
|
||||
"execMap": {
|
||||
"json": "ni && nodemon -w functions -x 'node -r @swc-node/register' $SERVER_PATH/server.ts"
|
||||
},
|
||||
"ext": "json,yaml,lock"
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
import path from 'path'
|
||||
|
||||
import express from 'express'
|
||||
import glob from 'glob'
|
||||
|
||||
const PORT = 3000
|
||||
|
||||
const main = async () => {
|
||||
const app = express()
|
||||
|
||||
// * Same settings as in Watchtower
|
||||
app.use(express.json())
|
||||
app.use(express.urlencoded({ extended: true }))
|
||||
app.disable('x-powered-by')
|
||||
|
||||
const functionsPath = path.join(process.cwd(), 'functions')
|
||||
const files = glob.sync('**/*.@(js|ts)', { cwd: functionsPath })
|
||||
|
||||
for (const file of files) {
|
||||
const { default: handler } = await import(path.join(functionsPath, file))
|
||||
if (handler) {
|
||||
const route = `/${file}`
|
||||
.replace(/(\.ts|\.js)$/, '')
|
||||
.replace(/\/index$/, '/')
|
||||
app.all(route, handler)
|
||||
console.log(`Loaded route ${route} from ./functions/${file}`)
|
||||
} else {
|
||||
console.warn(`No default export in ./functions/${file}`)
|
||||
}
|
||||
}
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Listening on port ${PORT}`)
|
||||
})
|
||||
}
|
||||
|
||||
main()
|
||||
@@ -1,9 +0,0 @@
|
||||
# * Set the default package manager to use if cannot be guessed from lock files
|
||||
echo "defaultAgent=$PACKAGE_MANAGER" > ~/.nirc
|
||||
|
||||
# * Create a default package.json file if it doesn't exist yet
|
||||
npm init -y 1> /dev/null
|
||||
|
||||
# * Start nodemon that listens to package.json and lock files and run npm/pnpm/yarn install,
|
||||
# * Then run another nodemon that listens to the functions directory and run the server
|
||||
nodemon --config $SERVER_PATH/nodemon.json package.json
|
||||
@@ -3,6 +3,7 @@ services:
|
||||
hasura:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
version: v2.8.0
|
||||
minio:
|
||||
environment:
|
||||
minio_root_password: minioaccesskey123123
|
||||
@@ -11,6 +12,10 @@ services:
|
||||
environment:
|
||||
postgres_password: postgres
|
||||
postgres_user: postgres
|
||||
auth:
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -7,9 +7,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -5,9 +5,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: true
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -7,9 +7,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -7,9 +7,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
<template>
|
||||
<v-snackbar
|
||||
v-model="snack"
|
||||
:timeout="2_000"
|
||||
>
|
||||
<v-snackbar v-model="snack" :timeout="2_000">
|
||||
{{ error?.message }}
|
||||
<template #actions>
|
||||
<v-btn
|
||||
color="blue"
|
||||
variant="text"
|
||||
@click="snack = false"
|
||||
>
|
||||
Close
|
||||
</v-btn>
|
||||
<v-btn color="blue" variant="text" @click="snack = false"> Close </v-btn>
|
||||
</template>
|
||||
</v-snackbar>
|
||||
</template>
|
||||
@@ -26,7 +17,7 @@ export default defineComponent({
|
||||
},
|
||||
setup(props) {
|
||||
const snack = ref(false)
|
||||
|
||||
|
||||
watchEffect(() => {
|
||||
if (props.error) {
|
||||
snack.value = true
|
||||
|
||||
@@ -4,7 +4,12 @@
|
||||
<v-list-item title="Profile" to="/profile" value="profile" prepend-icon="mdi-account" />
|
||||
<v-list-item title="Apollo" to="/apollo" value="apollo" prepend-icon="mdi-api" />
|
||||
<v-list-item title="About" to="/about" value="about" prepend-icon="mdi-information" />
|
||||
<v-list-item v-if="authenticated" title="Sign out" prepend-icon="mdi-exit-to-app" @click="signOutHandler" />
|
||||
<v-list-item
|
||||
v-if="authenticated"
|
||||
title="Sign out"
|
||||
prepend-icon="mdi-exit-to-app"
|
||||
@click="signOutHandler"
|
||||
/>
|
||||
</v-list>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
|
||||
@@ -41,7 +41,7 @@ import { useProviderLink } from '@nhost/vue'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const { github, google, facebook } = useProviderLink()
|
||||
const { github, google, facebook } = useProviderLink({ redirectTo: window.location.origin })
|
||||
return { github, google, facebook }
|
||||
}
|
||||
})
|
||||
|
||||
@@ -43,7 +43,7 @@ const vuetify = createVuetify({
|
||||
}
|
||||
})
|
||||
|
||||
const devTools = !!import.meta.env.VITE_DEBUG
|
||||
const devTools = import.meta.env.VITE_DEBUG === 'true'
|
||||
if (devTools) {
|
||||
inspect({
|
||||
url: 'https://stately.ai/viz?inspect',
|
||||
@@ -52,7 +52,9 @@ if (devTools) {
|
||||
}
|
||||
|
||||
const nhost = new NhostClient({
|
||||
backendUrl: import.meta.env.VITE_NHOST_URL
|
||||
subdomain: import.meta.env.VITE_NHOST_SUBDOMAIN || 'localhost:1337',
|
||||
region: import.meta.env.VITE_NHOST_REGION,
|
||||
devTools
|
||||
})
|
||||
|
||||
const apolloClient = createApolloClient({ nhost })
|
||||
|
||||
@@ -11,13 +11,7 @@
|
||||
>
|
||||
Continue with passwordless email
|
||||
</v-btn>
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signin/email-password"
|
||||
>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signin/email-password">
|
||||
Continue with email + password
|
||||
</v-btn>
|
||||
</template>
|
||||
|
||||
@@ -1,28 +1,8 @@
|
||||
<template>
|
||||
<v-text-field
|
||||
v-model="email"
|
||||
label="Email"
|
||||
/>
|
||||
<v-text-field
|
||||
v-model="password"
|
||||
label="Password"
|
||||
type="password"
|
||||
/>
|
||||
<v-btn
|
||||
block
|
||||
color="primary"
|
||||
class="my-1"
|
||||
@click="signIn"
|
||||
>
|
||||
Sign in
|
||||
</v-btn>
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signin"
|
||||
>
|
||||
<v-text-field v-model="email" label="Email" />
|
||||
<v-text-field v-model="password" label="Password" type="password" />
|
||||
<v-btn block color="primary" class="my-1" @click="signIn"> Sign in </v-btn>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signin">
|
||||
← Other Login Options
|
||||
</v-btn>
|
||||
<error-snack-bar :error="error" />
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
<template>
|
||||
<email-passwordless />
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signin"
|
||||
>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signin">
|
||||
← Other Login Options
|
||||
</v-btn>
|
||||
</template>
|
||||
|
||||
@@ -25,9 +25,8 @@ const handleSignInAnonymous = async (e: Event) => {
|
||||
</v-card>
|
||||
<v-divider class="my-4" style="min-width: 90%" />
|
||||
<div>
|
||||
Don‘t have an account? <router-link to="/signup">
|
||||
Sign up
|
||||
</router-link> or <a href="#" @click="handleSignInAnonymous">sign in anonymously</a>
|
||||
Don‘t have an account? <router-link to="/signup"> Sign up </router-link> or
|
||||
<a href="#" @click="handleSignInAnonymous">sign in anonymously</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -11,13 +11,7 @@
|
||||
>
|
||||
Continue with passwordless email
|
||||
</v-btn>
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signup/email-password"
|
||||
>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signup/email-password">
|
||||
Continue with email + password
|
||||
</v-btn>
|
||||
</template>
|
||||
|
||||
@@ -1,28 +1,8 @@
|
||||
<template>
|
||||
<v-text-field
|
||||
v-model="email"
|
||||
label="Email"
|
||||
/>
|
||||
<v-text-field
|
||||
v-model="password"
|
||||
label="Password"
|
||||
type="password"
|
||||
/>
|
||||
<v-btn
|
||||
block
|
||||
color="primary"
|
||||
class="my-1"
|
||||
@click="signUp"
|
||||
>
|
||||
Sign up
|
||||
</v-btn>
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signup"
|
||||
>
|
||||
<v-text-field v-model="email" label="Email" />
|
||||
<v-text-field v-model="password" label="Password" type="password" />
|
||||
<v-btn block color="primary" class="my-1" @click="signUp"> Sign up </v-btn>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signup">
|
||||
← Other registration Options!
|
||||
</v-btn>
|
||||
<error-snack-bar :error="error" />
|
||||
@@ -37,7 +17,9 @@ export default defineComponent({
|
||||
setup() {
|
||||
const email = ref('')
|
||||
const password = ref('')
|
||||
const { signUpEmailPassword, error } = useSignUpEmailPassword()
|
||||
const { signUpEmailPassword, error } = useSignUpEmailPassword({
|
||||
redirectTo: window.location.origin
|
||||
})
|
||||
|
||||
const signUp = async () => {
|
||||
const result = await signUpEmailPassword(email, password)
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
<template>
|
||||
<email-passwordless />
|
||||
<v-btn
|
||||
class="my-1"
|
||||
block
|
||||
variant="text"
|
||||
color="primary"
|
||||
to="/signup"
|
||||
>
|
||||
<v-btn class="my-1" block variant="text" color="primary" to="/signup">
|
||||
← Other registration Options
|
||||
</v-btn>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -6,14 +6,7 @@
|
||||
<router-view />
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
<v-divider
|
||||
class="my-4"
|
||||
style="min-width: 90%"
|
||||
/>
|
||||
<div>
|
||||
Already have an account? <router-link to="/signin">
|
||||
Sign in
|
||||
</router-link>
|
||||
</div>
|
||||
<v-divider class="my-4" style="min-width: 90%" />
|
||||
<div>Already have an account? <router-link to="/signin"> Sign in </router-link></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
3
examples/vue-apollo/vercel.json
Normal file
3
examples/vue-apollo/vercel.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"rewrites": [{ "source": "/(.*)", "destination": "/" }]
|
||||
}
|
||||
4
nhost-cloud.yaml
Normal file
4
nhost-cloud.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
# Docker image versions used in the cloud
|
||||
hasura: v2.8.0
|
||||
auth: 0.10.0
|
||||
storage: 0.2.3
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"prepare": "husky install",
|
||||
"prepare": "husky install config/.husky",
|
||||
"build": "pnpm run build:all --filter=!@nhost/docs --filter=!@nhost-examples/*",
|
||||
"build:docs": "pnpm run build:all --filter=@nhost/docs",
|
||||
"build:all": "turbo run build --include-dependencies",
|
||||
@@ -34,7 +34,8 @@
|
||||
"test": "turbo run test --filter=!@nhost/docs --filter=!@nhost-examples/* --no-deps --include-dependencies",
|
||||
"e2e": "turbo run e2e --concurrency=1",
|
||||
"changeset": "changeset",
|
||||
"docgen": "turbo run build --filter=@nhost/docgen --no-deps && turbo run docgen --filter='@nhost/*' && :"
|
||||
"docgen": "turbo run build --filter=@nhost/docgen --no-deps && turbo run docgen --filter='@nhost/*' && :",
|
||||
"sync-versions": "turbo run start --filter=@nhost/sync-versions --no-deps"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @nhost/apollo
|
||||
|
||||
## 0.5.22
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @nhost/nhost-js@1.4.6
|
||||
|
||||
## 0.5.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/apollo",
|
||||
"version": "0.5.21",
|
||||
"version": "0.5.22",
|
||||
"description": "Nhost Apollo Client library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/core
|
||||
|
||||
## 0.7.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 197d1d5c: - Using same cookie package ([`js-cookie`](https://www.npmjs.com/package/js-cookie)) for both `@nhost/nextjs` and `@nhost/core` packages.
|
||||
- Adding `expires` to avoid the cookie turning into a session cookie that some browsers aggressively destroy.
|
||||
|
||||
## 0.7.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/core",
|
||||
"version": "0.7.4",
|
||||
"version": "0.7.5",
|
||||
"description": "Nhost core client library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -84,7 +84,9 @@ export const localStorageSetter = (
|
||||
return (key, value) => {
|
||||
if (isBrowser) {
|
||||
if (value) {
|
||||
Cookies.set(key, value)
|
||||
// TODO: Set expires based on the actual refresh token expire time
|
||||
// For now, we're using 30 days so the cookie is not removed when the browser is closed because if `expiers` is omitted, the cookie becomes a session cookie.
|
||||
Cookies.set(key, value, { expires: 30 })
|
||||
} else {
|
||||
Cookies.remove(key)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/hasura-auth-js
|
||||
|
||||
## 1.3.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [197d1d5c]
|
||||
- @nhost/core@0.7.5
|
||||
|
||||
## 1.3.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -7,9 +7,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/hasura-auth-js",
|
||||
"version": "1.3.3",
|
||||
"version": "1.3.4",
|
||||
"description": "Hasura-auth client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/hasura-storage-js
|
||||
|
||||
## 0.5.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [197d1d5c]
|
||||
- @nhost/core@0.7.5
|
||||
|
||||
## 0.5.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/hasura-storage-js",
|
||||
"version": "0.5.1",
|
||||
"version": "0.5.2",
|
||||
"description": "Hasura-storage client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @nhost/nextjs
|
||||
|
||||
## 1.6.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 197d1d5c: - Using same cookie package ([`js-cookie`](https://www.npmjs.com/package/js-cookie)) for both `@nhost/nextjs` and `@nhost/core` packages.
|
||||
- Adding `expires` to avoid the cookie turning into a session cookie that some browsers aggressively destroy.
|
||||
- Updated dependencies [197d1d5c]
|
||||
- @nhost/core@0.7.5
|
||||
- @nhost/react@0.11.2
|
||||
- @nhost/nhost-js@1.4.6
|
||||
|
||||
## 1.6.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/nextjs",
|
||||
"version": "1.6.1",
|
||||
"version": "1.6.2",
|
||||
"description": "Nhost NextJS library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
@@ -64,8 +64,8 @@
|
||||
"dependencies": {
|
||||
"@nhost/core": "workspace:*",
|
||||
"@nhost/nhost-js": "workspace:*",
|
||||
"cookies": "^0.8.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"js-cookie": "^3.0.1",
|
||||
"xstate": "^4.32.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
@@ -77,7 +77,7 @@
|
||||
"devDependencies": {
|
||||
"@nhost/docgen": "workspace:*",
|
||||
"@nhost/react": "workspace:*",
|
||||
"@types/cookies": "^0.7.7",
|
||||
"@types/js-cookie": "^3.0.2",
|
||||
"next": "12.0.10",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Cookies from 'cookies'
|
||||
import Cookies from 'js-cookie'
|
||||
import { GetServerSidePropsContext } from 'next'
|
||||
import { StateFrom } from 'xstate'
|
||||
import { waitFor } from 'xstate/lib/waitFor'
|
||||
@@ -19,7 +19,6 @@ export const createServerSideClient = async (
|
||||
backendUrl: string,
|
||||
context: GetServerSidePropsContext
|
||||
) => {
|
||||
const cookies = Cookies(context.req, context.res)
|
||||
const nhost = new NhostClient({
|
||||
backendUrl,
|
||||
clientStorageType: 'custom',
|
||||
@@ -31,14 +30,16 @@ export const createServerSideClient = async (
|
||||
// * in the url as this is the key sent by hasura-auth
|
||||
const urlKey = key === NHOST_REFRESH_TOKEN_KEY ? 'refreshToken' : key
|
||||
const urlValue = context.query[urlKey]
|
||||
const cookieValue = cookies.get(key) ?? null
|
||||
const cookieValue = Cookies.get(key) ?? null
|
||||
return typeof urlValue === 'string' ? urlValue : cookieValue
|
||||
},
|
||||
setItem: (key, value) => {
|
||||
cookies.set(key, value, { httpOnly: false, sameSite: true })
|
||||
// TODO: Set expires based on the actual refresh token expire time
|
||||
// For now, we're using 30 days so the cookie is not removed when the browser is closed because if `expiers` is omitted, the cookie becomes a session cookie.
|
||||
Cookies.set(key, value, { httpOnly: false, sameSite: 'strict', expires: 30 })
|
||||
},
|
||||
removeItem: (key) => {
|
||||
cookies.set(key, null)
|
||||
Cookies.remove(key)
|
||||
}
|
||||
},
|
||||
start: true,
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/nhost-js
|
||||
|
||||
## 1.4.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @nhost/hasura-auth-js@1.3.4
|
||||
- @nhost/hasura-storage-js@0.5.2
|
||||
|
||||
## 1.4.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -7,9 +7,9 @@ services:
|
||||
environment:
|
||||
hasura_graphql_enable_remote_schema_permissions: false
|
||||
auth:
|
||||
version: 0.9.1
|
||||
version: 0.10.0
|
||||
storage:
|
||||
version: 0.2.2
|
||||
version: 0.2.3
|
||||
auth:
|
||||
access_control:
|
||||
email:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/nhost-js",
|
||||
"version": "1.4.5",
|
||||
"version": "1.4.6",
|
||||
"description": "Nhost JavaScript SDK",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/react-apollo
|
||||
|
||||
## 4.6.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @nhost/react@0.11.2
|
||||
- @nhost/apollo@0.5.22
|
||||
|
||||
## 4.6.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react-apollo",
|
||||
"version": "4.6.1",
|
||||
"version": "4.6.2",
|
||||
"description": "Nhost React Apollo client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @nhost/react-auth
|
||||
|
||||
## 3.4.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @nhost/hasura-auth-js@1.3.4
|
||||
- @nhost/react@0.11.2
|
||||
|
||||
## 3.4.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react-auth",
|
||||
"version": "3.4.1",
|
||||
"version": "3.4.2",
|
||||
"description": "Nhost React client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @nhost/react
|
||||
|
||||
## 0.11.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [197d1d5c]
|
||||
- @nhost/core@0.7.5
|
||||
- @nhost/hasura-storage-js@0.5.2
|
||||
- @nhost/nhost-js@1.4.6
|
||||
|
||||
## 0.11.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react",
|
||||
"version": "0.11.1",
|
||||
"version": "0.11.2",
|
||||
"description": "Nhost React library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
12
packages/sync-versions/README.md
Normal file
12
packages/sync-versions/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# `@nhost/sync-versions`
|
||||
|
||||
Synchronise versions of Nhost services from `nhost-cloud.yaml` to every Nhost project in the pnpm workspace.
|
||||
|
||||
## How it works
|
||||
|
||||
1. Update the versions in the `nhost-cloud.yaml` file
|
||||
2. Commit the file
|
||||
|
||||
Husky and lint-staged will detect the change, and update any `nhost/config.yaml` found in the repository.
|
||||
|
||||
_Note:_ any change in a `nhost/config.yaml` file will also trigger the script and override the file with the versions given in `nhost-cloud.yaml`
|
||||
41
packages/sync-versions/package.json
Normal file
41
packages/sync-versions/package.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "@nhost/sync-versions",
|
||||
"description": "Sync the versions of Nhost services in each of the packages of a pnpm workspace",
|
||||
"private": true,
|
||||
"version": "0.0.1",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"source": "src/index.ts",
|
||||
"files": [
|
||||
"dist",
|
||||
"README.md"
|
||||
],
|
||||
"scripts": {
|
||||
"start": "node -r @swc-node/register ./src/index.ts",
|
||||
"format": "prettier --write 'src/**/*.ts'",
|
||||
"lint": "eslint . --ext .ts,.tsx"
|
||||
},
|
||||
"author": "Nhost",
|
||||
"homepage": "https://nhost.io",
|
||||
"bugs": "https://github.com/nhost/nhost/issues",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nhost/nhost.git"
|
||||
},
|
||||
"bin": "dist/index.js",
|
||||
"devDependencies": {
|
||||
"@swc-node/register": "^1.5.1",
|
||||
"@swc/core": "^1.2.207",
|
||||
"@types/glob": "^7.2.0",
|
||||
"@types/node": "^17.0.45",
|
||||
"@types/object-path": "^0.11.1",
|
||||
"typescript": "^4.7.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pnpm/find-workspace-dir": "^4.0.2",
|
||||
"glob": "^8.0.3",
|
||||
"object-path": "^0.11.8",
|
||||
"yaml": "^2.1.1"
|
||||
}
|
||||
}
|
||||
51
packages/sync-versions/src/index.ts
Normal file
51
packages/sync-versions/src/index.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
|
||||
import glob from 'glob'
|
||||
import { set } from 'object-path'
|
||||
import yaml from 'yaml'
|
||||
|
||||
import findWorkspaceRoot from '@pnpm/find-workspace-dir'
|
||||
|
||||
interface NhostCloudConfig {
|
||||
hasura: string
|
||||
auth: string
|
||||
storage: string
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
const root = await findWorkspaceRoot(process.cwd())
|
||||
|
||||
const { hasura, auth, storage }: NhostCloudConfig = yaml.parse(
|
||||
fs.readFileSync(path.join(root!, 'nhost-cloud.yaml'), 'utf-8')
|
||||
)
|
||||
|
||||
const nhostConfigs = glob.sync('**/nhost/config.yaml', {
|
||||
cwd: root,
|
||||
absolute: true,
|
||||
realpath: true
|
||||
})
|
||||
let updated = 0
|
||||
for (const file of nhostConfigs) {
|
||||
const rawInitial = fs.readFileSync(file, 'utf8')
|
||||
const doc = yaml.parse(rawInitial)
|
||||
|
||||
set(doc, 'services.hasura.version', hasura)
|
||||
set(doc, 'services.auth.version', auth)
|
||||
set(doc, 'services.storage.version', storage)
|
||||
const rawModified = yaml.stringify(doc, { singleQuote: true })
|
||||
fs.writeFileSync(file, rawModified)
|
||||
if (rawInitial !== rawModified) {
|
||||
updated++
|
||||
console.log(`Updated ${file}`)
|
||||
}
|
||||
}
|
||||
if (updated) {
|
||||
console.log(`Updated ${updated} nhost config files`)
|
||||
} else {
|
||||
console.log('All the Nhost config files are already up-to-date.')
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
4
packages/sync-versions/tsconfig.json
Normal file
4
packages/sync-versions/tsconfig.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"extends": "../../config/tsconfig.base.json",
|
||||
"include": ["src"],
|
||||
}
|
||||
@@ -1,5 +1,13 @@
|
||||
# @nhost/vue
|
||||
|
||||
## 0.3.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [197d1d5c]
|
||||
- @nhost/core@0.7.5
|
||||
- @nhost/nhost-js@1.4.6
|
||||
|
||||
## 0.3.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/vue",
|
||||
"version": "0.3.5",
|
||||
"version": "0.3.6",
|
||||
"description": "Nhost Vue library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
311
pnpm-lock.yaml
generated
311
pnpm-lock.yaml
generated
@@ -562,9 +562,9 @@ importers:
|
||||
'@nhost/docgen': workspace:*
|
||||
'@nhost/nhost-js': workspace:*
|
||||
'@nhost/react': workspace:*
|
||||
'@types/cookies': ^0.7.7
|
||||
cookies: ^0.8.0
|
||||
'@types/js-cookie': ^3.0.2
|
||||
cross-fetch: ^3.1.5
|
||||
js-cookie: ^3.0.1
|
||||
next: 12.0.10
|
||||
react: ^17.0.2
|
||||
react-dom: ^17.0.2
|
||||
@@ -572,13 +572,13 @@ importers:
|
||||
dependencies:
|
||||
'@nhost/core': link:../core
|
||||
'@nhost/nhost-js': link:../nhost-js
|
||||
cookies: 0.8.0
|
||||
cross-fetch: 3.1.5
|
||||
js-cookie: 3.0.1
|
||||
xstate: 4.32.1
|
||||
devDependencies:
|
||||
'@nhost/docgen': link:../docgen
|
||||
'@nhost/react': link:../react
|
||||
'@types/cookies': 0.7.7
|
||||
'@types/js-cookie': 3.0.2
|
||||
next: 12.0.10_9b0027aae606c22bf55a7fd89836f009
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
@@ -663,6 +663,31 @@ importers:
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
|
||||
packages/sync-versions:
|
||||
specifiers:
|
||||
'@pnpm/find-workspace-dir': ^4.0.2
|
||||
'@swc-node/register': ^1.5.1
|
||||
'@swc/core': ^1.2.207
|
||||
'@types/glob': ^7.2.0
|
||||
'@types/node': ^17.0.45
|
||||
'@types/object-path': ^0.11.1
|
||||
glob: ^8.0.3
|
||||
object-path: ^0.11.8
|
||||
typescript: ^4.7.4
|
||||
yaml: ^2.1.1
|
||||
dependencies:
|
||||
'@pnpm/find-workspace-dir': 4.0.2
|
||||
glob: 8.0.3
|
||||
object-path: 0.11.8
|
||||
yaml: 2.1.1
|
||||
devDependencies:
|
||||
'@swc-node/register': 1.5.1_typescript@4.7.4
|
||||
'@swc/core': 1.2.207
|
||||
'@types/glob': 7.2.0
|
||||
'@types/node': 17.0.45
|
||||
'@types/object-path': 0.11.1
|
||||
typescript: 4.7.4
|
||||
|
||||
packages/vue:
|
||||
specifiers:
|
||||
'@nhost/core': workspace:*
|
||||
@@ -5448,6 +5473,26 @@ packages:
|
||||
resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==}
|
||||
dev: true
|
||||
|
||||
/@pnpm/constants/6.1.0:
|
||||
resolution: {integrity: sha512-L6AiU3OXv9kjKGTJN9j8n1TeJGDcLX9atQlZvAkthlvbXjvKc5SKNWESc/eXhr5nEfuMWhQhiKHDJCpYejmeCQ==}
|
||||
engines: {node: '>=14.19'}
|
||||
dev: false
|
||||
|
||||
/@pnpm/error/3.0.1:
|
||||
resolution: {integrity: sha512-hMlbWbFcfcfolNfSjKjpeaZFow71kNg438LZ8rAd01swiVIYRUf/sRv8gGySru6AijYfz5UqslpIJRDbYBkgQA==}
|
||||
engines: {node: '>=14.19'}
|
||||
dependencies:
|
||||
'@pnpm/constants': 6.1.0
|
||||
dev: false
|
||||
|
||||
/@pnpm/find-workspace-dir/4.0.2:
|
||||
resolution: {integrity: sha512-gU7ycFSWuEGJh7RE/STa33Ch27geODTXIfc+ntiE1BietxfpJIAk34zz51kTUuCFthBkpHlO6yV7jgHD2Tuc3g==}
|
||||
engines: {node: '>=14.6'}
|
||||
dependencies:
|
||||
'@pnpm/error': 3.0.1
|
||||
find-up: 5.0.0
|
||||
dev: false
|
||||
|
||||
/@polka/url/1.0.0-next.21:
|
||||
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
|
||||
|
||||
@@ -5780,6 +5825,35 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@swc-node/core/1.9.0:
|
||||
resolution: {integrity: sha512-vRnvsMtL9OxybA/Wun1ZhlDvB6MNs4Zujnina0VKdGk+yI6s87KUhdTcbAY6dQMZhQTLFiC1Lnv/BuwCKcCEug==}
|
||||
engines: {node: '>= 10'}
|
||||
dependencies:
|
||||
'@swc/core': 1.2.207
|
||||
dev: true
|
||||
|
||||
/@swc-node/register/1.5.1_typescript@4.7.4:
|
||||
resolution: {integrity: sha512-6IL5s4QShKGs08qAeNou3rDA3gbp2WHk6fo0XnJXQn/aC9k6FnVBbj/thGOIEDtgNhC/DKpZT8tCY1LpQnOZFg==}
|
||||
peerDependencies:
|
||||
typescript: '>= 4.3'
|
||||
dependencies:
|
||||
'@swc-node/core': 1.9.0
|
||||
'@swc-node/sourcemap-support': 0.2.0
|
||||
colorette: 2.0.16
|
||||
debug: 4.3.4
|
||||
pirates: 4.0.5
|
||||
tslib: 2.4.0
|
||||
typescript: 4.7.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@swc-node/sourcemap-support/0.2.0:
|
||||
resolution: {integrity: sha512-FNrxdI6XMYfoNt81L8eFKEm1d8P82I1nPwS3MrnBGzZoMWB+seQhQK+iN6M5RreJxXbfZw5lF86LRjHEQeGMqg==}
|
||||
dependencies:
|
||||
source-map-support: 0.5.21
|
||||
dev: true
|
||||
|
||||
/@swc/core-android-arm-eabi/1.2.171:
|
||||
resolution: {integrity: sha512-0DZBYN8PX9GPWw2fJqKfVsctAFRVgQBM2Rin5ZRyJQehzTsI0HnandvFOZAS/I3T3YsiH4b5vH/S8KwRx+eCVg==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5789,6 +5863,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-android-arm-eabi/1.2.207:
|
||||
resolution: {integrity: sha512-hmMw4EaDMh8qH3DYbNPmBvrxzRPbOlF5+wMGm0NmmWQjKSCblRZUEkM4GJFtejO/DX75HHOfvh/Op+/+1UOyRQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-android-arm64/1.2.171:
|
||||
resolution: {integrity: sha512-9ul8XoIeXf0iHt+S2R2GedWmv/iZPrmlAj81esf/mg541kajt3kfdHD+YMKFn753iOmgTfCM+TlU82XT4nEe3w==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5798,6 +5881,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-android-arm64/1.2.207:
|
||||
resolution: {integrity: sha512-jCDGX+yIb9RRQ1BOLz2o7fcJuiGz8+8l/xgKTanx+c7cNg43hm5EzlNzIxQs6oklKE/dlVw75H1Y90QJoH5a2Q==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-darwin-arm64/1.2.171:
|
||||
resolution: {integrity: sha512-bZQLVbCRVU577LGXfhrDMqD0/cVvAFKRob3w2t/aZGY72rp9Mt56IPJcTIgah+5IeCapa4qwWwVQQVOP2DCcRA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5807,6 +5899,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-darwin-arm64/1.2.207:
|
||||
resolution: {integrity: sha512-Xp4LcmVBemLLZpB8d/XR6TnlVvtXKdFSxGmbwC7uiTl26Cji2HRjBXaQnQQfSnlKGcSB+W1sH8q9K2jDJO+hIA==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-darwin-x64/1.2.171:
|
||||
resolution: {integrity: sha512-Geb3e9/o0h4VCky6dvQmHXwG+wpq0B4M0pkYySUMC3wVsqdun3rP2dF3i1FWG7F3t92sDOl3ba42JUweTtC2eA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5816,6 +5917,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-darwin-x64/1.2.207:
|
||||
resolution: {integrity: sha512-4TG7KW5FB/4Uli3ef9Hdx4igQYDv0DK0ZnGWmvteUyYPjhoR6YhIkr04CrqfHeYNOhK6oWG58K6t3ydGfnIJSw==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-freebsd-x64/1.2.171:
|
||||
resolution: {integrity: sha512-JSsetNvKghKTXFyAu4+vW0pVY8sDGwZSBd3foyqyx5XXEQMDVlhQEs3AVtojp7+DQrh+PmUdyCB+zS74p70nzg==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5825,6 +5935,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-freebsd-x64/1.2.207:
|
||||
resolution: {integrity: sha512-rOj1TRbeY1ysG2cPaFdFUlup/0EJ3c1S+jWJkPK5HYt3mlvbdDu68wa8HIR6oTdbGiyMVogVIZn+je+d92Xjrg==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm-gnueabihf/1.2.171:
|
||||
resolution: {integrity: sha512-ZYf5rED8Dw1dbYXolVEnexT7SYVpPJhsuKa4162Onsm/3S3xw1e+qmxJfTVdZG7jI8F2RDoZTHMLH+0y3iH98Q==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5834,6 +5953,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm-gnueabihf/1.2.207:
|
||||
resolution: {integrity: sha512-hQRgp2LLr0a0aBkch7qvTAoNx3wTQYMLiPvAzlwFLwOWlv122BmfdMvxobLvwligduFZ9XBEHTdhLc/V8hsWog==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-gnu/1.2.171:
|
||||
resolution: {integrity: sha512-uteuIg77MoEwdQ0BZPGFKmbDr+V2OP1rp/Dx9sU5/O9nd1Vju/tuCycMEv8X/k0Riza6sbK6xIFVAQlrPUTZ7g==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5843,6 +5971,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-gnu/1.2.207:
|
||||
resolution: {integrity: sha512-WF/plJ2chQXaNvcfM9OOaJbYPryr1ljhB5I0Iaz0AChoyOQfnaQ6Iq09ed1lwoHGBFS3SdrucPxu1z0vkfNIzg==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-musl/1.2.171:
|
||||
resolution: {integrity: sha512-d1mKKb9QaIOp3KQKvPT8pFgPvZXpYc/YHnyyI667BUboKuznB9VDpHeXk6+C/SWUIT9QdStc0fcf/Tnwni+ivA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5852,6 +5989,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-musl/1.2.207:
|
||||
resolution: {integrity: sha512-9h2HVHrxj7bB5DB6l04jvVVQCirfwIHWIctd5BqAyAI4HnYzirFaDqFntZHpZ0PfaJIa/l04hmhj1t/9f3GYww==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-gnu/1.2.171:
|
||||
resolution: {integrity: sha512-CUNv0yNFuO4y0AnOq9Zbs44nBEuS+eLqC3gv2nEFovdUeVy71rRVelMjvdF5ZWXitHk+WjhfBznF+vP9pye3HA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5861,6 +6007,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-gnu/1.2.207:
|
||||
resolution: {integrity: sha512-BjmpgEkT9OibBWC/ulnT2MxZpUbMZrfEWgdThCv2KiL0wYZ6ZAzkgjjArktmw6vjLLrB+1qnTysUN3RAuTrzxg==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-musl/1.2.171:
|
||||
resolution: {integrity: sha512-orHpb/THPJOaDJkJvzGRppwOd0tmpk3ZUGTgRD6FhzYrGzESxEhXuPYNE2jlaXx9hBxu9YDRMUvJWsmLDZW3GQ==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5870,6 +6025,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-musl/1.2.207:
|
||||
resolution: {integrity: sha512-jzBjXdjpw1+eR/GVhENreIpqS8zVezKObutiJLSSayNG3YT9MwyEz58qEHdALPhOJBjctaExr0nYCAPq9U8k2A==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-arm64-msvc/1.2.171:
|
||||
resolution: {integrity: sha512-zdoPPnTC5li+4ijatjZA+qyrPTQzpmOqjtQ6HAx1yLoJriGLteLfYmjplx5sFI3JrcDXzITVjaGmu3Ep4Jmhtw==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5879,6 +6043,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-arm64-msvc/1.2.207:
|
||||
resolution: {integrity: sha512-zF2rID7fzgDxa0Aev92+NcSy4j1Ct87KaDhOiL/BofAOrmf274UHn6yl8HUOjbejD/WEoGG62Dv7EFlzbtVOBw==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-ia32-msvc/1.2.171:
|
||||
resolution: {integrity: sha512-AmaOwrjnIQffwqrCL1MfSpG//ZbtdcCVqhY3+UtVmfKoSsSSkgWXSV++PQlJApAgRn/iwjZiR816B7zLg6535g==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5888,6 +6061,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-ia32-msvc/1.2.207:
|
||||
resolution: {integrity: sha512-AUI349ky8Xh4KqmySx7Yd+HdmaEU9Q67Cr5VO1ZJYEu/XRI9aiHlwLFkIb24Jio0LLddN/0GIwnDm+5Evr3deg==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-x64-msvc/1.2.171:
|
||||
resolution: {integrity: sha512-DrOqi27Lagn/wy2QYDOiNr0KAJX4yR0areDcli2NQ875tva5uVFgvZo5sJFsHiLU/x6yBcxVpVAbzg8a1jRUAA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5897,6 +6079,15 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-x64-msvc/1.2.207:
|
||||
resolution: {integrity: sha512-clRP+rfNcGrgu2AXb/H02iKm2tTNHPd5cgqTP2bFe9PalKh2mBFR52+g44b3ca7vwdwIYie39ZoIu7jNkKEVMA==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core/1.2.171:
|
||||
resolution: {integrity: sha512-WE1Nn+LQOqMb41jDTt78REE29elW4QvbAIECpAI9wUP4SJpt9uo9ItJQ3UbXE4BECQ0JgkLz5x7l9uWUAt4YUw==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -5917,6 +6108,26 @@ packages:
|
||||
'@swc/core-win32-x64-msvc': 1.2.171
|
||||
dev: true
|
||||
|
||||
/@swc/core/1.2.207:
|
||||
resolution: {integrity: sha512-4LgdAwZv+dLQsIBaWpK4eEOpeeJlcuOM6LRkUXJLZ0CUIkZHm2zQ4N6jksm/YJYgF++mYwjM6JWwCvLpW3ZTuA==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
optionalDependencies:
|
||||
'@swc/core-android-arm-eabi': 1.2.207
|
||||
'@swc/core-android-arm64': 1.2.207
|
||||
'@swc/core-darwin-arm64': 1.2.207
|
||||
'@swc/core-darwin-x64': 1.2.207
|
||||
'@swc/core-freebsd-x64': 1.2.207
|
||||
'@swc/core-linux-arm-gnueabihf': 1.2.207
|
||||
'@swc/core-linux-arm64-gnu': 1.2.207
|
||||
'@swc/core-linux-arm64-musl': 1.2.207
|
||||
'@swc/core-linux-x64-gnu': 1.2.207
|
||||
'@swc/core-linux-x64-musl': 1.2.207
|
||||
'@swc/core-win32-arm64-msvc': 1.2.207
|
||||
'@swc/core-win32-ia32-msvc': 1.2.207
|
||||
'@swc/core-win32-x64-msvc': 1.2.207
|
||||
dev: true
|
||||
|
||||
/@szmarczak/http-timer/1.1.2:
|
||||
resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -6089,15 +6300,6 @@ packages:
|
||||
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
|
||||
dev: true
|
||||
|
||||
/@types/cookies/0.7.7:
|
||||
resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==}
|
||||
dependencies:
|
||||
'@types/connect': 3.4.35
|
||||
'@types/express': 4.17.13
|
||||
'@types/keygrip': 1.0.2
|
||||
'@types/node': 17.0.25
|
||||
dev: true
|
||||
|
||||
/@types/debug/4.1.7:
|
||||
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
|
||||
dependencies:
|
||||
@@ -6138,6 +6340,13 @@ packages:
|
||||
resolution: {integrity: sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==}
|
||||
dev: true
|
||||
|
||||
/@types/glob/7.2.0:
|
||||
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
|
||||
dependencies:
|
||||
'@types/minimatch': 3.0.5
|
||||
'@types/node': 17.0.45
|
||||
dev: true
|
||||
|
||||
/@types/graceful-fs/4.1.5:
|
||||
resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
|
||||
dependencies:
|
||||
@@ -6235,10 +6444,6 @@ packages:
|
||||
'@types/node': 17.0.33
|
||||
dev: true
|
||||
|
||||
/@types/keygrip/1.0.2:
|
||||
resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==}
|
||||
dev: true
|
||||
|
||||
/@types/keyv/3.1.4:
|
||||
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
||||
dependencies:
|
||||
@@ -6252,6 +6457,10 @@ packages:
|
||||
/@types/mime/1.3.2:
|
||||
resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==}
|
||||
|
||||
/@types/minimatch/3.0.5:
|
||||
resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
|
||||
dev: true
|
||||
|
||||
/@types/minimist/1.2.2:
|
||||
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
|
||||
dev: true
|
||||
@@ -6280,20 +6489,24 @@ packages:
|
||||
resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==}
|
||||
dev: true
|
||||
|
||||
/@types/node/17.0.25:
|
||||
resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==}
|
||||
dev: true
|
||||
|
||||
/@types/node/17.0.31:
|
||||
resolution: {integrity: sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==}
|
||||
|
||||
/@types/node/17.0.33:
|
||||
resolution: {integrity: sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==}
|
||||
|
||||
/@types/node/17.0.45:
|
||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||
dev: true
|
||||
|
||||
/@types/normalize-package-data/2.4.1:
|
||||
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
|
||||
dev: true
|
||||
|
||||
/@types/object-path/0.11.1:
|
||||
resolution: {integrity: sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==}
|
||||
dev: true
|
||||
|
||||
/@types/parse-json/4.0.0:
|
||||
resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
|
||||
|
||||
@@ -8338,7 +8551,6 @@ packages:
|
||||
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
dev: true
|
||||
|
||||
/braces/3.0.2:
|
||||
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
|
||||
@@ -9114,14 +9326,6 @@ packages:
|
||||
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
/cookies/0.8.0:
|
||||
resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
depd: 2.0.0
|
||||
keygrip: 1.1.0
|
||||
dev: false
|
||||
|
||||
/copy-text-to-clipboard/3.0.1:
|
||||
resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -10268,11 +10472,6 @@ packages:
|
||||
resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
/depd/2.0.0:
|
||||
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/dependency-graph/0.11.0:
|
||||
resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
@@ -12677,6 +12876,17 @@ packages:
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
|
||||
/glob/8.0.3:
|
||||
resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
inflight: 1.0.6
|
||||
inherits: 2.0.4
|
||||
minimatch: 5.0.1
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/global-dirs/3.0.0:
|
||||
resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -14951,13 +15161,6 @@ packages:
|
||||
resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==}
|
||||
dev: false
|
||||
|
||||
/keygrip/1.1.0:
|
||||
resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dependencies:
|
||||
tsscmp: 1.0.6
|
||||
dev: false
|
||||
|
||||
/keyv/3.1.0:
|
||||
resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
|
||||
dependencies:
|
||||
@@ -15752,7 +15955,6 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
dev: true
|
||||
|
||||
/minimist-options/4.1.0:
|
||||
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
|
||||
@@ -16221,6 +16423,11 @@ packages:
|
||||
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/object-path/0.11.8:
|
||||
resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==}
|
||||
engines: {node: '>= 10.12.0'}
|
||||
dev: false
|
||||
|
||||
/object.assign/4.1.2:
|
||||
resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -16573,7 +16780,7 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
/path-is-inside/1.0.2:
|
||||
@@ -19827,11 +20034,6 @@ packages:
|
||||
/tslib/2.4.0:
|
||||
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
|
||||
|
||||
/tsscmp/1.0.6:
|
||||
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
|
||||
engines: {node: '>=0.6.x'}
|
||||
dev: false
|
||||
|
||||
/tsup/5.12.6_ts-node@10.7.0+typescript@4.6.3:
|
||||
resolution: {integrity: sha512-tpePOgdMRKRgazF+ujq9k1Fo44PUFUJJjRLtxq87pQrYW/Ub/fu1GpFGLzdUF9qjJ4FX1ykhf2d9mWCNy+jAtg==}
|
||||
hasBin: true
|
||||
@@ -20118,6 +20320,12 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/typescript/4.7.4:
|
||||
resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
|
||||
engines: {node: '>=4.2.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/ua-parser-js/0.7.31:
|
||||
resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==}
|
||||
|
||||
@@ -21744,6 +21952,11 @@ packages:
|
||||
engines: {node: '>= 14'}
|
||||
dev: true
|
||||
|
||||
/yaml/2.1.1:
|
||||
resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==}
|
||||
engines: {node: '>= 14'}
|
||||
dev: false
|
||||
|
||||
/yargs-parser/18.1.3:
|
||||
resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
"dependsOn": ["^build", "$VITE_NHOST_SUBDOMAIN", "$VITE_NHOST_REGION"],
|
||||
"outputs": ["dist/**"]
|
||||
},
|
||||
"@nhost-examples/vue-apollo#build": {
|
||||
"dependsOn": ["^build", "$VITE_NHOST_SUBDOMAIN", "$VITE_NHOST_REGION"],
|
||||
"outputs": ["dist/**"]
|
||||
},
|
||||
"@nhost/sync-versions#start": { "cache": false },
|
||||
"test": {
|
||||
"dependsOn": ["^build"],
|
||||
"outputs": ["coverage/**"]
|
||||
@@ -28,6 +33,7 @@
|
||||
"dependsOn": ["^build"],
|
||||
"outputs": []
|
||||
},
|
||||
"lint:fix": { "outputs": [] }
|
||||
"lint:fix": { "outputs": [] },
|
||||
"start": {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user