Issue:
chore(masking): add peek_mut to PeekInterface

## Type of Change
<!-- Put an `x` in the boxes that apply -->
- [x] Enhancement

## Description
<!-- Describe your changes in detail -->
Add `peek_mut` function to PeekInterface to get mutable reference for the inner data.

## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->
To get the mutable reference for inner data in StrongSecret.

## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
** THIS CANNOT BE TESTED IN ENVIRONMENTS **

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code

Resolution:
<think>
PR Context:
- Title: Feat(connector): [JP MORGAN] Added Template code for cards integration
- Merged: 2024-11-05T15:51:59Z
- Files changed: 25 files
- Commits: 2 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [x] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->

Template code added for new connector JP Morgan
https://developer.payments.jpmorgan.com/docs/commerce/online-payments/capabilities/online-payments/payment-methods/cards

### Additional Changes

- [ ] This PR modifies the API contract
-
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** Feat(connector): [JP MORGAN] Added Template code for cards integration (#6467)
Co-authored-by: Sayak
Files to modify:


**crates/api_models/src/connector_enums.rs**
  Modify existing code

**crates/common_enums/src/connector_enums.rs**
  Modify existing code

**crates/hyperswitch_connectors/src/connectors.rs**
  Add:
    - mod: pub::jpmorgan

**crates/hyperswitch_connectors/src/connectors/jpmorgan.rs**
  Add:
    - function: pub::new
    - function: private::build_headers
    - function: private::id
    - function: private::get_currency_unit
    - function: private::common_get_content_type
    - function: private::base_url
    - function: private::get_auth_header
    - function: private::build_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_webhook_object_reference_id
    - function: private::get_webhook_event_type
    - function: private::get_webhook_resource_object
    - struct: pub::Jpmorgan
    - impl: impl Jpmorgan
    - impl: impl api::Payment for Jpmorgan
    - impl: impl api::PaymentSession for Jpmorgan
    - impl: impl api::ConnectorAccessToken for Jpmorgan
    - impl: impl api::MandateSetup for Jpmorgan
    - impl: impl api::PaymentAuthorize for Jpmorgan
    - impl: impl api::PaymentSync for Jpmorgan
    - impl: impl api::PaymentCapture for Jpmorgan
    - impl: impl api::PaymentVoid for Jpmorgan
    - impl: impl api::Refund for Jpmorgan
    - impl: impl api::RefundExecute for Jpmorgan
    - impl: impl api::RefundSync for Jpmorgan
    - impl: impl api::PaymentToken for Jpmorgan
    - impl: impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorCommonExt<Flow, Request, Response> for Jpmorgan
    - impl: impl ConnectorCommon for Jpmorgan
    - impl: impl ConnectorValidation for Jpmorgan
    - impl: impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Jpmorgan
    - impl: impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<PSync, PaymentsSyncData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Jpmorgan
    - impl: impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Jpmorgan
    - impl: impl webhooks::IncomingWebhook for Jpmorgan
    - mod: pub::transformers

**crates/hyperswitch_connectors/src/connectors/jpmorgan/transformers.rs**
  Add:
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - struct: pub::JpmorganRouterData
    - struct: pub::JpmorganPaymentsRequest
    - struct: pub::JpmorganCard
    - struct: pub::JpmorganAuthType
    - struct: pub::JpmorganPaymentsResponse
    - struct: pub::JpmorganRefundRequest
    - struct: pub::RefundResponse
    - struct: pub::JpmorganErrorResponse
    - enum: pub::JpmorganPaymentStatus
    - enum: pub::RefundStatus
    - impl: impl From<(StringMinorUnit, T)> for JpmorganRouterData<T>
    - impl: impl TryFrom<&JpmorganRouterData<&PaymentsAuthorizeRouterData>> for JpmorganPaymentsRequest
    - impl: impl TryFrom<&ConnectorAuthType> for JpmorganAuthType
    - impl: impl From<JpmorganPaymentStatus> for common_enums::AttemptStatus
    - impl: impl TryFrom<ResponseRouterData<F, JpmorganPaymentsResponse, T, PaymentsResponseData>> for RouterData<F, T, PaymentsResponseData>
    - impl: impl TryFrom<&JpmorganRouterData<&RefundsRouterData<F>>> for JpmorganRefundRequest
    - impl: impl From<RefundStatus> for enums::RefundStatus
    - impl: impl TryFrom<RefundsResponseRouterData<Execute, RefundResponse>> for RefundsRouterData<Execute>
    - impl: impl TryFrom<RefundsResponseRouterData<RSync, RefundResponse>> for RefundsRouterData<RSync>

**crates/hyperswitch_connectors/src/default_implementations.rs**
  Modify existing code

**crates/hyperswitch_connectors/src/default_implementations_v2.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/configs.rs**
  Modify existing code

**crates/router/src/connector.rs**
  Modify existing code

**crates/router/src/core/payments/connector_integration_v2_impls.rs**
  Modify existing code

**crates/router/src/core/payments/flows.rs**
  Modify existing code

**crates/router/src/types/api.rs**
  Modify existing code

**crates/router/src/types/transformers.rs**
  Modify existing code

**crates/router/tests/connectors/jpmorgan.rs**
  Add:
    - function: private::new
    - function: private::get_data
    - function: private::get_auth_token
    - function: private::get_name
    - function: private::get_default_payment_info
    - function: private::payment_method_details
    - function: private::should_only_authorize_payment
    - function: private::should_capture_authorized_payment
    - function: private::should_partially_capture_authorized_payment
    - function: private::should_sync_authorized_payment
    - function: private::should_void_authorized_payment
    - function: private::should_refund_manually_captured_payment
    - function: private::should_partially_refund_manually_captured_payment
    - function: private::should_sync_manually_captured_refund
    - function: private::should_make_payment
    - function: private::should_sync_auto_captured_payment
    - function: private::should_refund_auto_captured_payment
    - function: private::should_partially_refund_succeeded_payment
    - function: private::should_refund_succeeded_payment_multiple_times
    - function: private::should_sync_refund
    - function: private::should_fail_payment_for_incorrect_cvc
    - function: private::should_fail_payment_for_invalid_exp_month
    - function: private::should_fail_payment_for_incorrect_expiry_year
    - function: private::should_fail_void_payment_for_auto_capture
    - function: private::should_fail_capture_for_invalid_payment
    - function: private::should_fail_for_refund_amount_higher_than_payment_amount
    - struct: private::JpmorganTest
    - impl: impl JpmorganTest
    - impl: impl ConnectorActions for JpmorganTest
    - impl: impl utils::Connector for JpmorganTest

**crates/router/tests/connectors/main.rs**
  Add:
    - mod: private::jpmorgan

**crates/test_utils/src/connector_auth.rs**
  Modify existing code