@strapi/admin 5.31.2 → 5.31.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +6 -0
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +6 -0
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +5 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +5 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +1 -12
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +2 -11
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.js +772 -129
- package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.mjs +764 -130
- package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +7 -0
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +7 -0
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/index.js +0 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +0 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/index.d.ts +0 -2
- package/dist/admin/src/services/auth.d.ts +2 -11
- package/dist/ee/server/src/ai/containers/ai.d.ts +4 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +143 -1
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.mjs +143 -1
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +7 -106
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +7 -106
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +0 -3
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +0 -3
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js +0 -15
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs +0 -15
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +0 -10
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +0 -10
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +1 -143
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +1 -143
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts +0 -1
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +0 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +0 -5
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +0 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +0 -4
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +1 -1
- package/dist/shared/contracts/users.d.ts +0 -32
- package/dist/shared/contracts/users.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/admin/admin/src/hooks/useAIAvailability.js +0 -13
- package/dist/admin/admin/src/hooks/useAIAvailability.js.map +0 -1
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs +0 -11
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +0 -1
- package/dist/admin/src/hooks/useAIAvailability.d.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadersInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeadersInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","xs","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
|
|
@@ -51,6 +51,7 @@ const HeadersInput = ()=>{
|
|
|
51
51
|
padding: 2,
|
|
52
52
|
children: [
|
|
53
53
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
54
|
+
xs: 12,
|
|
54
55
|
col: 6,
|
|
55
56
|
direction: "column",
|
|
56
57
|
alignItems: "stretch",
|
|
@@ -64,6 +65,7 @@ const HeadersInput = ()=>{
|
|
|
64
65
|
})
|
|
65
66
|
}),
|
|
66
67
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
68
|
+
xs: 12,
|
|
67
69
|
col: 6,
|
|
68
70
|
direction: "column",
|
|
69
71
|
alignItems: "stretch",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","xs","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
|
|
@@ -163,6 +163,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
163
163
|
}
|
|
164
164
|
].map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
165
165
|
col: size,
|
|
166
|
+
xs: 12,
|
|
166
167
|
direction: "column",
|
|
167
168
|
alignItems: "stretch",
|
|
168
169
|
children: /*#__PURE__*/ jsxRuntime.jsx(Renderer.InputRenderer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebhookForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMA,WAAc,GAAA,CAAC,EACnBC,YAAY,EACZC,cAAc,EACdC,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,IAAI,EACa,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,mBAAqBC,EAAAA,sBAAAA,CAAuB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACrE,MAAMC,UAAAA,GAAaC,2BACjBC,CAAAA,wBAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,+FACF,KAAA,EACAC,aAAa,CAAA;AAGnB;;MAGA,MAAMC,aAAa,CAACC,OAAAA,GAAAA;AAClB,QAAA,IAAI,CAACC,MAAOC,CAAAA,IAAI,CAACF,OAAAA,CAAAA,CAASG,MAAM,EAAE;YAChC,OAAO;AAAC,gBAAA;oBAAEC,GAAK,EAAA,EAAA;oBAAIC,KAAO,EAAA;AAAG;AAAE,aAAA;AACjC;QAEA,OAAOJ,MAAAA,CAAOK,OAAO,CAACN,OAASO,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACH,GAAAA,EAAKC,KAAM,CAAA,IAAM;AAAED,gBAAAA,GAAAA;AAAKC,gBAAAA;aAAM,CAAA,CAAA;AACrE,KAAA;;AAGA,IAAA,IAAI,CAACV,UAAY,EAAA;QACf,OAAO,IAAA;AACT;AAEA,IAAA,qBACEa,cAACC,CAAAA,SAAAA,EAAAA;QACCC,aAAe,EAAA;AACbC,YAAAA,IAAAA,EAAMvB,MAAMuB,IAAQ,IAAA,EAAA;AACpBC,YAAAA,GAAAA,EAAKxB,MAAMwB,GAAO,IAAA,EAAA;YAClBZ,OAASD,EAAAA,UAAAA,CAAWX,IAAMY,EAAAA,OAAAA,IAAW,EAAC,CAAA;YACtCa,MAAQzB,EAAAA,IAAAA,EAAMyB,UAAU;AAC1B,SAAA;AACAC,QAAAA,MAAAA,EAAQ7B,aAAa,MAAS,GAAA,KAAA;QAC9B8B,QAAUhC,EAAAA,YAAAA;AACViC,QAAAA,gBAAAA,EAAkBC,2BAA4B,CAAA;AAAE5B,YAAAA;AAAc,SAAA,CAAA;AAE7D,QAAA,QAAA,EAAA,CAAC,EAAE6B,YAAY,EAAEC,QAAQ,EAAE,iBAC1BC,eAAA,CAAAC,mBAAA,EAAA;;AACE,kCAAAb,cAAA,CAACc,eAAQC,MAAM,EAAA;AACbC,wBAAAA,aAAAA,gBACEJ,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKC,GAAK,EAAA,CAAA;;8CACTlB,cAACmB,CAAAA,mBAAAA,EAAAA;oCACCC,OAAS,EAAA,IAAA;AACP5C,wCAAAA,cAAAA,EAAAA;wCACAQ,sBAAuB,CAAA,IAAA,CAAA;AACzB,qCAAA;oCACAqC,OAAQ,EAAA,UAAA;AACRC,oCAAAA,SAAAA,gBAAWtB,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACZC,oCAAAA,QAAAA,EAAU/C,UAAcC,IAAAA,YAAAA;8CAEvBG,aAAc,CAAA;wCACb4C,EAAI,EAAA,2BAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;8CAEF1B,cAACmB,CAAAA,mBAAAA,EAAAA;AACCG,oCAAAA,SAAAA,gBAAWtB,cAAC2B,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;oCACZC,IAAK,EAAA,QAAA;AACLJ,oCAAAA,QAAAA,EAAU,CAACb,QAAAA;oCACXkB,OAASnB,EAAAA,YAAAA;8CAER7B,aAAc,CAAA;wCACb4C,EAAI,EAAA,aAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;;;AAINI,wBAAAA,KAAAA,EACErD,aACII,aAAc,CAAA;4BACZ4C,EAAI,EAAA,0BAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA,CAAA,GACA9C,IAAMuB,EAAAA,IAAAA;AAEZ4B,wBAAAA,gBAAAA;sCAEE/B,cAACgC,CAAAA,gBAAAA,EAAAA;4BAAIC,OAAS,EAAA;gCAAEC,OAAS,EAAA,MAAA;gCAAQC,MAAQ,EAAA;AAAQ,6BAAA;AAC/C,4BAAA,QAAA,gBAAAnC,cAACoC,CAAAA,qBAAAA,EAAAA;gCAAWC,QAAS,EAAA;;;;AAI3B,kCAAArC,cAAA,CAACc,eAAQwB,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA1B,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKsB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUtB,GAAK,EAAA,CAAA;;AAChDnC,gCAAAA,mBAAAA,kBACCiB,cAACyC,CAAAA,iCAAAA,EAAAA;oCACCC,SAAWhE,EAAAA,YAAAA;oCACXiE,QAAUhE,EAAAA,eAAAA;AACViE,oCAAAA,QAAAA,EAAU,IAAM5D,sBAAuB,CAAA,KAAA;;8CAG3CgB,cAACgC,CAAAA,gBAAAA,EAAAA;oCAAIa,UAAW,EAAA,UAAA;oCAAWC,OAAS,EAAA,CAAA;oCAAGC,MAAO,EAAA,cAAA;oCAAeC,SAAS,EAAA,IAAA;AACpE,oCAAA,QAAA,gBAAApC,eAACK,CAAAA,iBAAAA,EAAAA;wCAAKsB,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUtB,GAAK,EAAA,CAAA;;AACjD,0DAAAlB,cAAA,CAACiD,kBAAKC,IAAI,EAAA;gDAAChC,GAAK,EAAA,CAAA;AACb,gDAAA,QAAA,EAAA;AACC,oDAAA;AACEiC,wDAAAA,KAAAA,EAAOtE,aAAc,CAAA;4DACnB4C,EAAI,EAAA,aAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAvB,IAAM,EAAA,MAAA;wDACNiD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,CAAA;wDACNzB,IAAM,EAAA;AACR,qDAAA;AACA,oDAAA;AACEuB,wDAAAA,KAAAA,EAAOtE,aAAc,CAAA;4DACnB4C,EAAI,EAAA,+BAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAvB,IAAM,EAAA,KAAA;wDACNiD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,EAAA;wDACNzB,IAAM,EAAA;AACR;iDACD,CAAC7B,GAAG,CAAC,CAAC,EAAEsD,IAAI,EAAE,GAAGC,KAAO,EAAA,iBACvBtD,cAACiD,CAAAA,iBAAAA,CAAKM,IAAI,EAAA;wDAERC,GAAKH,EAAAA,IAAAA;wDACLI,EAAI,EAAA,EAAA;wDACJlB,SAAU,EAAA,QAAA;wDACVC,UAAW,EAAA,SAAA;AAEX,wDAAA,QAAA,gBAAAxC,cAAC0D,CAAAA,sBAAAA,EAAAA;AAAe,4DAAA,GAAGJ;;AANdA,qDAAAA,EAAAA,KAAAA,CAAMnD,IAAI,CAAA;;0DAUrBH,cAAC2D,CAAAA,yBAAAA,EAAAA,EAAAA,CAAAA;0DACD3D,cAACb,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;;;;;AASnB;AAEA,MAAMyE,UAAa,GAAA,iCAAA;AACnB,MAAMC,SAAY,GAAA,mCAAA;AAElB,MAAMpD,2BAAAA,GAA8B,CAAC,EAAE5B,aAAa,EAAoC,GACtFiF,cAAIC,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;AACjB7D,QAAAA,IAAAA,EAAM2D,eACHG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,4CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNP,UAAAA,EACA/E,aAAc,CAAA;YACZ4C,EAAI,EAAA,yCAAA;YACJC,cACE,EAAA;AACJ,SAAA,CAAA,CAAA;AAEJtB,QAAAA,GAAAA,EAAK0D,eACFG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,2CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNN,SAAAA,EACAhF,aAAc,CAAA;YACZ4C,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;QAEJlC,OAASsE,EAAAA,cAAAA,CAAIM,IAAI,CAAC,CAACC,KAAAA,GAAAA;YACjB,MAAMC,UAAAA,GAAaR,eAAIO,KAAK,EAAA;YAE5B,IAAIA,KAAAA,CAAM1E,MAAM,KAAK,CAAG,EAAA;gBACtB,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGwE,KAAK,CAAC,CAAE,CAAA;gBAE/B,IAAI,CAACzE,GAAO,IAAA,CAACC,KAAO,EAAA;oBAClB,OAAOyE,UAAAA;AACT;AACF;AAEA,YAAA,OAAOA,WAAWC,EAAE,CAClBT,eAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACjBpE,gBAAAA,GAAAA,EAAKkE,cACFG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ,EAAA;AACXrE,gBAAAA,KAAAA,EAAOiE,cACJG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ;AACb,aAAA,CAAA,CAAA;AAEJ,SAAA,CAAA;AACA7D,QAAAA,MAAAA,EAAQyD,eAAIO,KAAK;AACnB,KAAA,CAAA;;;;"}
|
|
@@ -141,6 +141,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
141
141
|
}
|
|
142
142
|
].map(({ size, ...field })=>/*#__PURE__*/ jsx(Grid.Item, {
|
|
143
143
|
col: size,
|
|
144
|
+
xs: 12,
|
|
144
145
|
direction: "column",
|
|
145
146
|
alignItems: "stretch",
|
|
146
147
|
children: /*#__PURE__*/ jsx(MemoizedInputRenderer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebhookForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
@@ -52,15 +52,6 @@ const authService = api.adminApi.enhanceEndpoints({
|
|
|
52
52
|
'Me'
|
|
53
53
|
]
|
|
54
54
|
}),
|
|
55
|
-
getAiToken: builder.query({
|
|
56
|
-
query: ()=>({
|
|
57
|
-
method: 'GET',
|
|
58
|
-
url: '/admin/users/me/ai-token'
|
|
59
|
-
}),
|
|
60
|
-
transformResponse (res) {
|
|
61
|
-
return res.data;
|
|
62
|
-
}
|
|
63
|
-
}),
|
|
64
55
|
/**
|
|
65
56
|
* Permissions
|
|
66
57
|
*/ checkPermissions: builder.query({
|
|
@@ -196,12 +187,11 @@ const authService = api.adminApi.enhanceEndpoints({
|
|
|
196
187
|
}),
|
|
197
188
|
overrideExisting: true
|
|
198
189
|
});
|
|
199
|
-
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery,
|
|
190
|
+
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
200
191
|
|
|
201
192
|
exports.useAccessTokenExchangeMutation = useAccessTokenExchangeMutation;
|
|
202
193
|
exports.useCheckPermissionsQuery = useCheckPermissionsQuery;
|
|
203
194
|
exports.useForgotPasswordMutation = useForgotPasswordMutation;
|
|
204
|
-
exports.useGetAiTokenQuery = useGetAiTokenQuery;
|
|
205
195
|
exports.useGetMeQuery = useGetMeQuery;
|
|
206
196
|
exports.useGetMyPermissionsQuery = useGetMyPermissionsQuery;
|
|
207
197
|
exports.useGetProviderOptionsQuery = useGetProviderOptionsQuery;
|
|
@@ -209,7 +199,6 @@ exports.useGetProvidersQuery = useGetProvidersQuery;
|
|
|
209
199
|
exports.useGetRegistrationInfoQuery = useGetRegistrationInfoQuery;
|
|
210
200
|
exports.useIsSSOLockedQuery = useIsSSOLockedQuery;
|
|
211
201
|
exports.useLazyCheckPermissionsQuery = useLazyCheckPermissionsQuery;
|
|
212
|
-
exports.useLazyGetAiTokenQuery = useLazyGetAiTokenQuery;
|
|
213
202
|
exports.useLoginMutation = useLoginMutation;
|
|
214
203
|
exports.useLogoutMutation = useLogoutMutation;
|
|
215
204
|
exports.useRegisterAdminMutation = useRegisterAdminMutation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|
|
@@ -50,15 +50,6 @@ const authService = adminApi.enhanceEndpoints({
|
|
|
50
50
|
'Me'
|
|
51
51
|
]
|
|
52
52
|
}),
|
|
53
|
-
getAiToken: builder.query({
|
|
54
|
-
query: ()=>({
|
|
55
|
-
method: 'GET',
|
|
56
|
-
url: '/admin/users/me/ai-token'
|
|
57
|
-
}),
|
|
58
|
-
transformResponse (res) {
|
|
59
|
-
return res.data;
|
|
60
|
-
}
|
|
61
|
-
}),
|
|
62
53
|
/**
|
|
63
54
|
* Permissions
|
|
64
55
|
*/ checkPermissions: builder.query({
|
|
@@ -194,7 +185,7 @@ const authService = adminApi.enhanceEndpoints({
|
|
|
194
185
|
}),
|
|
195
186
|
overrideExisting: true
|
|
196
187
|
});
|
|
197
|
-
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery,
|
|
188
|
+
const { useCheckPermissionsQuery, useLazyCheckPermissionsQuery, useGetMeQuery, useLoginMutation, useAccessTokenExchangeMutation, useLogoutMutation, useUpdateMeMutation, useResetPasswordMutation, useRegisterAdminMutation, useRegisterUserMutation, useGetRegistrationInfoQuery, useForgotPasswordMutation, useGetMyPermissionsQuery, useIsSSOLockedQuery, useGetProvidersQuery, useGetProviderOptionsQuery, useUpdateProviderOptionsMutation } = authService;
|
|
198
189
|
|
|
199
|
-
export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation,
|
|
190
|
+
export { useAccessTokenExchangeMutation, useCheckPermissionsQuery, useForgotPasswordMutation, useGetMeQuery, useGetMyPermissionsQuery, useGetProviderOptionsQuery, useGetProvidersQuery, useGetRegistrationInfoQuery, useIsSSOLockedQuery, useLazyCheckPermissionsQuery, useLoginMutation, useLogoutMutation, useRegisterAdminMutation, useRegisterUserMutation, useResetPasswordMutation, useUpdateMeMutation, useUpdateProviderOptionsMutation };
|
|
200
191
|
//# sourceMappingURL=auth.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport {\n type GetOwnPermissions,\n type GetMe,\n type UpdateMe,\n type GetAiToken,\n} from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n getAiToken: builder.query<GetAiToken.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/ai-token',\n }),\n transformResponse(res: GetAiToken.Response) {\n return res.data;\n },\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useGetAiTokenQuery,\n useLazyGetAiTokenQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","getAiToken","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useGetAiTokenQuery","useLazyGetAiTokenQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":";;AAqBA,MAAMA,WAAAA,GAAcC,QACjBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA,MAAA;AAAQ,QAAA,IAAA;AAAM,QAAA;AAAmB;AACjD,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;AACvB;;UAGAC,KAAAA,EAAOD,OAAQE,CAAAA,KAAK,CAA+B;AACjDA,gBAAAA,KAAAA,EAAO,KAAO;wBACZC,MAAQ,EAAA,KAAA;wBACRC,GAAK,EAAA;qBACP,CAAA;AACAC,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAmB,EAAA;AACnC,oBAAA,OAAOA,IAAIC,IAAI;AACjB,iBAAA;gBACAC,YAAc,EAAA,CAACF,MAASA,GAAM,GAAA;AAAC,wBAAA,IAAA;AAAM,wBAAA;4BAAEG,IAAM,EAAA,MAAA;AAAQC,4BAAAA,EAAAA,EAAIJ,IAAII;AAAG;qBAAE,GAAG;AAAC,wBAAA;AAAK;AAC7E,aAAA,CAAA;YACAC,gBAAkBX,EAAAA,OAAAA,CAAQE,KAAK,CAA2C;AACxEA,gBAAAA,KAAAA,EAAO,KAAO;wBACZC,MAAQ,EAAA,KAAA;wBACRC,GAAK,EAAA;qBACP,CAAA;AACAC,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA+B,EAAA;AAC/C,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAK,QAAUZ,EAAAA,OAAAA,CAAQa,QAAQ,CAAsD;gBAC9EX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,KAAA;wBACRC,GAAK,EAAA,iBAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAsB,EAAA;AACtC,oBAAA,OAAOA,IAAIC,IAAI;AACjB,iBAAA;gBACAQ,eAAiB,EAAA;AAAC,oBAAA;AAAK;AACzB,aAAA,CAAA;YACAC,UAAYhB,EAAAA,OAAAA,CAAQE,KAAK,CAAoC;AAC3DA,gBAAAA,KAAAA,EAAO,KAAO;wBACZC,MAAQ,EAAA,KAAA;wBACRC,GAAK,EAAA;qBACP,CAAA;AACAC,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAwB,EAAA;AACxC,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;AACA;;UAGAU,gBAAAA,EAAkBjB,OAAQE,CAAAA,KAAK,CAAwC;gBACrEA,KAAO,EAAA,CAACgB,eAAiB;wBACvBf,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,0BAAA;wBACLG,IAAMW,EAAAA;qBACR;AACF,aAAA,CAAA;AACA;;UAGAC,KAAAA,EAAOnB,OAAQa,CAAAA,QAAQ,CAAgD;gBACrEX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,cAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAmB,EAAA;AACnC,oBAAA,OAAOA,IAAIC,IAAI;AACjB,iBAAA;gBACAQ,eAAiB,EAAA;AAAC,oBAAA;AAAK;AACzB,aAAA,CAAA;YACAK,MAAQpB,EAAAA,OAAAA,CAAQa,QAAQ,CAAqC;gBAC3DX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,eAAA;wBACLG,IAAMO,EAAAA;qBACR;AACF,aAAA,CAAA;YACAO,aAAerB,EAAAA,OAAAA,CAAQa,QAAQ,CAG7B;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,uBAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA2B,EAAA;AAC3C,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAe,mBAAqBtB,EAAAA,OAAAA,CAAQa,QAAQ,CAGnC;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,qBAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAiC,EAAA;AACjD,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAgB,mBAAqBvB,EAAAA,OAAAA,CAAQE,KAAK,CAGhC;gBACAA,KAAO,EAAA,CAACsB,qBAAuB;wBAC7BpB,GAAK,EAAA,0BAAA;wBACLD,MAAQ,EAAA,KAAA;wBACRsB,MAAQ,EAAA;4BACNC,MAAQ,EAAA;AACNF,gCAAAA;AACF;AACF;qBACF,CAAA;AACAnB,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA8B,EAAA;AAC9C,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAoB,aAAe3B,EAAAA,OAAAA,CAAQa,QAAQ,CAG7B;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,uBAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA2B,EAAA;AAC3C,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAqB,YAAc5B,EAAAA,OAAAA,CAAQa,QAAQ,CAAsD;gBAClFX,KAAO,EAAA,CAACY,QAAU;wBAChBX,MAAQ,EAAA,MAAA;wBACRC,GAAK,EAAA,iBAAA;wBACLG,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAsB,EAAA;AACtC,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAsB,cAAgB7B,EAAAA,OAAAA,CAAQa,QAAQ,CAA0D;gBACxFX,KAAO,EAAA,CAACY,QAAU;wBAChBV,GAAK,EAAA,wBAAA;wBACLD,MAAQ,EAAA,MAAA;wBACRI,IAAMO,EAAAA;qBACR;AACF,aAAA,CAAA;YACAgB,WAAa9B,EAAAA,OAAAA,CAAQE,KAAK,CAAqC;AAC7DA,gBAAAA,KAAAA,EAAO,KAAO;wBACZE,GAAK,EAAA,8BAAA;wBACLD,MAAQ,EAAA;qBACV,CAAA;AACAE,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAAyB,EAAA;AACzC,oBAAA,OAAOA,IAAIC,IAAI;AACjB;AACF,aAAA,CAAA;YACAwB,YAAc/B,EAAAA,OAAAA,CAAQE,KAAK,CAA8B;AACvDA,gBAAAA,KAAAA,EAAO,KAAO;wBACZE,GAAK,EAAA,kBAAA;wBACLD,MAAQ,EAAA;qBACV;AACF,aAAA,CAAA;YACA6B,kBAAoBhC,EAAAA,OAAAA,CAAQE,KAAK,CAA0C;AACzEA,gBAAAA,KAAAA,EAAO,KAAO;wBACZE,GAAK,EAAA,0BAAA;wBACLD,MAAQ,EAAA;qBACV,CAAA;AACAE,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA8B,EAAA;AAC9C,oBAAA,OAAOA,IAAIC,IAAI;AACjB,iBAAA;gBACAC,YAAc,EAAA;AAAC,oBAAA;AAAmB;AACpC,aAAA,CAAA;YACAyB,qBAAuBjC,EAAAA,OAAAA,CAAQa,QAAQ,CAGrC;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAChBV,GAAK,EAAA,0BAAA;wBACLD,MAAQ,EAAA,KAAA;wBACRI,IAAMO,EAAAA;qBACR,CAAA;AACAT,gBAAAA,iBAAAA,CAAAA,CAAkBC,GAA8B,EAAA;AAC9C,oBAAA,OAAOA,IAAIC,IAAI;AACjB,iBAAA;gBACAQ,eAAiB,EAAA;AAAC,oBAAA;AAAmB;AACvC,aAAA;SACF,CAAA;IACAmB,gBAAkB,EAAA;AACpB,CAAA,CAAA;AAEF,MAAM,EACJC,wBAAwB,EACxBC,4BAA4B,EAC5BC,aAAa,EACbC,gBAAgB,EAChBC,8BAA8B,EAC9BC,iBAAiB,EACjBC,mBAAmB,EACnBC,wBAAwB,EACxBC,wBAAwB,EACxBC,uBAAuB,EACvBC,2BAA2B,EAC3BC,yBAAyB,EACzBC,wBAAwB,EACxBC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,oBAAoB,EACpBC,0BAA0B,EAC1BC,gCAAgC,EACjC,GAAG3D;;;;"}
|
|
1
|
+
{"version":3,"file":"auth.mjs","sources":["../../../../../admin/src/services/auth.ts"],"sourcesContent":["import { ProvidersOptions } from '../../../shared/contracts/admin';\nimport {\n type AccessTokenExchange,\n type Login,\n type ResetPassword,\n type RegisterAdmin,\n type Register,\n type RegistrationInfo,\n ForgotPassword,\n} from '../../../shared/contracts/authentication';\nimport { Check } from '../../../shared/contracts/permissions';\nimport { GetProviders, IsSSOLocked } from '../../../shared/contracts/providers';\nimport { type GetOwnPermissions, type GetMe, type UpdateMe } from '../../../shared/contracts/users';\n\nimport { adminApi } from './api';\n\nconst authService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['User', 'Me', 'ProvidersOptions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * ME\n */\n getMe: builder.query<GetMe.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me',\n }),\n transformResponse(res: GetMe.Response) {\n return res.data;\n },\n providesTags: (res) => (res ? ['Me', { type: 'User', id: res.id }] : ['Me']),\n }),\n getMyPermissions: builder.query<GetOwnPermissions.Response['data'], void>({\n query: () => ({\n method: 'GET',\n url: '/admin/users/me/permissions',\n }),\n transformResponse(res: GetOwnPermissions.Response) {\n return res.data;\n },\n }),\n updateMe: builder.mutation<UpdateMe.Response['data'], UpdateMe.Request['body']>({\n query: (body) => ({\n method: 'PUT',\n url: '/admin/users/me',\n data: body,\n }),\n transformResponse(res: UpdateMe.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n /**\n * Permissions\n */\n checkPermissions: builder.query<Check.Response, Check.Request['body']>({\n query: (permissions) => ({\n method: 'POST',\n url: '/admin/permissions/check',\n data: permissions,\n }),\n }),\n /**\n * Auth methods\n */\n login: builder.mutation<Login.Response['data'], Login.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/login',\n data: body,\n }),\n transformResponse(res: Login.Response) {\n return res.data;\n },\n invalidatesTags: ['Me'],\n }),\n logout: builder.mutation<void, { deviceId?: string } | void>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/logout',\n data: body,\n }),\n }),\n resetPassword: builder.mutation<\n ResetPassword.Response['data'],\n ResetPassword.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/reset-password',\n data: body,\n }),\n transformResponse(res: ResetPassword.Response) {\n return res.data;\n },\n }),\n accessTokenExchange: builder.mutation<\n AccessTokenExchange.Response['data'],\n AccessTokenExchange.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/access-token',\n data: body,\n }),\n transformResponse(res: AccessTokenExchange.Response) {\n return res.data;\n },\n }),\n getRegistrationInfo: builder.query<\n RegistrationInfo.Response['data'],\n RegistrationInfo.Request['query']['registrationToken']\n >({\n query: (registrationToken) => ({\n url: '/admin/registration-info',\n method: 'GET',\n config: {\n params: {\n registrationToken,\n },\n },\n }),\n transformResponse(res: RegistrationInfo.Response) {\n return res.data;\n },\n }),\n registerAdmin: builder.mutation<\n RegisterAdmin.Response['data'],\n RegisterAdmin.Request['body']\n >({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register-admin',\n data: body,\n }),\n transformResponse(res: RegisterAdmin.Response) {\n return res.data;\n },\n }),\n registerUser: builder.mutation<Register.Response['data'], Register.Request['body']>({\n query: (body) => ({\n method: 'POST',\n url: '/admin/register',\n data: body,\n }),\n transformResponse(res: Register.Response) {\n return res.data;\n },\n }),\n forgotPassword: builder.mutation<ForgotPassword.Response, ForgotPassword.Request['body']>({\n query: (body) => ({\n url: '/admin/forgot-password',\n method: 'POST',\n data: body,\n }),\n }),\n isSSOLocked: builder.query<IsSSOLocked.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/isSSOLocked',\n method: 'GET',\n }),\n transformResponse(res: IsSSOLocked.Response) {\n return res.data;\n },\n }),\n getProviders: builder.query<GetProviders.Response, void>({\n query: () => ({\n url: '/admin/providers',\n method: 'GET',\n }),\n }),\n getProviderOptions: builder.query<ProvidersOptions.Response['data'], void>({\n query: () => ({\n url: '/admin/providers/options',\n method: 'GET',\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n providesTags: ['ProvidersOptions'],\n }),\n updateProviderOptions: builder.mutation<\n ProvidersOptions.Response['data'],\n ProvidersOptions.Request['body']\n >({\n query: (body) => ({\n url: '/admin/providers/options',\n method: 'PUT',\n data: body,\n }),\n transformResponse(res: ProvidersOptions.Response) {\n return res.data;\n },\n invalidatesTags: ['ProvidersOptions'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} = authService;\n\nexport {\n useCheckPermissionsQuery,\n useLazyCheckPermissionsQuery,\n useGetMeQuery,\n useLoginMutation,\n useAccessTokenExchangeMutation,\n useLogoutMutation,\n useUpdateMeMutation,\n useResetPasswordMutation,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n useGetRegistrationInfoQuery,\n useForgotPasswordMutation,\n useGetMyPermissionsQuery,\n useIsSSOLockedQuery,\n useGetProvidersQuery,\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n};\n"],"names":["authService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getMe","query","method","url","transformResponse","res","data","providesTags","type","id","getMyPermissions","updateMe","mutation","body","invalidatesTags","checkPermissions","permissions","login","logout","resetPassword","accessTokenExchange","getRegistrationInfo","registrationToken","config","params","registerAdmin","registerUser","forgotPassword","isSSOLocked","getProviders","getProviderOptions","updateProviderOptions","overrideExisting","useCheckPermissionsQuery","useLazyCheckPermissionsQuery","useGetMeQuery","useLoginMutation","useAccessTokenExchangeMutation","useLogoutMutation","useUpdateMeMutation","useResetPasswordMutation","useRegisterAdminMutation","useRegisterUserMutation","useGetRegistrationInfoQuery","useForgotPasswordMutation","useGetMyPermissionsQuery","useIsSSOLockedQuery","useGetProvidersQuery","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation"],"mappings":"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"}
|