nextcloud/dist/federation-settings-admin.mjs.map

1 line
18 KiB
Text
Raw Normal View History

{"version":3,"file":"federation-settings-admin.mjs","sources":["../build/frontend/apps/federation/src/services/api.ts","../build/frontend/apps/federation/src/services/logger.ts","../build/frontend/apps/federation/src/components/AddTrustedServerForm.vue","../build/frontend/apps/federation/src/components/TrustedServer.vue","../build/frontend/apps/federation/src/views/AdminSettings.vue","../build/frontend/apps/federation/src/settings-admin.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport const TrustedServerStatus = Object.freeze({\n\t/** after a user list was exchanged at least once successfully */\n\tSTATUS_OK: 1,\n\t/** waiting for shared secret or initial user list exchange */\n\tSTATUS_PENDING: 2,\n\t/** something went wrong, misconfigured server, software bug,... user interaction needed */\n\tSTATUS_FAILURE: 3,\n\t/** remote server revoked access */\n\tSTATUS_ACCESS_REVOKED: 4,\n})\n\nexport interface ITrustedServer {\n\tid: number\n\turl: string\n\tstatus: typeof TrustedServerStatus[keyof typeof TrustedServerStatus]\n}\n\nexport class ApiError extends Error {}\n\n/**\n * Add a new trusted server\n *\n * @param url - The new URL to add\n */\nexport async function addServer(url: string): Promise<ITrustedServer> {\n\ttry {\n\t\tconst { data } = await axios.post<OCSResponse<Omit<ITrustedServer, 'status'>>>(\n\t\t\tgenerateOcsUrl('apps/federation/trusted-servers'),\n\t\t\t{ url },\n\t\t)\n\n\t\tconst serverData = data.ocs.data\n\t\treturn {\n\t\t\tid: serverData.id,\n\t\t\turl: serverData.url,\n\t\t\tstatus: TrustedServerStatus.STATUS_PENDING,\n\t\t}\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * @param id - The id of the trusted server to remove\n */\nexport async function deleteServer(id: number): Promise<void> {\n\ttry {\n\t\tawait axios.delete(generateOcsUrl(`apps/federation/trusted-servers/${id}`))\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * Error handling for API calls\n *\n * @param error - The catch error\n */\nfunction mapError(error: unknown): ApiError | unknown {\n\tif (isAxiosError(error) && error.response?.data?.ocs) {\n\t\treturn new ApiError((error.response.data as OCSResponse).ocs.meta.message, { cause: error })\n\t}\n\treturn error\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder().setApp('federation').build()\n","<!--\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { ITrustedServer } from '../services/api.ts'\n\nimport { mdiPlus } from '@mdi/js'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { nextTick, ref, useTemplateRef } from 'vue'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\nimport { addServer, ApiError } from '../services/api.ts'\nimport { logger } from '../services/logger.ts'\n\nconst emit = defineEmits<{\n\tadd: [server: ITrustedServer]\n}>()\n\nconst formElement = useTemplateRef<HTMLFormElement>('form')\nconst newServerUrl = ref('')\n\n/**\n * Handle add trusted server form submission\n */\nasync function onAdd() {\n\ttry {\n\t\tconst server = await addServer(newServerUrl.value)\n\t\tnewServerUrl.value = ''\n\t\temit('add', server)\n\n\t\tnextTick(() => formElement.value?.reset()) // Reset native form validation state\n\t\tshowSuccess(t('federation', 'Added to the list of trusted servers'))\n\t} catch (error) {\n\t\tlogger.error('Failed to add trusted serve