Compare commits
31 Commits
@nhost/rea
...
@nhost/rea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0b94c3e90 | ||
|
|
113d638532 | ||
|
|
d87448916f | ||
|
|
af4292658c | ||
|
|
f735bcd2ea | ||
|
|
66fb74af86 | ||
|
|
791eac30bb | ||
|
|
da4ad889d7 | ||
|
|
9ef111760c | ||
|
|
c2706c7d97 | ||
|
|
683b8768c4 | ||
|
|
220ae37aa7 | ||
|
|
d0d94d9239 | ||
|
|
aed3d1f147 | ||
|
|
d07bf08e45 | ||
|
|
f2183250d2 | ||
|
|
d2bb5ecfae | ||
|
|
02d0db0cf0 | ||
|
|
441005d5c3 | ||
|
|
eea8708549 | ||
|
|
5f3f9390aa | ||
|
|
1c5b0560ed | ||
|
|
1bfdf21b99 | ||
|
|
efd522a38a | ||
|
|
55c35fa9c5 | ||
|
|
d42c27ae99 | ||
|
|
927be4a2c9 | ||
|
|
d0f8081101 | ||
|
|
84ebfb79d0 | ||
|
|
3c78d0ef46 | ||
|
|
ad28bf2166 |
2
.github/actions/nhost-cli/action.yaml
vendored
2
.github/actions/nhost-cli/action.yaml
vendored
@@ -38,7 +38,7 @@ runs:
|
||||
uses: nick-fields/retry@v2
|
||||
with:
|
||||
timeout_minutes: 3
|
||||
max_attempts: 3
|
||||
max_attempts: 10
|
||||
command: bash <(curl --silent -L https://raw.githubusercontent.com/nhost/cli/main/get.sh) ${{ inputs.version }}
|
||||
- name: Set custom configuration
|
||||
if: ${{ inputs.config }}
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @nhost/dashboard
|
||||
|
||||
## 0.9.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [d42c27ae]
|
||||
- Updated dependencies [927be4a2]
|
||||
- @nhost/nextjs@1.13.1
|
||||
- @nhost/react-apollo@4.13.1
|
||||
|
||||
## 0.9.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d0f80811: fix(dashboard): don't show error when signing out the user
|
||||
|
||||
## 0.9.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/dashboard",
|
||||
"version": "0.9.0",
|
||||
"version": "0.9.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import { ChangePasswordModal } from '@/components/applications/ChangePasswordModal';
|
||||
import { useWorkspaceContext } from '@/context/workspace-context';
|
||||
import { useUserDataContext } from '@/context/workspace1-context';
|
||||
import { Avatar } from '@/ui/Avatar';
|
||||
import { Modal } from '@/ui/Modal';
|
||||
import Button from '@/ui/v2/Button';
|
||||
import { Dropdown, useDropdown } from '@/ui/v2/Dropdown';
|
||||
import Text from '@/ui/v2/Text';
|
||||
import { emptyWorkspace } from '@/utils/helpers';
|
||||
import { nhost } from '@/utils/nhost';
|
||||
import { useApolloClient } from '@apollo/client';
|
||||
import { useUserData } from '@nhost/nextjs';
|
||||
import Image from 'next/image';
|
||||
import { useRouter } from 'next/router';
|
||||
@@ -22,9 +20,8 @@ function AccountMenuContent({
|
||||
}: AccountMenuContentProps) {
|
||||
const user = useUserData();
|
||||
const router = useRouter();
|
||||
const client = useApolloClient();
|
||||
const [clicked, setClicked] = useState(false);
|
||||
const { setWorkspaceContext } = useWorkspaceContext();
|
||||
const { setUserContext } = useUserDataContext();
|
||||
const { handleClose } = useDropdown();
|
||||
|
||||
return (
|
||||
@@ -34,10 +31,9 @@ function AccountMenuContent({
|
||||
color="secondary"
|
||||
className="absolute top-6 right-4 grid grid-flow-col items-center gap-1 self-start font-medium"
|
||||
onClick={async () => {
|
||||
setWorkspaceContext(emptyWorkspace());
|
||||
setUserContext({ workspaces: [] });
|
||||
nhost.auth.signOut();
|
||||
router.push('/signin');
|
||||
await nhost.auth.signOut();
|
||||
await client.resetStore();
|
||||
}}
|
||||
aria-label="Sign Out"
|
||||
>
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
# @nhost-examples/react-apollo
|
||||
|
||||
## 0.1.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c2706c7d: Export commonly used types
|
||||
|
||||
`BackendUrl`, `ErrorPayload`, `NhostSession`, `Subdomain`, and `User` are now exported in all our SDKs
|
||||
|
||||
- Updated dependencies [c2706c7d]
|
||||
- Updated dependencies [d42c27ae]
|
||||
- @nhost/react@1.13.1
|
||||
- @nhost/react-apollo@4.13.1
|
||||
|
||||
## 0.1.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import { faker } from '@faker-js/faker'
|
||||
|
||||
context('Forgot password', () => {
|
||||
it('should reset password', () => {
|
||||
const email = faker.internet.email()
|
||||
const password = faker.internet.password(8)
|
||||
|
||||
cy.signUpEmailPassword(email, password)
|
||||
cy.contains('Verification email sent').should('be.visible')
|
||||
|
||||
cy.visit('/sign-in')
|
||||
cy.findByRole('button', { name: /Continue with email \+ password/i }).click()
|
||||
cy.findByRole('button', { name: /Forgot Password?/i }).click()
|
||||
|
||||
cy.findByPlaceholderText('Email Address').type(email)
|
||||
cy.findByRole('button', { name: /Reset your password/i }).click()
|
||||
|
||||
cy.confirmEmail(email)
|
||||
cy.contains('Profile page')
|
||||
})
|
||||
})
|
||||
@@ -1,5 +1,5 @@
|
||||
import { faker } from '@faker-js/faker'
|
||||
import { User } from '@nhost/hasura-auth-js'
|
||||
import { User } from '@nhost/react'
|
||||
|
||||
import '@testing-library/cypress/add-commands'
|
||||
import 'cypress-mailhog'
|
||||
@@ -83,7 +83,7 @@ Cypress.Commands.add('signOut', () => {
|
||||
})
|
||||
|
||||
Cypress.Commands.add('confirmEmail', (email) => {
|
||||
cy.mhGetMailsByRecipient(email)
|
||||
cy.mhGetMailsByRecipient(email, 1)
|
||||
.should('have.length', 1)
|
||||
.then(([message]) => {
|
||||
cy.visit(message.Content.Headers['X-Link'][0])
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost-examples/react-apollo",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.6",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@apollo/client": "^3.6.9",
|
||||
@@ -60,7 +60,7 @@
|
||||
"@xstate/inspect": "^0.6.2",
|
||||
"cypress": "^10.7.0",
|
||||
"cypress-mailhog": "^1.6.0",
|
||||
"start-server-and-test": "^1.14.0",
|
||||
"start-server-and-test": "^1.15.2",
|
||||
"totp-generator": "^0.0.13",
|
||||
"typescript": "^4.8.2",
|
||||
"vite": "^4.0.2",
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @nhost-examples/vue-apollo
|
||||
|
||||
## 0.0.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c2706c7d: Export commonly used types
|
||||
|
||||
`BackendUrl`, `ErrorPayload`, `NhostSession`, `Subdomain`, and `User` are now exported in all our SDKs
|
||||
|
||||
- Updated dependencies [c2706c7d]
|
||||
- Updated dependencies [d42c27ae]
|
||||
- @nhost/vue@1.13.1
|
||||
|
||||
## 0.0.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@nhost-examples/vue-apollo",
|
||||
"private": true,
|
||||
"version": "0.0.3",
|
||||
"version": "0.0.4",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vue-tsc --noEmit && vite build",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { PropType, ref, watchEffect } from 'vue'
|
||||
|
||||
import { ErrorPayload } from '@nhost/hasura-auth-js'
|
||||
import { ErrorPayload } from '@nhost/vue'
|
||||
|
||||
const props = defineProps({
|
||||
error: Object as PropType<ErrorPayload | null>
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @nhost/react-apollo
|
||||
|
||||
## 4.13.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [c2706c7d]
|
||||
- Updated dependencies [d42c27ae]
|
||||
- @nhost/react@1.13.1
|
||||
|
||||
## 4.13.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react-apollo",
|
||||
"version": "4.13.0",
|
||||
"version": "4.13.1",
|
||||
"description": "Nhost React Apollo client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @nhost/react-urql
|
||||
|
||||
## 1.0.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [c2706c7d]
|
||||
- Updated dependencies [d42c27ae]
|
||||
- @nhost/react@1.13.1
|
||||
|
||||
## 1.0.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react-urql",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "Nhost React URQL client",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -75,6 +75,6 @@
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"mailhog": "^4.16.0",
|
||||
"msw": "^0.47.4",
|
||||
"start-server-and-test": "^1.14.0"
|
||||
"start-server-and-test": "^1.15.2"
|
||||
}
|
||||
}
|
||||
@@ -68,7 +68,7 @@
|
||||
"cross-fetch": "^3.1.5",
|
||||
"jpeg-js": "^0.4.4",
|
||||
"pixelmatch": "^5.3.0",
|
||||
"start-server-and-test": "^1.14.0",
|
||||
"start-server-and-test": "^1.15.2",
|
||||
"uuid": "^9.0.0"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,15 @@
|
||||
# @nhost/nextjs
|
||||
|
||||
## 1.13.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d42c27ae: Add explicit return types to React hooks
|
||||
- 927be4a2: Store the session in a cookie so there is no need for an SSR page to ask for a new access token
|
||||
- Updated dependencies [c2706c7d]
|
||||
- Updated dependencies [d42c27ae]
|
||||
- @nhost/react@1.13.1
|
||||
|
||||
## 1.13.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/nextjs",
|
||||
"version": "1.13.0",
|
||||
"version": "1.13.1",
|
||||
"description": "Nhost NextJS library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
import { AuthMachine, NHOST_REFRESH_TOKEN_KEY, VanillaNhostClient } from '@nhost/react'
|
||||
import {
|
||||
AuthMachine,
|
||||
NhostSession,
|
||||
NHOST_REFRESH_TOKEN_KEY,
|
||||
VanillaNhostClient
|
||||
} from '@nhost/react'
|
||||
import Cookies from 'js-cookie'
|
||||
import { GetServerSidePropsContext } from 'next'
|
||||
import { StateFrom } from 'xstate'
|
||||
import { waitFor } from 'xstate/lib/waitFor'
|
||||
import { NHOST_SESSION_KEY } from './utils'
|
||||
|
||||
/**
|
||||
* Creates an Nhost client that runs on the server side.
|
||||
@@ -42,11 +48,17 @@ export const createServerSideClient = async (
|
||||
Cookies.remove(key)
|
||||
}
|
||||
},
|
||||
start: true,
|
||||
start: false,
|
||||
autoRefreshToken: false,
|
||||
autoSignIn: true
|
||||
})
|
||||
|
||||
const strSession = context.req.cookies[NHOST_SESSION_KEY]
|
||||
const refreshToken = context.req.cookies[NHOST_REFRESH_TOKEN_KEY]
|
||||
const initialSession: NhostSession = strSession &&
|
||||
refreshToken && { ...JSON.parse(strSession), refreshToken }
|
||||
|
||||
nhost.auth.client.start({ initialSession })
|
||||
await waitFor(
|
||||
nhost.auth.client.interpreter!,
|
||||
(state: StateFrom<AuthMachine>) => !state.hasTag('loading')
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
NhostProvider,
|
||||
Subdomain
|
||||
} from '@nhost/react'
|
||||
import { setNhostSessionInCookie } from './utils'
|
||||
|
||||
export * from '@nhost/react'
|
||||
export * from './create-server-side-client'
|
||||
@@ -38,5 +39,10 @@ export class NhostClient extends ReactNhostClient {
|
||||
autoRefreshToken: isBrowser && params.autoRefreshToken,
|
||||
clientStorageType: 'cookie'
|
||||
})
|
||||
|
||||
this.auth.onAuthStateChanged(() => {
|
||||
setNhostSessionInCookie(this)
|
||||
})
|
||||
this.auth.onTokenChanged(setNhostSessionInCookie)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { NhostSession } from '@nhost/react'
|
||||
import { NhostClient, NhostSession } from '@nhost/react'
|
||||
import fetch from 'cross-fetch'
|
||||
import Cookies from 'js-cookie'
|
||||
|
||||
export const refresh = async (nhostUrl: string, refreshToken: string): Promise<NhostSession> => {
|
||||
const result = await fetch(`${nhostUrl}/v1/auth/token`, {
|
||||
@@ -9,6 +10,26 @@ export const refresh = async (nhostUrl: string, refreshToken: string): Promise<N
|
||||
},
|
||||
body: JSON.stringify({ refreshToken })
|
||||
})
|
||||
if (result.ok) return result.json()
|
||||
else return Promise.reject(result.statusText)
|
||||
if (result.ok) {
|
||||
return result.json()
|
||||
}
|
||||
return Promise.reject(result.statusText)
|
||||
}
|
||||
|
||||
export const NHOST_SESSION_KEY = 'nhostSession'
|
||||
|
||||
export const setNhostSessionInCookie = (param: NhostClient | NhostSession | null) => {
|
||||
const session = param && 'auth' in param ? param.auth.getSession() : param
|
||||
if (!session) {
|
||||
Cookies.remove(NHOST_SESSION_KEY)
|
||||
return
|
||||
}
|
||||
const { refreshToken, ...rest } = session
|
||||
const expires = new Date()
|
||||
// * Expire the cookie 60 seconds before the token expires
|
||||
expires.setSeconds(expires.getSeconds() + session.accessTokenExpiresIn - 60)
|
||||
Cookies.set(NHOST_SESSION_KEY, JSON.stringify(rest), {
|
||||
sameSite: 'strict',
|
||||
expires
|
||||
})
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"@faker-js/faker": "^7.6.0",
|
||||
"@nhost/docgen": "workspace:*",
|
||||
"graphql": "16.6.0",
|
||||
"start-server-and-test": "^1.14.0"
|
||||
"start-server-and-test": "^1.15.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @nhost/react
|
||||
|
||||
## 1.13.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c2706c7d: Export commonly used types
|
||||
|
||||
`BackendUrl`, `ErrorPayload`, `NhostSession`, `Subdomain`, and `User` are now exported in all our SDKs
|
||||
|
||||
- d42c27ae: Add explicit return types to React hooks
|
||||
|
||||
## 1.13.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/react",
|
||||
"version": "1.13.0",
|
||||
"version": "1.13.1",
|
||||
"description": "Nhost React library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -3,12 +3,12 @@ import {
|
||||
BackendUrl,
|
||||
NhostAuthConstructorParams,
|
||||
NhostClient as _VanillaNhostClient,
|
||||
NhostSession,
|
||||
NHOST_REFRESH_TOKEN_KEY,
|
||||
Subdomain
|
||||
} from '@nhost/nhost-js'
|
||||
|
||||
export type { NhostSession, NhostAuthConstructorParams, AuthMachine, Subdomain, BackendUrl }
|
||||
// * Required for @nhost/nextjs
|
||||
export type { NhostAuthConstructorParams, AuthMachine }
|
||||
export { NHOST_REFRESH_TOKEN_KEY }
|
||||
|
||||
/** @internal */
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export type { BackendUrl, ErrorPayload, NhostSession, Subdomain, User } from '@nhost/nhost-js'
|
||||
export * from './client'
|
||||
export * from './components'
|
||||
export * from './provider'
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-access-token
|
||||
*/
|
||||
export const useAccessToken = () => {
|
||||
export const useAccessToken = (): string | null => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service, (state) => state.context.accessToken.value)
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* Use {@link useAuthenticationStatus} instead.
|
||||
*/
|
||||
export const useAuthLoading = () => {
|
||||
export const useAuthLoading = (): boolean => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service, (state) => state.hasTag('loading'))
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-access-token
|
||||
*/
|
||||
export const useAuthenticated = () => {
|
||||
export const useAuthenticated = (): boolean => {
|
||||
const service = useAuthInterpreter()
|
||||
const [isAuthenticated, setIsAuthenticated] = useState(
|
||||
!!service.status && service.getSnapshot().matches({ authentication: 'signedIn' })
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ErrorPayload } from '@nhost/nhost-js'
|
||||
import { useSelector } from '@xstate/react'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
@@ -10,7 +11,13 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
* const { isAuthenticated, isLoading } = useAuthenticationStatus();
|
||||
* ```
|
||||
*/
|
||||
export const useAuthenticationStatus = () => {
|
||||
export const useAuthenticationStatus = (): {
|
||||
isAuthenticated: boolean
|
||||
isLoading: boolean
|
||||
error: ErrorPayload | null
|
||||
isError: boolean
|
||||
connectionAttempts: number
|
||||
} => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAccessToken } from './useAccessToken'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-decoded-access-token
|
||||
*/
|
||||
export const useDecodedAccessToken = () => {
|
||||
export const useDecodedAccessToken = (): JWTClaims | null => {
|
||||
const jwt = useAccessToken()
|
||||
return jwt ? jwt_decode<JWTClaims>(jwt) : null
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import { useHasuraClaims } from './useHasuraClaims'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-hasura-claim
|
||||
*/
|
||||
export const useHasuraClaim = (name: string) => {
|
||||
export const useHasuraClaim = (name: string): string | string[] | null => {
|
||||
const hasuraClaims = useHasuraClaims()
|
||||
return hasuraClaims?.[name.startsWith('x-hasura-') ? name : `x-hasura-${name}`] || null
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
import { JWTHasuraClaims } from '@nhost/nhost-js'
|
||||
import { useDecodedAccessToken } from './useDecodedAccessToken'
|
||||
|
||||
/**
|
||||
@@ -11,7 +11,7 @@ import { useDecodedAccessToken } from './useDecodedAccessToken'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-hasura-claims
|
||||
*/
|
||||
export const useHasuraClaims = () => {
|
||||
export const useHasuraClaims = (): JWTHasuraClaims | null => {
|
||||
const claims = useDecodedAccessToken()
|
||||
return claims?.['https://hasura.io/jwt/claims'] || null
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { User } from '@nhost/nhost-js'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { useAuthenticationStatus } from './useAuthenticationStatus'
|
||||
@@ -7,7 +8,11 @@ import { useUserData } from './useUserData'
|
||||
* @deprecated
|
||||
* This hook ensures backward compatibility with `@nhost/react-auth`, which is deprecated.
|
||||
*/
|
||||
export const useNhostAuth = () => {
|
||||
export const useNhostAuth = (): {
|
||||
isLoading: boolean
|
||||
isAuthenticated: boolean
|
||||
user: User | null
|
||||
} => {
|
||||
const { isLoading, isAuthenticated } = useAuthenticationStatus()
|
||||
const user = useUserData()
|
||||
return useMemo(() => ({ isLoading, isAuthenticated, user }), [isLoading, isAuthenticated, user])
|
||||
|
||||
@@ -13,7 +13,7 @@ import { NhostReactContext } from './provider'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-nhost-backend-url
|
||||
*/
|
||||
export const useNhostBackendUrl = () => {
|
||||
export const useNhostBackendUrl = (): string => {
|
||||
const nhost = useContext(NhostReactContext)
|
||||
return nhost.auth.client.backendUrl.replace('/v1/auth', '')
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import { NhostReactContext } from './provider'
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
export const useProviderLink = (options?: ProviderOptions) => {
|
||||
export const useProviderLink = (options?: ProviderOptions): Record<Provider, string> => {
|
||||
/**
|
||||
* @internal When using Nextjs or any SSR framework, nhost.auth.client.clientUrl will be set to `undefined`
|
||||
* as its value is set to window.location.origin.
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-avatar-url
|
||||
*/
|
||||
export const useUserAvatarUrl = () => {
|
||||
export const useUserAvatarUrl = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { User } from '@nhost/nhost-js'
|
||||
import { useSelector } from '@xstate/react'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
@@ -31,7 +32,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-data
|
||||
*/
|
||||
export const useUserData = () => {
|
||||
export const useUserData = (): User | null => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-default-role
|
||||
*/
|
||||
export const useUserDefaultRole = () => {
|
||||
export const useUserDefaultRole = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-display-name
|
||||
*/
|
||||
export const useUserDisplayName = () => {
|
||||
export const useUserDisplayName = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-email
|
||||
*/
|
||||
export const useUserEmail = () => {
|
||||
export const useUserEmail = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-id
|
||||
*/
|
||||
export const useUserId = () => {
|
||||
export const useUserId = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-is-anonymous
|
||||
*/
|
||||
export const useUserIsAnonymous = () => {
|
||||
export const useUserIsAnonymous = (): boolean | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-locale
|
||||
*/
|
||||
export const useUserLocale = () => {
|
||||
export const useUserLocale = (): string | undefined => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service,
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/react/use-user-roles
|
||||
*/
|
||||
export const useUserRoles = () => {
|
||||
export const useUserRoles = (): string[] => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service, (state) => {
|
||||
if (!state.matches('authentication.signedIn')) {
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @nhost/vue
|
||||
|
||||
## 1.13.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- c2706c7d: Export commonly used types
|
||||
|
||||
`BackendUrl`, `ErrorPayload`, `NhostSession`, `Subdomain`, and `User` are now exported in all our SDKs
|
||||
|
||||
- d42c27ae: Add explicit reutrn types to Vue composables
|
||||
|
||||
## 1.13.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nhost/vue",
|
||||
"version": "1.13.0",
|
||||
"version": "1.13.1",
|
||||
"description": "Nhost Vue library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
||||
@@ -8,6 +8,8 @@ import {
|
||||
import { App, warn } from 'vue'
|
||||
import { DefaultNhostClient } from './useNhostClient'
|
||||
|
||||
export type { BackendUrl, ErrorPayload, NhostSession, Subdomain, User } from '@nhost/nhost-js'
|
||||
|
||||
export interface NhostVueClientConstructorParams
|
||||
extends Partial<BackendUrl>,
|
||||
Partial<Subdomain>,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-access-token
|
||||
*/
|
||||
export const useAccessToken = () => {
|
||||
export const useAccessToken = (): Ref<string | null> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service.value, (state) => state.context.accessToken.value)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-access-token
|
||||
*/
|
||||
export const useAuthenticated = () => {
|
||||
export const useAuthenticated = (): Ref<boolean> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service.value, (state) => state.matches({ authentication: 'signedIn' }))
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { ErrorPayload } from '@nhost/nhost-js'
|
||||
import { toRefs } from '@vueuse/core'
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { ToRefs } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -11,7 +13,13 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
* const { isAuthenticated, isLoading } = useAuthenticationStatus();
|
||||
* ```
|
||||
*/
|
||||
export const useAuthenticationStatus = () => {
|
||||
export const useAuthenticationStatus = (): ToRefs<{
|
||||
isAuthenticated: boolean
|
||||
isLoading: boolean
|
||||
error: ErrorPayload | null
|
||||
isError: boolean
|
||||
connectionAttempts: number
|
||||
}> => {
|
||||
const service = useAuthInterpreter()
|
||||
return toRefs(
|
||||
useSelector(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { JWTClaims } from '@nhost/nhost-js'
|
||||
import jwt_decode from 'jwt-decode'
|
||||
import { computed } from 'vue'
|
||||
import { computed, ComputedRef } from 'vue'
|
||||
import { useAccessToken } from './useAccessToken'
|
||||
|
||||
/**
|
||||
@@ -13,7 +13,7 @@ import { useAccessToken } from './useAccessToken'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-decoded-access-token
|
||||
*/
|
||||
export const useDecodedAccessToken = () => {
|
||||
export const useDecodedAccessToken = (): ComputedRef<JWTClaims | null> => {
|
||||
const jwt = useAccessToken()
|
||||
return computed(() => (jwt.value ? jwt_decode<JWTClaims>(jwt.value) : null))
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { StateErrorTypes } from '@nhost/nhost-js'
|
||||
import { ErrorPayload, StateErrorTypes } from '@nhost/nhost-js'
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
/** @internal */
|
||||
export const useError = (type: StateErrorTypes) => {
|
||||
export const useError = (type: StateErrorTypes): Ref<ErrorPayload | null> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { computed, unref } from 'vue'
|
||||
import { computed, ComputedRef, unref } from 'vue'
|
||||
|
||||
import { RefOrValue } from './helpers'
|
||||
import { useHasuraClaims } from './useHasuraClaims'
|
||||
@@ -14,7 +14,7 @@ import { useHasuraClaims } from './useHasuraClaims'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-hasura-claim
|
||||
*/
|
||||
export const useHasuraClaim = (name: RefOrValue<string>) => {
|
||||
export const useHasuraClaim = (name: RefOrValue<string>): ComputedRef<string | string[] | null> => {
|
||||
const hasuraClaims = useHasuraClaims()
|
||||
return computed(() => {
|
||||
const unrefName = unref(name)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { computed } from 'vue'
|
||||
import { JWTHasuraClaims } from '@nhost/nhost-js'
|
||||
import { computed, ComputedRef } from 'vue'
|
||||
|
||||
import { useDecodedAccessToken } from './useDecodedAccessToken'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useDecodedAccessToken } from './useDecodedAccessToken'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-hasura-claims
|
||||
*/
|
||||
export const useHasuraClaims = () => {
|
||||
export const useHasuraClaims = (): ComputedRef<JWTHasuraClaims | null> => {
|
||||
const claims = useDecodedAccessToken()
|
||||
return computed(() => claims.value?.['https://hasura.io/jwt/claims'] || null)
|
||||
}
|
||||
|
||||
@@ -32,7 +32,9 @@ import { useNhostClient } from './useNhostClient'
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
export const useProviderLink = (options?: NestedRefOfValue<ProviderOptions | undefined>) => {
|
||||
export const useProviderLink = (
|
||||
options?: NestedRefOfValue<ProviderOptions | undefined>
|
||||
): Record<Provider, string> => {
|
||||
const { nhost } = useNhostClient()
|
||||
return reactive(
|
||||
new Proxy({} as Record<Provider, string>, {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-avatar-url
|
||||
*/
|
||||
export const useUserAvatarUrl = () => {
|
||||
export const useUserAvatarUrl = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { User } from '@nhost/nhost-js'
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -31,7 +33,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-data
|
||||
*/
|
||||
export const useUserData = () => {
|
||||
export const useUserData = (): Ref<User | null> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-default-role
|
||||
*/
|
||||
export const useUserDefaultRole = () => {
|
||||
export const useUserDefaultRole = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-display-name
|
||||
*/
|
||||
export const useUserDisplayName = () => {
|
||||
export const useUserDisplayName = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-email
|
||||
*/
|
||||
export const useUserEmail = () => {
|
||||
export const useUserEmail = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-id
|
||||
*/
|
||||
export const useUserId = () => {
|
||||
export const useUserId = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-is-anonymous
|
||||
*/
|
||||
export const useUserIsAnonymous = () => {
|
||||
export const useUserIsAnonymous = (): Ref<boolean | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-locale
|
||||
*/
|
||||
export const useUserLocale = () => {
|
||||
export const useUserLocale = (): Ref<string | undefined> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(
|
||||
service.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useSelector } from '@xstate/vue'
|
||||
import { Ref } from 'vue'
|
||||
|
||||
import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
|
||||
@@ -12,7 +13,7 @@ import { useAuthInterpreter } from './useAuthInterpreter'
|
||||
*
|
||||
* @docs https://docs.nhost.io/reference/vue/use-user-roles
|
||||
*/
|
||||
export const useUserRoles = () => {
|
||||
export const useUserRoles = (): Ref<string[]> => {
|
||||
const service = useAuthInterpreter()
|
||||
return useSelector(service.value, (state) => {
|
||||
if (!state.matches('authentication.signedIn')) {
|
||||
|
||||
148
pnpm-lock.yaml
generated
148
pnpm-lock.yaml
generated
@@ -537,7 +537,7 @@ importers:
|
||||
react-icons: ^4.4.0
|
||||
react-router: ^6.3.0
|
||||
react-router-dom: ^6.3.0
|
||||
start-server-and-test: ^1.14.0
|
||||
start-server-and-test: ^1.15.2
|
||||
tabler-icons-react: ^1.54.0
|
||||
totp-generator: ^0.0.13
|
||||
typescript: ^4.8.2
|
||||
@@ -572,7 +572,7 @@ importers:
|
||||
'@xstate/inspect': 0.6.5_ws@8.9.0+xstate@4.33.6
|
||||
cypress: 10.10.0
|
||||
cypress-mailhog: 1.6.0
|
||||
start-server-and-test: 1.14.0
|
||||
start-server-and-test: 1.15.2
|
||||
totp-generator: 0.0.13
|
||||
typescript: 4.8.3
|
||||
vite: 4.0.2
|
||||
@@ -929,7 +929,7 @@ importers:
|
||||
jwt-decode: ^3.1.2
|
||||
mailhog: ^4.16.0
|
||||
msw: ^0.47.4
|
||||
start-server-and-test: ^1.14.0
|
||||
start-server-and-test: ^1.15.2
|
||||
xstate: ^4.33.5
|
||||
dependencies:
|
||||
'@simplewebauthn/browser': 6.0.0
|
||||
@@ -944,7 +944,7 @@ importers:
|
||||
cheerio: 1.0.0-rc.12
|
||||
mailhog: 4.16.0
|
||||
msw: 0.47.4
|
||||
start-server-and-test: 1.14.0
|
||||
start-server-and-test: 1.15.2
|
||||
|
||||
packages/hasura-auth-js/functions:
|
||||
specifiers: {}
|
||||
@@ -957,7 +957,7 @@ importers:
|
||||
form-data: ^4.0.0
|
||||
jpeg-js: ^0.4.4
|
||||
pixelmatch: ^5.3.0
|
||||
start-server-and-test: ^1.14.0
|
||||
start-server-and-test: ^1.15.2
|
||||
uuid: ^9.0.0
|
||||
xstate: ^4.33.5
|
||||
dependencies:
|
||||
@@ -969,7 +969,7 @@ importers:
|
||||
cross-fetch: 3.1.5
|
||||
jpeg-js: 0.4.4
|
||||
pixelmatch: 5.3.0
|
||||
start-server-and-test: 1.14.0
|
||||
start-server-and-test: 1.15.2
|
||||
uuid: 9.0.0
|
||||
|
||||
packages/hasura-storage-js/functions:
|
||||
@@ -1007,7 +1007,7 @@ importers:
|
||||
axios: ^1.2.0
|
||||
graphql: 16.6.0
|
||||
jwt-decode: ^3.1.2
|
||||
start-server-and-test: ^1.14.0
|
||||
start-server-and-test: ^1.15.2
|
||||
dependencies:
|
||||
'@nhost/hasura-auth-js': link:../hasura-auth-js
|
||||
'@nhost/hasura-storage-js': link:../hasura-storage-js
|
||||
@@ -1017,7 +1017,7 @@ importers:
|
||||
'@faker-js/faker': 7.6.0
|
||||
'@nhost/docgen': link:../docgen
|
||||
graphql: 16.6.0
|
||||
start-server-and-test: 1.14.0
|
||||
start-server-and-test: 1.15.2
|
||||
|
||||
packages/nhost-js/functions:
|
||||
specifiers: {}
|
||||
@@ -4551,7 +4551,7 @@ packages:
|
||||
dependencies:
|
||||
'@docusaurus/logger': 2.2.0
|
||||
'@docusaurus/utils': 2.2.0
|
||||
joi: 17.6.0
|
||||
joi: 17.7.0
|
||||
js-yaml: 4.1.0
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
@@ -4569,7 +4569,7 @@ packages:
|
||||
dependencies:
|
||||
'@docusaurus/logger': 2.2.0
|
||||
'@docusaurus/utils': 2.2.0_@docusaurus+types@2.2.0
|
||||
joi: 17.6.0
|
||||
joi: 17.7.0
|
||||
js-yaml: 4.1.0
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
@@ -8116,8 +8116,8 @@ packages:
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.3.0
|
||||
|
||||
/@sideway/formula/3.0.0:
|
||||
resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==}
|
||||
/@sideway/formula/3.0.1:
|
||||
resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
|
||||
|
||||
/@sideway/pinpoint/2.0.0:
|
||||
resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
|
||||
@@ -13014,14 +13014,6 @@ packages:
|
||||
is-retry-allowed: 1.2.0
|
||||
dev: false
|
||||
|
||||
/axios/0.21.4_debug@4.3.2:
|
||||
resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
|
||||
dependencies:
|
||||
follow-redirects: 1.15.2
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/axios/0.25.0:
|
||||
resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
|
||||
dependencies:
|
||||
@@ -13030,6 +13022,14 @@ packages:
|
||||
- debug
|
||||
dev: false
|
||||
|
||||
/axios/0.25.0_debug@4.3.4:
|
||||
resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
|
||||
dependencies:
|
||||
follow-redirects: 1.15.2
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/axios/0.27.2:
|
||||
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
|
||||
dependencies:
|
||||
@@ -13822,7 +13822,7 @@ packages:
|
||||
resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
upper-case-first: 2.0.2
|
||||
dev: true
|
||||
|
||||
@@ -13925,7 +13925,7 @@ packages:
|
||||
path-case: 3.0.4
|
||||
sentence-case: 3.0.4
|
||||
snake-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/character-entities-legacy/1.1.4:
|
||||
@@ -14404,7 +14404,7 @@ packages:
|
||||
resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
upper-case: 2.0.2
|
||||
dev: true
|
||||
|
||||
@@ -15559,18 +15559,6 @@ packages:
|
||||
supports-color: 8.1.1
|
||||
dev: true
|
||||
|
||||
/debug/4.3.2:
|
||||
resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==}
|
||||
engines: {node: '>=6.0'}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
dev: true
|
||||
|
||||
/debug/4.3.4:
|
||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||
engines: {node: '>=6.0'}
|
||||
@@ -16022,7 +16010,7 @@ packages:
|
||||
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
|
||||
/dot-prop/5.3.0:
|
||||
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
|
||||
@@ -19620,7 +19608,7 @@ packages:
|
||||
resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
|
||||
dependencies:
|
||||
capital-case: 1.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/headers-polyfill/3.1.2:
|
||||
@@ -20399,7 +20387,7 @@ packages:
|
||||
/is-lower-case/2.0.2:
|
||||
resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/is-map/2.0.2:
|
||||
@@ -20614,7 +20602,7 @@ packages:
|
||||
/is-upper-case/2.0.2:
|
||||
resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/is-utf8/0.2.1:
|
||||
@@ -20929,7 +20917,16 @@ packages:
|
||||
'@hapi/hoek': 9.3.0
|
||||
'@hapi/topo': 5.1.0
|
||||
'@sideway/address': 4.1.4
|
||||
'@sideway/formula': 3.0.0
|
||||
'@sideway/formula': 3.0.1
|
||||
'@sideway/pinpoint': 2.0.0
|
||||
|
||||
/joi/17.7.0:
|
||||
resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==}
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.3.0
|
||||
'@hapi/topo': 5.1.0
|
||||
'@sideway/address': 4.1.4
|
||||
'@sideway/formula': 3.0.1
|
||||
'@sideway/pinpoint': 2.0.0
|
||||
|
||||
/join-component/1.1.0:
|
||||
@@ -21697,13 +21694,13 @@ packages:
|
||||
/lower-case-first/2.0.2:
|
||||
resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/lower-case/2.0.2:
|
||||
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
|
||||
/lowercase-keys/1.0.1:
|
||||
resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
|
||||
@@ -22704,7 +22701,7 @@ packages:
|
||||
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
||||
dependencies:
|
||||
lower-case: 2.0.2
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
|
||||
/node-abi/3.28.0:
|
||||
resolution: {integrity: sha512-fRlDb4I0eLcQeUvGq7IY3xHrSb0c9ummdvDSYWfT9+LKP+3jCKw/tKoqaM7r1BAoiAC6GtwyjaGnOz6B3OtF+A==}
|
||||
@@ -23406,7 +23403,7 @@ packages:
|
||||
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
|
||||
/pascalcase/0.1.1:
|
||||
resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
|
||||
@@ -23425,7 +23422,7 @@ packages:
|
||||
resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/path-dirname/1.0.2:
|
||||
@@ -26217,6 +26214,12 @@ packages:
|
||||
resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/rxjs/7.8.0:
|
||||
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
|
||||
/safe-buffer/5.1.1:
|
||||
resolution: {integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==}
|
||||
@@ -26426,7 +26429,7 @@ packages:
|
||||
resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
upper-case-first: 2.0.2
|
||||
dev: true
|
||||
|
||||
@@ -26733,7 +26736,7 @@ packages:
|
||||
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/snapdragon-node/2.1.1:
|
||||
@@ -26903,7 +26906,7 @@ packages:
|
||||
/sponge-case/1.0.1:
|
||||
resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/sprintf-js/1.0.3:
|
||||
@@ -26953,18 +26956,19 @@ packages:
|
||||
resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
|
||||
dev: true
|
||||
|
||||
/start-server-and-test/1.14.0:
|
||||
resolution: {integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==}
|
||||
/start-server-and-test/1.15.2:
|
||||
resolution: {integrity: sha512-t5xJX04Hg7hqxiKHMJBz/n4zIMsE6G7hpAcerFAH+4Vh9le/LeyFcJERJM7WLiPygWF9TOg33oroJF1XOzJtYQ==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
arg: 5.0.2
|
||||
bluebird: 3.7.2
|
||||
check-more-types: 2.24.0
|
||||
debug: 4.3.2
|
||||
debug: 4.3.4
|
||||
execa: 5.1.1
|
||||
lazy-ass: 1.6.0
|
||||
ps-tree: 1.2.0
|
||||
wait-on: 6.0.0_debug@4.3.2
|
||||
wait-on: 6.0.1_debug@4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@@ -27466,7 +27470,7 @@ packages:
|
||||
/swap-case/2.0.2:
|
||||
resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/symbol-observable/4.0.0:
|
||||
@@ -27850,7 +27854,7 @@ packages:
|
||||
/title-case/3.0.3:
|
||||
resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/tmp/0.0.33:
|
||||
@@ -28898,13 +28902,13 @@ packages:
|
||||
/upper-case-first/2.0.2:
|
||||
resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/upper-case/2.0.2:
|
||||
resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
tslib: 2.4.0
|
||||
dev: true
|
||||
|
||||
/uri-js/4.4.1:
|
||||
@@ -29951,34 +29955,34 @@ packages:
|
||||
xml-name-validator: 4.0.0
|
||||
dev: true
|
||||
|
||||
/wait-on/6.0.0_debug@4.3.2:
|
||||
resolution: {integrity: sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
axios: 0.21.4_debug@4.3.2
|
||||
joi: 17.6.0
|
||||
lodash: 4.17.21
|
||||
minimist: 1.2.7
|
||||
rxjs: 7.5.5
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/wait-on/6.0.1:
|
||||
resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
axios: 0.25.0
|
||||
joi: 17.6.0
|
||||
joi: 17.7.0
|
||||
lodash: 4.17.21
|
||||
minimist: 1.2.7
|
||||
rxjs: 7.5.7
|
||||
rxjs: 7.8.0
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: false
|
||||
|
||||
/wait-on/6.0.1_debug@4.3.4:
|
||||
resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
axios: 0.25.0_debug@4.3.4
|
||||
joi: 17.7.0
|
||||
lodash: 4.17.21
|
||||
minimist: 1.2.7
|
||||
rxjs: 7.8.0
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/walker/1.0.8:
|
||||
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user