Submit
Path:
~
/
/
usr
/
local
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
php
/
File Content:
extensions.js.map
{"version":3,"file":"javascript/views/php/extensions.js?0e661f15d0cf7805ad80","mappings":"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","sources":["webpack:///./components/List.js","webpack:///./components/common/ButtonWithConfirmation.tsx","webpack:///./components/forms/InstallPhpExtensionForm.js","webpack:///./components/lists/InstallablePhpExtensionsList.js","webpack:///./components/lists/PhpExtensionsList.js","webpack:///./components/pages/PhpExtensionsPage/ManagePhpExtensions.js","webpack:///./components/pages/PhpExtensionsPage/PhpExtensionsPage.js","webpack:///./components/tabs/PhpSettingsTabs.js","webpack:///./queries/InstallPhpExtension.graphql","webpack:///./queries/InstallablePhpExtensions.graphql","webpack:///./queries/ReloadPhpExtensions.graphql","webpack:///./queries/TogglePhpExtension.graphql","webpack:///./queries/UninstallPhpExtension.graphql"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { List as BaseList, Pagination, SearchBar, Toolbar, ToolbarGroup, ToolbarExpander, ListEmptyView } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\n\nconst listLocale = Locale.getSection('components.list');\n\nexport const SORT_ASC = 'ASC';\nexport const SORT_DESC = 'DESC';\nconst ALL_ITEMS_PER_PAGE = 'all';\n\nconst getRowKey = (row, key) => {\n if (typeof key === 'function') {\n return key(row);\n }\n return row[key];\n};\n\nconst storage = {\n set(key, data) {\n localStorage.setItem(key, JSON.stringify(data));\n },\n get(key) {\n const data = localStorage.getItem(key);\n return JSON.parse(data);\n },\n};\n\nconst getSortListName = id => `list-sort_${id}`;\nconst getPageListName = id => `list-page_${id}`;\n\nconst useSortState = (id, {\n sortColumn: defaultColumn,\n sortDirection: defaultDirection,\n}) => {\n const [{\n sortColumn,\n sortDirection,\n }, setState] = useState({\n sortColumn: storage.get(getSortListName(id))?.sortColumn ?? defaultColumn,\n sortDirection: storage.get(getSortListName(id))?.sortDirection ?? defaultDirection,\n });\n\n const setSortState = props => {\n setState(state => ({\n ...state,\n ...props,\n }));\n\n storage.set(getSortListName(id), {\n ...storage.get(getSortListName(id)),\n ...props,\n });\n };\n\n return { sortColumn, sortDirection, setSortState };\n};\n\nconst usePageState = (id, {\n itemsPerPage: defaultItemsPerPage,\n}, useStorage = true) => {\n const state = useStorage ? {\n page: storage.get(getPageListName(id))?.page,\n itemsPerPage: storage.get(getPageListName(id))?.itemsPerPage,\n searchPattern: storage.get(getPageListName(id))?.searchPattern,\n } : {};\n\n const [{\n page,\n itemsPerPage,\n searchPattern,\n }, setState] = useState({\n page: state.page ?? 1,\n itemsPerPage: state.itemsPerPage ?? defaultItemsPerPage,\n searchPattern: state.searchPattern ?? '',\n });\n\n const setPageState = props => {\n setState(state => ({\n ...state,\n ...props,\n }));\n\n if (useStorage) {\n storage.set(getPageListName(id), {\n ...storage.get(getPageListName(id)),\n ...props,\n });\n }\n };\n\n return { page, itemsPerPage, searchPattern, setPageState };\n};\n\nconst List = ({\n id,\n data,\n columns,\n itemsPerPage: defaultItemsPerPage = 25,\n itemsPerPageOptions = [10, 25, 100, ALL_ITEMS_PER_PAGE],\n sortColumn: defaultSortColumn = undefined,\n sortDirection: defaultSortDirection = SORT_ASC,\n searchField = undefined,\n locale = {},\n emptyView = undefined,\n emptyFilteredView = undefined,\n toolbar = undefined,\n selection = [],\n onSelectionChange = undefined,\n searchBarInputProps = undefined,\n rowKey = 'key',\n useStorage = true,\n ...props\n}) => {\n const { sortColumn, sortDirection, setSortState } = useSortState(id, {\n sortColumn: defaultSortColumn ?? columns.find(({ sortable }) => sortable)?.key,\n sortDirection: defaultSortDirection,\n });\n const { page, itemsPerPage, searchPattern, setPageState } = usePageState(id, {\n itemsPerPage: itemsPerPageOptions.includes(defaultItemsPerPage) ? defaultItemsPerPage : itemsPerPageOptions[0],\n }, useStorage);\n\n const listEmptyView = useMemo(() => {\n if (searchPattern) {\n return emptyFilteredView ?? (\n <ListEmptyView\n reason=\"filtered\"\n data-testid=\"list-empty-view-filtered\"\n />\n );\n }\n\n return emptyView ?? (\n <ListEmptyView />\n );\n }, [searchPattern, emptyView, emptyFilteredView]);\n\n const columnsData = useMemo(() => columns.map(({ sortDataField, ...column }) => column), [columns]);\n\n const filteredData = useMemo(() => {\n if (!searchField || !searchPattern) {\n return data;\n }\n\n return data.filter(row => (Array.isArray(searchField) ? searchField : [searchField])\n .some(field => row[field] && String(row[field]).toLowerCase().includes(searchPattern.toLowerCase())));\n }, [data, searchPattern, searchField]);\n\n const sortedData = useMemo(() => {\n if (!sortColumn) {\n return filteredData;\n }\n\n const sortDataField = columns.find(({ key }) => key === sortColumn)?.sortDataField ?? sortColumn;\n const defaultCompare = (a, b) => {\n if (a[sortDataField] < b[sortDataField]) {\n return -1;\n }\n if (a[sortDataField] > b[sortDataField]) {\n return 1;\n }\n return 0;\n };\n const compare = columns.find(({ key }) => key === sortColumn)?.sort ?? defaultCompare;\n return [...filteredData].sort((a, b) => SORT_ASC === sortDirection ? compare(a, b) : compare(b, a));\n }, [filteredData, sortColumn, sortDirection, columns]);\n\n const displayData = useMemo(() => {\n if (itemsPerPage === ALL_ITEMS_PER_PAGE) {\n return sortedData;\n }\n\n const from = itemsPerPage * (page - 1);\n const to = from + itemsPerPage;\n return sortedData.slice(from, to);\n }, [page, sortedData, itemsPerPage]);\n\n const handleSearchPatternChange = useCallback(term => {\n setPageState({ searchPattern: term });\n if (term !== searchPattern) {\n setPageState({ page: 1 });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchPattern]);\n\n const handleItemsPerPageChange = useCallback(itemsPerPage => {\n setPageState({ itemsPerPage });\n const countPages = itemsPerPage === ALL_ITEMS_PER_PAGE ? 1 : Math.ceil(filteredData.length / itemsPerPage);\n if (countPages < page) {\n setPageState({ page: 1 });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData.length, page]);\n\n useEffect(() => {\n if (typeof onSelectionChange === 'function' && selection.length) {\n const newSelection = filteredData\n .map(item => getRowKey(item, rowKey))\n .filter(key => selection.includes(key));\n onSelectionChange(newSelection);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData]);\n\n return (\n <BaseList\n pagination={\n <Pagination\n current={page}\n total={itemsPerPage === ALL_ITEMS_PER_PAGE ? 1 : Math.ceil(filteredData.length / itemsPerPage)}\n onSelect={page => setPageState({ page })}\n itemsPerPage={itemsPerPage}\n itemsPerPageOptions={itemsPerPageOptions}\n onItemsPerPageChange={handleItemsPerPageChange}\n />\n }\n toolbar={(toolbar || searchField) && (\n <Toolbar>\n {toolbar}\n {searchField && (\n <>\n <ToolbarExpander />\n <ToolbarGroup title=\"\">\n <SearchBar\n inputProps={{\n placeholder: listLocale.lmsg('searchPlaceholder'),\n 'data-testid': 'list-searchbar',\n value: searchPattern,\n ...(searchBarInputProps ?? {}),\n }}\n onTyping={handleSearchPatternChange}\n />\n </ToolbarGroup>\n </>\n )}\n </Toolbar>\n )}\n totalRows={filteredData.length}\n sortColumn={sortColumn}\n sortDirection={sortDirection}\n onSortChange={setSortState}\n columns={columnsData}\n data={displayData}\n filtered={!!searchPattern}\n locale={{\n totalRows: ({ totalRows: total }) => listLocale.formatMessage('recordsTotal', { total }),\n ...locale,\n }}\n emptyView={listEmptyView}\n onSelectionChange={onSelectionChange}\n selection={selection}\n rowKey={rowKey}\n {...props}\n />\n );\n};\n\nList.propTypes = {\n id: PropTypes.string.isRequired,\n data: PropTypes.array.isRequired,\n columns: PropTypes.array.isRequired,\n itemsPerPage: PropTypes.number,\n itemsPerPageOptions: PropTypes.array,\n sortColumn: PropTypes.string,\n sortDirection: PropTypes.string,\n searchField: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string.isRequired),\n ]),\n locale: PropTypes.object,\n emptyView: PropTypes.node,\n emptyFilteredView: PropTypes.node,\n toolbar: PropTypes.node,\n onSelectionChange: PropTypes.func,\n selection: PropTypes.array,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n searchBarInputProps: PropTypes.object,\n useStorage: PropTypes.bool,\n};\n\nexport default List;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Popover, Button, ButtonProps, Paragraph, PopoverProps } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { useState, ReactNode, cloneElement } from 'react';\n\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\ntype ButtonWithConfirmationProps = ButtonProps &{\n children?: ReactNode;\n confirmationText: ReactNode;\n onClick: () => void;\n isCritical?: boolean;\n isProcessing?: boolean;\n target?: PopoverProps['target'];\n};\n\nconst ButtonWithConfirmation = ({\n children,\n confirmationText,\n onClick,\n isCritical = false,\n isProcessing = false,\n target,\n ...props\n}: ButtonWithConfirmationProps) => {\n const [visible, setVisible] = useState(false);\n\n const button = (\n <Button\n onClick={() => setVisible(true)}\n state={isProcessing ? 'loading' : undefined}\n {...props}\n >\n {isProcessing ? <ButtonsTranslate content=\"wait\" /> : children}\n </Button>\n );\n\n return (\n <Popover\n target={target ? cloneElement(target as React.ReactElement, { onClick: () => setVisible(true) }) : button}\n placement=\"top\"\n visible={visible}\n onClose={() => setVisible(false)}\n >\n <Paragraph>{confirmationText}</Paragraph>\n <Button\n id=\"buttonYes\"\n intent={isCritical ? 'danger' : 'primary'}\n onClick={() => {\n setVisible(false);\n onClick();\n }}\n >\n <ButtonsTranslate content=\"yes\" />\n </Button>\n {' '}\n <Button id=\"buttonCancel\" onClick={() => setVisible(false)} ghost>\n <ButtonsTranslate content=\"cancel\" />\n </Button>\n </Popover>\n );\n};\n\nexport default ButtonWithConfirmation;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { PropTypes } from 'prop-types';\nimport { Form, FormFieldText, Popover } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { useState, useEffect } from 'react';\nimport { addToast } from '../../helpers/toasts';\n\nconst Translate = Locale.getTranslate('admin.components.forms.php-handler.extension');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst InstallPhpExtensionForm = ({ isOpen = false, onSubmit, onClose, ...params }) => {\n const [values, setValues] = useState({});\n const [state, setState] = useState(null);\n const [errors, setErrors] = useState({});\n\n useEffect(() => {\n if (isOpen) {\n setValues({ extensionName: '' });\n setState(null);\n setErrors({});\n }\n }, [isOpen]);\n\n const handleSubmit = async ({ extensionName }) => {\n setErrors(null);\n setState('submit');\n try {\n await onSubmit(extensionName);\n onClose();\n } catch ({ graphQLErrors }) {\n graphQLErrors.forEach(({ message, debugMessage, extensions }) => {\n if (extensions.category === 'validate') {\n setErrors(errors => ({ ...errors, ...extensions.messages }));\n } else {\n addToast({\n intent: 'danger',\n message: debugMessage || message,\n });\n }\n });\n } finally {\n setState(null);\n }\n };\n\n return (\n <Popover\n title={<Translate content=\"title\" />}\n visible={isOpen}\n onClose={onClose}\n {...params}\n >\n <Form\n values={values}\n state={state}\n errors={errors}\n submitButton={{\n id: 'btn-ok',\n name: 'ok',\n children: <ButtonsTranslate content=\"ok\" />,\n }}\n applyButton={false}\n cancelButton={{\n id: 'btn-cancel',\n name: 'cancel',\n children: <ButtonsTranslate content=\"cancel\" />,\n onClick: onClose,\n }}\n onSubmit={handleSubmit}\n >\n <FormFieldText\n name=\"extensionName\"\n data-test-id=\"custom-package-name\"\n label={<Translate content=\"name\" />}\n description={<Translate content=\"description\" />}\n required\n />\n </Form>\n </Popover>\n );\n};\n\nInstallPhpExtensionForm.propTypes = {\n isOpen: PropTypes.bool,\n onSubmit: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n\nexport default InstallPhpExtensionForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { PropTypes } from 'prop-types';\nimport { ListActions, ListAction, Status, Tooltip, Button, ListEmptyView, ToolbarGroup } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport List from '../List';\nimport { useMemo, useCallback, useState, useRef } from 'react';\nimport ButtonWithConfirmation from '../common/ButtonWithConfirmation';\nimport InstallPhpExtensionForm from '../forms/InstallPhpExtensionForm';\nimport { useMutation } from '@apollo/client';\nimport { addToast } from '../../helpers/toasts';\nimport { compareVersions } from 'compare-versions';\n\nimport INSTALL_PHP_EXTENSION from 'queries/InstallPhpExtension.graphql';\nimport UNINSTALL_PHP_EXTENSION from 'queries/UninstallPhpExtension.graphql';\n\nconst Translate = Locale.getTranslate('admin.components.lists.phpextensions.installable');\nconst locale = Locale.getSection('admin.components.lists.phpextensions.installable');\n\nconst STATUS_NOT_INSTALLED = 'notInstalled';\nconst STATUS_OUTDATED = 'outdated';\nconst STATUS_LATEST = 'latest';\n\nconst getIntent = status => {\n switch (status) {\n case STATUS_OUTDATED:\n return 'warning';\n case STATUS_LATEST:\n return 'success';\n default:\n return 'inactive';\n }\n};\n\nconst isOutdated = (latestVersion, installedVersion) => {\n if (!installedVersion) {\n return false;\n }\n\n try {\n return compareVersions(latestVersion, installedVersion) === 1;\n } catch {\n const normalizeVersion = version => version.split('.').map(part => parseInt(part) || 0).join('.');\n try {\n return compareVersions(normalizeVersion(latestVersion), normalizeVersion(installedVersion)) === 1;\n } catch {\n return false;\n }\n }\n};\n\nconst InstallationButton = ({ onSubmit, ...props }) => {\n const targetRef = useRef();\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Button\n data-action=\"installCustomPhpExtension\"\n tooltip={<Translate content=\"buttonInstallCustomHint\" />}\n onClick={() => setIsOpen(true)}\n ref={targetRef}\n {...props}\n >\n <Translate content=\"buttonInstallCustom\" />\n </Button>\n <InstallPhpExtensionForm\n targetRef={targetRef}\n isOpen={isOpen}\n onSubmit={onSubmit}\n onClose={() => setIsOpen(false)}\n />\n </>\n );\n};\n\nInstallationButton.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n};\n\nconst InstallablePhpExtensionsList = ({ id, installablePhpExtensions, setTask, onReload }) => {\n const searchField = useMemo(() => ['name', 'description'], []);\n const data = useMemo(() => installablePhpExtensions.map(({ package: name, installedVersion, latestVersion, ...params }) => ({\n key: name.toLowerCase(),\n name,\n status: isOutdated(latestVersion, installedVersion) ? STATUS_OUTDATED : (installedVersion ? STATUS_LATEST : STATUS_NOT_INSTALLED),\n installedVersion,\n latestVersion,\n ...params,\n })), [installablePhpExtensions]);\n\n const [installPhpExtension] = useMutation(INSTALL_PHP_EXTENSION, {\n variables: { phpHandlerId: id },\n });\n const [uninstallPhpExtension] = useMutation(UNINSTALL_PHP_EXTENSION, {\n variables: { phpHandlerId: id },\n });\n\n const sortByStatus = useCallback((a, b) => {\n const getOrder = ({ status }) => {\n switch (status) {\n case STATUS_OUTDATED:\n return 0;\n case STATUS_LATEST:\n return 1;\n default:\n return 2;\n }\n };\n\n const statusA = getOrder(a);\n const statusB = getOrder(b);\n if (statusA < statusB) {\n return -1;\n }\n if (statusA > statusB) {\n return 1;\n }\n const nameA = a.name.toLowerCase();\n const nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n }, []);\n\n const install = async extensionName => {\n const { data: { installPhpExtension: task } } = await installPhpExtension({ variables: { extensionName } });\n setTask(task);\n };\n\n const handleInstall = async extensionName => {\n try {\n await install(extensionName);\n } catch ({ graphQLErrors }) {\n graphQLErrors.forEach(({ message, debugMessage }) => {\n addToast({\n intent: 'danger',\n message: debugMessage || message,\n });\n });\n }\n };\n\n const handleUninstall = async extensionName => {\n try {\n const { data: { uninstallPhpExtension: task } } = await uninstallPhpExtension({ variables: { extensionName } });\n setTask(task);\n } catch ({ graphQLErrors }) {\n graphQLErrors.forEach(({ message, debugMessage }) => {\n addToast({\n intent: 'danger',\n message: debugMessage || message,\n });\n });\n }\n };\n\n return (\n <List\n id=\"installable-php-extensions-list\"\n columns={[\n {\n key: 'status',\n title: <Translate content=\"status\" />,\n sortDataField: 'status',\n sortable: true,\n sort: sortByStatus,\n render: ({ status, name, ...params }) => (\n <Tooltip title={<Translate content={status} params={params} />}>\n <Status intent={getIntent(status)} />\n </Tooltip>\n ),\n },\n {\n key: 'name',\n title: <Translate content=\"name\" />,\n sortDataField: 'key',\n type: 'title',\n sortable: true,\n render: ({ name, latestVersion, installedVersion }) => `${name} (${installedVersion ? installedVersion : latestVersion})`,\n },\n {\n key: 'description',\n title: <Translate content=\"description\" />,\n sortable: true,\n render: ({ description }) => `${description.charAt(0).toUpperCase()}${description.slice(1)}`,\n },\n {\n key: 'actions',\n type: 'actions',\n render: ({ status, latestVersion, name }) => (\n <ListActions>\n {status === STATUS_NOT_INSTALLED && (\n <ListAction\n icon=\"plus\"\n primary\n data-action=\"installPhpExtension\"\n onClick={() => handleInstall(name)}\n >\n <Translate content=\"actionInstall\" />\n </ListAction>\n )}\n {status === STATUS_OUTDATED && (\n <ListAction\n icon=\"arrow-up\"\n primary\n data-action=\"upgradePhpExtension\"\n onClick={() => handleInstall(name)}\n >\n <Translate content=\"actionUpgrade\" params={{ version: latestVersion }} />\n </ListAction>\n )}\n <ListAction icon=\"info-circle\" primary component=\"a\" href={`https://pecl.php.net/package/${name}`} target=\"_blank\">\n <Translate content=\"actionDocs\" />\n </ListAction>\n <ListAction\n icon=\"recycle\"\n hidden={status === STATUS_NOT_INSTALLED}\n primary\n data-action=\"uninstallPhpExtension\"\n >\n {({ wrap }) => (\n <ButtonWithConfirmation\n target={wrap(<Translate content=\"actionUninstall\" />)}\n confirmationText={<Translate content=\"uninstallConfirmation\" params={{ name }} />}\n isCritical\n onClick={() => handleUninstall(name)}\n />\n )}\n </ListAction>\n </ListActions>\n ),\n },\n ]}\n data={data}\n searchField={searchField}\n sortColumn=\"status\"\n toolbar={(\n <>\n <ToolbarGroup title={locale.lmsg('groupInstall')}>\n <InstallationButton onSubmit={install} intent=\"primary\" />\n </ToolbarGroup>\n <ToolbarGroup title={locale.lmsg('groupReload')}>\n <Button\n data-action=\"reloadPhpExtensions\"\n tooltip={<Translate content=\"buttonReloadHint\" />}\n onClick={onReload}\n >\n <Translate content=\"buttonReload\" />\n </Button>\n </ToolbarGroup>\n </>\n )}\n searchBarInputProps={{\n 'data-testid': 'search-installable-extension',\n }}\n emptyView={\n <ListEmptyView\n actions={(<InstallationButton onSubmit={install} />)}\n />\n }\n emptyFilteredView={\n <ListEmptyView\n reason=\"filtered\"\n actions={(<InstallationButton onSubmit={install} />)}\n title={<Translate content=\"emptyViewFilteredTitle\" />}\n description={<Translate content=\"emptyViewFilteredDescription\" />}\n />\n }\n />\n );\n};\n\nInstallablePhpExtensionsList.propTypes = {\n id: PropTypes.string.isRequired,\n installablePhpExtensions: PropTypes.array.isRequired,\n setTask: PropTypes.func.isRequired,\n onReload: PropTypes.func.isRequired,\n};\n\nexport default InstallablePhpExtensionsList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Locale } from 'jsw';\nimport { Switch, Grid, GridCol } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { addToast } from '../../helpers/toasts';\nimport { useMutation } from '@apollo/client';\nimport { useState } from 'react';\n\nimport TOGGLE_PHP_EXTENSION from 'queries/TogglePhpExtension.graphql';\n\nconst Translate = Locale.getTranslate('admin.components.lists.phpextensions');\n\nconst ACTION_ENABLE = 'enable';\nconst ACTION_DISABLE = 'disable';\n\nconst PhpExtensionsList = ({ id, phpExtensions }) => {\n const [togglePhpExtension] = useMutation(TOGGLE_PHP_EXTENSION, {\n variables: { phpHandlerId: id },\n });\n const [togglingExtensions, setTogglingExtensions] = useState([]);\n\n const handleToggle = async (extensionName, action) => {\n try {\n setTogglingExtensions(extensions => [...extensions, extensionName]);\n await togglePhpExtension({ variables: { extensionName, action } });\n } catch ({ graphQLErrors }) {\n graphQLErrors.forEach(({ message, debugMessage }) => {\n addToast({\n intent: 'danger',\n message: debugMessage || message,\n });\n });\n } finally {\n setTogglingExtensions(extensions => extensions.filter(extension => extension !== extensionName));\n }\n };\n\n return (\n <Grid gap=\"md\" minColumnWidth={200} maxColumnsNumber={6}>\n {phpExtensions.map(({ name, enabled }) => (\n <GridCol key={name}>\n <Switch\n checked={enabled}\n loading={togglingExtensions.includes(name)}\n tooltip={<Translate content={enabled ? 'disable' : 'enable'} />}\n onChange={() => handleToggle(name, enabled ? ACTION_DISABLE : ACTION_ENABLE)}\n />\n {' '}\n {name}\n </GridCol>\n ))}\n </Grid>\n );\n};\n\nPhpExtensionsList.propTypes = {\n id: PropTypes.string.isRequired,\n phpExtensions: PropTypes.array.isRequired,\n};\n\nexport default PhpExtensionsList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { PropTypes } from 'prop-types';\nimport { ContentLoader, Popover, StatusMessage } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { useQuery, useMutation } from '@apollo/client';\nimport { useState, useEffect } from 'react';\nimport DrawerWithProgress from 'components/common/DrawerWithProgress';\nimport InstallablePhpExtensionsList from '../../lists/InstallablePhpExtensionsList';\n\nconst Translate = Locale.getTranslate('components.pages.php-handler.extensions.manage');\n\nimport INSTALLABLE_PHP_EXTENSIONS_QUERY from 'queries/InstallablePhpExtensions.graphql';\nimport RELOAD_PHP_EXTENSIONS from 'queries/ReloadPhpExtensions.graphql';\n\nconst ManagePhpExtensions = ({ id, affectedHandlers, updateAffectedHandlersCache, isOpen = false, onClose }) => {\n const { data, client } = useQuery(INSTALLABLE_PHP_EXTENSIONS_QUERY, {\n variables: { id },\n skip: !isOpen,\n onCompleted: data => updateAffectedHandlersCache(data, client),\n });\n\n const [reloadPhpExtensions, { loading }] = useMutation(RELOAD_PHP_EXTENSIONS, {\n variables: { id },\n onCompleted: ({ resetPhpExtensionCache: { query } }) => updateAffectedHandlersCache(query, client),\n });\n\n const [task, setTask] = useState(null);\n\n useEffect(() => {\n if (isOpen) {\n setTask(null);\n }\n }, [isOpen]);\n\n return (\n <DrawerWithProgress\n dataType=\"manage-php-extensions\"\n className=\"manage-php-extensions\"\n title={<Translate content=\"title\" />}\n isOpen={isOpen}\n onClose={onClose}\n task={task}\n onTaskComplete={reloadPhpExtensions}\n size=\"md\"\n >\n <>\n <StatusMessage intent=\"info\">\n <Translate content=\"risks\" />\n </StatusMessage>\n <p>\n <Translate\n content=\"description\"\n params={{ handlers: <b>{affectedHandlers.map(({ name }) => name).join(', ')}</b> }}\n />\n </p>\n {data && !loading ? (\n <>\n <p>\n <Popover target={<a><Translate content=\"notFound\" /></a>}>\n <Translate content=\"limitations\" />\n </Popover>\n </p>\n <InstallablePhpExtensionsList\n {...data.phpHandler}\n setTask={setTask}\n onReload={reloadPhpExtensions}\n />\n </>\n ) : (\n <ContentLoader />\n )}\n </>\n </DrawerWithProgress>\n );\n};\n\nManagePhpExtensions.propTypes = {\n id: PropTypes.string.isRequired,\n affectedHandlers: PropTypes.array.isRequired,\n updateAffectedHandlersCache: PropTypes.func.isRequired,\n isOpen: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n};\n\nexport default ManagePhpExtensions;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Locale } from 'jsw';\nimport pageData from 'helpers/pageData';\nimport { withPageLayout } from 'components/layouts/PageLayout';\nimport { withPhpSettingsTabs } from '../../tabs/PhpSettingsTabs';\nimport { Button, Toolbar } from '@plesk/ui-library';\nimport ManagePhpExtensions from './ManagePhpExtensions';\nimport PhpExtensionsList from '../../lists/PhpExtensionsList';\nimport { compareVersions } from 'compare-versions';\nimport { useQuery } from '@apollo/client';\nimport { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport PHP_EXTENSIONS_PAGE_QUERY from 'queries/PhpExtensionsPage.graphql';\n\nconst Translate = Locale.getTranslate('components.pages.php-handler.extensions');\n\nconst PhpExtensionsPage = ({ params: { id } }) => {\n const updateAffectedHandlersCache = ({ phpHandler: { phpExtensions, installablePhpExtensions } }, { cache }) => affectedHandlers\n .filter(phpHandler => phpHandler.id !== id)\n .forEach(phpHandler => {\n const fields = {};\n if (phpExtensions) {\n fields.phpExtensions = () => phpExtensions;\n }\n if (installablePhpExtensions) {\n fields.installablePhpExtensions = () => installablePhpExtensions;\n }\n cache.modify({ id: cache.identify(phpHandler), fields });\n });\n\n const {\n data: {\n phpHandler: { version, phpExtensions, affectedHandlers },\n os: { isUnix },\n config: { php: { pecl: { enabled: isPeclManagementEnabled, minVersion: minSupportedVersion } } },\n },\n client,\n } = useQuery(PHP_EXTENSIONS_PAGE_QUERY, {\n variables: { id },\n onCompleted: data => updateAffectedHandlersCache(data, client),\n });\n\n const [isListOpen, setIsListOpen] = useState(false);\n const canManagePackages = useMemo(() => {\n if (!isUnix || !isPeclManagementEnabled) {\n return false;\n }\n try {\n return compareVersions(version, minSupportedVersion) >= 0;\n } catch {\n return true;\n }\n }, [version, isUnix, isPeclManagementEnabled, minSupportedVersion]);\n\n return (\n <>\n <p>\n <Translate\n content={affectedHandlers.length > 1 ? 'descriptionShared' : 'description'}\n params={{ handlers: <b>{affectedHandlers.map(({ name }) => name).join(', ')}</b> }}\n />\n </p>\n {canManagePackages && (\n <>\n <Toolbar>\n <Button\n id=\"managePhpExtensions\"\n onClick={() => setIsListOpen(true)}\n >\n <Translate content=\"buttonManage\" />\n </Button>\n </Toolbar>\n <ManagePhpExtensions\n id={id}\n affectedHandlers={affectedHandlers}\n updateAffectedHandlersCache={updateAffectedHandlersCache}\n isOpen={isListOpen}\n onClose={() => setIsListOpen(false)}\n />\n </>\n )}\n <PhpExtensionsList\n id={id}\n phpExtensions={phpExtensions}\n />\n </>\n );\n};\n\nPhpExtensionsPage.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default withPageLayout(withPhpSettingsTabs(PhpExtensionsPage), ({ params: { id } }) => {\n const { showFrames, pageHeader, pageSidebar } = pageData();\n const { data: { phpHandler: { name } } } = useQuery(PHP_EXTENSIONS_PAGE_QUERY, { variables: { id } });\n\n const breadcrumbs = [\n pageSidebar.isPowerUserPanel ? null : {\n title: Locale.getSection('admin.controllers.home.admin').lmsg('title'),\n href: '/admin/home',\n },\n {\n title: Locale.getSection('admin.controllers.server.tools').lmsg('title'),\n href: '/admin/server/tools',\n },\n {\n title: Locale.getSection('admin.controllers.php-handler.list').lmsg('title'),\n href: '/admin/php-handler/list/',\n },\n {\n title: Locale.getSection('components.pages.php-handler').lmsg('title', { name }),\n href: `/cp/php/extensions/id/${id}`,\n },\n ].filter(Boolean);\n\n const pageTitle = breadcrumbs[breadcrumbs.length - 1].title;\n\n return {\n showFrames,\n pageHeader: {\n ...pageHeader,\n helpMenu: {\n ...pageHeader.helpMenu,\n helpContext: 'php-handler.list',\n },\n },\n pageSidebar,\n pageContentHeader: {\n pageTitle,\n breadcrumbs,\n },\n pageTitle,\n };\n});\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMemo } from 'react';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { Tabs, Tab } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport PropTypes from 'prop-types';\n\nconst PhpSettingsTabs = ({ params: { id } }) => {\n const { pathname } = useLocation();\n const tabs = useMemo(() => [\n {\n title: Locale.getSection('components.pages.php-handler.extensions').lmsg('title'),\n url: `/cp/php/extensions/id/${id}`,\n id: 'tabExtensions',\n },\n {\n title: Locale.getSection('components.pages.php-handler.php-ini').lmsg('title'),\n url: `/admin/php-handler/php-ini/id/${id}`,\n id: 'tabIniFile',\n },\n ], [id]);\n\n const active = useMemo(() => tabs.findIndex(({ url }) => matchPath(url, pathname)) + 1, [tabs, pathname]);\n\n return (\n <Tabs active={active}>\n {tabs.map(({ url, ...props }) => (\n <Tab\n key={url}\n component={Link}\n to={url}\n {...props}\n />\n ))}\n </Tabs>\n );\n};\n\nPhpSettingsTabs.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport const withPhpSettingsTabs = Component => {\n const Wrapper = props => (\n <>\n <PhpSettingsTabs {...props} />\n <Component {...props} />\n </>\n );\n Wrapper.displayName = `withPhpSettingsTabs(${Component.displayName || Component.name || 'Component'})`;\n Wrapper.WrappedComponent = Component;\n\n return Wrapper;\n};\n\nexport default PhpSettingsTabs;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"InstallPhpExtension\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installPhpExtension\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTitle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressValue\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"output\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"steps\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"output\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":403}};\n doc.loc.source = {\"body\":\"mutation InstallPhpExtension($phpHandlerId: ID!, $extensionName: String!) {\\n installPhpExtension(input: { phpHandlerId: $phpHandlerId, extensionName: $extensionName }) {\\n id\\n status\\n progressTitle\\n progressValue\\n errors\\n output\\n steps {\\n title\\n progress\\n status\\n errors\\n output\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"InstallPhpExtension\"] = oneQuery(doc, \"InstallPhpExtension\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"InstallablePhpExtensions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandler\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installablePhpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"package\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installedVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"latestVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":232}};\n doc.loc.source = {\"body\":\"query InstallablePhpExtensions($id: ID!) {\\n phpHandler(id: $id) {\\n id\\n installablePhpExtensions {\\n package\\n description\\n installedVersion\\n latestVersion\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"InstallablePhpExtensions\"] = oneQuery(doc, \"InstallablePhpExtensions\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ReloadPhpExtensions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resetPhpExtensionCache\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"query\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandler\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installablePhpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"package\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installedVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"latestVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":466}};\n doc.loc.source = {\"body\":\"mutation ReloadPhpExtensions($id: ID!) {\\n resetPhpExtensionCache {\\n query {\\n phpHandler(id: $id) {\\n id\\n phpExtensions {\\n name\\n enabled\\n }\\n installablePhpExtensions {\\n package\\n description\\n installedVersion\\n latestVersion\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ReloadPhpExtensions\"] = oneQuery(doc, \"ReloadPhpExtensions\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"TogglePhpExtension\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TogglePhpExtensionEnum\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"togglePhpExtension\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"query\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandler\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":436}};\n doc.loc.source = {\"body\":\"mutation TogglePhpExtension($phpHandlerId: ID!, $extensionName: String!, $action: TogglePhpExtensionEnum!) {\\n togglePhpExtension(input: { phpHandlerId: $phpHandlerId, extensionName: $extensionName, action: $action }) {\\n query {\\n phpHandler(id: $phpHandlerId) {\\n id\\n phpExtensions {\\n name\\n enabled\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"TogglePhpExtension\"] = oneQuery(doc, \"TogglePhpExtension\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UninstallPhpExtension\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uninstallPhpExtension\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandlerId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extensionName\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTitle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressValue\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"output\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"steps\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"output\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":407}};\n doc.loc.source = {\"body\":\"mutation UninstallPhpExtension($phpHandlerId: ID!, $extensionName: String!) {\\n uninstallPhpExtension(input: { phpHandlerId: $phpHandlerId, extensionName: $extensionName }) {\\n id\\n status\\n progressTitle\\n progressValue\\n errors\\n output\\n steps {\\n title\\n progress\\n status\\n errors\\n output\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UninstallPhpExtension\"] = oneQuery(doc, \"UninstallPhpExtension\");\n \n"],"names":["listLocale","Locale","getSection","SORT_ASC","SORT_DESC","ALL_ITEMS_PER_PAGE","storage","set","key","data","localStorage","setItem","JSON","stringify","get","getItem","parse","getSortListName","id","getPageListName","List","columns","itemsPerPage","defaultItemsPerPage","itemsPerPageOptions","sortColumn","defaultSortColumn","sortDirection","defaultSortDirection","searchField","locale","emptyView","emptyFilteredView","toolbar","selection","onSelectionChange","searchBarInputProps","rowKey","useStorage","props","setSortState","useSortState","defaultColumn","defaultDirection","setState","useState","state","find","sortable","page","searchPattern","setPageState","usePageState","includes","listEmptyView","useMemo","_jsx","ListEmptyView","reason","columnsData","map","sortDataField","column","filteredData","filter","row","Array","isArray","some","field","String","toLowerCase","sortedData","compare","sort","defaultCompare","a","b","displayData","from","to","slice","handleSearchPatternChange","useCallback","term","handleItemsPerPageChange","Math","ceil","length","useEffect","newSelection","item","getRowKey","BaseList","pagination","Pagination","current","total","onSelect","onItemsPerPageChange","_jsxs","Toolbar","children","_Fragment","ToolbarExpander","ToolbarGroup","title","SearchBar","inputProps","placeholder","lmsg","value","onTyping","totalRows","onSortChange","filtered","formatMessage","propTypes","PropTypes","isRequired","ButtonsTranslate","getTranslate","ButtonWithConfirmation","confirmationText","onClick","isCritical","isProcessing","target","visible","setVisible","button","Button","undefined","content","Popover","cloneElement","placement","onClose","Paragraph","intent","ghost","Translate","InstallPhpExtensionForm","isOpen","onSubmit","params","values","setValues","errors","setErrors","extensionName","Form","submitButton","name","applyButton","cancelButton","async","graphQLErrors","forEach","message","debugMessage","extensions","category","messages","addToast","FormFieldText","label","description","required","bool","func","STATUS_NOT_INSTALLED","STATUS_OUTDATED","STATUS_LATEST","getIntent","status","isOutdated","latestVersion","installedVersion","compareVersions","normalizeVersion","version","split","part","parseInt","join","InstallationButton","targetRef","useRef","setIsOpen","tooltip","ref","InstallablePhpExtensionsList","installablePhpExtensions","setTask","onReload","package","installPhpExtension","useMutation","INSTALL_PHP_EXTENSION","variables","phpHandlerId","uninstallPhpExtension","UNINSTALL_PHP_EXTENSION","sortByStatus","getOrder","statusA","statusB","nameA","nameB","install","task","handleInstall","render","Tooltip","Status","type","charAt","toUpperCase","ListActions","ListAction","icon","primary","component","href","hidden","wrap","handleUninstall","actions","string","array","PhpExtensionsList","phpExtensions","togglePhpExtension","TOGGLE_PHP_EXTENSION","togglingExtensions","setTogglingExtensions","Grid","gap","minColumnWidth","maxColumnsNumber","enabled","GridCol","Switch","checked","loading","onChange","action","extension","handleToggle","ManagePhpExtensions","affectedHandlers","updateAffectedHandlersCache","client","useQuery","INSTALLABLE_PHP_EXTENSIONS_QUERY","skip","onCompleted","reloadPhpExtensions","RELOAD_PHP_EXTENSIONS","resetPhpExtensionCache","query","DrawerWithProgress","dataType","className","onTaskComplete","size","StatusMessage","handlers","phpHandler","ContentLoader","PhpExtensionsPage","cache","fields","modify","identify","os","isUnix","config","php","pecl","isPeclManagementEnabled","minVersion","minSupportedVersion","PHP_EXTENSIONS_PAGE_QUERY","isListOpen","setIsListOpen","canManagePackages","withPageLayout","withPhpSettingsTabs","showFrames","pageHeader","pageSidebar","pageData","breadcrumbs","isPowerUserPanel","Boolean","pageTitle","helpMenu","helpContext","pageContentHeader","PhpSettingsTabs","pathname","useLocation","tabs","url","active","findIndex","matchPath","Tabs","Tab","Link","Component","Wrapper","displayName","WrappedComponent","doc","loc","source","collectFragmentReferences","node","refs","kind","add","selectionSet","selections","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","Set","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","oneQuery"],"sourceRoot":""}
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
extensions.js
33630 bytes
0644
extensions.js.map
107994 bytes
0644
N4ST4R_ID | Naxtarrr