diff --git a/.github/workflows/deploy-sanity-studio.yml b/.github/workflows/deploy-sanity-studio.yml index 0aa5ce1..839f306 100644 --- a/.github/workflows/deploy-sanity-studio.yml +++ b/.github/workflows/deploy-sanity-studio.yml @@ -3,6 +3,14 @@ name: Deploy Sanity Studio on: workflow_dispatch: inputs: + ref: + description: 'Choose branch: develop for draft preview, main for production release (same dataset)' + required: true + default: 'main' + type: choice + options: + - main + - develop environment: description: 'Deployment environment' required: true @@ -27,12 +35,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 with: - ref: main + ref: ${{ inputs.ref }} - - name: Use Node.js 20 + - name: Use Node.js 22 uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: 'npm' cache-dependency-path: trustvc-cms/package-lock.json @@ -41,8 +49,14 @@ jobs: # Non-interactive deploy: token from Manage → Project → API (SANITY_AUTH_TOKEN env is required in CI) - name: Deploy Sanity Studio - run: SANITY_AUTH_TOKEN=${{ secrets.SANITY_AUTH_TOKEN }} npm run deploy + run: | + if [ -z "${SANITY_STUDIO_HOSTNAME}" ]; then + echo "SANITY_STUDIO_HOSTNAME secret is not set" >&2 + exit 1 + fi + npm run deploy -- --yes --url "${SANITY_STUDIO_HOSTNAME}" env: SANITY_AUTH_TOKEN: ${{ secrets.SANITY_AUTH_TOKEN }} SANITY_STUDIO_PROJECT_ID: ${{ secrets.SANITY_STUDIO_PROJECT_ID }} SANITY_STUDIO_DATASET: ${{ secrets.SANITY_STUDIO_DATASET }} + SANITY_STUDIO_HOSTNAME: ${{ secrets.SANITY_STUDIO_HOSTNAME }} diff --git a/.github/workflows/deploy-trustvc-website.yml b/.github/workflows/deploy-trustvc-website.yml index c535293..656eea8 100644 --- a/.github/workflows/deploy-trustvc-website.yml +++ b/.github/workflows/deploy-trustvc-website.yml @@ -11,14 +11,6 @@ on: options: - main - develop - environment: - description: 'Deployment environment' - required: true - default: 'development' - type: choice - options: - - development - - production permissions: contents: read diff --git a/src/components/AssetManagementPanel/AssetManagementApplication/AssetManagementApplication.test.tsx b/src/components/AssetManagementPanel/AssetManagementApplication/AssetManagementApplication.test.tsx index db58d44..b5fb730 100644 --- a/src/components/AssetManagementPanel/AssetManagementApplication/AssetManagementApplication.test.tsx +++ b/src/components/AssetManagementPanel/AssetManagementApplication/AssetManagementApplication.test.tsx @@ -17,6 +17,7 @@ const mockRejectTransferOwner = vi.fn() const mockRejectTransferHolder = vi.fn() const mockRejectTransferOwnerHolder = vi.fn() const mockSetShowEndorsementChain = vi.fn() +const mockResetProviders = vi.fn() // Mock useTokenInformationContext const mockUseTokenInformationContext = vi.fn() @@ -138,6 +139,7 @@ describe('AssetManagementApplication', () => { rejectTransferHolderState: 'INITIALIZED', rejectTransferOwnerHolder: mockRejectTransferOwnerHolder, rejectTransferOwnerHolderState: 'INITIALIZED', + resetProviders: mockResetProviders, }) }) @@ -349,6 +351,7 @@ describe('AssetManagementApplication', () => { rejectTransferHolderState: 'INITIALIZED', rejectTransferOwnerHolder: mockRejectTransferOwnerHolder, rejectTransferOwnerHolderState: 'INITIALIZED', + resetProviders: mockResetProviders, }) render() diff --git a/src/components/AssetManagementPanel/AssetManagementApplication/index.tsx b/src/components/AssetManagementPanel/AssetManagementApplication/index.tsx index b069a75..190b15f 100644 --- a/src/components/AssetManagementPanel/AssetManagementApplication/index.tsx +++ b/src/components/AssetManagementPanel/AssetManagementApplication/index.tsx @@ -92,6 +92,7 @@ export const AssetManagementApplication: FunctionComponent< // reject transfer owner holder rejectTransferOwnerHolder, rejectTransferOwnerHolderState, + resetProviders, } = useTokenInformationContext() const [assetManagementAction, setAssetManagementAction] = useState(AssetManagementActions.None) @@ -118,7 +119,9 @@ export const AssetManagementApplication: FunctionComponent< : v5RoleHash.RestorerRole, }) - const onDestroyToken = (remarks: string = '0x') => { + const onDestroyToken = ( + { remarks }: { remarks: string } = { remarks: '0x' } + ) => { destroyToken({ tokenId, remarks }) } @@ -130,9 +133,10 @@ export const AssetManagementApplication: FunctionComponent< const onSetFormAction = useCallback( (assetManagementActions: AssetManagementActions) => { + resetProviders() setAssetManagementAction(assetManagementActions) }, - [setAssetManagementAction] + [setAssetManagementAction, resetProviders] ) // Initialize the token information context with tokenId and tokenRegistryAddress diff --git a/src/components/AssetManagementPanel/AssetManagementForm/AssetManagementForm.tsx b/src/components/AssetManagementPanel/AssetManagementForm/AssetManagementForm.tsx index 0e7fa23..c5eb0b7 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/AssetManagementForm.tsx +++ b/src/components/AssetManagementPanel/AssetManagementForm/AssetManagementForm.tsx @@ -56,7 +56,7 @@ interface TransferActions { interface ReturnToIssuerActions { onReturnToIssuer: ({ remarks }: { remarks: string }) => void returnToIssuerState: string - onDestroyToken: (remarks: string) => void + onDestroyToken: ({ remarks }: { remarks: string }) => void destroyTokenState: string onRestoreToken: ({ remarks }: { remarks: string }) => void restoreTokenState: string @@ -192,7 +192,10 @@ export const AssetManagementForm: FunctionComponent< rejectTransferOwnerHolderState === FormState.PENDING_CONFIRMATION || rejectTransferOwnerState === FormState.PENDING_CONFIRMATION || rejectTransferHolderState === FormState.PENDING_CONFIRMATION || - transferOwnerHoldersState === FormState.PENDING_CONFIRMATION + transferOwnerHoldersState === FormState.PENDING_CONFIRMATION || + destroyTokenState === FormState.PENDING_CONFIRMATION || + restoreTokenState === FormState.PENDING_CONFIRMATION || + returnToIssuerState === FormState.PENDING_CONFIRMATION ) return onSetFormAction(AssetManagementActions.None) @@ -204,6 +207,9 @@ export const AssetManagementForm: FunctionComponent< rejectTransferOwnerHolderState, rejectTransferOwnerState, rejectTransferHolderState, + destroyTokenState, + restoreTokenState, + returnToIssuerState, onSetFormAction, ]) diff --git a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.test.tsx b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.test.tsx index d653c09..040815f 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.test.tsx +++ b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.test.tsx @@ -604,7 +604,9 @@ describe('ActionForm - RejectTransferOwnerHolder', () => { expect(mockShowOverlay).toHaveBeenCalled() }) const overlayNode = mockShowOverlay.mock.calls[0][0] as any - expect(overlayNode.props.title).toBe('Holdership Rejection Success') + expect(overlayNode.props.title).toBe( + 'Holdership/Ownership Rejection Success' + ) expect(mockSetFormActionNone).toHaveBeenCalled() }) @@ -624,7 +626,9 @@ describe('ActionForm - RejectTransferOwnerHolder', () => { expect(mockShowOverlay).toHaveBeenCalled() }) const overlayNode = mockShowOverlay.mock.calls[0][0] as any - expect(overlayNode.props.title).toBe('Holdership Rejection Success') + expect(overlayNode.props.title).toBe( + 'Holdership/Ownership Rejection Success' + ) expect(mockSetFormActionNone).toHaveBeenCalled() }) }) @@ -707,7 +711,7 @@ describe('ActionForm - RejectTransferHolder', () => { expect(mockShowOverlay).toHaveBeenCalled() }) const overlayNode = mockShowOverlay.mock.calls[0][0] as any - expect(overlayNode.props.title).toBe('Holdership Rejection Success') + expect(overlayNode.props.title).toBe('Holder Rejection Success') expect(mockSetFormActionNone).toHaveBeenCalled() }) }) @@ -1187,4 +1191,666 @@ describe('ActionForm - RejectReturnToIssuer', () => { expect(actionFormFrame).toHaveClass('opacity-[0.33]') expect(actionFormFrame).toHaveClass('pointer-events-none') }) + + it('shows error overlay and closes action form on error', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Return of ETR Rejection Failed') + expect(overlayNode.props.isSuccess).toBe(false) + expect(mockSetFormActionNone).toHaveBeenCalled() + }) +}) + +describe('ActionForm - AcceptReturnToIssuer', () => { + const mockHandleDestroyToken = vi.fn() + + beforeEach(() => { + vi.clearAllMocks() + }) + + it('renders AcceptReturnToIssuer form correctly', () => { + renderWithOverlay( + + ) + + expect(screen.getAllByText('Remark').length).toBeGreaterThan(0) + expect(screen.getByTestId('cancelSurrenderBtn')).toBeInTheDocument() + expect(screen.getByTestId('acceptReturnToIssuerBtn')).toBeInTheDocument() + }) + + it('displays only remark field', () => { + renderWithOverlay( + + ) + + expect(screen.getAllByText('Remark').length).toBeGreaterThan(0) + }) + + it('enables accept button by default', () => { + renderWithOverlay( + + ) + + const acceptBtn = screen.getByTestId('acceptReturnToIssuerBtn') + expect(acceptBtn).not.toBeDisabled() + }) + + it('calls handleDestroyToken with empty remarks when button is clicked without remark', () => { + renderWithOverlay( + + ) + + const acceptBtn = screen.getByTestId('acceptReturnToIssuerBtn') + fireEvent.click(acceptBtn) + + expect(mockHandleDestroyToken).toHaveBeenCalledWith({ remarks: '' }) + }) + + it('calls handleDestroyToken with remarks when provided', () => { + renderWithOverlay( + + ) + + const remarkInput = screen.getByPlaceholderText('Enter remark') + fireEvent.change(remarkInput, { + target: { value: 'Accepting return to issuer' }, + }) + + const acceptBtn = screen.getByTestId('acceptReturnToIssuerBtn') + fireEvent.click(acceptBtn) + + expect(mockHandleDestroyToken).toHaveBeenCalledWith({ + remarks: 'Accepting return to issuer', + }) + }) + + it('shows loading state when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Accepting..')).toBeInTheDocument() + expect(screen.getByTestId('loader')).toBeInTheDocument() + }) + + it('disables buttons when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByTestId('cancelSurrenderBtn')).toBeDisabled() + expect(screen.getByTestId('acceptReturnToIssuerBtn')).toBeDisabled() + }) + + it('disables buttons when state is initialized', () => { + renderWithOverlay( + + ) + + expect(screen.getByTestId('cancelSurrenderBtn')).toBeDisabled() + expect(screen.getByTestId('acceptReturnToIssuerBtn')).toBeDisabled() + }) + + it('calls setFormActionNone when cancel button is clicked', () => { + renderWithOverlay( + + ) + + const cancelBtn = screen.getByTestId('cancelSurrenderBtn') + fireEvent.click(cancelBtn) + + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows success overlay and closes action form on confirmation', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Return of ETR Accepted') + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows error overlay and closes action form on error', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Return of ETR Acceptance Failed') + expect(overlayNode.props.isSuccess).toBe(false) + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('displays Accept ETR Return button text correctly', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Accept ETR Return')).toBeInTheDocument() + }) + + it('applies correct opacity and pointer-events when pending', () => { + const { container } = renderWithOverlay( + + ) + + const actionFormFrame = container.querySelector('.action-form-frame') + expect(actionFormFrame).toHaveClass('opacity-[0.33]') + expect(actionFormFrame).toHaveClass('pointer-events-none') + }) +}) + +describe('ActionForm - NominateBeneficiary', () => { + const mockHandleNomination = vi.fn() + + beforeEach(() => { + vi.clearAllMocks() + }) + + it('renders NominateBeneficiary form correctly', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Owner')).toBeInTheDocument() + expect(screen.getByText('Holder')).toBeInTheDocument() + expect(screen.getAllByText('Remark').length).toBeGreaterThan(0) + expect(screen.getByTestId('cancelNominationBtn')).toBeInTheDocument() + expect(screen.getByTestId('nominationBtn')).toBeInTheDocument() + }) + + it('disables nominate button when beneficiary address is invalid', () => { + renderWithOverlay( + + ) + + const nominateBtn = screen.getByTestId('nominationBtn') + expect(nominateBtn).toBeDisabled() + }) + + it('enables nominate button when valid beneficiary address is entered', async () => { + renderWithOverlay( + + ) + + const inputs = screen.getAllByRole('textbox') + const beneficiaryInput = inputs[0] + const newBeneficiaryAddress = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd' + + fireEvent.change(beneficiaryInput, { + target: { value: newBeneficiaryAddress }, + }) + + await waitFor(() => { + const nominateBtn = screen.getByTestId('nominationBtn') + expect(nominateBtn).not.toBeDisabled() + }) + }) + + it('prevents nomination when new beneficiary is same as current beneficiary', async () => { + renderWithOverlay( + + ) + + const inputs = screen.getAllByRole('textbox') + const beneficiaryInput = inputs[0] + + fireEvent.change(beneficiaryInput, { + target: { value: defaultProps.beneficiary }, + }) + + await waitFor(() => { + const nominateBtn = screen.getByTestId('nominationBtn') + expect(nominateBtn).toBeDisabled() + }) + }) + + it('calls handleNomination with correct parameters', async () => { + renderWithOverlay( + + ) + + const inputs = screen.getAllByRole('textbox') + const beneficiaryInput = inputs[0] + const newBeneficiaryAddress = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd' + + fireEvent.change(beneficiaryInput, { + target: { value: newBeneficiaryAddress }, + }) + + await waitFor(() => { + const nominateBtn = screen.getByTestId('nominationBtn') + fireEvent.click(nominateBtn) + }) + + expect(mockHandleNomination).toHaveBeenCalledWith({ + newBeneficiaryAddress: newBeneficiaryAddress, + remarks: '', + }) + }) + + it('shows loading state when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Nominating..')).toBeInTheDocument() + expect(screen.getByTestId('loader')).toBeInTheDocument() + }) + + it('disables buttons when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByTestId('cancelNominationBtn')).toBeDisabled() + expect(screen.getByTestId('nominationBtn')).toBeDisabled() + }) + + it('calls setFormActionNone when cancel button is clicked', () => { + renderWithOverlay( + + ) + + const cancelBtn = screen.getByTestId('cancelNominationBtn') + fireEvent.click(cancelBtn) + + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows success overlay and closes action form on confirmation', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Nomination Success') + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows error overlay and closes action form on error', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Nomination Failed') + expect(overlayNode.props.isSuccess).toBe(false) + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('includes remark when provided', async () => { + renderWithOverlay( + + ) + + const inputs = screen.getAllByRole('textbox') + const beneficiaryInput = inputs[0] + const newBeneficiaryAddress = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd' + + fireEvent.change(beneficiaryInput, { + target: { value: newBeneficiaryAddress }, + }) + + const remarkInput = screen.getByPlaceholderText('Enter remark') + fireEvent.change(remarkInput, { target: { value: 'Nomination remark' } }) + + await waitFor(() => { + const nominateBtn = screen.getByTestId('nominationBtn') + fireEvent.click(nominateBtn) + }) + + expect(mockHandleNomination).toHaveBeenCalledWith({ + newBeneficiaryAddress: newBeneficiaryAddress, + remarks: 'Nomination remark', + }) + }) +}) + +describe('ActionForm - EndorseBeneficiary', () => { + const mockHandleBeneficiaryTransfer = vi.fn() + const nomineeAddress = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd' + + beforeEach(() => { + vi.clearAllMocks() + }) + + it('renders EndorseBeneficiary form correctly', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Nominee')).toBeInTheDocument() + expect(screen.getByText('Holder')).toBeInTheDocument() + expect(screen.getAllByText('Remark').length).toBeGreaterThan(0) + expect(screen.getByTestId('cancelEndorseBtn')).toBeInTheDocument() + expect(screen.getByTestId('endorseBtn')).toBeInTheDocument() + }) + + it('displays nominee address as non-editable', () => { + renderWithOverlay( + + ) + + expect(screen.getAllByText(nomineeAddress).length).toBeGreaterThan(0) + expect(screen.getAllByText(defaultProps.holder).length).toBeGreaterThan(0) + }) + + it('enables endorse button when nominee is valid', () => { + renderWithOverlay( + + ) + + const endorseBtn = screen.getByTestId('endorseBtn') + expect(endorseBtn).not.toBeDisabled() + }) + + it('disables endorse button when nominee is invalid', () => { + renderWithOverlay( + + ) + + const endorseBtn = screen.getByTestId('endorseBtn') + expect(endorseBtn).toBeDisabled() + }) + + it('calls handleBeneficiaryTransfer with correct parameters', () => { + renderWithOverlay( + + ) + + const endorseBtn = screen.getByTestId('endorseBtn') + fireEvent.click(endorseBtn) + + expect(mockHandleBeneficiaryTransfer).toHaveBeenCalledWith({ + newBeneficiaryAddress: nomineeAddress, + remarks: '', + }) + }) + + it('shows loading state when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByText('Endorsing transfer..')).toBeInTheDocument() + expect(screen.getByTestId('loader')).toBeInTheDocument() + }) + + it('disables buttons when pending confirmation', () => { + renderWithOverlay( + + ) + + expect(screen.getByTestId('cancelEndorseBtn')).toBeDisabled() + expect(screen.getByTestId('endorseBtn')).toBeDisabled() + }) + + it('calls setFormActionNone when cancel button is clicked', () => { + renderWithOverlay( + + ) + + const cancelBtn = screen.getByTestId('cancelEndorseBtn') + fireEvent.click(cancelBtn) + + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows success overlay and closes action form on confirmation', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Endorse Beneficiary Success') + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('shows error overlay and closes action form on error', async () => { + renderWithOverlay( + + ) + + await waitFor(() => { + expect(mockShowOverlay).toHaveBeenCalled() + }) + const overlayNode = mockShowOverlay.mock.calls[0][0] as any + expect(overlayNode.props.title).toBe('Endorsement Failed') + expect(overlayNode.props.isSuccess).toBe(false) + expect(mockSetFormActionNone).toHaveBeenCalled() + }) + + it('includes remark when provided', () => { + renderWithOverlay( + + ) + + const remarkInput = screen.getByPlaceholderText('Enter remark') + fireEvent.change(remarkInput, { + target: { value: 'Endorsement remark' }, + }) + + const endorseBtn = screen.getByTestId('endorseBtn') + fireEvent.click(endorseBtn) + + expect(mockHandleBeneficiaryTransfer).toHaveBeenCalledWith({ + newBeneficiaryAddress: nomineeAddress, + remarks: 'Endorsement remark', + }) + }) }) diff --git a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.tsx b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.tsx index 92e7b84..5f4c6d9 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.tsx +++ b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/ActionForm.tsx @@ -54,25 +54,30 @@ export const ActionForm: FunctionComponent = props => { // Additional state variables for different form types const [newHolder, setNewHolder] = useState(holder || '') - const [newOwner, setNewOwner] = useState(holder || '') + const [newOwner, setNewOwner] = useState(beneficiary || '') const [newBeneficiary, setNewBeneficiary] = useState('') // All useEffect hooks moved outside of the switch statement useEffect(() => { + // Handle TransferHolderForm confirmation/ failure if (type === AssetManagementActions.TransferHolder) { const { holderTransferringState } = props const isConfirmed = holderTransferringState === FormState.CONFIRMED + const isFailed = holderTransferringState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.TRANSFER_HOLDER_SUCCESS + : MessageTitle.TRANSFER_HOLDER_FAILED - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.TRANSFER_HOLDER_SUCCESS, + msg, { - isSuccess: true, - holderAddress: newHolder, + isSuccess: isConfirmed, + holderAddress: isConfirmed ? newHolder : holder, }, setShowEndorsementChain ) @@ -80,22 +85,28 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - // Handle EndorseTransferForm confirmation + // Handle EndorseTransferForm confirmation/ failure if (type === AssetManagementActions.TransferOwnerHolder) { const { transferOwnerHoldersState } = props const isConfirmed = transferOwnerHoldersState === FormState.CONFIRMED + const isFailed = transferOwnerHoldersState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.TRANSFER_OWNER_HOLDER_SUCCESS + : MessageTitle.TRANSFER_OWNER_HOLDER_FAILED + const beneficiaryAddress = isConfirmed ? newOwner : beneficiary + const holderAddress = isConfirmed ? newHolder : holder - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.TRANSFER_OWNER_HOLDER_SUCCESS, + msg, { - isSuccess: true, - beneficiaryAddress: newOwner, - holderAddress: newHolder, + isSuccess: isConfirmed, + beneficiaryAddress, + holderAddress, }, setShowEndorsementChain ) @@ -103,22 +114,28 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - + // Handle RejectTransferOwnerHolderForm confirmation/ failure if (type === AssetManagementActions.RejectTransferOwnerHolder) { const { rejectTransferOwnerHolderState } = props const isConfirmed = rejectTransferOwnerHolderState === FormState.CONFIRMED + const isFailed = rejectTransferOwnerHolderState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.REJECT_TRANSFER_OWNER_HOLDER_SUCCESS + : MessageTitle.REJECT_TRANSFER_OWNER_HOLDER_FAILED + const beneficiaryAddress = isConfirmed ? prevBeneficiary : beneficiary + const holderAddress = isConfirmed ? prevHolder : holder - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - 'Holdership Rejection Success', + msg, { - isSuccess: true, - beneficiaryAddress: prevBeneficiary, - holderAddress: prevHolder, + isSuccess: isConfirmed, + beneficiaryAddress, + holderAddress, }, setShowEndorsementChain ) @@ -126,21 +143,26 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - + // Handle RejectTransferHolderForm confirmation/ failure if (type === AssetManagementActions.RejectTransferHolder) { const { rejectTransferHolderState } = props const isConfirmed = rejectTransferHolderState === FormState.CONFIRMED + const isFailed = rejectTransferHolderState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.REJECT_TRANSFER_HOLDER_SUCCESS + : MessageTitle.REJECT_TRANSFER_HOLDER_FAILED + const holderAddress = isConfirmed ? prevHolder : holder - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - 'Holdership Rejection Success', + msg, { - isSuccess: true, - holderAddress: prevHolder, + isSuccess: isConfirmed, + holderAddress, }, setShowEndorsementChain ) @@ -148,21 +170,26 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - + // Handle RejectTransferOwnerForm confirmation/ failure if (type === AssetManagementActions.RejectTransferOwner) { const { rejectTransferOwnerState } = props const isConfirmed = rejectTransferOwnerState === FormState.CONFIRMED + const isFailed = rejectTransferOwnerState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.REJECT_TRANSFER_OWNER_SUCCESS + : MessageTitle.REJECT_TRANSFER_OWNER_FAILED + const beneficiaryAddress = isConfirmed ? prevBeneficiary : beneficiary - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - 'Ownership Rejection Success', + msg, { - isSuccess: true, - beneficiaryAddress: prevBeneficiary, + isSuccess: isConfirmed, + beneficiaryAddress, }, setShowEndorsementChain ) @@ -170,17 +197,21 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - // Handle NominateBeneficiaryForm confirmation + // Handle NominateBeneficiaryForm confirmation/ failure if (type === AssetManagementActions.NominateBeneficiary) { const { nominationState } = props const isConfirmed = nominationState === FormState.CONFIRMED + const isFailed = nominationState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.NOMINATE_BENEFICIARY_SUCCESS + : MessageTitle.NOMINATE_BENEFICIARY_FAILED - if (isConfirmed) { + if (isConfirmed || isFailed) { showOverlay( showDocumentTransferMessage( - MessageTitle.NOMINATE_BENEFICIARY_HOLDER_SUCCESS, + msg, { - isSuccess: true, + isSuccess: isConfirmed, }, setShowEndorsementChain ) @@ -188,21 +219,26 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - // Handle EndorseBeneficiaryForm confirmation + // Handle EndorseBeneficiaryForm confirmation/ failure if (type === AssetManagementActions.EndorseBeneficiary) { const { nominee, endorseBeneficiaryState } = props const isConfirmed = endorseBeneficiaryState === FormState.CONFIRMED + const isFailed = endorseBeneficiaryState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.ENDORSE_BENEFICIARY_SUCCESS + : MessageTitle.ENDORSE_BENEFICIARY_FAILED + const beneficiaryAddress = isConfirmed ? nominee : beneficiary - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.CHANGE_BENEFICIARY_SUCCESS, + msg, { - isSuccess: true, - beneficiaryAddress: nominee, + isSuccess: isConfirmed, + beneficiaryAddress, }, setShowEndorsementChain ) @@ -210,21 +246,26 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - // Handle EndorseTransferForm confirmation + // Handle EndorseTransferForm confirmation/ failure if (type === AssetManagementActions.TransferOwner) { const { transferOwnersState } = props const isConfirmed = transferOwnersState === FormState.CONFIRMED + const isFailed = transferOwnersState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.TRANSFER_OWNER_SUCCESS + : MessageTitle.TRANSFER_OWNER_FAILED + const beneficiaryAddress = isConfirmed ? newOwner : beneficiary - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.TRANSFER_OWNER_SUCCESS, + msg, { - isSuccess: true, - beneficiaryAddress: newOwner, + isSuccess: isConfirmed, + beneficiaryAddress, }, setShowEndorsementChain ) @@ -232,39 +273,82 @@ export const ActionForm: FunctionComponent = props => { setFormActionNone() } } - // Handle SurrenderForm/ReturnToIssuer confirmation + // Handle SurrenderForm/ReturnToIssuer confirmation/ failure if (type === AssetManagementActions.ReturnToIssuer) { const { returnToIssuerState } = props const isConfirmed = returnToIssuerState === FormState.CONFIRMED + const isFailed = returnToIssuerState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.RETURN_TO_ISSUER_DOCUMENT_SUCCESS + : MessageTitle.RETURN_TO_ISSUER_DOCUMENT_FAILED + const beneficiaryAddress = isConfirmed ? '' : beneficiary + const holderAddress = isConfirmed ? '' : holder - if (isConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.RETURN_TO_ISSUER_DOCUMENT, - { isSuccess: true }, + msg, + { + isSuccess: isConfirmed, + beneficiaryAddress, + holderAddress, + }, setShowEndorsementChain ) ) setFormActionNone() } } - // Handle RejectSurrenderedForm confirmation + // Handle RejectSurrenderedForm confirmation/ failure if (type === AssetManagementActions.RejectReturnToIssuer) { const { restoreTokenState } = props - const isRestoreTokenConfirmed = restoreTokenState === FormState.CONFIRMED + const isConfirmed = restoreTokenState === FormState.CONFIRMED + const isFailed = restoreTokenState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS + : MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT_FAILED + const beneficiaryAddress = isConfirmed ? beneficiary : '' + const holderAddress = isConfirmed ? holder : '' + + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { + refreshEndorsementChain() + } + showOverlay( + showDocumentTransferMessage( + msg, + { + isSuccess: isConfirmed, + beneficiaryAddress, + holderAddress, + }, + setShowEndorsementChain + ) + ) + setFormActionNone() + } + } + // Handle AcceptSurrenderedForm confirmation/ failure + if (type === AssetManagementActions.AcceptReturnToIssuer) { + const { destroyTokenState } = props + const isConfirmed = destroyTokenState === FormState.CONFIRMED + const isFailed = destroyTokenState === FormState.ERROR + const msg = isConfirmed + ? MessageTitle.ACCEPT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS + : MessageTitle.ACCEPT_RETURN_TO_ISSUER_DOCUMENT_FAILED - if (isRestoreTokenConfirmed) { - if (refreshEndorsementChain) { + if (isConfirmed || isFailed) { + if (refreshEndorsementChain && isConfirmed) { refreshEndorsementChain() } showOverlay( showDocumentTransferMessage( - MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT, - { isSuccess: true }, + msg, + { isSuccess: isConfirmed }, setShowEndorsementChain ) ) @@ -324,7 +408,6 @@ export const ActionForm: FunctionComponent = props => { newValue={newHolder} isEditable={isEditable} onSetNewValue={setNewHolder} - isError={holderTransferringState === FormState.ERROR} />
@@ -378,6 +461,7 @@ export const ActionForm: FunctionComponent = props => { ) } + case AssetManagementActions.TransferOwner: { const { handleBeneficiaryTransfer, transferOwnersState } = props const isPendingConfirmation = @@ -406,7 +490,6 @@ export const ActionForm: FunctionComponent = props => { newValue={newOwner} isEditable={isEditable} onSetNewValue={setNewOwner} - isError={transferOwnersState === FormState.ERROR} />
@@ -497,7 +580,6 @@ export const ActionForm: FunctionComponent = props => { newValue={newOwner} isEditable={isEditable} onSetNewValue={setNewOwner} - isError={transferOwnerHoldersState === FormState.ERROR} />
@@ -507,7 +589,6 @@ export const ActionForm: FunctionComponent = props => { newValue={newHolder} isEditable={isEditable} onSetNewValue={setNewHolder} - isError={transferOwnerHoldersState === FormState.ERROR} />
@@ -588,7 +669,6 @@ export const ActionForm: FunctionComponent = props => { newValue={newBeneficiary} isEditable={isEditable} onSetNewValue={setNewBeneficiary} - isError={nominationState === FormState.ERROR} />
@@ -649,6 +729,7 @@ export const ActionForm: FunctionComponent = props => { ) } + case AssetManagementActions.EndorseBeneficiary: { const { nominee, handleBeneficiaryTransfer, endorseBeneficiaryState } = props @@ -1090,6 +1171,63 @@ export const ActionForm: FunctionComponent = props => { ) } + case AssetManagementActions.AcceptReturnToIssuer: { + const { handleDestroyToken, destroyTokenState } = props + const isDestroyTokenPendingConfirmation = + destroyTokenState === FormState.PENDING_CONFIRMATION || + destroyTokenState === FormState.INITIALIZED + + return ( + <> +
+
+ +
+
+
+
+ + + handleDestroyToken({ remarks: remark })} + disabled={isDestroyTokenPendingConfirmation} + data-testid={'acceptReturnToIssuerBtn'} + size={ButtonSize.SM} + > + {isDestroyTokenPendingConfirmation ? ( +
+ + Accepting.. +
+ ) : ( + 'Accept ETR Return' + )} +
+
+
+ + ) + } default: return null } diff --git a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/types.ts b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/types.ts index a78198a..5de69d8 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/types.ts +++ b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionForm/types.ts @@ -91,7 +91,7 @@ export interface ReturnToIssuerFormProps extends BaseActionFormProps { // Props for AcceptReturnToIssuerForm export interface AcceptReturnToIssuerFormProps extends BaseActionFormProps { type: AssetManagementActions.AcceptReturnToIssuer - handleDestroyToken: (remarks: string) => void + handleDestroyToken: ({ remarks }: { remarks: string }) => void destroyTokenState: string } diff --git a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionSelectionForm/ActionSelectionForm.tsx b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionSelectionForm/ActionSelectionForm.tsx index 7f6e3fa..74fd1e1 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionSelectionForm/ActionSelectionForm.tsx +++ b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/ActionSelectionForm/ActionSelectionForm.tsx @@ -49,7 +49,7 @@ export const ActionSelectionForm: FunctionComponent< isTokenBurnt, isTitleEscrow, isRejectPendingConfirmation, - // isExpired, + isExpired, canTransferHolder, canTransferBeneficiary, canTransferOwners, @@ -115,19 +115,29 @@ export const ActionSelectionForm: FunctionComponent<
)}
- {(isReturnedToIssuer || isTokenBurnt) && ( -
- -

- {isReturnedToIssuer - ? 'ETR Returned to Issuer' - : 'ETR Taken Out of Circulation'} -

-
-
+ {(isReturnedToIssuer || isTokenBurnt || isExpired) && ( +
+ {(isReturnedToIssuer || isTokenBurnt) && ( + +

+ {isReturnedToIssuer + ? 'ETR Returned to Issuer' + : 'ETR Taken Out of Circulation'} +

+
+ )} + {isExpired && ( + +

ETR Expired

+
+ )} +
)} {!isTokenBurnt && ( diff --git a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/EditableAssetTitle/EditableAssetTitle.tsx b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/EditableAssetTitle/EditableAssetTitle.tsx index 7290fa8..4d87aa7 100644 --- a/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/EditableAssetTitle/EditableAssetTitle.tsx +++ b/src/components/AssetManagementPanel/AssetManagementForm/FormVariants/EditableAssetTitle/EditableAssetTitle.tsx @@ -16,7 +16,6 @@ interface EditableAssetTitleProps { isEditable: boolean newValue?: string onSetNewValue?: (newValue: string) => void - isError?: boolean isRemark?: boolean isSubmitted?: boolean } @@ -27,7 +26,6 @@ export const EditableAssetTitle: FunctionComponent = ({ newValue, isEditable, onSetNewValue, - isError: error, isRemark, isSubmitted, }) => { @@ -43,6 +41,8 @@ export const EditableAssetTitle: FunctionComponent = ({ // ) } const [inputError, setInputError] = useState(false) + // const [unidentifiedAddressError, setUnidentifiedAddressError] = + // useState(false) const verifySetNewValue = (newAddressValue: string) => { // Update the value first onSetNewValue?.(newAddressValue) @@ -134,7 +134,7 @@ export const EditableAssetTitle: FunctionComponent = ({ value={newValue} placeholder={`Input ${role}'s address`} onChange={event => verifySetNewValue(event.target.value)} - hasError={error || inputError} + hasError={inputError} //add in unidentifiedAddressError once implemented />
@@ -158,7 +158,7 @@ export const EditableAssetTitle: FunctionComponent = ({

Input must be a valid address.

)} - {error && ( + {/* {unidentifiedAddressError && (
= ({ Unidentified address. Please check and input again.

- )} + )} */} ) } diff --git a/src/components/common/Overlay/OverlayContent/DocumentTransferMessage.tsx b/src/components/common/Overlay/OverlayContent/DocumentTransferMessage.tsx index 6081994..32c2c69 100644 --- a/src/components/common/Overlay/OverlayContent/DocumentTransferMessage.tsx +++ b/src/components/common/Overlay/OverlayContent/DocumentTransferMessage.tsx @@ -12,14 +12,32 @@ export enum MessageTitle { NO_MANAGE_ACCESS = 'No manage assets access', NO_USER_AUTHORIZATION = 'User denied account authorization', // this error message must match error message from metamask extension itself TRANSACTION_ERROR = 'Error - Failed transaction', - RETURN_TO_ISSUER_DOCUMENT = 'Return of ETR Successful', - ACCEPT_RETURN_TO_ISSUER_DOCUMENT = 'Return of ETR Accepted', - REJECT_RETURN_TO_ISSUER_DOCUMENT = 'Return of ETR Rejected', - CHANGE_BENEFICIARY_SUCCESS = 'Change Owner Success', - NOMINATE_BENEFICIARY_HOLDER_SUCCESS = 'Nomination Success', + // Success + RETURN_TO_ISSUER_DOCUMENT_SUCCESS = 'Return of ETR Successful', + ACCEPT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS = 'Return of ETR Accepted', + REJECT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS = 'Return of ETR Rejected', + + ENDORSE_BENEFICIARY_SUCCESS = 'Endorse Beneficiary Success', + NOMINATE_BENEFICIARY_SUCCESS = 'Nomination Success', TRANSFER_HOLDER_SUCCESS = 'Transfer Holder Success', TRANSFER_OWNER_HOLDER_SUCCESS = 'Transfer Ownership/Holdership Success', TRANSFER_OWNER_SUCCESS = 'Transfer Owner Success', + REJECT_TRANSFER_OWNER_HOLDER_SUCCESS = 'Holdership/Ownership Rejection Success', + REJECT_TRANSFER_OWNER_SUCCESS = 'Ownership Rejection Success', + REJECT_TRANSFER_HOLDER_SUCCESS = 'Holder Rejection Success', + // Failed + TRANSFER_HOLDER_FAILED = 'Transfer Holder Failed', + TRANSFER_OWNER_FAILED = 'Transfer Owner Failed', + NOMINATE_BENEFICIARY_FAILED = 'Nomination Failed', + ENDORSE_BENEFICIARY_FAILED = 'Endorsement Failed', + TRANSFER_OWNER_HOLDER_FAILED = 'Transfer Ownership/Holdership Failed', + REJECT_TRANSFER_OWNER_HOLDER_FAILED = 'Holdership/Ownership Rejection Failed', + REJECT_TRANSFER_OWNER_FAILED = 'Ownership Rejection Failed', + REJECT_TRANSFER_HOLDER_FAILED = 'Holder Rejection Failed', + + RETURN_TO_ISSUER_DOCUMENT_FAILED = 'Return of ETR Failed', + ACCEPT_RETURN_TO_ISSUER_DOCUMENT_FAILED = 'Return of ETR Acceptance Failed', + REJECT_RETURN_TO_ISSUER_DOCUMENT_FAILED = 'Return of ETR Rejection Failed', } interface ButtonCloseProps { @@ -111,6 +129,7 @@ interface MessageProps { beneficiaryAddress?: string holderTitle?: string holderAddress?: string + isSuccess?: boolean } export const MessageNoMetamask: FunctionComponent = () => { @@ -156,76 +175,94 @@ export const MessageTransactionError: FunctionComponent = ({ ) } -export const MessageSurrenderSuccess: FunctionComponent = () => { - return ( +export const MessageReturnToIssuer: FunctionComponent = ({ + isSuccess, + beneficiaryAddress, + holderAddress, +}) => { + return isSuccess ? (

This ETR has been returned, pending acceptance by the Issuer.

+ ) : ( + ) } -export const AcceptSurrender: FunctionComponent = () => { - return ( +export const MessageAcceptReturnToIssuer: FunctionComponent = ({ + isSuccess, +}) => { + return isSuccess ? (

This ETR has been taken out of circulation by the Issuer.

+ ) : ( +

+ Accept Return of ETR transaction failed. Document remains with issuer. +

) } -export const RejectSurrender: FunctionComponent = () => { - return ( -

Return for this ETR has been rejected by the Issuer.

- ) -} - -export const MessageRejectSurrenderConfirmation: FunctionComponent< - MessageProps -> = ({ beneficiaryAddress, holderAddress }) => { - return ( - = ({ + isSuccess, + beneficiaryAddress, + holderAddress, +}) => { + return isSuccess ? ( + + ) : ( +

+ Reject Return of ETR transaction failed. Document remains with issuer. +

) } -export const MessageBeneficiarySuccess: FunctionComponent = ({ +export const MessageTransferBeneficiary: FunctionComponent = ({ address, }) => { - return + return } -export const MessageHolderSuccess: FunctionComponent = ({ +export const MessageTransferHolder: FunctionComponent = ({ address, }) => { - return + return } -export const MessageNominateBeneficiaryHolderSuccess: FunctionComponent = - () => { - return ( -

- Document has been nominated successfully. Please notify holder to - execute transfer. -

- ) - } +export const MessageNominateBeneficiary: FunctionComponent = ({ + isSuccess, +}) => { + return isSuccess ? ( +

+ Document has been nominated successfully. Please notify holder to endorse + transfer. +

+ ) : ( +

Document nomination failed. Please try again.

+ ) +} -export const MessageEndorseTransferSuccess: FunctionComponent = ({ +export const MessageEndorseTransfer: FunctionComponent = ({ beneficiaryAddress, holderAddress, }) => { return ( - ) } -export const MessageTransferSuccess: FunctionComponent = ({ +export const MessageTransfer: FunctionComponent = ({ beneficiaryTitle = 'Current Owner', beneficiaryAddress, holderTitle = 'Current Holder', @@ -285,33 +322,49 @@ export const showDocumentTransferMessage = ( {title === MessageTitle.TRANSACTION_ERROR && ( )} - {title === MessageTitle.RETURN_TO_ISSUER_DOCUMENT && ( - + {(title === MessageTitle.RETURN_TO_ISSUER_DOCUMENT_SUCCESS || + title === MessageTitle.RETURN_TO_ISSUER_DOCUMENT_FAILED) && ( + )} - {title === MessageTitle.ACCEPT_RETURN_TO_ISSUER_DOCUMENT && ( - + {(title === MessageTitle.ACCEPT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS || + title === MessageTitle.ACCEPT_RETURN_TO_ISSUER_DOCUMENT_FAILED) && ( + )} - {title === MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT && ( - + {(title === MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT_SUCCESS || + title === MessageTitle.REJECT_RETURN_TO_ISSUER_DOCUMENT_FAILED) && ( + )} - {(title === MessageTitle.CHANGE_BENEFICIARY_SUCCESS || - title === MessageTitle.TRANSFER_OWNER_SUCCESS) && ( - + {(title === MessageTitle.ENDORSE_BENEFICIARY_SUCCESS || + title === MessageTitle.TRANSFER_OWNER_SUCCESS || + title === MessageTitle.TRANSFER_OWNER_FAILED || + title === MessageTitle.ENDORSE_BENEFICIARY_FAILED) && ( + )} - {title === MessageTitle.NOMINATE_BENEFICIARY_HOLDER_SUCCESS && ( - + {(title === MessageTitle.NOMINATE_BENEFICIARY_SUCCESS || + title === MessageTitle.NOMINATE_BENEFICIARY_FAILED) && ( + )} - {title === MessageTitle.TRANSFER_HOLDER_SUCCESS && ( - + {(title === MessageTitle.TRANSFER_HOLDER_SUCCESS || + title === MessageTitle.TRANSFER_HOLDER_FAILED) && ( + )} - {title === MessageTitle.TRANSFER_OWNER_HOLDER_SUCCESS && ( - )} {!(Object.values(MessageTitle) as string[]).includes(title) && - title?.length > 0 && } + title?.length > 0 && } ) } diff --git a/src/components/common/contexts/TokenInformationContext/TokenInformationContext.tsx b/src/components/common/contexts/TokenInformationContext/TokenInformationContext.tsx index 69e01c0..639f556 100644 --- a/src/components/common/contexts/TokenInformationContext/TokenInformationContext.tsx +++ b/src/components/common/contexts/TokenInformationContext/TokenInformationContext.tsx @@ -56,6 +56,7 @@ interface ITokenInformationContext { destroyTokenState: ContractFunctionState restoreToken: (...args: any[]) => Promise restoreTokenState: ContractFunctionState + resetProviders: () => void } const contractFunctionStub: any = () => { @@ -89,6 +90,7 @@ export const TokenInformationContext = createContext({ destroyTokenState: 'UNINITIALIZED', restoreToken: contractFunctionStub, restoreTokenState: 'UNINITIALIZED', + resetProviders: () => {}, }) interface TokenInformationContextProviderProps { @@ -389,6 +391,7 @@ export const TokenInformationContextProvider: FunctionComponent< resetStates, restoreToken, restoreTokenState, + resetProviders, }} > {children} diff --git a/src/components/icons/Error.tsx b/src/components/icons/Error.tsx index a5b39f3..e4ff202 100644 --- a/src/components/icons/Error.tsx +++ b/src/components/icons/Error.tsx @@ -2,22 +2,37 @@ import { SVGProps } from 'react' const ErrorIcon = ({ fontSize = 24, - stroke = 'white', + stroke = '#B83152', ...props }: SVGProps) => ( - + + ) diff --git a/trustvc-cms/package-lock.json b/trustvc-cms/package-lock.json index 8cd7172..23fed89 100644 --- a/trustvc-cms/package-lock.json +++ b/trustvc-cms/package-lock.json @@ -9,10 +9,10 @@ "version": "1.0.0", "license": "UNLICENSED", "dependencies": { - "@sanity/vision": "^5.20.0", + "@sanity/vision": "^5.22.0", "react": "^19.2.4", "react-dom": "^19.2.4", - "sanity": "^5.20.0", + "sanity": "^5.22.0", "styled-components": "^6.1.18" }, "devDependencies": { @@ -30,9 +30,9 @@ "license": "MIT" }, "node_modules/@actions/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz", - "integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz", + "integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==", "license": "MIT", "dependencies": { "@actions/exec": "^3.0.0", @@ -49,9 +49,9 @@ } }, "node_modules/@actions/github": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-9.0.0.tgz", - "integrity": "sha512-yJ0RoswsAaKcvkmpCE4XxBRiy/whH2SdTBHWzs0gi4wkqTDhXMChjSdqBz/F4AeiDlP28rQqL33iHb+kjAMX6w==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-9.1.1.tgz", + "integrity": "sha512-tL5JbYOBZHc0ngEnCsaDcryUizIUIlQyIMwy1Wkx93H5HzbBJ7TbiPx2PnFjBwZW0Vh05JmfFZhecE6gglYegA==", "license": "MIT", "dependencies": { "@actions/http-client": "^3.0.2", @@ -74,9 +74,9 @@ } }, "node_modules/@actions/http-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz", - "integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz", + "integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==", "license": "MIT", "dependencies": { "tunnel": "^0.0.6", @@ -241,53 +241,44 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.1.tgz", - "integrity": "sha512-iGWN8E45Ws0XWx3D44Q1t6vX2LqhCKcwfmwBYCDsFrYFS6m4q/Ks61L2veETaLv+ckDC6+dTETJoaAAb7VjLiw==", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.1.1", - "@csstools/css-color-parser": "^4.0.2", + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.7" + "@csstools/css-tokenizer": "^4.0.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/dom-selector": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.0.4.tgz", - "integrity": "sha512-jXR6x4AcT3eIrS2fSNAwJpwirOkGcd+E7F7CP3zjdTqz9B/2huHOL8YJZBgekKwLML+u7qB/6P1LXQuMScsx0w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", "license": "MIT", "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.7" + "is-potential-custom-element-name": "^1.0.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", - "license": "BlueOak-1.0.0", + "node_modules/@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/nwsapi": { @@ -297,9 +288,9 @@ "license": "MIT" }, "node_modules/@aws-lite/client": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@aws-lite/client/-/client-0.23.5.tgz", - "integrity": "sha512-DZ/onVaVvfJfcOcp63WS7/HEjJjy2D6XpU3R8AhwgH6T6NcsuSWr7FbIkVVa33XebYwIsHyWTsPL7h/Nvt/knA==", + "version": "0.23.6", + "resolved": "https://registry.npmjs.org/@aws-lite/client/-/client-0.23.6.tgz", + "integrity": "sha512-37oDevQKNCv5GpZ+4J7awO7B4BfHMisek6Z3ofEE9XOmxMrRrLnBBH8/Qf/ByR/qpygy293WW4ekVNiR1MUu+Q==", "license": "Apache-2.0", "workspaces": [ "plugins/acm", @@ -516,11 +507,12 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -2160,9 +2152,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", + "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", "funding": [ { "type": "github", @@ -2183,9 +2175,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", + "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", "funding": [ { "type": "github", @@ -2199,7 +2191,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.0" }, "engines": { "node": ">=20.19.0" @@ -2232,9 +2224,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.2.tgz", - "integrity": "sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", + "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", "funding": [ { "type": "github", @@ -2375,9 +2367,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.5.tgz", - "integrity": "sha512-nGsF/4C7uzUj+Nj/4J+Zt0bYQ6bz33Phz8Lb2N80Mti1HjGclTJdXZ+9APC4kLvONbjxN1zfvYNd8FEcbBK/MQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", "cpu": [ "ppc64" ], @@ -2391,9 +2383,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.5.tgz", - "integrity": "sha512-Cv781jd0Rfj/paoNrul1/r4G0HLvuFKYh7C9uHZ2Pl8YXstzvCyyeWENTFR9qFnRzNMCjXmsulZuvosDg10Mog==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", "cpu": [ "arm" ], @@ -2407,9 +2399,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.5.tgz", - "integrity": "sha512-Oeghq+XFgh1pUGd1YKs4DDoxzxkoUkvko+T/IVKwlghKLvvjbGFB3ek8VEDBmNvqhwuL0CQS3cExdzpmUyIrgA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", "cpu": [ "arm64" ], @@ -2423,9 +2415,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.5.tgz", - "integrity": "sha512-nQD7lspbzerlmtNOxYMFAGmhxgzn8Z7m9jgFkh6kpkjsAhZee1w8tJW3ZlW+N9iRePz0oPUDrYrXidCPSImD0Q==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", "cpu": [ "x64" ], @@ -2439,9 +2431,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.5.tgz", - "integrity": "sha512-I+Ya/MgC6rr8oRWGRDF3BXDfP8K1BVUggHqN6VI2lUZLdDi1IM1v2cy0e3lCPbP+pVcK3Tv8cgUhHse1kaNZZw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", "cpu": [ "arm64" ], @@ -2455,9 +2447,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.5.tgz", - "integrity": "sha512-MCjQUtC8wWJn/pIPM7vQaO69BFgwPD1jriEdqwTCKzWjGgkMbcg+M5HzrOhPhuYe1AJjXlHmD142KQf+jnYj8A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", "cpu": [ "x64" ], @@ -2471,9 +2463,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.5.tgz", - "integrity": "sha512-X6xVS+goSH0UelYXnuf4GHLwpOdc8rgK/zai+dKzBMnncw7BTQIwquOodE7EKvY2UVUetSqyAfyZC1D+oqLQtg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", "cpu": [ "arm64" ], @@ -2487,9 +2479,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.5.tgz", - "integrity": "sha512-233X1FGo3a8x1ekLB6XT69LfZ83vqz+9z3TSEQCTYfMNY880A97nr81KbPcAMl9rmOFp11wO0dP+eB18KU/Ucg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", "cpu": [ "x64" ], @@ -2503,9 +2495,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.5.tgz", - "integrity": "sha512-0wkVrYHG4sdCCN/bcwQ7yYMXACkaHc3UFeaEOwSVW6e5RycMageYAFv+JS2bKLwHyeKVUvtoVH+5/RHq0fgeFw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", "cpu": [ "arm" ], @@ -2519,9 +2511,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.5.tgz", - "integrity": "sha512-euKkilsNOv7x/M1NKsx5znyprbpsRFIzTV6lWziqJch7yWYayfLtZzDxDTl+LSQDJYAjd9TVb/Kt5UKIrj2e4A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", "cpu": [ "arm64" ], @@ -2535,9 +2527,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.5.tgz", - "integrity": "sha512-hVRQX4+P3MS36NxOy24v/Cdsimy/5HYePw+tmPqnNN1fxV0bPrFWR6TMqwXPwoTM2VzbkA+4lbHWUKDd5ZDA/w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", "cpu": [ "ia32" ], @@ -2551,9 +2543,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.5.tgz", - "integrity": "sha512-mKqqRuOPALI8nDzhOBmIS0INvZOOFGGg5n1osGIXAx8oersceEbKd4t1ACNTHM3sJBXGFAlEgqM+svzjPot+ZQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", "cpu": [ "loong64" ], @@ -2567,9 +2559,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.5.tgz", - "integrity": "sha512-EE/QXH9IyaAj1qeuIV5+/GZkBTipgGO782Ff7Um3vPS9cvLhJJeATy4Ggxikz2inZ46KByamMn6GqtqyVjhenA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", "cpu": [ "mips64el" ], @@ -2583,9 +2575,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.5.tgz", - "integrity": "sha512-0V2iF1RGxBf1b7/BjurA5jfkl7PtySjom1r6xOK2q9KWw/XCpAdtB6KNMO+9xx69yYfSCRR9FE0TyKfHA2eQMw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", "cpu": [ "ppc64" ], @@ -2599,9 +2591,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.5.tgz", - "integrity": "sha512-rYxThBx6G9HN6tFNuvB/vykeLi4VDsm5hE5pVwzqbAjZEARQrWu3noZSfbEnPZ/CRXP3271GyFk/49up2W190g==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", "cpu": [ "riscv64" ], @@ -2615,9 +2607,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.5.tgz", - "integrity": "sha512-uEP2q/4qgd8goEUc4QIdU/1P2NmEtZ/zX5u3OpLlCGhJIuBIv0s0wr7TB2nBrd3/A5XIdEkkS5ZLF0ULuvaaYQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", "cpu": [ "s390x" ], @@ -2631,9 +2623,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.5.tgz", - "integrity": "sha512-+Gq47Wqq6PLOOZuBzVSII2//9yyHNKZLuwfzCemqexqOQCSz0zy0O26kIzyp9EMNMK+nZ0tFHBZrCeVUuMs/ew==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", "cpu": [ "x64" ], @@ -2647,9 +2639,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.5.tgz", - "integrity": "sha512-3F/5EG8VHfN/I+W5cO1/SV2H9Q/5r7vcHabMnBqhHK2lTWOh3F8vixNzo8lqxrlmBtZVFpW8pmITHnq54+Tq4g==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", "cpu": [ "arm64" ], @@ -2663,9 +2655,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.5.tgz", - "integrity": "sha512-28t+Sj3CPN8vkMOlZotOmDgilQwVvxWZl7b8rxpn73Tt/gCnvrHxQUMng4uu3itdFvrtba/1nHejvxqz8xgEMA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", "cpu": [ "x64" ], @@ -2679,9 +2671,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.5.tgz", - "integrity": "sha512-Doz/hKtiuVAi9hMsBMpwBANhIZc8l238U2Onko3t2xUp8xtM0ZKdDYHMnm/qPFVthY8KtxkXaocwmMh6VolzMA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", "cpu": [ "arm64" ], @@ -2695,9 +2687,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.5.tgz", - "integrity": "sha512-WfGVaa1oz5A7+ZFPkERIbIhKT4olvGl1tyzTRaB5yoZRLqC0KwaO95FeZtOdQj/oKkjW57KcVF944m62/0GYtA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", "cpu": [ "x64" ], @@ -2711,9 +2703,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.5.tgz", - "integrity": "sha512-Xh+VRuh6OMh3uJ0JkCjI57l+DVe7VRGBYymen8rFPnTVgATBwA6nmToxM2OwTlSvrnWpPKkrQUj93+K9huYC6A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", "cpu": [ "arm64" ], @@ -2727,9 +2719,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.5.tgz", - "integrity": "sha512-aC1gpJkkaUADHuAdQfuVTnqVUTLqqUNhAvEwHwVWcnVVZvNlDPGA0UveZsfXJJ9T6k9Po4eHi3c02gbdwO3g6w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", "cpu": [ "x64" ], @@ -2743,9 +2735,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.5.tgz", - "integrity": "sha512-0UNx2aavV0fk6UpZcwXFLztA2r/k9jTUa7OW7SAea1VYUhkug99MW1uZeXEnPn5+cHOd0n8myQay6TlFnBR07w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", "cpu": [ "arm64" ], @@ -2759,9 +2751,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.5.tgz", - "integrity": "sha512-5nlJ3AeJWCTSzR7AEqVjT/faWyqKU86kCi1lLmxVqmNR+j4HrYdns+eTGjS/vmrzCIe8inGQckUadvS0+JkKdQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", "cpu": [ "ia32" ], @@ -2775,9 +2767,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.5.tgz", - "integrity": "sha512-PWypQR+d4FLfkhBIV+/kHsUELAnMpx1bRvvsn3p+/sAERbnCzFrtDRG2Xw5n+2zPxBK2+iaP+vetsRl4Ti7WgA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", "cpu": [ "x64" ], @@ -3520,9 +3512,9 @@ "license": "MIT" }, "node_modules/@mdit/plugin-alert": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@mdit/plugin-alert/-/plugin-alert-0.23.1.tgz", - "integrity": "sha512-vbWxewra32hfZKF+XeeWK/eoAzQbe0cSRfSattX9oxGOcaEbcVx2/g7nmI9//ItsOKO7XNRy7ZKLdnm+CaMPvg==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/@mdit/plugin-alert/-/plugin-alert-0.23.2.tgz", + "integrity": "sha512-pXIil0FLy9ilhvT6d324A4X+mt5i/zG8ml0VIpZwiUYh2k1Wi6VnZhFHfsnONTRu6dPL2EwQBIhQgQ+269f7LA==", "license": "MIT", "dependencies": { "@types/markdown-it": "^14.1.2" @@ -3689,9 +3681,9 @@ } }, "node_modules/@oclif/core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-4.10.3.tgz", - "integrity": "sha512-0mD8vcrrX5uRsxzvI8tbWmSVGngvZA/Qo6O0ZGvLPAWEauSf5GFniwgirhY0SkszuHwu0S1J1ivj/jHmqtIDuA==", + "version": "4.10.5", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-4.10.5.tgz", + "integrity": "sha512-qcdCF7NrdWPfme6Kr34wwljRCXbCVpL1WVxiNy0Ep6vbWKjxAjFQwuhqkoyL0yjI+KdwtLcOCGn5z2yzdijc8w==", "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.2", @@ -3704,7 +3696,7 @@ "indent-string": "^4.0.0", "is-wsl": "^2.2.0", "lilconfig": "^3.1.3", - "minimatch": "^10.2.4", + "minimatch": "^10.2.5", "semver": "^7.7.3", "string-width": "^4.2.3", "supports-color": "^8", @@ -3781,9 +3773,9 @@ } }, "node_modules/@oclif/plugin-help": { - "version": "6.2.41", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.41.tgz", - "integrity": "sha512-oHqpm9a8NnLY9J5yIA+znchB2QCBqDUu5n7XINdZwfbhO6WOUZ2ANww6QN7crhvAKgpN5HK/ELN8Hy96kgLUuA==", + "version": "6.2.44", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.44.tgz", + "integrity": "sha512-x03Se2LtlOOlGfTuuubt5C4Z8NHeR4zKXtVnfycuLU+2VOMu2WpsGy9nbs3nYuInuvsIY1BizjVaTjUz060Sig==", "license": "MIT", "dependencies": { "@oclif/core": "^4" @@ -3793,13 +3785,13 @@ } }, "node_modules/@oclif/plugin-not-found": { - "version": "3.2.78", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.78.tgz", - "integrity": "sha512-wFg7rUYUxYsBMl0fEBHOJ+GAO0/3Nwpn4scmkqV3IQdch7+N1ke8qFOzLZal0kpa0wt+Tr/aJvaT8iYccPGZDQ==", + "version": "3.2.80", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.80.tgz", + "integrity": "sha512-yTLjWvR1r/Rd/cO2LxHdMCDoL5sQhBYRUcOMCmxZtWVWhx4rAZ8KVUPDVsb+SvjJDV5ADTDBgt1H52fFx7YWqg==", "license": "MIT", "dependencies": { "@inquirer/prompts": "^7.10.1", - "@oclif/core": "^4.10.3", + "@oclif/core": "^4.10.5", "ansis": "^3.17.0", "fast-levenshtein": "^3.0.0" }, @@ -3980,12 +3972,11 @@ } }, "node_modules/@portabletext/editor": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@portabletext/editor/-/editor-6.6.0.tgz", - "integrity": "sha512-QDSjYB2OCRwEpES9bt4SxDj8fufpzrF/J6Lsqb6kP1Sxp8hiK5DBLx8WKgnbIFcfiw6+7kzOvD8Nx3EyUAQo2g==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@portabletext/editor/-/editor-6.6.2.tgz", + "integrity": "sha512-GFRnB8/LZe4veGl8w/cpozs7QwqkMeR8cJ4oNLUUl+A6p4s9feLYVuXBKch+V0WuNtdAWVVHV1WF5t+a8z4cnQ==", "license": "MIT", "dependencies": { - "@juggle/resize-observer": "^3.4.0", "@portabletext/html": "^1.0.1", "@portabletext/keyboard-shortcuts": "^2.1.2", "@portabletext/markdown": "^1.2.0", @@ -3995,7 +3986,7 @@ "@xstate/react": "^6.1.0", "debug": "^4.4.3", "scroll-into-view-if-needed": "^3.1.0", - "xstate": "^5.28.0" + "xstate": "^5.30.0" }, "engines": { "node": ">=20.19 <22 || >=22.12" @@ -4054,96 +4045,96 @@ } }, "node_modules/@portabletext/plugin-character-pair-decorator": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-character-pair-decorator/-/plugin-character-pair-decorator-7.0.23.tgz", - "integrity": "sha512-1YNIZD+MO7zDGOXa1VJBCu6laO1W1dVqNUC4tbOM6x99HmZ/78xC6itrBwVaYxF76SVtTDwhLTlOAczTanFrbA==", + "version": "7.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-character-pair-decorator/-/plugin-character-pair-decorator-7.0.25.tgz", + "integrity": "sha512-clivFfN6QP+74md1E2KPOICjVX1T1rOCpHkShbxfhzN3fUrFwww3sfvzdaKDa9UcCSttXEm8oxdGLdT0NUm2jg==", "license": "MIT", "dependencies": { "@xstate/react": "^6.1.0", "remeda": "^2.32.0", - "xstate": "^5.28.0" + "xstate": "^5.30.0" }, "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, "node_modules/@portabletext/plugin-input-rule": { - "version": "4.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-input-rule/-/plugin-input-rule-4.0.23.tgz", - "integrity": "sha512-fN7sbAvQzRF01qh6nvI6ISVdQLFykMGnVLNqBtuUM2wOivxx8PGhP063MExejsEZFpTwzunaugxBtcz1vcEelw==", + "version": "4.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-input-rule/-/plugin-input-rule-4.0.25.tgz", + "integrity": "sha512-MyLeZ9Wx5Cm3i5OxdL1ikba2jqB5bDM7AnGDNT6WYD8+KfgufUVPQIsI8QuYTI5yjVpcadzbKL/gky1zOLZ0ew==", "license": "MIT", "dependencies": { "@xstate/react": "^6.1.0", - "xstate": "^5.28.0" + "xstate": "^5.30.0" }, "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, "node_modules/@portabletext/plugin-markdown-shortcuts": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-markdown-shortcuts/-/plugin-markdown-shortcuts-7.0.23.tgz", - "integrity": "sha512-H297UnpYstU8lqf4nm4K2IUOUf2O+0YiFnq5jLbqj219FjX9/ptp/ULdP3QtXi3oeaeeL+be38ulsWsJ1DOsFA==", + "version": "7.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-markdown-shortcuts/-/plugin-markdown-shortcuts-7.0.25.tgz", + "integrity": "sha512-RZP5Tg6vnUSMYSYAQV9hTyC2+k2UgSx0R3QpuMg1qcewAt0OSnP8MSshaJsaNL7zUu+XbFSJmfPgq5m/ZwwOZQ==", "license": "MIT", "dependencies": { - "@portabletext/plugin-character-pair-decorator": "^7.0.23", - "@portabletext/plugin-input-rule": "^4.0.23" + "@portabletext/plugin-character-pair-decorator": "^7.0.25", + "@portabletext/plugin-input-rule": "^4.0.25" }, "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, "node_modules/@portabletext/plugin-one-line": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-one-line/-/plugin-one-line-6.0.23.tgz", - "integrity": "sha512-9fDw+0wqwCZ0Msnd7IASc2Z8DAeshfvwuC55MvYkDqeL/bCMt1MNcSw5WdnSAO15IrS1Sd7X4Pxp80YW0Ay8Ng==", + "version": "6.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-one-line/-/plugin-one-line-6.0.25.tgz", + "integrity": "sha512-3oNtie5Y421jIAo1cJ1Jd+8OQ8k0dHeHiEKjEgZNBD2gPV1S63QihUdE6DhF3KDUBTE9eLLMoKJVAL4x2Clkfw==", "license": "MIT", "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, "node_modules/@portabletext/plugin-paste-link": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-paste-link/-/plugin-paste-link-3.0.23.tgz", - "integrity": "sha512-KUBHFCe6OuPOlKcU2AHjq/J6sjaarpyRmqsdo0qyLsZFY+nphUEXJjZGw+AE9cwDaDybSsGA/J1K8YM+0Kz7Qw==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-paste-link/-/plugin-paste-link-3.0.25.tgz", + "integrity": "sha512-nX405FWJ5yC66yQPa2TQYOtqkOxWEFRQwBFRaAdMcG66b6JXZrFvOM3bgbXtQAMqn8t7w7y8DDQovQqC6wd0Vw==", "license": "MIT", "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, "node_modules/@portabletext/plugin-typography": { - "version": "7.0.23", - "resolved": "https://registry.npmjs.org/@portabletext/plugin-typography/-/plugin-typography-7.0.23.tgz", - "integrity": "sha512-psEHXfW7KpBAoTan7k1YfHbS/srh0jpsZQdO3TZ2fzt6f87cIVPjjwpIjkY97XXOpSZRYcE2/ENCQKv1gydGqg==", + "version": "7.0.25", + "resolved": "https://registry.npmjs.org/@portabletext/plugin-typography/-/plugin-typography-7.0.25.tgz", + "integrity": "sha512-AyCyMqQ7jJRzRQs6xw6ChlhVjKblcS+1Q4W879m2HsCQSaWUEmdiud2/W1jiv7JaZwiYUAXGl2m1bR/PZzpj4A==", "license": "MIT", "dependencies": { - "@portabletext/plugin-input-rule": "^4.0.23" + "@portabletext/plugin-input-rule": "^4.0.25" }, "engines": { "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "react": "^19.2" } }, @@ -4259,9 +4250,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", - "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", "cpu": [ "arm" ], @@ -4272,9 +4263,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", - "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", "cpu": [ "arm64" ], @@ -4285,9 +4276,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", - "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", "cpu": [ "arm64" ], @@ -4298,9 +4289,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", - "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", "cpu": [ "x64" ], @@ -4311,9 +4302,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", - "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", "cpu": [ "arm64" ], @@ -4324,9 +4315,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", - "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", "cpu": [ "x64" ], @@ -4337,9 +4328,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", - "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", "cpu": [ "arm" ], @@ -4350,9 +4341,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", - "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", "cpu": [ "arm" ], @@ -4363,9 +4354,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", - "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", "cpu": [ "arm64" ], @@ -4376,9 +4367,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", - "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", "cpu": [ "arm64" ], @@ -4389,9 +4380,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", - "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", "cpu": [ "loong64" ], @@ -4402,9 +4393,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", - "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", "cpu": [ "loong64" ], @@ -4415,9 +4406,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", - "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", "cpu": [ "ppc64" ], @@ -4428,9 +4419,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", - "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", "cpu": [ "ppc64" ], @@ -4441,9 +4432,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", - "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", "cpu": [ "riscv64" ], @@ -4454,9 +4445,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", - "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", "cpu": [ "riscv64" ], @@ -4467,9 +4458,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", - "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", "cpu": [ "s390x" ], @@ -4480,9 +4471,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", - "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", "cpu": [ "x64" ], @@ -4493,9 +4484,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", - "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", "cpu": [ "x64" ], @@ -4506,9 +4497,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", - "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", "cpu": [ "x64" ], @@ -4519,9 +4510,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", - "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", "cpu": [ "arm64" ], @@ -4532,9 +4523,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", - "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", "cpu": [ "arm64" ], @@ -4545,9 +4536,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", - "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", "cpu": [ "ia32" ], @@ -4558,9 +4549,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", - "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", "cpu": [ "x64" ], @@ -4571,9 +4562,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", - "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", "cpu": [ "x64" ], @@ -4624,9 +4615,9 @@ } }, "node_modules/@sanity/blueprints": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@sanity/blueprints/-/blueprints-0.15.0.tgz", - "integrity": "sha512-7MhzPFR0GamCYkxGlUVpMzX9VJxu/M3eWnaNtTQRu/aguE0eprKb+1H3LDvtlqQAEmLQlVdln96DuCXm6wW1/Q==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@sanity/blueprints/-/blueprints-0.15.2.tgz", + "integrity": "sha512-6FdEcZMBuxdtfpCikb4l4yqnluxoGj4S75WDNtAXbNVjXJicpFzjwjMeoGtmsKcBbj80Lll1UONydqnYQRbILw==", "license": "MIT", "engines": { "node": ">=20" @@ -4642,16 +4633,16 @@ } }, "node_modules/@sanity/cli": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@sanity/cli/-/cli-6.3.1.tgz", - "integrity": "sha512-yHAKvVN5khPSpHoM+xNPZ99eVLtimfrj2BPymzy4V5EdSekatKj3UTBrHojsMJCgqlnDDe9IgE0rICGSv7XytQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@sanity/cli/-/cli-6.4.0.tgz", + "integrity": "sha512-nEXm+5VItVaczBTeWW5KZBs1QHItz9OdvHdUfsIFsnXYgcIvxAH/7Iclq2+iBXxDkzEqnan/XrusJZRWLZe2QA==", "license": "MIT", "dependencies": { - "@oclif/core": "^4.10.2", - "@oclif/plugin-help": "^6.2.40", - "@oclif/plugin-not-found": "^3.2.77", - "@sanity/cli-core": "^1.3.0", - "@sanity/client": "^7.20.0", + "@oclif/core": "^4.10.5", + "@oclif/plugin-help": "^6.2.44", + "@oclif/plugin-not-found": "^3.2.80", + "@sanity/cli-core": "^1.3.1", + "@sanity/client": "^7.21.0", "@sanity/codegen": "^6.0.2", "@sanity/descriptors": "^1.3.0", "@sanity/export": "^6.1.0", @@ -4659,11 +4650,11 @@ "@sanity/id-utils": "^1.0.0", "@sanity/import": "^6.0.1", "@sanity/migrate": "^6.1.1", - "@sanity/runtime-cli": "^14.7.2", - "@sanity/schema": "^5.18.0", + "@sanity/runtime-cli": "^14.12.0", + "@sanity/schema": "^5.20.0", "@sanity/telemetry": "^0.9.0", "@sanity/template-validator": "^3.1.0", - "@sanity/types": "^5.18.0", + "@sanity/types": "^5.20.0", "@sanity/ui": "^3.1.14", "@sanity/worker-channels": "^2.0.0", "@vercel/frameworks": "3.21.1", @@ -4677,13 +4668,14 @@ "execa": "^9.6.0", "form-data": "^4.0.5", "get-latest-version": "^6.0.1", + "groq-js": "^1.29.0", "gunzip-maybe": "^1.4.2", "import-meta-resolve": "^4.2.0", "is-installed-globally": "^1.0.0", "isomorphic-dompurify": "^2.32.0", "json5": "^2.2.3", "jsonc-parser": "^3.3.1", - "lodash-es": "^4.17.23", + "lodash-es": "^4.18.1", "minimist": "^1.2.8", "nanoid": "^5.1.6", "node-html-parser": "^7.0.1", @@ -4707,10 +4699,10 @@ "tar": "^7.5.13", "tar-fs": "^3.1.2", "tar-stream": "^3.1.8", - "tinyglobby": "^0.2.15", + "tinyglobby": "^0.2.16", "tsx": "^4.21.0", "typeid-js": "^1.2.0", - "vite": "^7.3.1", + "vite": "^7.3.2", "which": "^6.0.1", "yaml": "^2.8.3", "zod": "^4.3.6" @@ -4723,58 +4715,55 @@ } }, "node_modules/@sanity/cli-core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@sanity/cli-core/-/cli-core-1.3.0.tgz", - "integrity": "sha512-PA7kYu2KL+6f5N4U6eMWcboFmNY7Cj+kHYgSNrM7TQWfH5Wgx+cGi8zCaFszkxdTm86GHy9Cw+WTCkfBE9D8Xw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sanity/cli-core/-/cli-core-1.3.1.tgz", + "integrity": "sha512-/s91Tzg3XeK8pHFMqgZQUj4vXdJ5ZUCOpPwlc9lnOXUBKF8fh8t4YI5jctBJkzcgxuV8E4L7VVK34qtRfwYPxQ==", "license": "MIT", "dependencies": { "@inquirer/prompts": "^8.3.0", - "@oclif/core": "^4.10.2", + "@oclif/core": "^4.10.5", "@rexxars/jiti": "^2.6.2", - "@sanity/client": "^7.20.0", + "@sanity/client": "^7.21.0", "babel-plugin-react-compiler": "^1.0.0", "boxen": "^8.0.1", "debug": "^4.4.3", "get-it": "^8.7.0", "get-tsconfig": "^4.13.7", "import-meta-resolve": "^4.2.0", - "jsdom": "^29.0.1", + "jsdom": "^29.0.2", "json-lexer": "^1.2.0", "log-symbols": "^7.0.1", "ora": "^9.0.0", "read-package-up": "^12.0.0", "rxjs": "^7.8.2", "tsx": "^4.21.0", - "vite": "^7.3.1", + "vite": "^7.3.2", "vite-node": "^5.3.0", "zod": "^4.3.6" }, "engines": { "node": ">=20.19.1 <22 || >=22.12" - }, - "peerDependencies": { - "@sanity/telemetry": ">=0.9.0 <0.10.0" } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/ansi": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.4.tgz", - "integrity": "sha512-DpcZrQObd7S0R/U3bFdkcT5ebRwbTTC4D3tCc1vsJizmgPLxNJBo+AAFmrZwe8zk30P2QzgzGWZ3Q9uJwWuhIg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.5.tgz", + "integrity": "sha512-doc2sWgJpbFQ64UflSVd17ibMGDuxO1yKgOgLMwavzESnXjFWJqUeG8saYosqKpHp4kWiM5x1nXvEjbpx90gzw==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/checkbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.2.tgz", - "integrity": "sha512-PubpMPO2nJgMufkoB3P2wwxNXEMUXnBIKi/ACzDUYfaoPuM7gSTmuxJeMscoLVEsR4qqrCMf5p0SiYGWnVJ8kw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.4.tgz", + "integrity": "sha512-w6KF8ZYRvqHhROkOTHXYC3qIV/KYEu5o12oLqQySvch61vrYtRxNSHTONSdJqWiFJPlCUQAHT5OgOIyuTr+MHQ==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4789,13 +4778,13 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/confirm": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.10.tgz", - "integrity": "sha512-tiNyA73pgpQ0FQ7axqtoLUe4GDYjNCDcVsbgcA5anvwg2z6i+suEngLKKJrWKJolT//GFPZHwN30binDIHgSgQ==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.12.tgz", + "integrity": "sha512-h9FgGun3QwVYNj5TWIZZ+slii73bMoBFjPfVIGtnFuL4t8gBiNDV9PcSfIzkuxvgquJKt9nr1QzszpBzTbH8Og==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4810,14 +4799,14 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/core": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.7.tgz", - "integrity": "sha512-1BiBNDk9btIwYIzNZpkikIHXWeNzNncJePPqwDyVMhXhD1ebqbpn1mKGctpoqAbzywZfdG0O4tvmsGIcOevAPQ==", + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.9.tgz", + "integrity": "sha512-BDE4fG22uYh1bGSifcj7JSx119TVYNViMhMu85usp4Fswrzh6M0DV3yld64jA98uOAa2GSQ4Bg4bZRm2d2cwSg==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4", + "@inquirer/ansi": "^2.0.5", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", @@ -4836,14 +4825,14 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/editor": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.10.tgz", - "integrity": "sha512-VJx4XyaKea7t8hEApTw5dxeIyMtWXre2OiyJcICCRZI4hkoHsMoCnl/KbUnJJExLbH9csLLHMVR144ZhFE1CwA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.1.1.tgz", + "integrity": "sha512-6y11LgmNpmn5D2aB5FgnCfBUBK8ZstwLCalyJmORcJZ/WrhOjm16mu6eSqIx8DnErxDqSLr+Jkp+GP8/Nwd5tA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/external-editor": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/external-editor": "^3.0.0", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4858,13 +4847,13 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/expand": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.10.tgz", - "integrity": "sha512-fC0UHJPXsTRvY2fObiwuQYaAnHrp3aDqfwKUJSdfpgv18QUG054ezGbaRNStk/BKD5IPijeMKWej8VV8O5Q/eQ==", + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.13.tgz", + "integrity": "sha512-dF2zvrFo9LshkcB23/O1il13kBkBltWIXzut1evfbuBLXMiGIuC45c+ZQ0uukjCDsvI8OWqun4FRYMnzFCQa3g==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4879,9 +4868,9 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/external-editor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.4.tgz", - "integrity": "sha512-Prenuv9C1PHj2Itx0BcAOVBTonz02Hc2Nd2DbU67PdGUaqn0nPCnV34oDyyoaZHnmfRxkpuhh/u51ThkrO+RdA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-lDSwMgg+M5rq6JKBYaJwSX6T9e/HK2qqZ1oxmOwn4AQoJE5D+7TumsxLGC02PWS//rkIVqbZv3XA3ejsc9FYvg==", "license": "MIT", "dependencies": { "chardet": "^2.1.1", @@ -4900,22 +4889,22 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/figures": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.4.tgz", - "integrity": "sha512-eLBsjlS7rPS3WEhmOmh1znQ5IsQrxWzxWDxO51e4urv+iVrSnIHbq4zqJIOiyNdYLa+BVjwOtdetcQx1lWPpiQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.5.tgz", + "integrity": "sha512-NsSs4kzfm12lNetHwAn3GEuH317IzpwrMCbOuMIVytpjnJ90YYHNwdRgYGuKmVxwuIqSgqk3M5qqQt1cDk0tGQ==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/input": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.10.tgz", - "integrity": "sha512-nvZ6qEVeX/zVtZ1dY2hTGDQpVGD3R7MYPLODPgKO8Y+RAqxkrP3i/3NwF3fZpLdaMiNuK0z2NaYIx9tPwiSegQ==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.12.tgz", + "integrity": "sha512-uiMFBl4LqFzJClh80Q3f9hbOFJ6kgkDWI4LjAeBuyO6EanVVMF69AgOvpi1qdqjDSjDN6578B6nky9ceEpI+1Q==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4930,13 +4919,13 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/number": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.10.tgz", - "integrity": "sha512-Ht8OQstxiS3APMGjHV0aYAjRAysidWdwurWEo2i8yI5xbhOBWqizT0+MU1S2GCcuhIBg+3SgWVjEoXgfhY+XaA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.12.tgz", + "integrity": "sha512-/vrwhEf7Xsuh+YlHF4IjSy3g1cyrQuPaSiHIxCEbLu8qnfvrcvJyCkoktOOF+xV9gSb77/G0n3h04RbMDW2sIg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4951,14 +4940,14 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/password": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.10.tgz", - "integrity": "sha512-QbNyvIE8q2GTqKLYSsA8ATG+eETo+m31DSR0+AU7x3d2FhaTWzqQek80dj3JGTo743kQc6mhBR0erMjYw5jQ0A==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.12.tgz", + "integrity": "sha512-CBh7YHju623lxJRcAOo498ZUwIuMy63bqW/vVq0tQAZVv+lkWlHkP9ealYE1utWSisEShY5VMdzIXRmyEODzcQ==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4973,21 +4962,21 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/prompts": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.3.2.tgz", - "integrity": "sha512-yFroiSj2iiBFlm59amdTvAcQFvWS6ph5oKESls/uqPBect7rTU2GbjyZO2DqxMGuIwVA8z0P4K6ViPcd/cp+0w==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.4.2.tgz", + "integrity": "sha512-XJmn/wY4AX56l1BRU+ZjDrFtg9+2uBEi4JvJQj82kwJDQKiPgSn4CEsbfGGygS4Gw6rkL4W18oATjfVfaqub2Q==", "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.2", - "@inquirer/confirm": "^6.0.10", - "@inquirer/editor": "^5.0.10", - "@inquirer/expand": "^5.0.10", - "@inquirer/input": "^5.0.10", - "@inquirer/number": "^4.0.10", - "@inquirer/password": "^5.0.10", - "@inquirer/rawlist": "^5.2.6", - "@inquirer/search": "^4.1.6", - "@inquirer/select": "^5.1.2" + "@inquirer/checkbox": "^5.1.4", + "@inquirer/confirm": "^6.0.12", + "@inquirer/editor": "^5.1.1", + "@inquirer/expand": "^5.0.13", + "@inquirer/input": "^5.0.12", + "@inquirer/number": "^4.0.12", + "@inquirer/password": "^5.0.12", + "@inquirer/rawlist": "^5.2.8", + "@inquirer/search": "^4.1.8", + "@inquirer/select": "^5.1.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5002,13 +4991,13 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/rawlist": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.6.tgz", - "integrity": "sha512-jfw0MLJ5TilNsa9zlJ6nmRM0ZFVZhhTICt4/6CU2Dv1ndY7l3sqqo1gIYZyMMDw0LvE1u1nzJNisfHEhJIxq5w==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.8.tgz", + "integrity": "sha512-Su7FQvp5buZmCymN3PPoYv31ZQQX4ve2j02k7piGgKAWgE+AQRB5YoYVveGXcl3TZ9ldgRMSxj56YfDFmmaqLg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5023,14 +5012,14 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/search": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.6.tgz", - "integrity": "sha512-3/6kTRae98hhDevENScy7cdFEuURnSpM3JbBNg8yfXLw88HgTOl+neUuy/l9W0No5NzGsLVydhBzTIxZP7yChQ==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.8.tgz", + "integrity": "sha512-fGiHKGD6DyPIYUWxoXnQTeXeyYqSOUrasDMABBmMHUalH/LxkuzY0xVRtimXAt1sUeeyYkVuKQx1bebMuN11Kw==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5045,15 +5034,15 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/select": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.2.tgz", - "integrity": "sha512-kTK8YIkHV+f02y7bWCh7E0u2/11lul5WepVTclr3UMBtBr05PgcZNWfMa7FY57ihpQFQH/spLMHTcr0rXy50tA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.4.tgz", + "integrity": "sha512-2kWcGKPMLAXAWRp1AH1SLsQmX+j0QjeljyXMUji9WMZC8nRDO0b7qquIGr6143E7KMLt3VAIGNXzwa/6PXQs4Q==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5068,9 +5057,9 @@ } }, "node_modules/@sanity/cli-core/node_modules/@inquirer/type": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.4.tgz", - "integrity": "sha512-PamArxO3cFJZoOzspzo6cxVlLeIftyBsZw/S9bKY5DzxqJVZgjoj1oP8d0rskKtp7sZxBycsoer1g6UeJV1BBA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.5.tgz", + "integrity": "sha512-aetVUNeKNc/VriqXlw1NRSW0zhMBB0W4bNbWRJgzRl/3d0QNDQFfk0GO5SDdtjMZVg6o8ZKEiadd7SCCzoOn5Q==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5169,18 +5158,18 @@ } }, "node_modules/@sanity/cli/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, "node_modules/@sanity/cli/node_modules/nanoid": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", - "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.9.tgz", + "integrity": "sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==", "funding": [ { "type": "github", @@ -5208,9 +5197,9 @@ } }, "node_modules/@sanity/cli/node_modules/undici": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.7.tgz", - "integrity": "sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", "license": "MIT", "engines": { "node": ">=20.18.1" @@ -5232,13 +5221,13 @@ } }, "node_modules/@sanity/client": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@sanity/client/-/client-7.20.0.tgz", - "integrity": "sha512-uKwfqA+UfyWH6QzqpDD2DQnZu+WRa2iCM3OJ9AoyDZB9oHLl2NKI+9mX1xEZ7PiBuq09pogI7sxKaTKnaB6d+g==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@sanity/client/-/client-7.21.0.tgz", + "integrity": "sha512-j3SdOGy9ggQSj9LtlrV8x4jaZgJmyYKNB5cXpXWkMLgi2/v0U+OTu0mHj17smioTdQSCHuVyJaxGcdpu3hxoOA==", "license": "MIT", "dependencies": { "@sanity/eventsource": "^5.0.2", - "get-it": "^8.7.0", + "get-it": "^8.7.2", "nanoid": "^3.3.11", "rxjs": "^7.0.0" }, @@ -5318,15 +5307,6 @@ "node": ">= 6" } }, - "node_modules/@sanity/codegen/node_modules/groq": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/groq/-/groq-5.19.0.tgz", - "integrity": "sha512-59XhBOC5pqNg4+3yPKerERkq2LS9qUCmBrPC2i2d5HwYK5FR+MGZb+1g7jBOUSenB2UIxBVwM537YVXr+lzDvQ==", - "license": "MIT", - "engines": { - "node": ">=20.19 <22 || >=22.12" - } - }, "node_modules/@sanity/codegen/node_modules/picomatch": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", @@ -5400,9 +5380,9 @@ } }, "node_modules/@sanity/diff": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/diff/-/diff-5.20.0.tgz", - "integrity": "sha512-KRz+YFERunFAb52zUB43BWG3AO/GejpFvIvlGbF8+2ZkwNDJYyNmGrD0AEbrhlhyjjIG8Nw35MaE1dd+eHVvrA==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/diff/-/diff-5.22.0.tgz", + "integrity": "sha512-eZUIxBKNUxSnPdZrTthv8lH9bmqt422oRI6bU3xB+xdijouaR6qUaWPayicEZNqWHlMkileVKh19JtVTQtjyMw==", "license": "MIT", "dependencies": { "@sanity/diff-match-patch": "^3.2.0" @@ -5560,9 +5540,9 @@ } }, "node_modules/@sanity/insert-menu": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@sanity/insert-menu/-/insert-menu-3.0.4.tgz", - "integrity": "sha512-90Sky6kraYuoGllbhHe2sYVOHLsRNJCMf/JjjEhsBv5MFNvV7TLIkNeajT4DpI4hMDC0D47d7TYPZJxwAjLP2A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@sanity/insert-menu/-/insert-menu-3.0.5.tgz", + "integrity": "sha512-JoOOld7slVC9kbCUWQoGXG35MZ8kbnKkWOJVRkXXC3djVmM3ZcJa0tVzlKW+iHKurtP1sqivEtfwxm0DCs27Wg==", "license": "MIT", "dependencies": { "@sanity/icons": "^3.7.4", @@ -5587,6 +5567,18 @@ "node": ">=18.2" } }, + "node_modules/@sanity/lezer-groq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@sanity/lezer-groq/-/lezer-groq-1.0.3.tgz", + "integrity": "sha512-Vw27wIH+eoqcefadRTmeV2f6hnpocwUk3f2HhkQ15beCy8YkzEeV8Gp+gG/nJP8Y4nYzjbK1XOSP88ju2T8YEA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, "node_modules/@sanity/logos": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@sanity/logos/-/logos-2.2.2.tgz", @@ -5603,15 +5595,15 @@ } }, "node_modules/@sanity/media-library-types": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sanity/media-library-types/-/media-library-types-1.2.0.tgz", - "integrity": "sha512-p+Bw96I63SwBcMNA/L5dnMdEcS88EEDUDZ65LGuwOCMXrESRGMFCSxgc+0HnL0JXDIzgYgfrPuf1I3bO9QneAw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@sanity/media-library-types/-/media-library-types-1.4.0.tgz", + "integrity": "sha512-DZwNT+dDSc1JPW4e7U5C+IJELq5IAeU2A1UcY1079gl+Hakx2USvu5LyY1hrjb1eifRPAhL8uwOVcMNBUmSmzg==", "license": "MIT" }, "node_modules/@sanity/message-protocol": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@sanity/message-protocol/-/message-protocol-0.19.0.tgz", - "integrity": "sha512-E++I0J62x0ytvwqQjA1ZkfMR6kfwXNLjIvUzTQ5t3xJQ63LVnaPPToaMxs1ZxSPq4UJREM6oTYclgf6axIQR6g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@sanity/message-protocol/-/message-protocol-0.23.0.tgz", + "integrity": "sha512-UfQDuWRzbK4dRTfLURGCZo7ZlR0sK+2lwT2QMAfqsM5kMq5GR31lbX4LMcSw27h7rwUv8ZSf1hBEbluVpgRmlg==", "license": "MIT", "dependencies": { "@sanity/comlink": "^4.0.1" @@ -5673,9 +5665,9 @@ } }, "node_modules/@sanity/mutate/node_modules/nanoid": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", - "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.9.tgz", + "integrity": "sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==", "funding": [ { "type": "github", @@ -5691,13 +5683,13 @@ } }, "node_modules/@sanity/mutator": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/mutator/-/mutator-5.20.0.tgz", - "integrity": "sha512-xqrNrP8w4yKKUP3EQAjKCH0bSRJvb6ssrB6wBSYwh9vDnW7OjZ2KJZSRn2cH7tL0SjPdKygbf9nCW4s85HjPCw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/mutator/-/mutator-5.22.0.tgz", + "integrity": "sha512-tf+CNbyb9FmCsdW3gcBafJYyzIrvNvDz9FTnBf7EC9UcW0rNm6QFUfBwRhTCBdLv9eOytOlz/NGNn+ZkvtlzeA==", "license": "MIT", "dependencies": { "@sanity/diff-match-patch": "^3.2.0", - "@sanity/types": "5.20.0", + "@sanity/types": "5.22.0", "@sanity/uuid": "^3.0.2", "debug": "^4.4.3", "lodash-es": "^4.18.1" @@ -5717,9 +5709,9 @@ } }, "node_modules/@sanity/preview-url-secret": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@sanity/preview-url-secret/-/preview-url-secret-4.0.4.tgz", - "integrity": "sha512-/xu3OwII4h7hoA9oMVpPIGDfVkKW8xg92dGdN9ofjwEPqgmU8/RJkGYrDrs+LIfmOYzhkslcY9BgecCqQzt3lw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@sanity/preview-url-secret/-/preview-url-secret-4.0.5.tgz", + "integrity": "sha512-49MozhFS8U5RxnNL3+WtCgX2v554dtmoR79amzT4dYu1beV+6BQGcro1VeC+bgW9XeZCg6o2rCKbvnu7ukQbKg==", "license": "MIT", "dependencies": { "@sanity/uuid": "3.0.2" @@ -5728,13 +5720,27 @@ "node": ">=20.19 <22 || >=22.12" }, "peerDependencies": { - "@sanity/client": "^7.18.0" + "@sanity/client": "^7.21.0" + } + }, + "node_modules/@sanity/prism-groq": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sanity/prism-groq/-/prism-groq-1.1.2.tgz", + "integrity": "sha512-McMw9U5kuYAgIwyNodhFKdarM0cPme6UYBR6ms6YBNEO8Qqu5zGHydUeORaJ/w4qdFKGB1oWjBjy525ed6LXaQ==", + "license": "MIT", + "peerDependencies": { + "prismjs": ">=1.0.0" + }, + "peerDependenciesMeta": { + "prismjs": { + "optional": true + } } }, "node_modules/@sanity/runtime-cli": { - "version": "14.8.3", - "resolved": "https://registry.npmjs.org/@sanity/runtime-cli/-/runtime-cli-14.8.3.tgz", - "integrity": "sha512-owGLzAxcNXA8rem+dIhBEe+JtX3FtXPbI03QBIymYkfKrndCBh8bUUQ/THgl92XBTLzZhxFKRNhIU1KibDHdNA==", + "version": "14.13.3", + "resolved": "https://registry.npmjs.org/@sanity/runtime-cli/-/runtime-cli-14.13.3.tgz", + "integrity": "sha512-fjPthbTpRfYl9w1y5LEFmc2f/QIvsqtlLaa3305ex0ilLhCNAlNo2KdkXntdJ/CVTwqJEE9jgNspBNPqpq4UHw==", "license": "MIT", "dependencies": { "@architect/hydrate": "^5.0.2", @@ -5768,24 +5774,24 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/ansi": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.4.tgz", - "integrity": "sha512-DpcZrQObd7S0R/U3bFdkcT5ebRwbTTC4D3tCc1vsJizmgPLxNJBo+AAFmrZwe8zk30P2QzgzGWZ3Q9uJwWuhIg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.5.tgz", + "integrity": "sha512-doc2sWgJpbFQ64UflSVd17ibMGDuxO1yKgOgLMwavzESnXjFWJqUeG8saYosqKpHp4kWiM5x1nXvEjbpx90gzw==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/checkbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.2.tgz", - "integrity": "sha512-PubpMPO2nJgMufkoB3P2wwxNXEMUXnBIKi/ACzDUYfaoPuM7gSTmuxJeMscoLVEsR4qqrCMf5p0SiYGWnVJ8kw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.4.tgz", + "integrity": "sha512-w6KF8ZYRvqHhROkOTHXYC3qIV/KYEu5o12oLqQySvch61vrYtRxNSHTONSdJqWiFJPlCUQAHT5OgOIyuTr+MHQ==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5800,13 +5806,13 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/confirm": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.10.tgz", - "integrity": "sha512-tiNyA73pgpQ0FQ7axqtoLUe4GDYjNCDcVsbgcA5anvwg2z6i+suEngLKKJrWKJolT//GFPZHwN30binDIHgSgQ==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.12.tgz", + "integrity": "sha512-h9FgGun3QwVYNj5TWIZZ+slii73bMoBFjPfVIGtnFuL4t8gBiNDV9PcSfIzkuxvgquJKt9nr1QzszpBzTbH8Og==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5821,14 +5827,14 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/core": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.7.tgz", - "integrity": "sha512-1BiBNDk9btIwYIzNZpkikIHXWeNzNncJePPqwDyVMhXhD1ebqbpn1mKGctpoqAbzywZfdG0O4tvmsGIcOevAPQ==", + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.9.tgz", + "integrity": "sha512-BDE4fG22uYh1bGSifcj7JSx119TVYNViMhMu85usp4Fswrzh6M0DV3yld64jA98uOAa2GSQ4Bg4bZRm2d2cwSg==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4", + "@inquirer/ansi": "^2.0.5", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", @@ -5847,14 +5853,14 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/editor": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.10.tgz", - "integrity": "sha512-VJx4XyaKea7t8hEApTw5dxeIyMtWXre2OiyJcICCRZI4hkoHsMoCnl/KbUnJJExLbH9csLLHMVR144ZhFE1CwA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.1.1.tgz", + "integrity": "sha512-6y11LgmNpmn5D2aB5FgnCfBUBK8ZstwLCalyJmORcJZ/WrhOjm16mu6eSqIx8DnErxDqSLr+Jkp+GP8/Nwd5tA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/external-editor": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/external-editor": "^3.0.0", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5869,13 +5875,13 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/expand": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.10.tgz", - "integrity": "sha512-fC0UHJPXsTRvY2fObiwuQYaAnHrp3aDqfwKUJSdfpgv18QUG054ezGbaRNStk/BKD5IPijeMKWej8VV8O5Q/eQ==", + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.13.tgz", + "integrity": "sha512-dF2zvrFo9LshkcB23/O1il13kBkBltWIXzut1evfbuBLXMiGIuC45c+ZQ0uukjCDsvI8OWqun4FRYMnzFCQa3g==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5890,9 +5896,9 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/external-editor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.4.tgz", - "integrity": "sha512-Prenuv9C1PHj2Itx0BcAOVBTonz02Hc2Nd2DbU67PdGUaqn0nPCnV34oDyyoaZHnmfRxkpuhh/u51ThkrO+RdA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-lDSwMgg+M5rq6JKBYaJwSX6T9e/HK2qqZ1oxmOwn4AQoJE5D+7TumsxLGC02PWS//rkIVqbZv3XA3ejsc9FYvg==", "license": "MIT", "dependencies": { "chardet": "^2.1.1", @@ -5911,22 +5917,22 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/figures": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.4.tgz", - "integrity": "sha512-eLBsjlS7rPS3WEhmOmh1znQ5IsQrxWzxWDxO51e4urv+iVrSnIHbq4zqJIOiyNdYLa+BVjwOtdetcQx1lWPpiQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.5.tgz", + "integrity": "sha512-NsSs4kzfm12lNetHwAn3GEuH317IzpwrMCbOuMIVytpjnJ90YYHNwdRgYGuKmVxwuIqSgqk3M5qqQt1cDk0tGQ==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/input": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.10.tgz", - "integrity": "sha512-nvZ6qEVeX/zVtZ1dY2hTGDQpVGD3R7MYPLODPgKO8Y+RAqxkrP3i/3NwF3fZpLdaMiNuK0z2NaYIx9tPwiSegQ==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.12.tgz", + "integrity": "sha512-uiMFBl4LqFzJClh80Q3f9hbOFJ6kgkDWI4LjAeBuyO6EanVVMF69AgOvpi1qdqjDSjDN6578B6nky9ceEpI+1Q==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5941,13 +5947,13 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/number": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.10.tgz", - "integrity": "sha512-Ht8OQstxiS3APMGjHV0aYAjRAysidWdwurWEo2i8yI5xbhOBWqizT0+MU1S2GCcuhIBg+3SgWVjEoXgfhY+XaA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.12.tgz", + "integrity": "sha512-/vrwhEf7Xsuh+YlHF4IjSy3g1cyrQuPaSiHIxCEbLu8qnfvrcvJyCkoktOOF+xV9gSb77/G0n3h04RbMDW2sIg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5962,14 +5968,14 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/password": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.10.tgz", - "integrity": "sha512-QbNyvIE8q2GTqKLYSsA8ATG+eETo+m31DSR0+AU7x3d2FhaTWzqQek80dj3JGTo743kQc6mhBR0erMjYw5jQ0A==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.12.tgz", + "integrity": "sha512-CBh7YHju623lxJRcAOo498ZUwIuMy63bqW/vVq0tQAZVv+lkWlHkP9ealYE1utWSisEShY5VMdzIXRmyEODzcQ==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -5984,21 +5990,21 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/prompts": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.3.2.tgz", - "integrity": "sha512-yFroiSj2iiBFlm59amdTvAcQFvWS6ph5oKESls/uqPBect7rTU2GbjyZO2DqxMGuIwVA8z0P4K6ViPcd/cp+0w==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.4.2.tgz", + "integrity": "sha512-XJmn/wY4AX56l1BRU+ZjDrFtg9+2uBEi4JvJQj82kwJDQKiPgSn4CEsbfGGygS4Gw6rkL4W18oATjfVfaqub2Q==", "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.2", - "@inquirer/confirm": "^6.0.10", - "@inquirer/editor": "^5.0.10", - "@inquirer/expand": "^5.0.10", - "@inquirer/input": "^5.0.10", - "@inquirer/number": "^4.0.10", - "@inquirer/password": "^5.0.10", - "@inquirer/rawlist": "^5.2.6", - "@inquirer/search": "^4.1.6", - "@inquirer/select": "^5.1.2" + "@inquirer/checkbox": "^5.1.4", + "@inquirer/confirm": "^6.0.12", + "@inquirer/editor": "^5.1.1", + "@inquirer/expand": "^5.0.13", + "@inquirer/input": "^5.0.12", + "@inquirer/number": "^4.0.12", + "@inquirer/password": "^5.0.12", + "@inquirer/rawlist": "^5.2.8", + "@inquirer/search": "^4.1.8", + "@inquirer/select": "^5.1.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -6013,13 +6019,13 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/rawlist": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.6.tgz", - "integrity": "sha512-jfw0MLJ5TilNsa9zlJ6nmRM0ZFVZhhTICt4/6CU2Dv1ndY7l3sqqo1gIYZyMMDw0LvE1u1nzJNisfHEhJIxq5w==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.8.tgz", + "integrity": "sha512-Su7FQvp5buZmCymN3PPoYv31ZQQX4ve2j02k7piGgKAWgE+AQRB5YoYVveGXcl3TZ9ldgRMSxj56YfDFmmaqLg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -6034,14 +6040,14 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/search": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.6.tgz", - "integrity": "sha512-3/6kTRae98hhDevENScy7cdFEuURnSpM3JbBNg8yfXLw88HgTOl+neUuy/l9W0No5NzGsLVydhBzTIxZP7yChQ==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.8.tgz", + "integrity": "sha512-fGiHKGD6DyPIYUWxoXnQTeXeyYqSOUrasDMABBmMHUalH/LxkuzY0xVRtimXAt1sUeeyYkVuKQx1bebMuN11Kw==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -6056,15 +6062,15 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/select": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.2.tgz", - "integrity": "sha512-kTK8YIkHV+f02y7bWCh7E0u2/11lul5WepVTclr3UMBtBr05PgcZNWfMa7FY57ihpQFQH/spLMHTcr0rXy50tA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.4.tgz", + "integrity": "sha512-2kWcGKPMLAXAWRp1AH1SLsQmX+j0QjeljyXMUji9WMZC8nRDO0b7qquIGr6143E7KMLt3VAIGNXzwa/6PXQs4Q==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.5", + "@inquirer/core": "^11.1.9", + "@inquirer/figures": "^2.0.5", + "@inquirer/type": "^4.0.5" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -6079,9 +6085,9 @@ } }, "node_modules/@sanity/runtime-cli/node_modules/@inquirer/type": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.4.tgz", - "integrity": "sha512-PamArxO3cFJZoOzspzo6cxVlLeIftyBsZw/S9bKY5DzxqJVZgjoj1oP8d0rskKtp7sZxBycsoer1g6UeJV1BBA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.5.tgz", + "integrity": "sha512-aetVUNeKNc/VriqXlw1NRSW0zhMBB0W4bNbWRJgzRl/3d0QNDQFfk0GO5SDdtjMZVg6o8ZKEiadd7SCCzoOn5Q==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -6105,14 +6111,14 @@ } }, "node_modules/@sanity/schema": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/schema/-/schema-5.20.0.tgz", - "integrity": "sha512-+UM5E0Sk/NpISMlx+wGB1oTUldt4IhbHMgl4olASLKIrqc0PYUAGv4KYC1ypY7aV7NkaYXrbyOAsryZw0aSMsA==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/schema/-/schema-5.22.0.tgz", + "integrity": "sha512-Pu64fj5mqfof9UeZSNE4Xkv/redO0C4W9UBrWAHB/zW5JI+7/Yucy5r/aAFI5yljEAT4Hj05ULdtTyMfHjakLA==", "license": "MIT", "dependencies": { "@sanity/descriptors": "^1.3.0", "@sanity/generate-help-url": "^4.0.0", - "@sanity/types": "5.20.0", + "@sanity/types": "5.22.0", "arrify": "^2.0.1", "groq-js": "^1.29.0", "humanize-list": "^1.0.1", @@ -6122,28 +6128,32 @@ } }, "node_modules/@sanity/sdk": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@sanity/sdk/-/sdk-2.1.2.tgz", - "integrity": "sha512-gRBMDNvMUqlFTVoNgOLtcOFDO+e8Fh6v+BrEA4C5F18oi949ObjMmPB2aZMoyP3N3GQuqwVQP6L2PrhH70H7Bw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@sanity/sdk/-/sdk-2.9.0.tgz", + "integrity": "sha512-o4cAok0aJbyVa6EpzDp37e64CsSsmba4uYg3WGSoM8Txy62G6Qtpw8v0FvPJjQ5ZkKYUilx+XTp1uUGif+FraA==", "license": "MIT", "dependencies": { "@sanity/bifur-client": "^0.4.1", - "@sanity/client": "^7.2.1", + "@sanity/client": "^7.14.1", "@sanity/comlink": "^3.0.4", "@sanity/diff-match-patch": "^3.2.0", "@sanity/diff-patch": "^6.0.0", + "@sanity/id-utils": "^1.0.0", + "@sanity/image-url": "^2.0.3", "@sanity/json-match": "^1.0.5", - "@sanity/message-protocol": "^0.12.0", - "@sanity/mutate": "^0.12.4", - "@sanity/types": "^3.83.0", + "@sanity/message-protocol": "^0.18.0", + "@sanity/mutate": "^0.16.1", + "@sanity/telemetry": "^1.0.0", + "@sanity/types": "^5.2.0", "groq": "3.88.1-typegen-experimental.0", + "groq-js": "^1.19.0", "lodash-es": "^4.17.21", "reselect": "^5.1.1", "rxjs": "^7.8.2", "zustand": "^5.0.4" }, "engines": { - "node": ">=20.0.0" + "node": ">=20.19" } }, "node_modules/@sanity/sdk/node_modules/@sanity/bifur-client": { @@ -6183,79 +6193,76 @@ } }, "node_modules/@sanity/sdk/node_modules/@sanity/message-protocol": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@sanity/message-protocol/-/message-protocol-0.12.0.tgz", - "integrity": "sha512-RMRWQG5yVkCZnnBHW3qxVbZGUOeXPBzFPdD9+pynQCTVZI7zYBEzjnY8lcSYjty+0unDHqeoqMPfBXhqs0rg2g==", + "version": "0.18.2", + "resolved": "https://registry.npmjs.org/@sanity/message-protocol/-/message-protocol-0.18.2.tgz", + "integrity": "sha512-sxPpM0q6ozvoWCQMFwPfL0KR8nkNl5gOhzkEH0EE8RHWfxH7jqHtxnXC/AEk5f4o/PuGChcHDWUof97JZ6LInw==", "license": "MIT", "dependencies": { - "@sanity/comlink": "^2.0.1" + "@sanity/comlink": "^4.0.1" }, "engines": { "node": ">=20.0.0" } }, "node_modules/@sanity/sdk/node_modules/@sanity/message-protocol/node_modules/@sanity/comlink": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@sanity/comlink/-/comlink-2.0.5.tgz", - "integrity": "sha512-6Rbg71hkeoGInk/9hBsCUBCZ33IHSs2fZynAR85ANkXDM+WYiwRDlker7OngBkfbK8TF9+G797VjNMQQgJINiQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sanity/comlink/-/comlink-4.0.1.tgz", + "integrity": "sha512-vdGOd6sxNjqTo2H3Q3L2/Gepy+cDBiQ1mr9ck7c/A9o4NnmBLoDliifsNHIwgNwBUz37oH4+EIz/lIjNy8hSew==", "license": "MIT", "dependencies": { - "rxjs": "^7.8.1", - "uuid": "^11.0.4", - "xstate": "^5.19.1" + "rxjs": "^7.8.2", + "uuid": "^13.0.0", + "xstate": "^5.24.0" }, "engines": { - "node": ">=18" + "node": ">=20.19 <22 || >=22.12" + } + }, + "node_modules/@sanity/sdk/node_modules/@sanity/message-protocol/node_modules/uuid": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", + "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" } }, - "node_modules/@sanity/sdk/node_modules/@sanity/mutate": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/@sanity/mutate/-/mutate-0.12.6.tgz", - "integrity": "sha512-Ai9Dy0C79yUALnuLe0ealwqgz11T+ngpWCzTyZv01xdjB6coQo+KoM8E0FeRTK5Zr/IAgKphYuYLU5DFCB9cGw==", + "node_modules/@sanity/sdk/node_modules/@sanity/telemetry": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sanity/telemetry/-/telemetry-1.0.0.tgz", + "integrity": "sha512-3rhfq4AyDVqqIWPe5Izlu/3v5bcktLvc/jBKu0Umy2bovIImilcgcQKMdp4aq9T2ZCL7BDZm/Ng3Hhws/tOV3g==", "license": "MIT", "dependencies": { - "@sanity/client": "^7.9.0", - "@sanity/diff-match-patch": "^3.2.0", - "@sanity/uuid": "^3.0.2", - "hotscript": "^1.0.13", - "lodash": "^4.17.21", - "mendoza": "^3.0.8", - "nanoid": "^5.1.3", - "rxjs": "^7.8.2" + "rxjs": "^7.8.1", + "typeid-js": "^0.3.0" }, "engines": { - "node": ">=18" + "node": ">=16.0.0" + }, + "peerDependencies": { + "react": "^18.2 || ^19.0.0" } }, - "node_modules/@sanity/sdk/node_modules/@sanity/mutate/node_modules/nanoid": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", - "integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@sanity/sdk/node_modules/groq": { + "version": "3.88.1-typegen-experimental.0", + "resolved": "https://registry.npmjs.org/groq/-/groq-3.88.1-typegen-experimental.0.tgz", + "integrity": "sha512-6TZD6H1y3P7zk0BQharjFa7BOivV9nFL6KKVZbRZRH0yOSSyu2xHglTO48b1/2mCEdYoBQpvE7rjCDUf6XmQYQ==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, "engines": { - "node": "^18 || >=20" + "node": ">=18" } }, - "node_modules/@sanity/sdk/node_modules/@sanity/types": { - "version": "3.99.0", - "resolved": "https://registry.npmjs.org/@sanity/types/-/types-3.99.0.tgz", - "integrity": "sha512-a766U9VSoyOSWq+RZz9wsEo/Nnn+inDkEcdGu+rHFuygdepullB/RZpF2MxNsfUMCSPnajgG1Tm9lhwbSmlySA==", - "license": "MIT", + "node_modules/@sanity/sdk/node_modules/typeid-js": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/typeid-js/-/typeid-js-0.3.0.tgz", + "integrity": "sha512-A1EmvIWG6xwYRfHuYUjPltHqteZ1EiDG+HOmbIYXeHUVztmnGrPIfU9KIK1QC30x59ko0r4JsMlwzsALCyiB3Q==", + "license": "Apache-2.0", "dependencies": { - "@sanity/client": "^7.6.0", - "@sanity/media-library-types": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "18 || 19" + "uuidv7": "^0.4.4" } }, "node_modules/@sanity/sdk/node_modules/uuid": { @@ -6325,13 +6332,13 @@ } }, "node_modules/@sanity/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/types/-/types-5.20.0.tgz", - "integrity": "sha512-mcCX5neb8BTOLAqlHc/1Q3fECcEvXv7pqqBCh3ZrgUEL/Uj4B8LiOXIPtp8X27sCZw/hqB1a15wOTExoxqerSQ==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/types/-/types-5.22.0.tgz", + "integrity": "sha512-kHEcsltgMFSlIKZe1lG5LIHq5r+qpZ1LH/DNobGsJFjHJJfWmeuZZTx7pP36Rep4c3S/n24reHhS6sjAUngGnw==", "license": "MIT", "dependencies": { - "@sanity/client": "^7.18.0", - "@sanity/media-library-types": "^1.2.0" + "@sanity/client": "^7.21.0", + "@sanity/media-library-types": "^1.4.0" }, "peerDependencies": { "@types/react": "^19.2" @@ -6364,15 +6371,15 @@ } }, "node_modules/@sanity/util": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/util/-/util-5.20.0.tgz", - "integrity": "sha512-rj7uZTPKAk/2d/hP3GflU0+AZB3IsDlPISbYck3j6R0G/+k7qkDxSFKuMtJMF+pw3eG7kxNlosujOf/9oWwJ1g==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/util/-/util-5.22.0.tgz", + "integrity": "sha512-6Gx2ItWVSo2LjyQerbsXKxUpHT9sO48p89Umeomph4HsReF8yUPCO4/gz59SG25/E0aOySUrk0yAUEmY5wMDLw==", "license": "MIT", "dependencies": { "@date-fns/tz": "^1.4.1", "@date-fns/utc": "^2.1.1", - "@sanity/client": "^7.18.0", - "@sanity/types": "5.20.0", + "@sanity/client": "^7.21.0", + "@sanity/types": "5.22.0", "date-fns": "^4.1.0", "rxjs": "^7.8.2" }, @@ -6391,9 +6398,9 @@ } }, "node_modules/@sanity/vision": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@sanity/vision/-/vision-5.20.0.tgz", - "integrity": "sha512-mgrBnyx5A83+YttgOmLgqA0Jzg3IzXpuuTJOmwlSoaZL/RzEGvjctKpzuhq44SYM53AAAlCAV/2eYX13I4O9fg==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@sanity/vision/-/vision-5.22.0.tgz", + "integrity": "sha512-KUlN48cT6Qix45UcQ4anqzKi8TI9EGDhIZQVa4VwALZoHi62FMu6K7eeAZmY9IaSZa3/ceCeuy/d80jWkyYWBA==", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.20.0", @@ -6408,6 +6415,7 @@ "@rexxars/react-split-pane": "^1.0.0", "@sanity/color": "^3.0.6", "@sanity/icons": "^3.7.4", + "@sanity/lezer-groq": "^1.0.3", "@sanity/ui": "^3.1.14", "@sanity/uuid": "^3.0.2", "@uiw/react-codemirror": "^4.25.4", @@ -6681,15 +6689,6 @@ "integrity": "sha512-XQmGcbnxUNa06HR3VBVkc9+A2Vpi9ZyLJcdS5dwaQQ/4ZMWFO+5c90FnMUpbtMZwB/FChoYHwuVg8TvkECacTA==", "license": "MIT" }, - "node_modules/@types/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", @@ -6729,12 +6728,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@types/normalize-package-data": { @@ -6753,7 +6752,6 @@ "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -7711,9 +7709,9 @@ } }, "node_modules/bare-fs": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.6.tgz", - "integrity": "sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", "license": "Apache-2.0", "dependencies": { "bare-events": "^2.5.4", @@ -7735,9 +7733,9 @@ } }, "node_modules/bare-os": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.6.tgz", - "integrity": "sha512-l8xaNWWb/bXuzgsrlF5jaa5QYDJ9S0ddd54cP6CH+081+5iPrbJiCfBWQqrWYzmUhCbsH+WR6qxo9MeHVCr0MQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.0.tgz", + "integrity": "sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==", "license": "Apache-2.0", "engines": { "bare": ">=1.14.0" @@ -7753,9 +7751,9 @@ } }, "node_modules/bare-stream": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.12.0.tgz", - "integrity": "sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", + "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", "license": "Apache-2.0", "dependencies": { "streamx": "^2.25.0", @@ -7779,9 +7777,9 @@ } }, "node_modules/bare-url": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", - "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.2.tgz", + "integrity": "sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==", "license": "Apache-2.0", "dependencies": { "bare-path": "^3.0.0" @@ -8583,9 +8581,9 @@ } }, "node_modules/cssstyle/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" @@ -8955,9 +8953,9 @@ } }, "node_modules/dotenv": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.0.tgz", - "integrity": "sha512-kCKF62fwtzwYm0IGBNjRUjtJgMfGapII+FslMHIjMR5KTnwEmBmWLDRSnc3XSNP8bNy34tekgQyDT0hr7pERRQ==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -9231,9 +9229,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.5.tgz", - "integrity": "sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -9243,32 +9241,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.5", - "@esbuild/android-arm": "0.27.5", - "@esbuild/android-arm64": "0.27.5", - "@esbuild/android-x64": "0.27.5", - "@esbuild/darwin-arm64": "0.27.5", - "@esbuild/darwin-x64": "0.27.5", - "@esbuild/freebsd-arm64": "0.27.5", - "@esbuild/freebsd-x64": "0.27.5", - "@esbuild/linux-arm": "0.27.5", - "@esbuild/linux-arm64": "0.27.5", - "@esbuild/linux-ia32": "0.27.5", - "@esbuild/linux-loong64": "0.27.5", - "@esbuild/linux-mips64el": "0.27.5", - "@esbuild/linux-ppc64": "0.27.5", - "@esbuild/linux-riscv64": "0.27.5", - "@esbuild/linux-s390x": "0.27.5", - "@esbuild/linux-x64": "0.27.5", - "@esbuild/netbsd-arm64": "0.27.5", - "@esbuild/netbsd-x64": "0.27.5", - "@esbuild/openbsd-arm64": "0.27.5", - "@esbuild/openbsd-x64": "0.27.5", - "@esbuild/openharmony-arm64": "0.27.5", - "@esbuild/sunos-x64": "0.27.5", - "@esbuild/win32-arm64": "0.27.5", - "@esbuild/win32-ia32": "0.27.5", - "@esbuild/win32-x64": "0.27.5" + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" } }, "node_modules/escalade": { @@ -9574,9 +9572,9 @@ } }, "node_modules/eventsource-parser": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", - "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.8.tgz", + "integrity": "sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -9781,9 +9779,9 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -9912,26 +9910,6 @@ "node": ">=10" } }, - "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -10122,14 +10100,12 @@ } }, "node_modules/get-it": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/get-it/-/get-it-8.7.0.tgz", - "integrity": "sha512-uong/+jOz0GiuIWIUJXp2tnQKgQKukC99LEqOxLckPUoHYoerQbV6vC0Tu+/pSgk0tgHh1xX2aJtCk4y35LLLg==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/get-it/-/get-it-8.7.2.tgz", + "integrity": "sha512-slSwC/BBAnoz9OnHopU+V5pJKAieddoF6dmx2CvbWMRePgup8ftiB+D7d+pr2PZzcqNtZOVDMoLOsXGsERhTEg==", "license": "MIT", "dependencies": { - "@types/follow-redirects": "^1.14.4", "decompress-response": "^7.0.0", - "follow-redirects": "^1.15.9", "is-retry-allowed": "^2.2.0", "through2": "^4.0.2", "tunnel-agent": "^0.6.0" @@ -10222,9 +10198,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.7", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz", - "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -10336,12 +10312,12 @@ "license": "ISC" }, "node_modules/groq": { - "version": "3.88.1-typegen-experimental.0", - "resolved": "https://registry.npmjs.org/groq/-/groq-3.88.1-typegen-experimental.0.tgz", - "integrity": "sha512-6TZD6H1y3P7zk0BQharjFa7BOivV9nFL6KKVZbRZRH0yOSSyu2xHglTO48b1/2mCEdYoBQpvE7rjCDUf6XmQYQ==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/groq/-/groq-5.22.0.tgz", + "integrity": "sha512-mADJIWgW9z5Alg1n2hL6nPIyo8HqbOiBTJ9Mz34JD3VCNLpQX0k8pXPV0cEJF6ep9aV2rGk+j5+h3HoIq14ruA==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19 <22 || >=22.12" } }, "node_modules/groq-js": { @@ -10571,9 +10547,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" @@ -11843,13 +11819,13 @@ } }, "node_modules/jsdom": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.1.tgz", - "integrity": "sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==", + "version": "29.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.2.tgz", + "integrity": "sha512-9VnGEBosc/ZpwyOsJBCQ/3I5p7Q5ngOY14a9bf5btenAORmZfDse1ZEheMiWcJ3h81+Fv7HmJFdS0szo/waF2w==", "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^5.0.1", - "@asamuzakjp/dom-selector": "^7.0.3", + "@asamuzakjp/css-color": "^5.1.5", + "@asamuzakjp/dom-selector": "^7.0.6", "@bramus/specificity": "^2.4.2", "@csstools/css-syntax-patches-for-csstree": "^1.1.1", "@exodus/bytes": "^1.15.0", @@ -11883,18 +11859,18 @@ } }, "node_modules/jsdom/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, "node_modules/jsdom/node_modules/undici": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.7.tgz", - "integrity": "sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", "license": "MIT", "engines": { "node": ">=20.18.1" @@ -12169,9 +12145,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/lodash-es": { @@ -12862,9 +12838,9 @@ } }, "node_modules/ora": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", - "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.0.tgz", + "integrity": "sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==", "license": "MIT", "dependencies": { "chalk": "^5.6.2", @@ -12873,7 +12849,7 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.1", + "stdin-discarder": "^0.3.2", "string-width": "^8.1.0" }, "engines": { @@ -13011,9 +12987,9 @@ } }, "node_modules/p-queue": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.1.tgz", - "integrity": "sha512-yQS1vV2V7Q14MQrgD8jMNY5owPuGgVHVdSK8NqmKpOVajnjbaeMa6uLOzTALPtvJ7Vo4bw0BGsw7qfUT8z24Ig==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.2.tgz", + "integrity": "sha512-ktsDOALzTYTWWF1PbkNVg2rOt+HaOaMWJMUnt7T3qf5tvZ1L8dBW3tObzprBcXNMKkwj+yFSLqHso0x+UFcJXw==", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.1", @@ -13148,24 +13124,24 @@ } }, "node_modules/parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", - "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "license": "MIT", "dependencies": { - "entities": "^6.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", "license": "BSD-2-Clause", "engines": { - "node": ">=0.12" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" @@ -13756,9 +13732,9 @@ } }, "node_modules/react-is": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", - "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.5.tgz", + "integrity": "sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ==", "license": "MIT" }, "node_modules/react-refractor": { @@ -13820,9 +13796,9 @@ } }, "node_modules/read-package-up/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "license": "(MIT OR CC0-1.0)", "dependencies": { "tagged-tag": "^1.0.0" @@ -13854,9 +13830,9 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "license": "(MIT OR CC0-1.0)", "dependencies": { "tagged-tag": "^1.0.0" @@ -14062,9 +14038,9 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.1.0" @@ -14074,9 +14050,9 @@ } }, "node_modules/remeda": { - "version": "2.33.6", - "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.33.6.tgz", - "integrity": "sha512-tazDGH7s75kUPGBKLvhgBEHMgW+TdDFhjUAMdQj57IoWz6HsGa5D2RX5yDUz6IIqiRRvZiaEHzCzWdTeixc/Kg==", + "version": "2.33.7", + "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.33.7.tgz", + "integrity": "sha512-cXlyjevWx5AcslOUEETG4o8XYi9UkoCXcJmj7XhPFVbla+ITuOBxv6ijBrmbeg+ZhzmDThkNdO+iXKUfrJep1w==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/remeda" @@ -14167,9 +14143,9 @@ } }, "node_modules/rollup": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", - "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -14182,31 +14158,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.1", - "@rollup/rollup-android-arm64": "4.60.1", - "@rollup/rollup-darwin-arm64": "4.60.1", - "@rollup/rollup-darwin-x64": "4.60.1", - "@rollup/rollup-freebsd-arm64": "4.60.1", - "@rollup/rollup-freebsd-x64": "4.60.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", - "@rollup/rollup-linux-arm-musleabihf": "4.60.1", - "@rollup/rollup-linux-arm64-gnu": "4.60.1", - "@rollup/rollup-linux-arm64-musl": "4.60.1", - "@rollup/rollup-linux-loong64-gnu": "4.60.1", - "@rollup/rollup-linux-loong64-musl": "4.60.1", - "@rollup/rollup-linux-ppc64-gnu": "4.60.1", - "@rollup/rollup-linux-ppc64-musl": "4.60.1", - "@rollup/rollup-linux-riscv64-gnu": "4.60.1", - "@rollup/rollup-linux-riscv64-musl": "4.60.1", - "@rollup/rollup-linux-s390x-gnu": "4.60.1", - "@rollup/rollup-linux-x64-gnu": "4.60.1", - "@rollup/rollup-linux-x64-musl": "4.60.1", - "@rollup/rollup-openbsd-x64": "4.60.1", - "@rollup/rollup-openharmony-arm64": "4.60.1", - "@rollup/rollup-win32-arm64-msvc": "4.60.1", - "@rollup/rollup-win32-ia32-msvc": "4.60.1", - "@rollup/rollup-win32-x64-gnu": "4.60.1", - "@rollup/rollup-win32-x64-msvc": "4.60.1", + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", "fsevents": "~2.3.2" } }, @@ -14349,9 +14325,9 @@ "license": "MIT" }, "node_modules/sanity": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/sanity/-/sanity-5.20.0.tgz", - "integrity": "sha512-1jVcg+iN/jY7UIICwRSenEfrnnKDHKjCftzbxITMiFnUtcPrUsIKVv4Q3HneQmempLdrc/gMA+w9JpuNDJyhEw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/sanity/-/sanity-5.22.0.tgz", + "integrity": "sha512-NP5BBZMgEDavig2EqH6l3uTOb/ZRYzVcwsZGqpC4aAiYMQh95r6rdYipC9AVbaNJYOldtZjOQYxe/aAr4WxWTw==", "license": "MIT", "dependencies": { "@algorithm.ts/lcs": "^4.0.5", @@ -14361,15 +14337,14 @@ "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", "@isaacs/ttlcache": "^1.4.1", - "@juggle/resize-observer": "^3.4.0", "@mux/mux-player-react": "^3.10.2", - "@portabletext/editor": "^6.6.0", + "@portabletext/editor": "^6.6.2", "@portabletext/html": "^1.0.1", "@portabletext/patches": "^2.0.4", - "@portabletext/plugin-markdown-shortcuts": "^7.0.23", - "@portabletext/plugin-one-line": "^6.0.23", - "@portabletext/plugin-paste-link": "^3.0.23", - "@portabletext/plugin-typography": "^7.0.23", + "@portabletext/plugin-markdown-shortcuts": "^7.0.25", + "@portabletext/plugin-one-line": "^6.0.25", + "@portabletext/plugin-paste-link": "^3.0.25", + "@portabletext/plugin-typography": "^7.0.25", "@portabletext/react": "^6.0.3", "@portabletext/sanity-bridge": "^3.0.0", "@portabletext/to-html": "^5.0.2", @@ -14377,32 +14352,33 @@ "@rexxars/react-json-inspector": "^9.0.1", "@sanity/asset-utils": "^2.3.0", "@sanity/bifur-client": "^1.0.0", - "@sanity/cli": "^6.3.1", - "@sanity/client": "^7.18.0", + "@sanity/cli": "^6.4.0", + "@sanity/client": "^7.21.0", "@sanity/color": "^3.0.6", "@sanity/comlink": "^4.0.1", - "@sanity/diff": "5.20.0", + "@sanity/diff": "5.22.0", "@sanity/diff-match-patch": "^3.2.0", "@sanity/diff-patch": "^5.0.0", "@sanity/eventsource": "^5.0.2", "@sanity/icons": "^3.7.4", "@sanity/id-utils": "^1.0.0", "@sanity/image-url": "^2.0.3", - "@sanity/insert-menu": "^3.0.4", + "@sanity/insert-menu": "^3.0.5", "@sanity/logos": "^2.2.2", - "@sanity/media-library-types": "^1.2.0", - "@sanity/message-protocol": "^0.19.0", - "@sanity/migrate": "^6.0.0", + "@sanity/media-library-types": "^1.4.0", + "@sanity/message-protocol": "^0.23.0", + "@sanity/migrate": "^6.1.1", "@sanity/mutate": "^0.16.1", - "@sanity/mutator": "5.20.0", + "@sanity/mutator": "5.22.0", "@sanity/presentation-comlink": "^2.0.1", - "@sanity/preview-url-secret": "^4.0.4", - "@sanity/schema": "5.20.0", - "@sanity/sdk": "2.1.2", + "@sanity/preview-url-secret": "^4.0.5", + "@sanity/prism-groq": "^1.1.2", + "@sanity/schema": "5.22.0", + "@sanity/sdk": "^2.8.0", "@sanity/telemetry": "^0.9.0", - "@sanity/types": "5.20.0", + "@sanity/types": "5.22.0", "@sanity/ui": "^3.1.14", - "@sanity/util": "5.20.0", + "@sanity/util": "5.22.0", "@sanity/uuid": "^3.0.2", "@sentry/react": "^8.55.0", "@tanstack/react-table": "^8.21.3", @@ -14847,9 +14823,9 @@ "license": "BSD-3-Clause" }, "node_modules/stdin-discarder": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.1.tgz", - "integrity": "sha512-reExS1kSGoElkextOcPkel4NE99S0BWxjUHQeDFnR8S993JxpPX7KU4MNmO19NXhlJp+8dmdCbKQVNgLJh2teA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", "license": "MIT", "engines": { "node": ">=18" @@ -15268,13 +15244,13 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -15284,21 +15260,21 @@ } }, "node_modules/tldts": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.27.tgz", - "integrity": "sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==", + "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.28.tgz", + "integrity": "sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==", "license": "MIT", "dependencies": { - "tldts-core": "^7.0.27" + "tldts-core": "^7.0.28" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.27.tgz", - "integrity": "sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==", + "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.28.tgz", + "integrity": "sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==", "license": "MIT" }, "node_modules/to-regex-range": { @@ -15356,6 +15332,13 @@ "integrity": "sha512-H5uo7OqMvd91D2EefFmltBP9oeNInNzWLAZUSt6coGDn8b814Eis6SnEtzyXORr9ccEb38PfzyiRVDacdkycSQ==", "license": "MIT" }, + "node_modules/ts-toolbelt": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz", + "integrity": "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/ts-type": { "version": "3.0.13", "resolved": "https://registry.npmjs.org/ts-type/-/ts-type-3.0.13.tgz", @@ -15585,7 +15568,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -15645,18 +15628,18 @@ } }, "node_modules/undici": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", - "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", "license": "MIT", "engines": { "node": ">=18.17" } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -15942,9 +15925,9 @@ } }, "node_modules/vite": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", - "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "license": "MIT", "dependencies": { "esbuild": "^0.27.0", @@ -16052,9 +16035,9 @@ } }, "node_modules/vite/node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "funding": [ { "type": "opencollective", diff --git a/trustvc-cms/package.json b/trustvc-cms/package.json index 9074c4c..4557451 100644 --- a/trustvc-cms/package.json +++ b/trustvc-cms/package.json @@ -16,10 +16,10 @@ "sanity" ], "dependencies": { - "@sanity/vision": "^5.20.0", + "@sanity/vision": "^5.22.0", "react": "^19.2.4", "react-dom": "^19.2.4", - "sanity": "^5.20.0", + "sanity": "^5.22.0", "styled-components": "^6.1.18" }, "devDependencies": {