Compare commits

..

15 Commits

Author SHA1 Message Date
Szilárd Dóró
c8c8948755 Merge pull request #1667 from nhost/changeset-release/main
chore: update versions
2023-02-24 12:45:06 +01:00
github-actions[bot]
17e9e5899e chore: update versions 2023-02-24 11:44:31 +00:00
Szilárd Dóró
bd22c48131 Merge pull request #1666 from nhost/fix/workspace-invitation
fix(nhost-js): use correct URL for functions requests
2023-02-24 12:43:02 +01:00
Szilárd Dóró
89a239ff3a fix(nhost-js): improve code readability 2023-02-24 12:22:54 +01:00
Szilárd Dóró
0131886011 fix(nhost-js): use correct URL for functions requests 2023-02-24 12:06:30 +01:00
Szilárd Dóró
340c014fe8 Merge pull request #1664 from nhost/update-codeowners
chore: update codeowners
2023-02-24 11:06:07 +01:00
Szilárd Dóró
bc9c8b9456 chore: update codeowners 2023-02-24 11:05:35 +01:00
Nuno Pato
c22b2621ba Merge pull request #1661 from nhost/changeset-release/main
chore: update versions
2023-02-23 20:33:34 -01:00
github-actions[bot]
726746c4d3 chore: update versions 2023-02-23 19:19:03 +00:00
Nuno Pato
c431570783 Merge pull request #1662 from nhost/fix/file-upload
fix(hasura-storage-js): fix forbidden error
2023-02-23 18:17:47 -01:00
Szilárd Dóró
445d8ef449 fix(hasura-storage-js): fix forbidden error 2023-02-23 18:16:22 +01:00
Szilárd Dóró
0f4ea18e42 Merge pull request #1655 from nhost/feat/auth-storage-permissions
fix(dashboard): allow permission editing for auth and storage schemas
2023-02-23 15:22:05 +01:00
Szilárd Dóró
dae7c5d517 Merge pull request #1660 from nhost/fix/user-creation-content-type
fix(dashboard): set correct Content-Type for user creation
2023-02-23 14:38:16 +01:00
Szilárd Dóró
f673adea00 fix(dashboard): set correct Content-Type for user creation 2023-02-23 12:50:00 +01:00
Szilárd Dóró
0368663dea fix(dashboard): allow permission editing for auth and storage schemas
fixes #1555
2023-02-22 19:59:20 +01:00
60 changed files with 531 additions and 144 deletions

18
.github/CODEOWNERS vendored
View File

@@ -1,14 +1,14 @@
# Documentation # Documentation
# https://help.github.com/en/articles/about-code-owners # https://help.github.com/en/articles/about-code-owners
/packages @plmercereau @szilarddoro /packages @szilarddoro
/packages/docgen @szilarddoro /packages/docgen @szilarddoro
/integrations/stripe-graphql-js @elitan /integrations/stripe-graphql-js @elitan
/.github @plmercereau /.github @szilarddoro
/dashboard/ @szilarddoro @guicurcio /dashboard/ @szilarddoro
/docs/ @guicurcio @elitan /docs/ @elitan
/config/ @plmercereau @szilarddoro /config/ @szilarddoro
/examples/ @plmercereau /examples/ @szilarddoro
/examples/codegen-react-apollo @elitan @plmercereau /examples/codegen-react-apollo @elitan @szilarddoro
/examples/codegen-react-query @elitan @plmercereau /examples/codegen-react-query @elitan @szilarddoro
/examples/react-apollo-crm @elitan @plmercereau /examples/react-apollo-crm @elitan @szilarddoro

View File

@@ -1,5 +1,27 @@
# @nhost/dashboard # @nhost/dashboard
## 0.11.18
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react-apollo@5.0.5
- @nhost/nextjs@1.13.10
## 0.11.17
### Patch Changes
- f673adea: fix(dashboard): set correct Content-Type for user creation
- 445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
- 445d8ef4: chore(deps): bump `@nhost/nextjs` to 1.13.9
- 0368663d: fix(dashboard): allow permission editing for auth and storage schemas
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- @nhost/react-apollo@5.0.4
- @nhost/nextjs@1.13.9
## 0.11.16 ## 0.11.16
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/dashboard", "name": "@nhost/dashboard",
"version": "0.11.16", "version": "0.11.18",
"private": true, "private": true,
"scripts": { "scripts": {
"preinstall": "npx only-allow pnpm", "preinstall": "npx only-allow pnpm",

View File

@@ -52,7 +52,9 @@ function ControlledAutocomplete(
return ( return (
<Autocomplete <Autocomplete
inputValue={typeof field.value === 'string' ? field.value : undefined} inputValue={
typeof field.value !== 'object' ? field.value.toString() : undefined
}
{...props} {...props}
{...field} {...field}
ref={mergeRefs([field.ref, ref])} ref={mergeRefs([field.ref, ref])}

View File

@@ -328,7 +328,6 @@ function DataBrowserSidebarContent({
className="group" className="group"
key={tablePath} key={tablePath}
secondaryAction={ secondaryAction={
!isSelectedSchemaLocked && (
<Dropdown.Root <Dropdown.Root
id="table-management-menu" id="table-management-menu"
onOpen={() => setSidebarMenuTable(tablePath)} onOpen={() => setSidebarMenuTable(tablePath)}
@@ -351,10 +350,7 @@ function DataBrowserSidebarContent({
</IconButton> </IconButton>
</Dropdown.Trigger> </Dropdown.Trigger>
<Dropdown.Content <Dropdown.Content menu PaperProps={{ className: 'w-52' }}>
menu
PaperProps={{ className: 'w-52' }}
>
{isGitHubConnected ? ( {isGitHubConnected ? (
<Dropdown.Item <Dropdown.Item
className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium" className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium"
@@ -375,6 +371,7 @@ function DataBrowserSidebarContent({
</Dropdown.Item> </Dropdown.Item>
) : ( ) : (
[ [
!isSelectedSchemaLocked && (
<Dropdown.Item <Dropdown.Item
key="edit-table" key="edit-table"
className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium" className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium"
@@ -400,11 +397,14 @@ function DataBrowserSidebarContent({
/> />
<span>Edit Table</span> <span>Edit Table</span>
</Dropdown.Item>, </Dropdown.Item>
),
!isSelectedSchemaLocked && (
<Divider <Divider
key="edit-table-separator" key="edit-table-separator"
component="li" component="li"
/>, />
),
<Dropdown.Item <Dropdown.Item
key="edit-permissions" key="edit-permissions"
className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium" className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium"
@@ -422,10 +422,13 @@ function DataBrowserSidebarContent({
<span>Edit Permissions</span> <span>Edit Permissions</span>
</Dropdown.Item>, </Dropdown.Item>,
!isSelectedSchemaLocked && (
<Divider <Divider
key="edit-permissions-separator" key="edit-permissions-separator"
component="li" component="li"
/>, />
),
!isSelectedSchemaLocked && (
<Dropdown.Item <Dropdown.Item
key="delete-table" key="delete-table"
className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium" className="grid grid-flow-col items-center gap-2 p-2 text-sm+ font-medium"
@@ -443,12 +446,12 @@ function DataBrowserSidebarContent({
/> />
<span>Delete Table</span> <span>Delete Table</span>
</Dropdown.Item>, </Dropdown.Item>
),
] ]
)} )}
</Dropdown.Content> </Dropdown.Content>
</Dropdown.Root> </Dropdown.Root>
)
} }
> >
<ListItem.Button <ListItem.Button

View File

@@ -245,7 +245,7 @@ export default function RolePermissionEditorForm({
: permission?.check, : permission?.check,
backend_only: values.backendOnly, backend_only: values.backendOnly,
computed_fields: computed_fields:
permission?.computed_fields.length > 0 permission?.computed_fields?.length > 0
? permission?.computed_fields ? permission?.computed_fields
: null, : null,
}, },

View File

@@ -6,6 +6,7 @@ import Input from '@/ui/v2/Input';
import Radio from '@/ui/v2/Radio'; import Radio from '@/ui/v2/Radio';
import RadioGroup from '@/ui/v2/RadioGroup'; import RadioGroup from '@/ui/v2/RadioGroup';
import Text from '@/ui/v2/Text'; import Text from '@/ui/v2/Text';
import type { FocusEvent } from 'react';
import { useState } from 'react'; import { useState } from 'react';
import { useFormContext } from 'react-hook-form'; import { useFormContext } from 'react-hook-form';
import PermissionSettingsSection from './PermissionSettingsSection'; import PermissionSettingsSection from './PermissionSettingsSection';
@@ -130,7 +131,13 @@ export default function RowPermissionsSection({
{action === 'select' && ( {action === 'select' && (
<Input <Input
{...register('limit')} {...register('limit', {
onBlur: (event: FocusEvent<HTMLInputElement>) => {
if (!event.target.value) {
setValue('limit', null);
}
},
})}
disabled={disabled} disabled={disabled}
id="limit" id="limit"
type="number" type="number"

View File

@@ -43,7 +43,10 @@ const baseValidationSchema = Yup.object().shape({
}); });
const selectValidationSchema = baseValidationSchema.shape({ const selectValidationSchema = baseValidationSchema.shape({
limit: Yup.number().min(0, 'Limit must not be negative.').nullable(true), limit: Yup.number()
.label('Limit')
.min(0, 'Limit must not be negative.')
.nullable(true),
allowAggregations: Yup.boolean().nullable(true), allowAggregations: Yup.boolean().nullable(true),
queryRootFields: Yup.array().of(Yup.string()).nullable(true), queryRootFields: Yup.array().of(Yup.string()).nullable(true),
subscriptionRootFields: Yup.array().of(Yup.string()).nullable(true), subscriptionRootFields: Yup.array().of(Yup.string()).nullable(true),

View File

@@ -6,6 +6,7 @@ import ColumnAutocomplete from '@/components/dataBrowser/ColumnAutocomplete';
import { useCurrentWorkspaceAndApplication } from '@/hooks/useCurrentWorkspaceAndApplication'; import { useCurrentWorkspaceAndApplication } from '@/hooks/useCurrentWorkspaceAndApplication';
import type { HasuraOperator } from '@/types/dataBrowser'; import type { HasuraOperator } from '@/types/dataBrowser';
import ActivityIndicator from '@/ui/v2/ActivityIndicator'; import ActivityIndicator from '@/ui/v2/ActivityIndicator';
import type { AutocompleteOption } from '@/ui/v2/Autocomplete';
import type { InputProps } from '@/ui/v2/Input'; import type { InputProps } from '@/ui/v2/Input';
import { inputClasses } from '@/ui/v2/Input'; import { inputClasses } from '@/ui/v2/Input';
import Option from '@/ui/v2/Option'; import Option from '@/ui/v2/Option';
@@ -211,11 +212,13 @@ export default function RuleValueInput({
<ControlledAutocomplete <ControlledAutocomplete
disabled={disabled} disabled={disabled}
freeSolo={!isHasuraInput} freeSolo={!isHasuraInput}
autoSelect={!isHasuraInput}
autoHighlight={isHasuraInput} autoHighlight={isHasuraInput}
isOptionEqualToValue={(option, value) => { isOptionEqualToValue={(
if (typeof value === 'string') { option,
return option.value.toLowerCase() === (value as string).toLowerCase(); value: string | number | AutocompleteOption<string>,
) => {
if (typeof value !== 'object') {
return option.value.toLowerCase() === value?.toString().toLowerCase();
} }
return option.value.toLowerCase() === value.value.toLowerCase(); return option.value.toLowerCase() === value.value.toLowerCase();

View File

@@ -58,16 +58,19 @@ export function InviteAnnounce() {
error: null, error: null,
loading: true, loading: true,
}); });
const res = await nhost.functions.call('/accept-workspace-invite', { const { res, error: acceptError } = await nhost.functions.call(
'/accept-workspace-invite',
{
workspaceMemberInviteId: invite.id, workspaceMemberInviteId: invite.id,
isAccepted: true, isAccepted: true,
}); },
);
if (res?.res?.status !== 200) { if (res?.status !== 200) {
triggerToast('An error occurred when trying to accept the invitation.'); triggerToast('An error occurred when trying to accept the invitation.');
return setSubmitState({ return setSubmitState({
error: new Error(res.error.message), error: new Error(acceptError.message),
loading: false, loading: false,
}); });
} }
@@ -90,7 +93,7 @@ export function InviteAnnounce() {
error: null, error: null,
}); });
const res = await nhost.functions.call( const { error: ignoreError } = await nhost.functions.call(
'/accept-workspace-invite', '/accept-workspace-invite',
{ {
workspaceMemberInviteId: inviteId, workspaceMemberInviteId: inviteId,
@@ -99,12 +102,12 @@ export function InviteAnnounce() {
{ useAxios: false }, { useAxios: false },
); );
if (res?.error) { if (ignoreError) {
triggerToast('An error occurred when trying to ignore the invitation.'); triggerToast('An error occurred when trying to ignore the invitation.');
setIgnoreState({ setIgnoreState({
loading: false, loading: false,
error: new Error(res.error.message), error: new Error(ignoreError.message),
}); });
return; return;

View File

@@ -222,9 +222,9 @@ function Autocomplete(
inputValue: inputValue || '', inputValue: inputValue || '',
getOptionLabel: props.getOptionLabel getOptionLabel: props.getOptionLabel
? props.getOptionLabel ? props.getOptionLabel
: (option) => { : (option: string | number | AutocompleteOption<string>) => {
if (typeof option === 'string') { if (typeof option !== 'object') {
return option; return option.toString();
} }
return option.label ?? option.dropdownLabel; return option.label ?? option.dropdownLabel;
@@ -284,33 +284,46 @@ function Autocomplete(
}} }}
PopperComponent={AutocompletePopper} PopperComponent={AutocompletePopper}
popupIcon={<ChevronDownIcon sx={{ width: 12, height: 12 }} />} popupIcon={<ChevronDownIcon sx={{ width: 12, height: 12 }} />}
getOptionLabel={(option) => { getOptionLabel={(
if (typeof option === 'string') { option: string | number | AutocompleteOption<string>,
return option; ) => {
if (!option) {
return '';
}
if (typeof option !== 'object') {
return option.toString();
} }
return option.label ?? option.dropdownLabel; return option.label ?? option.dropdownLabel;
}} }}
isOptionEqualToValue={(option, value) => { isOptionEqualToValue={(
option,
value: string | number | AutocompleteOption<string>,
) => {
if (!value) { if (!value) {
return false; return false;
} }
if (typeof value === 'string') { if (typeof value !== 'object') {
return option.value === value; return option.value.toString() === value.toString();
} }
return option.value === value.value && option.custom === value.custom; return option.value === value.value && option.custom === value.custom;
}} }}
renderTags={(value, getTagProps) => renderTags={(value, getTagProps) =>
value.map((option, index) => ( value.map(
(option: string | number | AutocompleteOption<string>, index) => (
<StyledTag <StyledTag
deleteIcon={<XIcon />} deleteIcon={<XIcon />}
size="small" size="small"
label={typeof option === 'string' ? option : option.value} label={
typeof option !== 'object' ? option.toString() : option.value
}
{...getTagProps({ index })} {...getTagProps({ index })}
/> />
)) ),
)
} }
renderGroup={({ group, key, children }) => renderGroup={({ group, key, children }) =>
group ? ( group ? (
@@ -323,9 +336,12 @@ function Autocomplete(
<div key={key}>{children}</div> <div key={key}>{children}</div>
) )
} }
renderOption={(optionProps, option) => { renderOption={(
if (typeof option === 'string') { optionProps,
return <OptionBase {...optionProps}>{option}</OptionBase>; option: string | number | AutocompleteOption<string>,
) => {
if (typeof option !== 'object') {
return <OptionBase {...optionProps}>{option.toString()}</OptionBase>;
} }
return ( return (

View File

@@ -81,6 +81,7 @@ export default function CreateUserForm({
await toast.promise( await toast.promise(
fetch(signUpUrl, { fetch(signUpUrl, {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password }), body: JSON.stringify({ email, password }),
}).then(async (res) => { }).then(async (res) => {
const data = await res.json(); const data = await res.json();

View File

@@ -1,5 +1,26 @@
# @nhost-examples/codegen-react-apollo # @nhost-examples/codegen-react-apollo
## 0.1.7
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react-apollo@5.0.5
- @nhost/react@2.0.4
## 0.1.6
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- 445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- @nhost/react-apollo@5.0.4
- @nhost/react@2.0.3
## 0.1.5 ## 0.1.5
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/codegen-react-apollo", "name": "@nhost-examples/codegen-react-apollo",
"version": "0.1.5", "version": "0.1.7",
"private": true, "private": true,
"scripts": { "scripts": {
"codegen": "graphql-codegen", "codegen": "graphql-codegen",

View File

@@ -1,5 +1,21 @@
# @nhost-examples/codegen-react-query # @nhost-examples/codegen-react-query
## 0.1.7
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react@2.0.4
## 0.1.6
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/react@2.0.3
## 0.1.5 ## 0.1.5
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/codegen-react-query", "name": "@nhost-examples/codegen-react-query",
"version": "0.1.5", "version": "0.1.7",
"private": true, "private": true,
"scripts": { "scripts": {
"codegen": "graphql-codegen", "codegen": "graphql-codegen",

View File

@@ -1,5 +1,24 @@
# @nhost-examples/react-urql # @nhost-examples/react-urql
## 0.0.4
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react-urql@2.0.4
- @nhost/react@2.0.4
## 0.0.3
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- @nhost/react-urql@2.0.3
- @nhost/react@2.0.3
## 0.0.2 ## 0.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,7 +1,7 @@
{ {
"name": "@nhost-examples/codegen-react-urql", "name": "@nhost-examples/codegen-react-urql",
"private": true, "private": true,
"version": "0.0.2", "version": "0.0.4",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "tsc && vite build", "build": "tsc && vite build",

View File

@@ -1,5 +1,11 @@
# @nhost-examples/docker-compose # @nhost-examples/docker-compose
## 0.0.5
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
## 0.0.4 ## 0.0.4
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/docker-compose", "name": "@nhost-examples/docker-compose",
"version": "0.0.4", "version": "0.0.5",
"private": true, "private": true,
"scripts": { "scripts": {
"e2e": "vitest run" "e2e": "vitest run"

View File

@@ -1,5 +1,21 @@
# @nhost-examples/multi-tenant-one-to-many # @nhost-examples/multi-tenant-one-to-many
## 1.0.3
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/nhost-js@2.0.4
## 1.0.2
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/nhost-js` version to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/nhost-js@2.0.3
## 1.0.1 ## 1.0.1
### Patch Changes ### Patch Changes

View File

@@ -1,7 +1,7 @@
{ {
"name": "@nhost-examples/multi-tenant-one-to-many", "name": "@nhost-examples/multi-tenant-one-to-many",
"private": true, "private": true,
"version": "1.0.1", "version": "1.0.3",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": {}, "scripts": {},

View File

@@ -1,5 +1,29 @@
# @nhost-examples/nextjs # @nhost-examples/nextjs
## 0.1.7
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react-apollo@5.0.5
- @nhost/nextjs@1.13.10
- @nhost/react@2.0.4
## 0.1.6
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- 445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
- 445d8ef4: chore(deps): bump `@nhost/nextjs` to 1.13.9
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- @nhost/react-apollo@5.0.4
- @nhost/nextjs@1.13.9
- @nhost/react@2.0.3
## 0.1.5 ## 0.1.5
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/nextjs", "name": "@nhost-examples/nextjs",
"version": "0.1.5", "version": "0.1.7",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",

View File

@@ -1,5 +1,26 @@
# @nhost-examples/react-apollo # @nhost-examples/react-apollo
## 0.1.9
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react-apollo@5.0.5
- @nhost/react@2.0.4
## 0.1.8
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- 445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- Updated dependencies [445d8ef4]
- @nhost/react-apollo@5.0.4
- @nhost/react@2.0.3
## 0.1.7 ## 0.1.7
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/react-apollo", "name": "@nhost-examples/react-apollo",
"version": "0.1.7", "version": "0.1.9",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@apollo/client": "^3.6.9", "@apollo/client": "^3.6.9",

View File

@@ -1,5 +1,21 @@
# @nhost-examples/react-gqty # @nhost-examples/react-gqty
## 0.0.6
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react@2.0.4
## 0.0.5
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/react@2.0.3
## 0.0.4 ## 0.0.4
### Patch Changes ### Patch Changes

View File

@@ -1,7 +1,7 @@
{ {
"name": "@nhost-examples/react-gqty", "name": "@nhost-examples/react-gqty",
"private": true, "private": true,
"version": "0.0.4", "version": "0.0.6",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -0,0 +1,7 @@
# @nhost-examples/seed-data-storage
## 0.0.2
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests

View File

@@ -1,7 +1,7 @@
{ {
"name": "@nhost-examples/seed-data-storage", "name": "@nhost-examples/seed-data-storage",
"private": true, "private": true,
"version": "0.0.1", "version": "0.0.2",
"scripts": { "scripts": {
"seed-storage": "./seed-storage.sh" "seed-storage": "./seed-storage.sh"
} }

View File

@@ -1,5 +1,13 @@
# @nhost-examples/serverless-functions # @nhost-examples/serverless-functions
## 0.0.7
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/stripe-graphql-js@1.0.2
## 0.0.6 ## 0.0.6
### Patch Changes ### Patch Changes

View File

@@ -1,13 +1,13 @@
{ {
"name": "@nhost-examples/serverless-functions", "name": "@nhost-examples/serverless-functions",
"private": true, "private": true,
"version": "0.0.6", "version": "0.0.7",
"devDependencies": { "devDependencies": {
"@types/express": "^4.17.13" "@types/express": "^4.17.13"
}, },
"dependencies": { "dependencies": {
"@graphql-yoga/node": "^2.13.13", "@graphql-yoga/node": "^2.13.13",
"@nhost/stripe-graphql-js": "^1.0.1", "@nhost/stripe-graphql-js": "^1.0.2",
"@pothos/core": "^3.21.0", "@pothos/core": "^3.21.0",
"cross-fetch": "^3.1.5", "cross-fetch": "^3.1.5",
"graphql": "15.7.2", "graphql": "15.7.2",

View File

@@ -1,5 +1,23 @@
# @nhost-examples/vue-apollo # @nhost-examples/vue-apollo
## 0.0.7
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/apollo@5.0.4
- @nhost/vue@1.13.10
## 0.0.6
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/apollo` to 5.0.3
- Updated dependencies [445d8ef4]
- @nhost/apollo@5.0.3
- @nhost/vue@1.13.9
## 0.0.5 ## 0.0.5
### Patch Changes ### Patch Changes

View File

@@ -1,7 +1,7 @@
{ {
"name": "@nhost-examples/vue-apollo", "name": "@nhost-examples/vue-apollo",
"private": true, "private": true,
"version": "0.0.5", "version": "0.0.7",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",

View File

@@ -1,5 +1,23 @@
# @nhost-examples/vue-quickstart # @nhost-examples/vue-quickstart
## 0.0.6
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/apollo@5.0.4
- @nhost/vue@1.13.10
## 0.0.5
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/apollo` to 5.0.3
- Updated dependencies [445d8ef4]
- @nhost/apollo@5.0.3
- @nhost/vue@1.13.9
## 0.0.4 ## 0.0.4
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost-examples/vue-quickstart", "name": "@nhost-examples/vue-quickstart",
"version": "0.0.4", "version": "0.0.6",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "vite build", "build": "vite build",

View File

@@ -1,5 +1,21 @@
# @nhost/apollo # @nhost/apollo
## 5.0.4
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/nhost-js@2.0.4
## 5.0.3
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/nhost-js` version to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/nhost-js@2.0.3
## 5.0.2 ## 5.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/apollo", "name": "@nhost/apollo",
"version": "5.0.2", "version": "5.0.4",
"description": "Nhost Apollo Client library", "description": "Nhost Apollo Client library",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/google-translation # @nhost/google-translation
## 0.0.3
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
## 0.0.2 ## 0.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/google-translation", "name": "@nhost/google-translation",
"version": "0.0.2", "version": "0.0.3",
"description": "Google Translation GraphQL API", "description": "Google Translation GraphQL API",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,24 @@
# @nhost/react-apollo # @nhost/react-apollo
## 5.0.5
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/apollo@5.0.4
- @nhost/react@2.0.4
## 5.0.4
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- 445d8ef4: chore(deps): bump `@nhost/apollo` to 5.0.3
- Updated dependencies [445d8ef4]
- @nhost/apollo@5.0.3
- @nhost/react@2.0.3
## 5.0.3 ## 5.0.3
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/react-apollo", "name": "@nhost/react-apollo",
"version": "5.0.3", "version": "5.0.5",
"description": "Nhost React Apollo client", "description": "Nhost React Apollo client",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,21 @@
# @nhost/react-urql # @nhost/react-urql
## 2.0.4
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react@2.0.4
## 2.0.3
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/react@2.0.3
## 2.0.2 ## 2.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/react-urql", "name": "@nhost/react-urql",
"version": "2.0.2", "version": "2.0.4",
"description": "Nhost React URQL client", "description": "Nhost React URQL client",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/stripe-graphql-js # @nhost/stripe-graphql-js
## 1.0.2
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
## 1.0.1 ## 1.0.1
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/stripe-graphql-js", "name": "@nhost/stripe-graphql-js",
"version": "1.0.1", "version": "1.0.2",
"description": "Stripe GraphQL API", "description": "Stripe GraphQL API",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,11 @@
# @nhost/hasura-storage-js # @nhost/hasura-storage-js
## 2.0.1
### Patch Changes
- 445d8ef4: fix(hasura-storage-js): fix forbidden error when uploading
## 2.0.0 ## 2.0.0
### Major Changes ### Major Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/hasura-storage-js", "name": "@nhost/hasura-storage-js",
"version": "2.0.0", "version": "2.0.1",
"description": "Hasura-storage client", "description": "Hasura-storage client",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -28,7 +28,7 @@ export class HasuraStorageApi {
return fetchUpload(this.url, formData, { return fetchUpload(this.url, formData, {
accessToken: this.accessToken, accessToken: this.accessToken,
adminSecret: this.accessToken, adminSecret: this.adminSecret,
bucketId: params.bucketId, bucketId: params.bucketId,
fileId: params.id, fileId: params.id,
name: params.name name: params.name

View File

@@ -81,7 +81,6 @@ export const fetchUpload = async (
} }
// * Browser environment: XMLHttpRequest is available // * Browser environment: XMLHttpRequest is available
return new Promise((resolve) => { return new Promise((resolve) => {
console.log('NOOOOOOO')
let xhr = new XMLHttpRequest() let xhr = new XMLHttpRequest()
xhr.responseType = 'json' xhr.responseType = 'json'

View File

@@ -1,5 +1,21 @@
# @nhost/nextjs # @nhost/nextjs
## 1.13.10
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/react@2.0.4
## 1.13.9
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/react` to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/react@2.0.3
## 1.13.8 ## 1.13.8
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/nextjs", "name": "@nhost/nextjs",
"version": "1.13.8", "version": "1.13.10",
"description": "Nhost NextJS library", "description": "Nhost NextJS library",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,19 @@
# @nhost/nhost-js # @nhost/nhost-js
## 2.0.4
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
## 2.0.3
### Patch Changes
- 445d8ef4: chore(nhost-js): bump `@nhost/hasura-storage-js` to 2.0.1
- Updated dependencies [445d8ef4]
- @nhost/hasura-storage-js@2.0.1
## 2.0.2 ## 2.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/nhost-js", "name": "@nhost/nhost-js",
"version": "2.0.2", "version": "2.0.4",
"description": "Nhost JavaScript SDK", "description": "Nhost JavaScript SDK",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -65,21 +65,28 @@ export class NhostFunctionsClient {
...config?.headers ...config?.headers
} }
const backendUrl = this.url
const functionUrl = url.startsWith('/') ? url : `/${url}`
try { try {
const result = await fetch(url, { const result = await fetch(`${backendUrl}/${functionUrl}`, {
body: JSON.stringify(body), body: JSON.stringify(body),
headers, headers,
method: 'POST' method: 'POST'
}) })
if (!result.ok) { if (!result.ok) {
throw new Error(result.statusText) throw new Error(result.statusText)
} }
let data: T let data: T
try {
if (result.headers.get('content-type') === 'application/json') {
data = await result.json() data = await result.json()
} catch { } else {
data = (await result.text()) as unknown as T data = (await result.text()) as unknown as T
} }
return { return {
res: { data, status: result.status, statusText: result.statusText }, res: { data, status: result.status, statusText: result.statusText },
error: null error: null

View File

@@ -1,5 +1,21 @@
# @nhost/react # @nhost/react
## 2.0.4
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/nhost-js@2.0.4
## 2.0.3
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/nhost-js` version to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/nhost-js@2.0.3
## 2.0.2 ## 2.0.2
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/react", "name": "@nhost/react",
"version": "2.0.2", "version": "2.0.4",
"description": "Nhost React library", "description": "Nhost React library",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -1,5 +1,21 @@
# @nhost/vue # @nhost/vue
## 1.13.10
### Patch Changes
- 01318860: fix(nhost-js): use correct URL for functions requests
- Updated dependencies [01318860]
- @nhost/nhost-js@2.0.4
## 1.13.9
### Patch Changes
- 445d8ef4: chore(deps): bump `@nhost/nhost-js` version to 2.0.3
- Updated dependencies [445d8ef4]
- @nhost/nhost-js@2.0.3
## 1.13.8 ## 1.13.8
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@nhost/vue", "name": "@nhost/vue",
"version": "1.13.8", "version": "1.13.10",
"description": "Nhost Vue library", "description": "Nhost Vue library",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

2
pnpm-lock.yaml generated
View File

@@ -684,7 +684,7 @@ importers:
examples/serverless-functions: examples/serverless-functions:
specifiers: specifiers:
'@graphql-yoga/node': ^2.13.13 '@graphql-yoga/node': ^2.13.13
'@nhost/stripe-graphql-js': ^1.0.1 '@nhost/stripe-graphql-js': ^1.0.2
'@pothos/core': ^3.21.0 '@pothos/core': ^3.21.0
'@types/express': ^4.17.13 '@types/express': ^4.17.13
cross-fetch: ^3.1.5 cross-fetch: ^3.1.5