diff --git a/.github/workflows/scan_security-hub-jira-integration.yml b/.github/workflows/scan_security-hub-jira-integration.yml index 1600af819..c3d88076e 100644 --- a/.github/workflows/scan_security-hub-jira-integration.yml +++ b/.github/workflows/scan_security-hub-jira-integration.yml @@ -21,13 +21,12 @@ jobs: aws-region: ${{ secrets.AWS_DEFAULT_REGION }} role-to-assume: ${{ secrets.PRODUCTION_SYNC_OIDC_ROLE }} - name: Sync Security Hub and Jira - uses: Enterprise-CMCS/mac-fc-security-hub-visibility@v1.0.7 + uses: Enterprise-CMCS/mac-fc-security-hub-visibility@v2.0.9 with: jira-username: "mdct_github_service_account" jira-token: ${{ secrets.JIRA_ENT_USER_TOKEN }} - jira-host: jiraent.cms.gov jira-project-key: CMDCT jira-ignore-statuses: Done, Closed, Canceled jira-custom-fields: '{ "customfield_10100": "CMDCT-2280", "customfield_26700" : [{"id": "40104", "value": "MCR"}] }' aws-severities: CRITICAL, HIGH, MEDIUM - assign-jira-ticket-to: "MWTW" + jira-assignee: "MWTW" diff --git a/services/app-api/forms/mcpar.json b/services/app-api/forms/mcpar.json index 1999a6e8f..b378b7a70 100644 --- a/services/app-api/forms/mcpar.json +++ b/services/app-api/forms/mcpar.json @@ -498,7 +498,7 @@ "validation": "radio", "props": { "label": "B.X.7a Changes in provider circumstances: Monitoring plans", - "hint": "Does the state monitor whether plans report provider \"for cause\" terminations in a timely manner under 42 CFR 438.608(a)(4)? Select one.", + "hint": "Does the state monitor whether plans report provider “for cause” terminations in a timely manner under 42 CFR 438.608(a)(4)? Select one.", "choices": [ { "id": "WFrdLUutmEujEZkS7rWVqQ", @@ -630,6 +630,125 @@ } ] } + }, + { + "name": "XIII: Prior Authorization", + "path": "/mcpar/state-level-indicators/prior-authorization", + "pageType": "standard", + "verbiage": { + "intro": { + "section": "Section B: State-Level Indicators", + "subsection": "Topic XIII. Prior Authorization", + "spreadsheet": "B_State", + "alert": "Beginning June 2026, Indicators B.XIII.1a-b–2a-b must be completed. Submission of this data before June 2026 is optional.", + "info": "If the state sets timeframes for plans to respond to Prior Authorization (PA) requests that are different than timeframes specified by Federal regulation at 42 CFR §438.210(d), please respond “Yes” to the following questions." + } + }, + "form": { + "id": "bpi", + "fields": [ + { + "id": "plan_priorAuthorizationReporting", + "type": "radio", + "validation": "radio", + "props": { + "label": "Are you reporting data prior to June 2026?", + "choices": [ + { + "id": "2nAidHmpZ9aJQMy0Gk0Zmldri84", + "label": "Not reporting data" + }, + { + "id": "2nAidDjXBvvkzLtaeYyE2RymW4G", + "label": "Yes", + "children": [ + { + "id": "plan_daysForStateToRespondStandardRequests", + "type": "radio", + "validation": { + "type": "radio", + "nested": true, + "parentFieldName": "plan_priorAuthorizationReporting" + }, + "props": { + "label": "B.XIII.1a Different timeframe standard for the State’s standard PA requests", + "hint": "The federal timeframe standard for plans to respond to standard PA requests is not to exceed 14 days before 1/1/2026 and not to exceed 7 days on or after 1/1/2026. Does the state set a timeframe standard different from these federal standard?", + "choices": [ + { + "id": "2mwADFxQVwjgYKMq5rEMPF8nryi", + "label": "No" + }, + { + "id": "2nAidFCWvENhYZvzLt3DxJWOqtx", + "label": "Yes", + "children": [ + { + "id": "standardResponseTimeNumberOfDays", + "type": "number", + "validation": { + "type": "number", + "nested": true, + "mask": "comma-separated", + "decimalPlacesToRoundTo": 0, + "parentFieldName": "plan_daysForStateToRespondStandardRequests" + }, + "props": { + "label": "B.XIII.1b Timeframe for State’s standard PA requests", + "hint": "Describe the state timeframe for plans to respond to standard PA requests in number of days." + } + } + ] + } + ] + } + }, + { + "id": "plan_hoursForStateToRespondExpeditedRequests", + "type": "radio", + "validation": { + "type": "radio", + "nested": true, + "parentFieldName": "plan_priorAuthorizationReporting" + }, + "props": { + "label": "B.XIII.2a Different timeframe standard for the State’s expedited PA requests", + "hint": "The federal timeframe standard for expedited PA requests is not to exceed 72 hours. Does the state set a timeframe standard different from this? If you choose not to respond prior to June 2026, select “Not reporting data.”", + "choices": [ + { + "id": "2nAidGQyKBhG1gxK1SuXbBjJh0V", + "label": "No" + }, + { + "id": "2nAidJFG47lnFfJsNJS2tU7d4pp", + "label": "Yes", + "children": [ + { + "id": "expeditedNumberOfHours", + "type": "number", + "validation": { + "type": "number", + "nested": true, + "mask": "comma-separated", + "decimalPlacesToRoundTo": 0, + "parentFieldName": "plan_hoursForStateToRespondExpeditedRequests" + }, + "props": { + "label": "B.XIII.2b Timeframe for State’s expedited PA requests", + "hint": "Describe the state timeframe for plans to respond to expedited PA requests, in hours." + } + } + ] + } + ] + } + } + ] + } + ] + } + } + ] + } } ] }, @@ -767,7 +886,7 @@ "validation": "text", "props": { "label": "C1.I.4b Variation in special benefits", - "hint": "What are any variations in the availability of special benefits within the program (e.g. by service area or population)? Enter \"N/A\" if not applicable." + "hint": "What are any variations in the availability of special benefits within the program (e.g. by service area or population)? Enter “N/A” if not applicable." } }, { @@ -939,7 +1058,7 @@ "validation": "text", "props": { "label": "C1.III.5 Incentives for encounter data quality", - "hint": "Describe the types of incentives that may be awarded to managed care plans for encounter data quality. Reply with \"N/A\" if the plan does not use incentives to award encounter data quality." + "hint": "Describe the types of incentives that may be awarded to managed care plans for encounter data quality. Reply with “N/A” if the plan does not use incentives to award encounter data quality." } }, { @@ -973,8 +1092,8 @@ "type": "textarea", "validation": "text", "props": { - "label": "C1.IV.1 State's definition of \"critical incident,\" as used for reporting purposes in its MLTSS program", - "hint": "If this report is being completed for a managed care program that covers LTSS, what is the definition that the state uses for \"critical incidents\" within the managed care program? Respond with \"N/A\" if the managed care program does not cover LTSS." + "label": "C1.IV.1 State's definition of “critical incident”, as used for reporting purposes in its MLTSS program", + "hint": "If this report is being completed for a managed care program that covers LTSS, what is the definition that the state uses for “critical incidents” within the managed care program? Respond with “N/A” if the managed care program does not cover LTSS." } }, { @@ -982,7 +1101,7 @@ "type": "textarea", "validation": "text", "props": { - "label": "C1.IV.2 State definition of \"timely\" resolution for standard appeals", + "label": "C1.IV.2 State definition of “timely” resolution for standard appeals", "hint": "Provide the state's definition of timely resolution for standard appeals in the managed care program.
Per 42 CFR §438.408(b)(2), states must establish a timeframe for timely resolution of standard appeals that is no longer than 30 calendar days from the day the MCO, PIHP or PAHP receives the appeal." } }, @@ -991,7 +1110,7 @@ "type": "textarea", "validation": "text", "props": { - "label": "C1.IV.3 State definition of \"timely\" resolution for expedited appeals", + "label": "C1.IV.3 State definition of “timely” resolution for expedited appeals", "hint": "Provide the state's definition of timely resolution for expedited appeals in the managed care program.
Per 42 CFR §438.408(b)(3), states must establish a timeframe for timely resolution of expedited appeals that is no longer than 72 hours after the MCO, PIHP or PAHP receives the appeal." } }, @@ -1000,7 +1119,7 @@ "type": "textarea", "validation": "text", "props": { - "label": "C1.IV.4 State definition of \"timely\" resolution for grievances", + "label": "C1.IV.4 State definition of “timely” resolution for grievances", "hint": "Provide the state's definition of timely resolution for grievances in the managed care program.
Per 42 CFR §438.408(b)(1), states must establish a timeframe for timely resolution of grievances that is no longer than 90 calendar days from the day the MCO, PIHP or PAHP receives the grievance." } } @@ -1089,7 +1208,7 @@ "editEntityButtonText": "Edit measure", "addEditModalAddTitle": "Add access measure", "addEditModalEditTitle": "Edit access measure", - "addEditModalMessage": "Complete the remaining indicators for this access measure by saving the measure and selecting \"Enter measure details\".", + "addEditModalMessage": "Complete the remaining indicators for this access measure by saving the measure and selecting “Enter measure details”.", "deleteEntityButtonAltText": "Delete measure", "deleteModalTitle": "Delete access measure?", "deleteModalConfirmButtonText": "Yes, delete measure", @@ -1144,7 +1263,7 @@ "validation": "radio", "props": { "label": "C2.V.3 Standard type", - "hint": "What is the standard type? Select one or add free text if you select \"Other\".", + "hint": "What is the standard type? Select one or add free text if you select “Other”.", "choices": [ { "id": "kBady0XnCUG8nxXWSHHeBg", @@ -1211,7 +1330,7 @@ "validation": "radio", "props": { "label": "C2.V.4 Provider type", - "hint": "What is the provider type? Select one or add free text if you select \"Other\"", + "hint": "What is the provider type? Select one or add free text if you select “Other”.", "choices": [ { "id": "7z1m6zajqUupPe89o3dAGQ", @@ -1265,7 +1384,7 @@ "validation": "radio", "props": { "label": "C2.V.5 Applicable region(s)", - "hint": "What is the applicable region? Select one or add free text if you select \"Other\"", + "hint": "What is the applicable region? Select one or add free text if you select “Other”.", "choices": [ { "id": "X47v2Ee5kkaBERBjXFWGXw", @@ -1307,7 +1426,7 @@ "validation": "radio", "props": { "label": "C2.V.6 Population", - "hint": "What is the population? Select one or add free text if you select \"Other\"", + "hint": "What is the population? Select one or add free text if you select “Other”.", "choices": [ { "id": "YtRX5yx7NEWkGfU9vDI03g", @@ -1349,7 +1468,7 @@ "validation": "checkbox", "props": { "label": "C2.V.7 Monitoring methods", - "hint": "What are the monitoring methods? Check all that apply or add free text if you select \"Other\"", + "hint": "What are the monitoring methods? Check all that apply or add free text if you select “Other”.", "choices": [ { "id": "gbWqxtPWaUC1yUbmhWA0UA", @@ -1395,7 +1514,7 @@ "validation": "radio", "props": { "label": "C2.V.8 Frequency of oversight methods", - "hint": "What is the frequency of oversight methods? Select one or add free text if you select \"Other\"", + "hint": "What is the frequency of oversight methods? Select one or add free text if you select “Other”.", "choices": [ { "id": "tOF04LLPa026mJlHmk0RaA", @@ -1550,7 +1669,7 @@ "validation": "radio", "props": { "label": "C1.XII.4 Does this program include MCOs?", - "hint": "If \"Yes\", please complete the following questions.", + "hint": "If “Yes”, please complete the following questions.", "choices": [ { "id": "WezgX4VYsCyGJ3w0ncCpsWkH", @@ -1846,7 +1965,7 @@ }, "props": { "label": "C1.XII.12a Has the state posted the current parity analysis(es) covering this program on its website?", - "hint": "

The current parity analysis/analyses must be posted on the state Medicaid program website. States with ANY services provided to MCO enrollees by an entity other than MCO should have a single state summary parity analysis report.

States with NO services provided to MCO enrollees by an entity other than the MCO may have multiple parity reports (by MCO), in which case all MCOs' separate analyses must be posted. A \"Yes\" response means that the parity analysis for either the state or for ALL MCOs has been posted.

", + "hint": "

The current parity analysis/analyses must be posted on the state Medicaid program website. States with ANY services provided to MCO enrollees by an entity other than MCO should have a single state summary parity analysis report.

States with NO services provided to MCO enrollees by an entity other than the MCO may have multiple parity reports (by MCO), in which case all MCOs' separate analyses must be posted. A “Yes” response means that the parity analysis for either the state or for ALL MCOs has been posted.

", "choices": [ { "id": "fncOB9LFBZd1nFJvLv9YM1Pb", @@ -1863,7 +1982,7 @@ }, "props": { "label": "C1.XII.12b Provide the URL link(s).", - "hint": "Response must be a valid hyperlink/URL beginning with \"http://\" or \"https://\". Separate links with commas." + "hint": "Response must be a valid hyperlink/URL beginning with “http://” or “https://”. Separate links with commas." } } ] @@ -1897,6 +2016,46 @@ } ] } + }, + { + "name": "XIV: Patient Access / API Usage", + "path": "/mcpar/program-level-indicators/patient-access-api-usage", + "pageType": "standard", + "verbiage": { + "intro": { + "section": "Section C: Program-Level Indicators", + "subsection": "Topic XIV: Patient Access / API Usage", + "spreadsheet": "C1_Program_Set", + "alert": "Beginning June 2026, Indicators C1.XIV.1-2 must be completed. Submission of this data before June 2026 is optional; if you choose not to respond prior to June 2026, enter “NR”." + } + }, + "form": { + "id": "cpaau", + "fields": [ + { + "id": "state_patientAccessNumberOfBeneficiariesOneDataTransfer", + "type": "number", + "validation": "number", + "props": { + "label": "C1.XIV.1 Number of unique beneficiaries with at least one data transfer", + "hint": "Indicate total number of unique beneficiaries covered by this contract (program) whose data were transferred via the Patient Access API to a health app designated by the beneficiary. Enter the numbers for this program for the previous calendar year. If you choose not to respond prior to June 2026, enter “NR”.", + "mask": "comma-separated", + "decimalPlacesToRoundTo": 0 + } + }, + { + "id": "state_patientAcessNumberOfBeneficiariesMultipleDataTransfers", + "type": "number", + "validation": "number", + "props": { + "label": "C1.XIV.2 Number of unique beneficiaries with multiple data transfers", + "hint": "Indicate total number of unique beneficiaries covered by this contract (program) whose data are transferred more than once via the Patient Access API to a health application designated by the beneficiary. Enter the numbers for this program for the previous calendar year. If you choose not to respond prior to June 2026, enter “NR”.", + "mask": "comma-separated", + "decimalPlacesToRoundTo": 0 + } + } + ] + } } ] }, @@ -2067,7 +2226,7 @@ "validation": "text", "props": { "label": "D1.II.2 Population specific MLR description", - "hint": "Does the state require plans to submit separate MLR calculations for specific populations served within this program, for example, MLTSS or Group VIII expansion enrollees? If so, describe the populations here. Enter \"N/A\" if not applicable.
See glossary for the regulatory definition of MLR." + "hint": "Does the state require plans to submit separate MLR calculations for specific populations served within this program, for example, MLTSS or Group VIII expansion enrollees? If so, describe the populations here. Enter “N/A” if not applicable.
See glossary for the regulatory definition of MLR." } }, { @@ -2202,7 +2361,7 @@ "section": "Section D: Plan-Level Indicators", "subsection": "Topic IV. Appeals, State Fair Hearings & Grievances", "spreadsheet": "D1_Plan_Set", - "alert": "Beginning June 2025, Indicators D1.IV.1a-c must be completed. Submission of this data before June 2025 is optional; if you choose not to respond prior to June 2025, enter \"N/A\".", + "alert": "Beginning June 2025, Indicators D1.IV.1a-c must be completed. Submission of this data before June 2025 is optional; if you choose not to respond prior to June 2025, enter “N/A”.", "info": [ { "type": "heading", @@ -2247,7 +2406,7 @@ "validation": "number", "props": { "label": "D1.IV.1 Appeals resolved (at the plan level)", - "hint": "

Enter the total number of appeals resolved during the reporting year.

An appeal is \"resolved\" at the plan level when the plan has issued a decision, regardless of whether the decision was wholly or partially favorable or adverse to the beneficiary, and regardless of whether the beneficiary (or the beneficiary's representative) chooses to file a request for a State Fair Hearing or External Medical Review.

", + "hint": "

Enter the total number of appeals resolved during the reporting year.

An appeal is “resolved” at the plan level when the plan has issued a decision, regardless of whether the decision was wholly or partially favorable or adverse to the beneficiary, and regardless of whether the beneficiary (or the beneficiary's representative) chooses to file a request for a State Fair Hearing or External Medical Review.

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2258,7 +2417,7 @@ "validation": "number", "props": { "label": "D1.IV.1a Appeals denied", - "hint": "Enter the total number of appeals resolved during the reporting period (D1.IV.1) that were denied (adverse) to the enrollee. If you choose not to respond prior to June 2025, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved during the reporting period (D1.IV.1) that were denied (adverse) to the enrollee. If you choose not to respond prior to June 2025, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2269,7 +2428,7 @@ "validation": "number", "props": { "label": "D1.IV.1b Appeals resolved in partial favor of enrollee", - "hint": "Enter the total number of appeals (D1.IV.1) resolved during the reporting period in partial favor of the enrollee. If you choose not to respond prior to June 2025, enter \"N/A\".", + "hint": "Enter the total number of appeals (D1.IV.1) resolved during the reporting period in partial favor of the enrollee. If you choose not to respond prior to June 2025, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2280,7 +2439,7 @@ "validation": "number", "props": { "label": "D1.IV.1c Appeals resolved in favor of enrollee", - "hint": "Enter the total number of appeals (D1.IV.1) resolved during the reporting period in favor of the enrollee. If you choose not to respond prior to June 2025, enter \"N/A\".", + "hint": "Enter the total number of appeals (D1.IV.1) resolved during the reporting period in favor of the enrollee. If you choose not to respond prior to June 2025, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2302,7 +2461,7 @@ "validation": "number", "props": { "label": "D1.IV.3 Appeals filed on behalf of LTSS users", - "hint": "Enter the total number of appeals filed during the reporting year by or on behalf of LTSS users. Enter \"N/A\" if not applicable.

An LTSS user is an enrollee who received at least one LTSS service at any point during the reporting year (regardless of whether the enrollee was actively receiving LTSS at the time that the appeal was filed).", + "hint": "Enter the total number of appeals filed during the reporting year by or on behalf of LTSS users. Enter “N/A” if not applicable.

An LTSS user is an enrollee who received at least one LTSS service at any point during the reporting year (regardless of whether the enrollee was actively receiving LTSS at the time that the appeal was filed).", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2313,7 +2472,7 @@ "validation": "number", "props": { "label": "D1.IV.4 Number of critical incidents filed during the reporting year by (or on behalf of) an LTSS user who previously filed an appeal", - "hint": "For managed care plans that cover LTSS, enter the number of critical incidents filed within the reporting year by (or on behalf of) LTSS users who previously filed appeals in the reporting year. If the managed care plan does not cover LTSS, enter \"N/A\".

Also, if the state already submitted this data for the reporting year via the CMS readiness review appeal and grievance report (because the managed care program or plan were new or serving new populations during the reporting year), and the readiness review tool was submitted for at least 6 months of the reporting year, enter \"N/A\".

The appeal and critical incident do not have to have been \"related\" to the same issue - they only need to have been filed by (or on behalf of) the same enrollee. Neither the critical incident nor the appeal need to have been filed in relation to delivery of LTSS — they may have been filed for any reason, related to any service received (or desired) by an LTSS user.

To calculate this number, states or managed care plans should first identify the LTSS users for whom critical incidents were filed during the reporting year, then determine whether those enrollees had filed an appeal during the reporting year, and whether the filing of the appeal preceded the filing of the critical incident.", + "hint": "For managed care plans that cover LTSS, enter the number of critical incidents filed within the reporting year by (or on behalf of) LTSS users who previously filed appeals in the reporting year. If the managed care plan does not cover LTSS, enter “N/A”.

Also, if the state already submitted this data for the reporting year via the CMS readiness review appeal and grievance report (because the managed care program or plan were new or serving new populations during the reporting year), and the readiness review tool was submitted for at least 6 months of the reporting year, enter “N/A”.

The appeal and critical incident do not have to have been “related” to the same issue - they only need to have been filed by (or on behalf of) the same enrollee. Neither the critical incident nor the appeal need to have been filed in relation to delivery of LTSS — they may have been filed for any reason, related to any service received (or desired) by an LTSS user.

To calculate this number, states or managed care plans should first identify the LTSS users for whom critical incidents were filed during the reporting year, then determine whether those enrollees had filed an appeal during the reporting year, and whether the filing of the appeal preceded the filing of the critical incident.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2487,7 +2646,7 @@ "validation": "number", "props": { "label": "D1.IV.7a Resolved appeals related to general inpatient services", - "hint": "

Enter the total number of appeals resolved by the plan during the reporting year that were related to general inpatient care, including diagnostic and laboratory services.

Do not include appeals related to inpatient behavioral health services – those should be included in indicator D1.IV.7c. If the managed care plan does not cover general inpatient services, enter \"N/A\".

", + "hint": "

Enter the total number of appeals resolved by the plan during the reporting year that were related to general inpatient care, including diagnostic and laboratory services.

Do not include appeals related to inpatient behavioral health services – those should be included in indicator D1.IV.7c. If the managed care plan does not cover general inpatient services, enter “N/A”.

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2498,7 +2657,7 @@ "validation": "number", "props": { "label": "D1.IV.7b Resolved appeals related to general outpatient services", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to general outpatient care, including diagnostic and laboratory services. Please do not include appeals related to outpatient behavioral health services – those should be included in indicator D1.IV.7d. If the managed care plan does not cover general outpatient services, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to general outpatient care, including diagnostic and laboratory services. Please do not include appeals related to outpatient behavioral health services – those should be included in indicator D1.IV.7d. If the managed care plan does not cover general outpatient services, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2509,7 +2668,7 @@ "validation": "number", "props": { "label": "D1.IV.7c Resolved appeals related to inpatient behavioral health services", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to inpatient mental health and/or substance use services. If the managed care plan does not cover inpatient behavioral health services, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to inpatient mental health and/or substance use services. If the managed care plan does not cover inpatient behavioral health services, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2520,7 +2679,7 @@ "validation": "number", "props": { "label": "D1.IV.7d Resolved appeals related to outpatient behavioral health services", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to outpatient mental health and/or substance use services. If the managed care plan does not cover outpatient behavioral health services, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to outpatient mental health and/or substance use services. If the managed care plan does not cover outpatient behavioral health services, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2531,7 +2690,7 @@ "validation": "number", "props": { "label": "D1.IV.7e Resolved appeals related to covered outpatient prescription drugs", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to outpatient prescription drugs covered by the managed care plan. If the managed care plan does not cover outpatient prescription drugs, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to outpatient prescription drugs covered by the managed care plan. If the managed care plan does not cover outpatient prescription drugs, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2542,7 +2701,7 @@ "validation": "number", "props": { "label": "D1.IV.7f Resolved appeals related to skilled nursing facility (SNF) services", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to SNF services. If the managed care plan does not cover skilled nursing services, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to SNF services. If the managed care plan does not cover skilled nursing services, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2553,7 +2712,7 @@ "validation": "number", "props": { "label": "D1.IV.7g Resolved appeals related to long-term services and supports (LTSS)", - "hint": "

Enter the total number of appeals resolved by the plan during the reporting year that were related to institutional LTSS or LTSS provided through home and community-based (HCBS) services, including personal care and self-directed services. If the managed care plan does not cover LTSS services, enter \"N/A\".

", + "hint": "

Enter the total number of appeals resolved by the plan during the reporting year that were related to institutional LTSS or LTSS provided through home and community-based (HCBS) services, including personal care and self-directed services. If the managed care plan does not cover LTSS services, enter “N/A”.

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2564,7 +2723,7 @@ "validation": "number", "props": { "label": "D1.IV.7h Resolved appeals related to dental services", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to dental services. If the managed care plan does not cover dental services, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to dental services. If the managed care plan does not cover dental services, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2575,7 +2734,7 @@ "validation": "number", "props": { "label": "D1.IV.7i Resolved appeals related to non-emergency medical transportation (NEMT)", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to NEMT. If the managed care plan does not cover NEMT, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to NEMT. If the managed care plan does not cover NEMT, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2586,7 +2745,7 @@ "validation": "number", "props": { "label": "D1.IV.7j Resolved appeals related to other service types", - "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to services that do not fit into one of the categories listed above. If the managed care plan does not cover services other than those in items D1.IV.7a-i paid primarily by Medicaid, enter \"N/A\".", + "hint": "Enter the total number of appeals resolved by the plan during the reporting year that were related to services that do not fit into one of the categories listed above. If the managed care plan does not cover services other than those in items D1.IV.7a-i paid primarily by Medicaid, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2686,7 +2845,7 @@ "validation": "number", "props": { "label": "D1.IV.9a External Medical Reviews resulting in a favorable decision for the enrollee", - "hint": "If your state does offer an external medical review process, enter the total number of external medical review decisions rendered during the reporting year that were partially or fully favorable to the enrollee. If your state does not offer an external medical review process, enter \"N/A\".

External medical review is defined and described at 42 CFR §438.402(c)(i)(B).", + "hint": "If your state does offer an external medical review process, enter the total number of external medical review decisions rendered during the reporting year that were partially or fully favorable to the enrollee. If your state does not offer an external medical review process, enter “N/A”.

External medical review is defined and described at 42 CFR §438.402(c)(i)(B).", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2697,7 +2856,7 @@ "validation": "number", "props": { "label": "D1.IV.9b External Medical Reviews resulting in an adverse decision for the enrollee", - "hint": "

If your state does offer an external medical review process, enter the total number of external medical review decisions rendered during the reporting year that were adverse to the enrollee. If your state does not offer an external medical review process, enter \"N/A\".

External medical review is defined and described at 42 CFR §438.402(c)(i)(B).

", + "hint": "

If your state does offer an external medical review process, enter the total number of external medical review decisions rendered during the reporting year that were adverse to the enrollee. If your state does not offer an external medical review process, enter “N/A”.

External medical review is defined and described at 42 CFR §438.402(c)(i)(B).

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2753,7 +2912,7 @@ "validation": "number", "props": { "label": "D1.IV.10 Grievances resolved", - "hint": "

Enter the total number of grievances resolved by the plan during the reporting year.

A grievance is \"resolved\" when it has reached completion and been closed by the plan.

", + "hint": "

Enter the total number of grievances resolved by the plan during the reporting year.

A grievance is “resolved” when it has reached completion and been closed by the plan.

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2786,7 +2945,7 @@ "validation": "number", "props": { "label": "D1.IV.13 Number of critical incidents filed during the reporting period by (or on behalf of) an LTSS user who previously filed a grievance", - "hint": "

For managed care plans that cover LTSS, enter the number of critical incidents filed within the reporting year by (or on behalf of) LTSS users who previously filed grievances in the reporting year. The grievance and critical incident do not have to have been \"related\" to the same issue  - they only need to have been filed by (or on behalf of) the same enrollee. Neither the critical incident nor the grievance need to have been filed in relation to delivery of LTSS - they may have been filed for any reason, related to any service received (or desired) by an LTSS user.

If the managed care plan does not cover LTSS, the state should enter \"N/A\" in this field. Additionally, if the state already submitted this data for the reporting year via the CMS readiness review appeal and grievance report (because the managed care program or plan were new or serving new populations during the reporting year), and the readiness review tool was submitted for at least 6 months of the reporting year, the state can enter \"N/A\" in this field.

To calculate this number, states or managed care plans should first identify the LTSS users for whom critical incidents were filed during the reporting year, then determine whether those enrollees had filed a grievance during the reporting year, and whether the filing of the grievance preceded the filing of the critical incident.

", + "hint": "

For managed care plans that cover LTSS, enter the number of critical incidents filed within the reporting year by (or on behalf of) LTSS users who previously filed grievances in the reporting year. The grievance and critical incident do not have to have been “related” to the same issue - they only need to have been filed by (or on behalf of) the same enrollee. Neither the critical incident nor the grievance need to have been filed in relation to delivery of LTSS - they may have been filed for any reason, related to any service received (or desired) by an LTSS user.

If the managed care plan does not cover LTSS, the state should enter “N/A” in this field. Additionally, if the state already submitted this data for the reporting year via the CMS readiness review appeal and grievance report (because the managed care program or plan were new or serving new populations during the reporting year), and the readiness review tool was submitted for at least 6 months of the reporting year, the state can enter “N/A” in this field.

To calculate this number, states or managed care plans should first identify the LTSS users for whom critical incidents were filed during the reporting year, then determine whether those enrollees had filed a grievance during the reporting year, and whether the filing of the grievance preceded the filing of the critical incident.

", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2863,7 +3022,7 @@ "validation": "number", "props": { "label": "D1.IV.15a Resolved grievances related to general inpatient services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to general inpatient care, including diagnostic and laboratory services. Do not include grievances related to inpatient behavioral health services — those should be included in indicator D1.IV.15c. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to general inpatient care, including diagnostic and laboratory services. Do not include grievances related to inpatient behavioral health services — those should be included in indicator D1.IV.15c. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2874,7 +3033,7 @@ "validation": "number", "props": { "label": "D1.IV.15b Resolved grievances related to general outpatient services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to general outpatient care, including diagnostic and laboratory services. Do not include grievances related to outpatient behavioral health services — those should be included in indicator D1.IV.15d. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to general outpatient care, including diagnostic and laboratory services. Do not include grievances related to outpatient behavioral health services — those should be included in indicator D1.IV.15d. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2885,7 +3044,7 @@ "validation": "number", "props": { "label": "D1.IV.15c Resolved grievances related to inpatient behavioral health services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to inpatient mental health and/or substance use services. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to inpatient mental health and/or substance use services. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2896,7 +3055,7 @@ "validation": "number", "props": { "label": "D1.IV.15d Resolved grievances related to outpatient behavioral health services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to outpatient mental health and/or substance use services. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to outpatient mental health and/or substance use services. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2907,7 +3066,7 @@ "validation": "number", "props": { "label": "D1.IV.15e Resolved grievances related to coverage of outpatient prescription drugs", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to outpatient prescription drugs covered by the managed care plan. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to outpatient prescription drugs covered by the managed care plan. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2918,7 +3077,7 @@ "validation": "number", "props": { "label": "D1.IV.15f Resolved grievances related to skilled nursing facility (SNF) services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to SNF services. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to SNF services. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2929,7 +3088,7 @@ "validation": "number", "props": { "label": "D1.IV.15g Resolved grievances related to long-term services and supports (LTSS)", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to institutional LTSS or LTSS provided through home and community-based (HCBS) services, including personal care and self-directed services. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to institutional LTSS or LTSS provided through home and community-based (HCBS) services, including personal care and self-directed services. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2940,7 +3099,7 @@ "validation": "number", "props": { "label": "D1.IV.15h Resolved grievances related to dental services", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to dental services. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to dental services. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2951,7 +3110,7 @@ "validation": "number", "props": { "label": "D1.IV.15i Resolved grievances related to non-emergency medical transportation (NEMT)", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to NEMT. If the managed care plan does not cover this type of service, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to NEMT. If the managed care plan does not cover this type of service, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -2962,7 +3121,7 @@ "validation": "number", "props": { "label": "D1.IV.15j Resolved grievances related to other service types", - "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to services that do not fit into one of the categories listed above. If the managed care plan does not cover services other than those in items D1.IV.15a-i paid primarily by Medicaid, enter \"N/A\".", + "hint": "Enter the total number of grievances resolved by the plan during the reporting year that were related to services that do not fit into one of the categories listed above. If the managed care plan does not cover services other than those in items D1.IV.15a-i paid primarily by Medicaid, enter “N/A”.", "mask": "comma-separated", "decimalPlacesToRoundTo": 0 } @@ -3172,7 +3331,7 @@ "editEntityButtonText": "Edit measure", "addEditModalAddTitle": "Add a quality & performance measure", "addEditModalEditTitle": "Edit quality & performance measure", - "addEditModalMessage": "Complete the remaining indicators for this measure by saving the measure and selecting \"Enter measure results\".", + "addEditModalMessage": "Complete the remaining indicators for this measure by saving the measure and selecting “Enter measure results”.", "deleteEntityButtonAltText": "Delete quality & performance measure", "deleteModalTitle": "Delete quality measure?", "deleteModalConfirmButtonText": "Yes, delete measure", @@ -3407,7 +3566,7 @@ "repeat": "plans", "props": { "label": ": Measure Results", - "hint": "What are the measure results or values for this plan? Add free text or enter \"N/A\" if not applicable." + "hint": "What are the measure results or values for this plan? Add free text or enter “N/A” if not applicable." } } ] @@ -3440,12 +3599,12 @@ "editEntityButtonText": "Edit sanction", "addEditModalAddTitle": "Add sanction", "addEditModalEditTitle": "Edit sanction", - "addEditModalMessage": "Complete the remaining indicators for this sanction by saving the sanction and selecting \"Enter sanction details\".", + "addEditModalMessage": "Complete the remaining indicators for this sanction by saving the sanction and selecting “Enter sanction details”.", "deleteEntityButtonAltText": "Delete sanction", "deleteModalTitle": "Delete plan sanction?", "deleteModalConfirmButtonText": "Yes, delete sanction", "deleteModalWarning": "You will lose all information entered for this sanction. Are you sure you want to proceed?", - "entityUnfinishedMessage": "Complete the remaining indicators for this plan sanction by selecting \"Enter sanction details\".", + "entityUnfinishedMessage": "Complete the remaining indicators for this plan sanction by selecting “Enter sanction details”.", "enterEntityDetailsButtonText": "Enter sanction details", "editEntityDetailsButtonText": "Edit sanction details", "drawerTitle": "Add details for sanction", @@ -3974,7 +4133,7 @@ "info": [ { "type": "p", - "content": "If ILOSs are authorized for this program, report for each plan: if the plan offered any ILOS; if “Yes”, which ILOS the plan offered; and utilization data for each ILOS offered. If the plan offered an ILOS during the reporting period but there was no utilization, check that the ILOS was offered but enter \"0\" for utilization." + "content": "If ILOSs are authorized for this program, report for each plan: if the plan offered any ILOS; if “Yes”, which ILOS the plan offered; and utilization data for each ILOS offered. If the plan offered an ILOS during the reporting period but there was no utilization, check that the ILOS was offered but enter “0” for utilization." } ] }, @@ -4119,7 +4278,7 @@ }, "props": { "label": "D4.XI.2a ILOSs utilization by plan", - "hint": "Select all ILOSs offered by this plan during the contract rating period. For each ILOS offered by the plan, enter the deduplicated number of enrollees that utilized this ILOS during the contract rating period. If the plan offered this ILOS during the contract rating period but there was no utilization, enter \"0\".", + "hint": "Select all ILOSs offered by this plan during the contract rating period. For each ILOS offered by the plan, enter the deduplicated number of enrollees that utilized this ILOS during the contract rating period. If the plan offered this ILOS during the contract rating period but there was no utilization, enter “0”.", "choices": [ { "label": "D4.XI.2b" @@ -4134,6 +4293,237 @@ } ] } + }, + { + "name": "XIII: Prior Authorization", + "path": "/mcpar/plan-level-indicators/prior-authorization", + "pageType": "drawer", + "entityType": "plans", + "verbiage": { + "intro": { + "section": "Section D: Plan-Level Indicators", + "subsection": "Topic XIII: Prior Authorization", + "spreadsheet": "D1_Plan_Set", + "alert": "Beginning June 2026, Indicators D1.XIII.1-13 must be completed. Submission of this data before June 2026 is optional; if you choose not to response prior to June 2026, select “Not reporting data”." + }, + "dashboardTitle": "Report on prior authorization for each plan", + "drawerTitle": "Prior authorization (PA) for ", + "missingEntityMessage": [ + { + "type": "p", + "children": [ + { + "type": "html", + "content": "This program is missing plans. You won't be able to complete this section until you've added all the managed care plans that serve enrollees in the program. " + }, + { + "type": "internalLink", + "content": "Add Plans", + "props": { + "to": "/mcpar/program-information/add-plans" + } + }, + { + "type": "html", + "content": "." + } + ] + } + ] + }, + "form": { + "id": "pa", + "fields": [ + { + "id": "reportingDataPriorToJune2026", + "type": "radio", + "validation": "radio", + "props": { + "label": "Are you reporting data prior to June 2026?", + "hint": "If “Yes”, please complete the following questions under each plan.", + "choices": [ + { + "id": "IELJsTZxQkFDkTMzWQkKocwb", + "label": "Not reporting data" + }, + { + "id": "bByTWRIwTSTBncyZRUiibagB", + "label": "Yes" + } + ] + } + } + ] + }, + "drawerForm": { + "id": "dpa", + "fields": [ + { + "id": "D1.XIII.1Header", + "type": "sectionHeader", + "props": { + "content": "Total count of PA requests logged in by the plan during the prior calendar year" + } + }, + { + "id": "plan_totalStandardPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.1 Total standard PA requests", + "hint": "Enter the total number of standard PA requests logged by the plan during the prior calendar year. If you choose not to respond prior to June 2026, enter “NR” for not reporting." + } + }, + { + "id": "plan_totalExpeditedPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.2 Total expedited PA requests", + "hint": "Enter the total number of expedited PA requests logged by the plan during the prior calendar year. If you choose not to respond prior to June 2026, enter “NR” for not reporting." + } + }, + { + "id": "plan_totalStandardAndExpeditedPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.3 Total standard and expedited PA requests", + "hint": "Enter the total number of standard and expedited PA requests logged by the plan during the prior calendar year. If you choose not to respond prior to June 2026, enter “NR” for not reporting." + } + }, + { + "id": "D1.XIII.4Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of the total standard PA requests" + } + }, + { + "id": "plan_percentageOfStandardPARequestsApproved", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.4 Percentage of standard PA requests that were approved", + "hint": "Enter the percentage of the total standard PA requests, as reported in D1.XIII.1, that were approved. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_percentageOfStandardPARequestsDenied", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.5 Percentage of standard PA requests that were denied", + "hint": "Enter the percentage of the total standard PA requests, as reported in D1.XIII.1, that were denied. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_percentageOfStandardPARequestsApprovedAfterAppeal", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.6 Percentage of standard PA requests that were approved after appeal", + "hint": "Enter the percentage of the total standard PA requests, as reported in D1.XIII.1, that were approved after appeal, aggregated for all items and services as defined in § 438.210(f)(4). If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_averageTimeToDecisionForStandardPAs", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.7 Average time to decision for standard PAs", + "hint": "For standard PAs, as reported in D1.XIII.1, enter the average number of days that elapsed between submission of request and decision by the MCO, PIHP or PAHP. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_medianTimeThatElapsedForDecisionOnStandardPAs", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.8 Median time that elapsed for decision on standard PAs", + "hint": "For standard PAs, as reported in D1.XIII.1, enter the median number of days that elapsed between submission of request and decision by the MCO, PIHP or PAHP. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "D1.XIII.9Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of the total expedited PA requests" + } + }, + { + "id": "plan_percentageOfExpeditedPARequestsApproved", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.9 Percentage of expedited PA requests that were approved", + "hint": "Of the total expedited PA requests, as reported in D1.XIII.2, enter the percentage that were approved. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_percentageOfExpeditedPARequestsDenied", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.10 Percentage of expedited PA requests that were denied", + "hint": "Of the total expedited PA requests, as reported in D1.XIII.2, enter the percentage that were denied. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_averageTimeToDecisionForExpeditedPAs", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.11 Average time to decision for expedited PAs", + "hint": "Of the total expedited PA requests, as reported in D1.XIII.2, enter the average number of hours elapsed between submission of request and decision by MCO, PIHP or PAHP. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "plan_medianTimeThatElapsedForDecisionOnExpeditedPAs", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.12 Median time that elapsed for decision on expedited PAs", + "hint": "Of the total expedited PA requests, as reported in D1.XIII.2, enter the median number of hours elapsed between submission of request and decision by MCO, PIHP or PAHP, as defined in § 438.210(f)(9). If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "decimalPlacesToRoundTo": 2 + } + }, + { + "id": "D1.XIII.13Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of total PA requests" + } + }, + { + "id": "plan_percentageOfTotalPARequestsApprovedWithExtendedTimeframe", + "type": "number", + "validation": "numberNotLessThanZero", + "props": { + "label": "D1.XIII.13 Percentage of total PA requests approved with extended timeframe", + "hint": "Of the total PA requests, as reported in D1.XIII.3, enter the percentage of requests for which the timeframe for review was extended and the request was approved. If you choose not to respond prior to June 2026, enter “NR” for not reporting.", + "mask": "percentage", + "decimalPlacesToRoundTo": 2 + } + } + ] + } } ] }, diff --git a/services/app-api/forms/mlr.json b/services/app-api/forms/mlr.json index c7baabcff..47d4f1efe 100644 --- a/services/app-api/forms/mlr.json +++ b/services/app-api/forms/mlr.json @@ -222,7 +222,7 @@ }, { "type": "externalLink", - "content": "\"Managed Care Enrollment by Program and Plan\"", + "content": "“Managed Care Enrollment by Program and Plan”", "props": { "href": "https://www.medicaid.gov/medicaid/managed-care/enrollment-report/index.html", "target": "_blank", @@ -287,7 +287,7 @@ "hint": [ { "type": "p", - "content": "Enter the eligibility group for this MLR report. Most states provide MLR reports for all populations. In this case, select \"All Populations.\" If the state is providing additional detail for specific eligibility groups, see below for instructions related to each group." + "content": "Enter the eligibility group for this MLR report. Most states provide MLR reports for all populations. In this case, select “All Populations”. If the state is providing additional detail for specific eligibility groups, see below for instructions related to each group." }, { "type": "ol", @@ -305,7 +305,7 @@ "children": [ { "type": "html", - "content": "For separate CHIP reporting: States that intend to report MLRs for separate CHIP-only programs should select \"Standalone CHIP\". These separate child health assistance programs are defined in " + "content": "For separate CHIP reporting: States that intend to report MLRs for separate CHIP-only programs should select “Standalone CHIP”. These separate child health assistance programs are defined in " }, { "type": "externalLink", @@ -330,7 +330,7 @@ "children": [ { "type": "p", - "content": "For SUPPORT Act reporting: States that intend to qualify for the SUPPORT Act Section 4001 MLR provision must provide an MLR for the eligibility group described in section 1902(a)(10)(A)(i)(VIII) (referred to here as \"the Expansion Group\"). Select \"Group VIII Expansion Adult Only\"." + "content": "For SUPPORT Act reporting: States that intend to qualify for the SUPPORT Act Section 4001 MLR provision must provide an MLR for the eligibility group described in section 1902(a)(10)(A)(i)(VIII) (referred to here as “the Expansion Group”). Select “Group VIII Expansion Adult Only”." } ] }, @@ -344,7 +344,7 @@ "children": [ { "type": "p", - "content": "For States that intend to report separate MLRs for elibility groups that are served under the same program, select \"Other, specify\"." + "content": "For States that intend to report separate MLRs for elibility groups that are served under the same program, select “Other, specify”." } ] } diff --git a/services/app-api/handlers/banners/create.test.ts b/services/app-api/handlers/banners/create.test.ts index 48cbdf296..9a98bd070 100644 --- a/services/app-api/handlers/banners/create.test.ts +++ b/services/app-api/handlers/banners/create.test.ts @@ -2,16 +2,18 @@ import { createBanner } from "./create"; import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb"; import { mockClient } from "aws-sdk-client-mock"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; // utils import { error } from "../../utils/constants/constants"; import { proxyEvent } from "../../utils/testing/proxyEvent"; +import { StatusCodes } from "../../utils/responses/response-lib"; +import { hasPermissions } from "../../utils/auth/authorization"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), - hasPermissions: jest.fn().mockReturnValueOnce(false).mockReturnValue(true), + isAuthenticated: jest.fn().mockReturnValue(true), + hasPermissions: jest.fn().mockReturnValue(true), })); const testEvent: APIGatewayProxyEvent = { @@ -37,10 +39,14 @@ const consoleSpy: { }; describe("Test createBanner API method", () => { + beforeEach(() => { + dynamoClientMock.reset(); + }); test("Test unauthorized banner creation throws 403 error", async () => { + (hasPermissions as jest.Mock).mockReturnValueOnce(false); const res = await createBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(403); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); @@ -49,37 +55,41 @@ describe("Test createBanner API method", () => { dynamoClientMock.on(PutCommand).callsFake(mockPut); const res = await createBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(res.body).toContain("test banner"); expect(res.body).toContain("test description"); expect(mockPut).toHaveBeenCalled(); }); + test("Test dynamo issue throws error", async () => { + dynamoClientMock.on(PutCommand).rejectsOnce("error with dynamo"); + const res = await createBanner(testEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.DYNAMO_CREATION_ERROR); + }); + test("Test invalid data causes failure", async () => { const res = await createBanner(testEventWithInvalidData, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SERVER_ERROR); + expect(res.statusCode).toBe(StatusCodes.BadRequest); }); - test("Test bannerKey not provided throws 500 error", async () => { + test("Test bannerKey not provided throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: {}, }; const res = await createBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); - test("Test bannerKey empty throws 500 error", async () => { + test("Test bannerKey empty throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: { bannerId: "" }, }; const res = await createBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); }); diff --git a/services/app-api/handlers/banners/create.ts b/services/app-api/handlers/banners/create.ts index eff5ca446..3fcc5b967 100644 --- a/services/app-api/handlers/banners/create.ts +++ b/services/app-api/handlers/banners/create.ts @@ -5,51 +5,61 @@ import dynamoDb from "../../utils/dynamo/dynamodb-lib"; import { hasPermissions } from "../../utils/auth/authorization"; import { validateData } from "../../utils/validation/validation"; import { error } from "../../utils/constants/constants"; +import { + badRequest, + created, + forbidden, + internalServerError, +} from "../../utils/responses/response-lib"; // types -import { StatusCodes, UserRoles } from "../../utils/types"; +import { UserRoles } from "../../utils/types"; + +const validationSchema = yup.object().shape({ + key: yup.string().required(), + title: yup.string().required(), + description: yup.string().required(), + link: yup.string().url().notRequired(), + startDate: yup.number().required(), + endDate: yup.number().required(), +}); export const createBanner = handler(async (event, _context) => { if (!hasPermissions(event, [UserRoles.ADMIN])) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; - } else if (!event?.pathParameters?.bannerId!) { - throw new Error(error.NO_KEY); - } else { - const unvalidatedPayload = JSON.parse(event!.body!); + return forbidden(error.UNAUTHORIZED); + } + if (!event?.pathParameters?.bannerId!) { + return badRequest(error.NO_KEY); + } + const unvalidatedPayload = JSON.parse(event.body!); - const validationSchema = yup.object().shape({ - key: yup.string().required(), - title: yup.string().required(), - description: yup.string().required(), - link: yup.string().url().notRequired(), - startDate: yup.number().required(), - endDate: yup.number().required(), - }); + let validatedPayload; + try { + validatedPayload = await validateData(validationSchema, unvalidatedPayload); + } catch { + return badRequest(error.INVALID_DATA); + } - const validatedPayload = await validateData( - validationSchema, - unvalidatedPayload - ); + const { title, description, link, startDate, endDate } = validatedPayload; + const currentTime = Date.now(); - if (validatedPayload) { - const params = { - TableName: process.env.BANNER_TABLE_NAME!, - Item: { - key: event.pathParameters.bannerId, - createdAt: Date.now(), - lastAltered: Date.now(), - lastAlteredBy: event?.headers["cognito-identity-id"], - title: validatedPayload.title, - description: validatedPayload.description, - link: validatedPayload.link, - startDate: validatedPayload.startDate, - endDate: validatedPayload.endDate, - }, - }; - await dynamoDb.put(params); - return { status: StatusCodes.CREATED, body: params }; - } + const params = { + TableName: process.env.BANNER_TABLE_NAME!, + Item: { + key: event.pathParameters.bannerId, + createdAt: currentTime, + lastAltered: currentTime, + lastAlteredBy: event?.headers["cognito-identity-id"], + title, + description, + link, + startDate, + endDate, + }, + }; + try { + await dynamoDb.put(params); + } catch { + return internalServerError(error.DYNAMO_CREATION_ERROR); } + return created(params); }); diff --git a/services/app-api/handlers/banners/delete.test.ts b/services/app-api/handlers/banners/delete.test.ts index c82aad559..ba2b9a6a4 100644 --- a/services/app-api/handlers/banners/delete.test.ts +++ b/services/app-api/handlers/banners/delete.test.ts @@ -4,14 +4,16 @@ import { mockClient } from "aws-sdk-client-mock"; // utils import { proxyEvent } from "../../utils/testing/proxyEvent"; import { error } from "../../utils/constants/constants"; +import { hasPermissions } from "../../utils/auth/authorization"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), - hasPermissions: jest.fn().mockReturnValueOnce(false).mockReturnValue(true), + isAuthenticated: jest.fn().mockReturnValue(true), + hasPermissions: jest.fn().mockReturnValue(true), })); const testEvent: APIGatewayProxyEvent = { @@ -30,10 +32,11 @@ const consoleSpy: { describe("Test deleteBanner API method", () => { test("Test not authorized to delete banner throws 403 error", async () => { + (hasPermissions as jest.Mock).mockReturnValueOnce(false); const res = await deleteBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(403); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); @@ -43,32 +46,29 @@ describe("Test deleteBanner API method", () => { const res = await deleteBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - expect(res.body).toContain("testKey"); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(mockDelete).toHaveBeenCalled(); }); - test("Test bannerKey not provided throws 500 error", async () => { + test("Test bannerKey not provided throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: {}, }; const res = await deleteBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); - test("Test bannerKey empty throws 500 error", async () => { + test("Test bannerKey empty throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: { bannerId: "" }, }; const res = await deleteBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); }); diff --git a/services/app-api/handlers/banners/delete.ts b/services/app-api/handlers/banners/delete.ts index be7a68e78..bc8c6021a 100644 --- a/services/app-api/handlers/banners/delete.ts +++ b/services/app-api/handlers/banners/delete.ts @@ -3,25 +3,23 @@ import handler from "../handler-lib"; import dynamoDb from "../../utils/dynamo/dynamodb-lib"; import { hasPermissions } from "../../utils/auth/authorization"; import { error } from "../../utils/constants/constants"; +import { badRequest, forbidden, ok } from "../../utils/responses/response-lib"; // types -import { StatusCodes, UserRoles } from "../../utils/types"; +import { UserRoles } from "../../utils/types"; export const deleteBanner = handler(async (event, _context) => { if (!hasPermissions(event, [UserRoles.ADMIN])) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; - } else if (!event?.pathParameters?.bannerId!) { - throw new Error(error.NO_KEY); - } else { - const params = { - TableName: process.env.BANNER_TABLE_NAME!, - Key: { - key: event?.pathParameters?.bannerId!, - }, - }; - await dynamoDb.delete(params); - return { status: StatusCodes.SUCCESS, body: params }; + return forbidden(error.UNAUTHORIZED); } + if (!event?.pathParameters?.bannerId!) { + return badRequest(error.NO_KEY); + } + const params = { + TableName: process.env.BANNER_TABLE_NAME!, + Key: { + key: event.pathParameters.bannerId, + }, + }; + await dynamoDb.delete(params); + return ok(); }); diff --git a/services/app-api/handlers/banners/fetch.test.ts b/services/app-api/handlers/banners/fetch.test.ts index d6a4f8d31..60f66d983 100644 --- a/services/app-api/handlers/banners/fetch.test.ts +++ b/services/app-api/handlers/banners/fetch.test.ts @@ -6,12 +6,13 @@ import { proxyEvent } from "../../utils/testing/proxyEvent"; import { error } from "../../utils/constants/constants"; import { mockBannerResponse } from "../../utils/testing/setupJest"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), + isAuthenticated: jest.fn().mockReturnValue(true), hasPermissions: jest.fn().mockReturnValue(true), })); @@ -43,7 +44,7 @@ describe("Test fetchBanner API method", () => { }); const res = await fetchBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); }); test("Test Successful Banner Fetch", async () => { @@ -53,32 +54,30 @@ describe("Test fetchBanner API method", () => { const res = await fetchBanner(testEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(res.body).toContain("testDesc"); expect(res.body).toContain("testTitle"); }); - test("Test bannerKey not provided throws 500 error", async () => { + test("Test bannerKey not provided throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: {}, }; const res = await fetchBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SERVER_ERROR); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); - test("Test bannerKey empty throws 500 error", async () => { + test("Test bannerKey empty throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testEvent, pathParameters: { bannerId: "" }, }; const res = await fetchBanner(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SERVER_ERROR); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); }); diff --git a/services/app-api/handlers/banners/fetch.ts b/services/app-api/handlers/banners/fetch.ts index 3afb8e01d..c22e95a16 100644 --- a/services/app-api/handlers/banners/fetch.ts +++ b/services/app-api/handlers/banners/fetch.ts @@ -1,22 +1,20 @@ import handler from "../handler-lib"; import dynamoDb from "../../utils/dynamo/dynamodb-lib"; -// types -import { StatusCodes } from "../../utils/types"; // utils import { error } from "../../utils/constants/constants"; +import { badRequest, ok } from "../../utils/responses/response-lib"; export const fetchBanner = handler(async (event, _context) => { if (!event?.pathParameters?.bannerId!) { - throw new Error(error.NO_KEY); + return badRequest(error.NO_KEY); } const params = { TableName: process.env.BANNER_TABLE_NAME!, Key: { - key: event?.pathParameters?.bannerId!, + key: event.pathParameters.bannerId, }, }; const response = await dynamoDb.get(params); - const status = StatusCodes.SUCCESS; - return { status: status, body: response }; + return ok(response); }); diff --git a/services/app-api/handlers/handler-lib.test.ts b/services/app-api/handlers/handler-lib.test.ts index 3f69e2ab4..5d685148e 100644 --- a/services/app-api/handlers/handler-lib.test.ts +++ b/services/app-api/handlers/handler-lib.test.ts @@ -1,8 +1,9 @@ import handlerLib from "./handler-lib"; // utils import { proxyEvent } from "../utils/testing/proxyEvent"; -import { isAuthorized } from "../utils/auth/authorization"; +import { isAuthenticated } from "../utils/auth/authorization"; import * as logger from "../utils/debugging/debug-lib"; +import { ok, StatusCodes } from "../utils/responses/response-lib"; jest.mock("../utils/debugging/debug-lib", () => ({ init: jest.fn(), @@ -12,18 +13,18 @@ jest.mock("../utils/debugging/debug-lib", () => ({ })); jest.mock("../utils/auth/authorization", () => ({ - isAuthorized: jest.fn(), + isAuthenticated: jest.fn(), })); describe("Test Lambda Handler Lib", () => { test("Test successful authorized lambda workflow", async () => { - const testFunc = jest.fn().mockReturnValue({ status: 200, body: "test" }); + const testFunc = jest.fn().mockReturnValue(ok("test")); const handler = handlerLib(testFunc); - (isAuthorized as jest.Mock).mockReturnValue(true); + (isAuthenticated as jest.Mock).mockReturnValue(true); const res = await handler(proxyEvent, null); - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(res.body).toContain("test"); expect(logger.init).toHaveBeenCalled(); expect(logger.debug).toHaveBeenCalledWith( @@ -42,14 +43,12 @@ describe("Test Lambda Handler Lib", () => { const testFunc = jest.fn(); const handler = handlerLib(testFunc); - (isAuthorized as jest.Mock).mockReturnValue(false); + (isAuthenticated as jest.Mock).mockReturnValue(false); const res = await handler(proxyEvent, null); - expect(res.statusCode).toBe(403); + expect(res.statusCode).toBe(StatusCodes.Unauthenticated); expect(res.body).toStrictEqual( - JSON.stringify({ - error: "User is not authorized to access this resource.", - }) + JSON.stringify("User is not authorized to access this resource.") ); }); @@ -60,13 +59,13 @@ describe("Test Lambda Handler Lib", () => { }); const handler = handlerLib(testFunc); - (isAuthorized as jest.Mock).mockReturnValue(true); + (isAuthenticated as jest.Mock).mockReturnValue(true); const res = await handler(proxyEvent, null); expect(testFunc).toHaveBeenCalledWith(proxyEvent, null); expect(logger.error).toHaveBeenCalledWith("Error: %O", err); expect(logger.flush).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); expect(res.body).toStrictEqual(JSON.stringify({ error: "Test Error" })); expect(testFunc).toHaveBeenCalledWith(proxyEvent, null); }); diff --git a/services/app-api/handlers/handler-lib.ts b/services/app-api/handlers/handler-lib.ts index 65d77597c..5dcc1fd64 100644 --- a/services/app-api/handlers/handler-lib.ts +++ b/services/app-api/handlers/handler-lib.ts @@ -1,19 +1,20 @@ // utils import * as logger from "../utils/debugging/debug-lib"; -import { isAuthorized } from "../utils/auth/authorization"; +import { isAuthenticated } from "../utils/auth/authorization"; import { + HttpResponse, internalServerError, - buildResponse, + unauthenticated, } from "../utils/responses/response-lib"; import { error } from "../utils/constants/constants"; import { sanitizeObject } from "../utils/sanitize/sanitize"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../utils/types"; +import { APIGatewayProxyEvent } from "../utils/types"; type LambdaFunction = ( event: APIGatewayProxyEvent, // eslint-disable-line no-unused-vars context: any // eslint-disable-line no-unused-vars -) => Promise; +) => Promise; export default function handler(lambda: LambdaFunction) { return async function (event: APIGatewayProxyEvent, context: any) { @@ -25,17 +26,14 @@ export default function handler(lambda: LambdaFunction) { queryStringParameters: event.queryStringParameters, }); - if (await isAuthorized(event)) { + if (await isAuthenticated(event)) { try { if (event.body) { const newEventBody = sanitizeObject(JSON.parse(event.body)); event.body = JSON.stringify(newEventBody); } - // Run the Lambda - const { status, body } = await lambda(event, context); - return buildResponse(status, body); + return await lambda(event, context); } catch (error: any) { - // Print debug messages logger.error("Error: %O", error); const body = { error: error.message }; @@ -44,8 +42,7 @@ export default function handler(lambda: LambdaFunction) { logger.flush(); } } else { - const body = { error: error.UNAUTHORIZED }; - return buildResponse(StatusCodes.UNAUTHORIZED, body); + return unauthenticated(error.UNAUTHORIZED); } }; } diff --git a/services/app-api/handlers/reports/archive.test.ts b/services/app-api/handlers/reports/archive.test.ts index a373c4eaa..b6871117e 100644 --- a/services/app-api/handlers/reports/archive.test.ts +++ b/services/app-api/handlers/reports/archive.test.ts @@ -8,11 +8,12 @@ import { } from "../../utils/testing/setupJest"; import { error } from "../../utils/constants/constants"; import dynamodbLib from "../../utils/dynamo/dynamodb-lib"; +import { StatusCodes } from "../../utils/responses/response-lib"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockResolvedValue(true), + isAuthenticated: jest.fn().mockResolvedValue(true), hasPermissions: jest.fn(() => {}), })); @@ -65,10 +66,24 @@ describe("Test archiveReport method", () => { const body = JSON.parse(res.body); expect(consoleSpy.debug).toHaveBeenCalled(); expect(dynamoPutSpy).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(body.archived).toBe(true); }); + test("Test archive report with missing parameters returns 400", async () => { + const event = { + ...archiveEvent, + pathParameters: { + ...archiveEvent.pathParameters, + state: undefined, + }, + }; + const res = await archiveReport(event, null); + expect(consoleSpy.debug).toHaveBeenCalled(); + expect(res.statusCode).toBe(StatusCodes.BadRequest); + expect(res.body).toContain(error.NO_KEY); + }); + test("Test archive report with no existing record throws 404", async () => { mockAuthUtil.hasPermissions.mockReturnValue(true); mockedFetchReport.mockResolvedValue({ @@ -81,7 +96,7 @@ describe("Test archiveReport method", () => { }); const res = await archiveReport(archiveEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); expect(res.body).toContain(error.NO_MATCHING_RECORD); }); @@ -97,7 +112,24 @@ describe("Test archiveReport method", () => { }); const res = await archiveReport(archiveEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.UNAUTHORIZED); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); + + test("Test dynamo put issue throws error", async () => { + mockAuthUtil.hasPermissions.mockReturnValue(true); + mockedFetchReport.mockResolvedValue({ + statusCode: 200, + headers: { + "Access-Control-Allow-Origin": "string", + "Access-Control-Allow-Credentials": true, + }, + body: JSON.stringify(mockMcparReport), + }); + const dynamoPutSpy = jest.spyOn(dynamodbLib, "put"); + dynamoPutSpy.mockRejectedValueOnce("error"); + const res: any = await archiveReport(archiveEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.DYNAMO_UPDATE_ERROR); + }); }); diff --git a/services/app-api/handlers/reports/archive.ts b/services/app-api/handlers/reports/archive.ts index 6e8d3f478..ce5cb50d8 100644 --- a/services/app-api/handlers/reports/archive.ts +++ b/services/app-api/handlers/reports/archive.ts @@ -4,62 +4,64 @@ import { fetchReport } from "./fetch"; import dynamoDb from "../../utils/dynamo/dynamodb-lib"; import { error, reportTables } from "../../utils/constants/constants"; import { hasPermissions } from "../../utils/auth/authorization"; +import { + badRequest, + forbidden, + internalServerError, + notFound, + ok, +} from "../../utils/responses/response-lib"; +import { hasReportPathParams } from "../../utils/dynamo/hasReportPathParams"; // types -import { StatusCodes, UserRoles } from "../../utils/types"; +import { UserRoles } from "../../utils/types"; export const archiveReport = handler(async (event, context) => { + const requiredParams = ["reportType", "state", "id"]; + // Return bad request if missing required parameters + if ( + !event.pathParameters || + !hasReportPathParams(event.pathParameters, requiredParams) + ) { + return badRequest(error.NO_KEY); + } // Return a 403 status if the user is not an admin. if (!hasPermissions(event, [UserRoles.ADMIN, UserRoles.APPROVER])) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } // Get current report const reportEvent = { ...event, body: "" }; const getCurrentReport = await fetchReport(reportEvent, context); - if (!getCurrentReport.body) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + if (!getCurrentReport?.body) { + return notFound(error.NO_MATCHING_RECORD); } - // if current report exists, parse for archived status - if (getCurrentReport?.body) { - const currentReport = JSON.parse(getCurrentReport.body); - const currentArchivedStatus = currentReport?.archived; - const reportType = currentReport?.reportType; - - const reportTable = reportTables[reportType as keyof typeof reportTables]; + // parse for archived status + const currentReport = JSON.parse(getCurrentReport.body); + const currentArchivedStatus = currentReport?.archived; + const reportType = currentReport?.reportType; - // Delete raw data prior to updating - delete currentReport.fieldData; - delete currentReport.formTemplate; + const reportTable = reportTables[reportType as keyof typeof reportTables]; - // toggle archived status in report metadata table - const reportMetadataParams = { - TableName: reportTable, - Item: { - ...currentReport, - archived: !currentArchivedStatus, - }, - }; + // Delete raw data prior to updating + delete currentReport.fieldData; + delete currentReport.formTemplate; - try { - await dynamoDb.put(reportMetadataParams); - } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_UPDATE_ERROR, - }; - } + // toggle archived status in report metadata table + const reportMetadataParams = { + TableName: reportTable, + Item: { + ...currentReport, + archived: !currentArchivedStatus, + }, + }; - return { - status: StatusCodes.SUCCESS, - body: reportMetadataParams.Item, - }; + try { + await dynamoDb.put(reportMetadataParams); + } catch { + return internalServerError(error.DYNAMO_UPDATE_ERROR); } + + return ok(reportMetadataParams.Item); }); diff --git a/services/app-api/handlers/reports/create.test.ts b/services/app-api/handlers/reports/create.test.ts index babeaf434..751287c92 100644 --- a/services/app-api/handlers/reports/create.test.ts +++ b/services/app-api/handlers/reports/create.test.ts @@ -1,5 +1,9 @@ import { createReport } from "./create"; -import { DynamoDBDocumentClient, QueryCommand } from "@aws-sdk/lib-dynamodb"; +import { + DynamoDBDocumentClient, + PutCommand, + QueryCommand, +} from "@aws-sdk/lib-dynamodb"; import { mockClient } from "aws-sdk-client-mock"; // utils import * as reportUtils from "../../utils/reports/reports"; @@ -11,13 +15,14 @@ import { import { error } from "../../utils/constants/constants"; import * as authFunctions from "../../utils/auth/authorization"; import s3Lib from "../../utils/s3/s3-lib"; +import { StatusCodes } from "../../utils/responses/response-lib"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockResolvedValue(true), + isAuthenticated: jest.fn().mockResolvedValue(true), hasPermissions: jest.fn().mockReturnValue(true), })); @@ -199,10 +204,10 @@ describe("Test createReport API method", () => { consoleSpy.debug = jest.spyOn(console, "debug").mockImplementation(); }); - test("Test unauthorized report creation throws 403 error", async () => { - jest.spyOn(authFunctions, "isAuthorized").mockResolvedValueOnce(false); + test("Test unauthorized report creation throws 401 error", async () => { + jest.spyOn(authFunctions, "isAuthenticated").mockResolvedValueOnce(false); const res = await createReport(creationEvent, null); - expect(res.statusCode).toBe(403); + expect(res.statusCode).toBe(StatusCodes.Unauthenticated); expect(res.body).toContain(error.UNAUTHORIZED); }); @@ -210,7 +215,7 @@ describe("Test createReport API method", () => { jest.spyOn(authFunctions, "hasPermissions").mockReturnValueOnce(false); const res = await createReport(creationEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(403); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); @@ -222,9 +227,9 @@ describe("Test createReport API method", () => { s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); const res = await createReport(creationEvent, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(body.status).toContain("Not started"); expect(body.fieldDataId).toBeDefined; expect(body.formTemplateId).toBeDefined; @@ -255,9 +260,9 @@ describe("Test createReport API method", () => { s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); const res = await createReport(createPccmEvent, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(body.status).toContain("Not started"); expect(body.fieldDataId).toBeDefined; expect(body.formTemplateId).toBeDefined; @@ -285,6 +290,35 @@ describe("Test createReport API method", () => { expect(s3PutSpy).toHaveBeenCalled(); }); + test("Test dynamo issue throws error", async () => { + dynamoClientMock + .on(PutCommand) + .resolvesOnce({}) + .rejectsOnce("error with dynamo") + .on(QueryCommand) + .resolves({ + Items: [], + }); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); + const res = await createReport(creationEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.DYNAMO_CREATION_ERROR); + }); + + test("Test s3 issue throws error", async () => { + dynamoClientMock.on(QueryCommand).resolves({ + Items: [], + }); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy + .mockResolvedValueOnce(mockS3PutObjectCommandOutput) + .mockRejectedValueOnce("error"); + const res = await createReport(creationEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_CREATION_ERROR); + }); + test("Test attempted report creation with invalid data fails", async () => { dynamoClientMock.on(QueryCommand).resolves({ Items: [], @@ -293,7 +327,7 @@ describe("Test createReport API method", () => { s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); const res = await createReport(creationEventWithInvalidData, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SERVER_ERROR); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); expect(res.body).toContain(error.INVALID_DATA); expect(s3PutSpy).toHaveBeenCalled(); }); @@ -306,7 +340,7 @@ describe("Test createReport API method", () => { s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); const res = await createReport(creationEventWithNoFieldData, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.MISSING_DATA); expect(s3PutSpy).toHaveBeenCalled(); }); @@ -319,7 +353,7 @@ describe("Test createReport API method", () => { const res = await createReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -331,7 +365,7 @@ describe("Test createReport API method", () => { const res = await createReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -349,9 +383,9 @@ describe("Test createReport API method", () => { }); const copyFieldDataSpy = jest.spyOn(reportUtils, "copyFieldDataFromSource"); const res = await createReport(creationEventWithCopySource, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(copyFieldDataSpy).toBeCalled(); expect(body.fieldDataId).not.toEqual("mockReportFieldData"); expect(body.fieldData.plans).toBeDefined(); @@ -369,7 +403,7 @@ describe("Test createReport API method", () => { const copyFieldDataSpy = jest.spyOn(reportUtils, "copyFieldDataFromSource"); const res = await createReport(creationEventInvalidState, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(copyFieldDataSpy).not.toBeCalled(); }); @@ -377,7 +411,7 @@ describe("Test createReport API method", () => { const copyFieldDataSpy = jest.spyOn(reportUtils, "copyFieldDataFromSource"); const res = await createReport(creationEventMlrReport, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(copyFieldDataSpy).not.toBeCalled(); }); @@ -393,9 +427,9 @@ describe("Test createReport API method", () => { }); const copyFieldDataSpy = jest.spyOn(reportUtils, "copyFieldDataFromSource"); const res = await createReport(creationEventWithCopySource, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(copyFieldDataSpy).toBeCalled(); expect(body.fieldDataId).not.toEqual("mockReportFieldData"); expect(body.fieldData).toMatchObject({ stateName: "Alabama" }); @@ -420,9 +454,9 @@ describe("Test createReport API method", () => { }); const copyFieldDataSpy = jest.spyOn(reportUtils, "copyFieldDataFromSource"); const res = await createReport(creationEventWithCopySource, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.CREATED); + expect(res.statusCode).toBe(StatusCodes.Created); expect(copyFieldDataSpy).toBeCalled(); expect(body.fieldDataId).not.toEqual("mockReportFieldData"); expect(body.fieldData).toMatchObject({ stateName: "Alabama" }); diff --git a/services/app-api/handlers/reports/create.ts b/services/app-api/handlers/reports/create.ts index f1e202537..64a58a095 100644 --- a/services/app-api/handlers/reports/create.ts +++ b/services/app-api/handlers/reports/create.ts @@ -22,13 +22,14 @@ import { copyFieldDataFromSource, makePCCMModifications, } from "../../utils/reports/reports"; -// types import { - isReportType, - isState, - StatusCodes, - UserRoles, -} from "../../utils/types"; + badRequest, + created, + forbidden, + internalServerError, +} from "../../utils/responses/response-lib"; +// types +import { isReportType, isState, UserRoles } from "../../utils/types"; export const createReport = handler(async (event, _context) => { const requiredParams = ["reportType", "state"]; @@ -37,34 +38,22 @@ export const createReport = handler(async (event, _context) => { !event.pathParameters || !hasReportPathParams(event.pathParameters, requiredParams) ) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const { state, reportType } = event.pathParameters; if (!isState(state)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } if (!hasPermissions(event, [UserRoles.STATE_USER], state)) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } const unvalidatedPayload = JSON.parse(event.body!); const { metadata: unvalidatedMetadata, fieldData: unvalidatedFieldData } = unvalidatedPayload; if (!isReportType(reportType)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const reportBucket = reportBuckets[reportType]; @@ -75,12 +64,15 @@ export const createReport = handler(async (event, _context) => { const isProgramPCCM = unvalidatedMetadata?.programIsPCCM?.[0]?.value === "Yes"; + const novMcparRelease = unvalidatedMetadata?.novMcparRelease || false; + // eslint-disable-next-line no-useless-catch try { ({ formTemplate, formTemplateVersion } = await getOrCreateFormTemplate( reportBucket, reportType, - isProgramPCCM + isProgramPCCM, + novMcparRelease )); } catch (e) { throw e; @@ -88,10 +80,7 @@ export const createReport = handler(async (event, _context) => { // Return MISSING_DATA error if missing unvalidated data or validators. if (!unvalidatedFieldData || !formTemplate.validationJson) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.MISSING_DATA, - }; + return badRequest(error.MISSING_DATA); } // Create report and field ids. @@ -100,17 +89,19 @@ export const createReport = handler(async (event, _context) => { const formTemplateId: string = formTemplateVersion?.id; // Validate field data - const validatedFieldData = await validateFieldData( - formTemplate.validationJson, - unvalidatedFieldData - ); - - // Return INVALID_DATA error if field data is not valid. - if (!validatedFieldData || Object.keys(validatedFieldData).length === 0) { - return { - status: StatusCodes.SERVER_ERROR, - body: error.INVALID_DATA, - }; + let validatedFieldData; + try { + validatedFieldData = await validateFieldData( + formTemplate.validationJson, + unvalidatedFieldData + ); + } catch { + return badRequest(error.INVALID_DATA); + } + + // Return INVALID_DATA error field data has no valid entries + if (validatedFieldData && Object.keys(validatedFieldData).length === 0) { + return internalServerError(error.INVALID_DATA); } // If the `copyFieldDataSourceId` parameter is passed, merge the validated field data with the source ids data. @@ -123,7 +114,7 @@ export const createReport = handler(async (event, _context) => { state, unvalidatedMetadata.copyFieldDataSourceId, formTemplate, - validatedFieldData, + validatedFieldData!, reportType ); } else { @@ -145,25 +136,20 @@ export const createReport = handler(async (event, _context) => { try { await s3Lib.put(fieldDataParams); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.S3_OBJECT_CREATION_ERROR, - }; + return internalServerError(error.S3_OBJECT_CREATION_ERROR); } - const validatedMetadata = await validateData(metadataValidationSchema, { - ...unvalidatedMetadata, - }); - - // Return INVALID_DATA error if metadata is not valid. - if (!validatedMetadata) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.INVALID_DATA, - }; + let validatedMetadata; + try { + validatedMetadata = await validateData(metadataValidationSchema, { + ...unvalidatedMetadata, + }); + } catch { + // Return INVALID_DATA error if metadata is not valid. + return badRequest(error.INVALID_DATA); } - // Create DyanmoDB record. + // Create DynamoDB record. const reportMetadataParams: PutCommandInput = { TableName: reportTable, Item: { @@ -182,19 +168,13 @@ export const createReport = handler(async (event, _context) => { try { await dynamoDb.put(reportMetadataParams); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_CREATION_ERROR, - }; + return internalServerError(error.DYNAMO_CREATION_ERROR); } - return { - status: StatusCodes.CREATED, - body: { - ...reportMetadataParams.Item, - fieldData: validatedFieldData, - formTemplate, - formTemplateVersion: formTemplateVersion?.versionNumber, - }, - }; + return created({ + ...reportMetadataParams.Item, + fieldData: validatedFieldData, + formTemplate, + formTemplateVersion: formTemplateVersion?.versionNumber, + }); }); diff --git a/services/app-api/handlers/reports/fetch.test.ts b/services/app-api/handlers/reports/fetch.test.ts index b21c5ead7..7827363c9 100644 --- a/services/app-api/handlers/reports/fetch.test.ts +++ b/services/app-api/handlers/reports/fetch.test.ts @@ -12,18 +12,18 @@ import { } from "../../utils/testing/setupJest"; import dynamodbLib from "../../utils/dynamo/dynamodb-lib"; import s3Lib from "../../utils/s3/s3-lib"; +import { StatusCodes } from "../../utils/responses/response-lib"; +import { isAuthorizedToFetchState } from "../../utils/auth/authorization"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), - isAuthorizedToFetchState: jest.fn(() => {}), + isAuthenticated: jest.fn().mockReturnValue(true), + isAuthorizedToFetchState: jest.fn().mockReturnValue(true), })); -const mockAuthUtil = require("../../utils/auth/authorization"); - const testReadEvent: APIGatewayProxyEvent = { ...proxyEvent, headers: { "cognito-identity-id": "test" }, @@ -50,9 +50,8 @@ let consoleSpy: { describe("handlers/reports/fetch", () => { beforeEach(() => { - jest.restoreAllMocks(); + jest.clearAllMocks(); dynamoClientMock.reset(); - mockAuthUtil.isAuthorizedToFetchState.mockReturnValueOnce(true); consoleSpy.debug = jest.spyOn(console, "debug").mockImplementation(); consoleSpy.error = jest.spyOn(console, "error").mockImplementation(); }); @@ -64,7 +63,7 @@ describe("handlers/reports/fetch", () => { }); const res = await fetchReport(testReadEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); }); test("Test Report Form not found in S3", async () => { @@ -73,7 +72,7 @@ describe("handlers/reports/fetch", () => { }); const res = await fetchReport(testReadEvent, "null"); expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); }); test("Test Field Data not found in S3", async () => { @@ -82,7 +81,7 @@ describe("handlers/reports/fetch", () => { }); const res = await fetchReport(testReadEvent, "badId"); expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); }); test("Test Successful Report Fetch w/ Incomplete Report", async () => { @@ -95,8 +94,8 @@ describe("handlers/reports/fetch", () => { }); const res = await fetchReport(testReadEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); expect(body.lastAlteredBy).toContain("Thelonious States"); expect(body.programName).toContain("testProgram"); expect(body.completionStatus).toMatchObject( @@ -118,8 +117,8 @@ describe("handlers/reports/fetch", () => { }); const res = await fetchReport(testReadEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); expect(body.lastAlteredBy).toContain("Thelonious States"); expect(body.programName).toContain("testProgram"); expect(body.completionStatus).toMatchObject({ @@ -131,6 +130,28 @@ describe("handlers/reports/fetch", () => { expect(s3GetSpy).toHaveBeenCalledTimes(2); }); + test("Test Successful Report Fetch, creating completionStatus", async () => { + const metadataWithNoCompletionStatus = { + ...mockDynamoData, + completionStatus: undefined, + }; + dynamoClientMock.on(GetCommand).resolves({ + Item: metadataWithNoCompletionStatus, + }); + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + const res = await fetchReport(testReadEvent, null); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); + expect(body.completionStatus).toEqual({ + "/mock/mock-route-1": true, + "/mock/mock-route-2": {}, + }); + expect(body.isComplete).toEqual(true); + }); + test("Test reportKeys not provided throws 400 error", async () => { const noKeyEvent: APIGatewayProxyEvent = { ...testReadEvent, @@ -138,7 +159,7 @@ describe("handlers/reports/fetch", () => { }; const res = await fetchReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -149,9 +170,16 @@ describe("handlers/reports/fetch", () => { }; const res = await fetchReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); + + test("Test unauthorized returns 403", async () => { + (isAuthorizedToFetchState as jest.Mock).mockReturnValueOnce(false); + const res = await fetchReport(testReadEvent, null); + expect(res.statusCode).toBe(StatusCodes.Forbidden); + expect(res.body).toContain(error.UNAUTHORIZED); + }); }); describe("Test fetchReportsByState API method", () => { @@ -160,8 +188,8 @@ describe("handlers/reports/fetch", () => { dynamoQueryAllSpy.mockResolvedValue([mockDynamoData]); const res = await fetchReportsByState(testReadEventByState, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); expect(body[0].lastAlteredBy).toContain("Thelonious States"); expect(body[0].programName).toContain("testProgram"); }); @@ -173,7 +201,7 @@ describe("handlers/reports/fetch", () => { }; const res = await fetchReportsByState(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -184,8 +212,15 @@ describe("handlers/reports/fetch", () => { }; const res = await fetchReportsByState(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); + + test("Test unauthorized returns 403", async () => { + (isAuthorizedToFetchState as jest.Mock).mockReturnValueOnce(false); + const res = await fetchReportsByState(testReadEventByState, null); + expect(res.statusCode).toBe(StatusCodes.Forbidden); + expect(res.body).toContain(error.UNAUTHORIZED); + }); }); }); diff --git a/services/app-api/handlers/reports/fetch.ts b/services/app-api/handlers/reports/fetch.ts index b79c719d0..d6753fa9a 100644 --- a/services/app-api/handlers/reports/fetch.ts +++ b/services/app-api/handlers/reports/fetch.ts @@ -18,31 +18,28 @@ import { isComplete, } from "../../utils/validation/completionStatus"; import { isAuthorizedToFetchState } from "../../utils/auth/authorization"; +import { + badRequest, + forbidden, + notFound, + ok, +} from "../../utils/responses/response-lib"; // types -import { AnyObject, isState, StatusCodes } from "../../utils/types"; +import { AnyObject, isState } from "../../utils/types"; export const fetchReport = handler(async (event, _context) => { const requiredParams = ["reportType", "id", "state"]; if (!hasReportPathParams(event.pathParameters!, requiredParams)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const { reportType, state, id } = event.pathParameters!; if (!isState(state)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } if (!isAuthorizedToFetchState(event, state)) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } const reportTable = reportTables[reportType as keyof typeof reportTables]; @@ -57,10 +54,7 @@ export const fetchReport = handler(async (event, _context) => { try { const response = await dynamoDb.get(reportMetadataParams); if (!response?.Item) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NOT_IN_DATABASE, - }; + return notFound(error.NO_MATCHING_RECORD); } const reportMetadata = response.Item as Record; @@ -74,10 +68,7 @@ export const fetchReport = handler(async (event, _context) => { const formTemplate = (await s3Lib.get(formTemplateParams)) as AnyObject; // TODO: strict typing if (!formTemplate) { - return { - status: StatusCodes.NOT_FOUND, - body: error.MISSING_FORM_TEMPLATE, - }; + return notFound(error.NO_MATCHING_RECORD); } // Get field data from S3 @@ -89,10 +80,7 @@ export const fetchReport = handler(async (event, _context) => { const fieldData = (await s3Lib.get(fieldDataParams)) as AnyObject; // TODO: strict typing if (!fieldData) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return notFound(error.NO_MATCHING_RECORD); } if (!reportMetadata.completionStatus) { @@ -103,19 +91,13 @@ export const fetchReport = handler(async (event, _context) => { reportMetadata.isComplete = isComplete(reportMetadata.completionStatus); } - return { - status: StatusCodes.SUCCESS, - body: { - ...reportMetadata, - formTemplate, - fieldData, - }, - }; + return ok({ + ...reportMetadata, + formTemplate, + fieldData, + }); } catch { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return notFound(error.NO_MATCHING_RECORD); } }); @@ -123,19 +105,13 @@ export const fetchReportsByState = handler(async (event, _context) => { const requiredParams = ["reportType", "state"]; if (!hasReportPathParams(event.pathParameters!, requiredParams)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const { reportType, state } = event.pathParameters!; if (!isAuthorizedToFetchState(event, state!)) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } const reportTable = reportTables[reportType as keyof typeof reportTables]; @@ -153,8 +129,5 @@ export const fetchReportsByState = handler(async (event, _context) => { const reportsByState = await dynamoDb.queryAll(queryParams); - return { - status: StatusCodes.SUCCESS, - body: reportsByState, - }; + return ok(reportsByState); }); diff --git a/services/app-api/handlers/reports/release.test.ts b/services/app-api/handlers/reports/release.test.ts index dda601d8d..c9fadd5ab 100644 --- a/services/app-api/handlers/reports/release.test.ts +++ b/services/app-api/handlers/reports/release.test.ts @@ -1,6 +1,10 @@ import { releaseReport } from "./release"; import KSUID from "ksuid"; -import { DynamoDBDocumentClient, GetCommand } from "@aws-sdk/lib-dynamodb"; +import { + DynamoDBDocumentClient, + GetCommand, + PutCommand, +} from "@aws-sdk/lib-dynamodb"; import { mockClient } from "aws-sdk-client-mock"; // utils import { proxyEvent } from "../../utils/testing/proxyEvent"; @@ -14,13 +18,14 @@ import { import { error } from "../../utils/constants/constants"; import s3Lib from "../../utils/s3/s3-lib"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockResolvedValue(true), - hasPermissions: jest.fn(() => {}), + isAuthenticated: jest.fn().mockResolvedValue(true), + hasPermissions: jest.fn().mockReturnValue(true), })); const mockAuthUtil = require("../../utils/auth/authorization"); @@ -67,9 +72,9 @@ describe("Test releaseReport method", () => { }); const res = await releaseReport(releaseEvent, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(body.locked).toBe(false); expect(body.previousRevisions).toEqual([ mockDynamoDataMLRLocked.fieldDataId, @@ -99,9 +104,9 @@ describe("Test releaseReport method", () => { }); const res = await releaseReport(releaseEvent, null); - const body = JSON.parse(res.body); + const body = JSON.parse(res.body!); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(body.locked).toBe(false); expect(body.submissionCount).toBe(1); expect(body.previousRevisions.length).toBe(2); @@ -112,6 +117,52 @@ describe("Test releaseReport method", () => { expect(body.fieldDataId).not.toBe(mockDynamoDataMLRLocked.fieldDataId); }); + const newPreviousId = KSUID.randomSync().string; + test("Test release report on already-released report", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: { + ...mockDynamoDataMLRLocked, + previousRevisions: [newPreviousId], + submissionCount: 1, + locked: false, + }, + }); + + const res = await releaseReport(releaseEvent, null); + const body = JSON.parse(res.body!); + + expect(res.statusCode).toBe(StatusCodes.Ok); + expect(body.locked).toBe(false); + }); + + test("Test release report on archived report", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: { + ...mockDynamoDataMLRLocked, + previousRevisions: [newPreviousId], + archived: true, + }, + }); + + const res = await releaseReport(releaseEvent, null); + + expect(res.statusCode).toBe(StatusCodes.Conflict); + expect(res.body).toContain(error.ALREADY_ARCHIVED); + }); + + test("Test release report with no parameters returns 400", async () => { + const event = { + ...releaseEvent, + pathParameters: { + ...releaseEvent.pathParameters, + state: undefined, + }, + }; + const res = await releaseReport(event, null); + expect(res.statusCode).toBe(StatusCodes.BadRequest); + expect(res.body).toContain(error.NO_KEY); + }); + test("Test release report with no existing record throws 404", async () => { mockAuthUtil.hasPermissions.mockReturnValue(true); dynamoClientMock.on(GetCommand).resolves({ @@ -119,7 +170,25 @@ describe("Test releaseReport method", () => { }); const res = await releaseReport(releaseEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); + expect(res.body).toContain(error.NO_MATCHING_RECORD); + }); + + test("Test release report with no field data returns 404", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: undefined, + }); + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.NotFound); + expect(res.body).toContain(error.NO_MATCHING_RECORD); + }); + + test("Test release report with no form template returns 404", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: undefined, + }); + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.NotFound); expect(res.body).toContain(error.NO_MATCHING_RECORD); }); @@ -130,7 +199,74 @@ describe("Test releaseReport method", () => { }); const res = await releaseReport(releaseEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.UNAUTHORIZED); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); + + test("Test dynamo get metadata issue throws error", async () => { + mockAuthUtil.hasPermissions.mockReturnValue(true); + // dynamodb mocks + dynamoClientMock.on(GetCommand).rejectsOnce("error"); + + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.NotFound); + expect(res.body).toContain(error.NO_MATCHING_RECORD); + }); + + test("Test dynamo put issue throws error", async () => { + mockAuthUtil.hasPermissions.mockReturnValue(true); + // s3 mocks + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + // dynamodb mocks + dynamoClientMock + .on(GetCommand) + .resolves({ + Item: mockDynamoDataMLRLocked, + }) + .on(PutCommand) + .rejectsOnce("error"); + + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.DYNAMO_UPDATE_ERROR); + }); + + test("Test s3 get issue throws error", async () => { + mockAuthUtil.hasPermissions.mockReturnValue(true); + // s3 mocks + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockRejectedValueOnce("error") + .mockResolvedValueOnce(mockReportFieldData); + // dynamodb mocks + dynamoClientMock.on(GetCommand).resolves({ + Item: mockDynamoDataMLRLocked, + }); + + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_GET_ERROR); + }); + + test("Test s3 put issue throws error", async () => { + mockAuthUtil.hasPermissions.mockReturnValue(true); + // s3 mocks + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy.mockRejectedValueOnce("error"); + // dynamodb mocks + dynamoClientMock.on(GetCommand).resolves({ + Item: mockDynamoDataMLRLocked, + }); + + const res = await releaseReport(releaseEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_CREATION_ERROR); + }); }); diff --git a/services/app-api/handlers/reports/release.ts b/services/app-api/handlers/reports/release.ts index 866b06a56..5db1eeb3e 100644 --- a/services/app-api/handlers/reports/release.ts +++ b/services/app-api/handlers/reports/release.ts @@ -18,12 +18,19 @@ import s3Lib, { getFormTemplateKey, } from "../../utils/s3/s3-lib"; import { calculateCompletionStatus } from "../../utils/validation/completionStatus"; +import { + badRequest, + conflict, + forbidden, + internalServerError, + notFound, + ok, +} from "../../utils/responses/response-lib"; // types import { FormJson, ReportMetadata, ReportType, - StatusCodes, UserRoles, } from "../../utils/types"; @@ -41,10 +48,7 @@ import { export const releaseReport = handler(async (event) => { // Return a 403 status if the user is not an admin. if (!hasPermissions(event, [UserRoles.ADMIN, UserRoles.APPROVER])) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } if ( @@ -52,10 +56,7 @@ export const releaseReport = handler(async (event) => { !event.pathParameters?.state || !event.pathParameters?.reportType ) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return badRequest(error.NO_KEY); } const { id, state, reportType } = event.pathParameters; @@ -73,17 +74,11 @@ export const releaseReport = handler(async (event) => { try { reportMetadata = await dynamoDb.get(reportMetadataParams); } catch { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return notFound(error.NO_MATCHING_RECORD); } if (!reportMetadata.Item) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return notFound(error.NO_MATCHING_RECORD); } const metadata = reportMetadata.Item as ReportMetadata; @@ -93,22 +88,14 @@ export const releaseReport = handler(async (event) => { // Report is not locked. if (!isLocked) { - return { - status: StatusCodes.SUCCESS, - body: { - ...metadata, - }, - }; + return ok(metadata); } // check if report is archived const isArchived = metadata.archived; if (isArchived) { - return { - status: StatusCodes.SERVER_ERROR, - body: error.ALREADY_ARCHIVED, - }; + return conflict(error.ALREADY_ARCHIVED); } const newFieldDataId = KSUID.randomSync().string; @@ -138,10 +125,7 @@ export const releaseReport = handler(async (event) => { >; formTemplate = (await s3Lib.get(getFormTemplateParameters)) as FormJson; } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_UPDATE_ERROR, - }; + return internalServerError(error.S3_OBJECT_GET_ERROR); } const updatedFieldData = { @@ -180,10 +164,7 @@ export const releaseReport = handler(async (event) => { try { await dynamoDb.put(putReportMetadataParams); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_UPDATE_ERROR, - }; + return internalServerError(error.DYNAMO_UPDATE_ERROR); } // Copy the original field data to a new location. @@ -199,14 +180,8 @@ export const releaseReport = handler(async (event) => { await s3Lib.put(putObjectParameters); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.S3_OBJECT_CREATION_ERROR, - }; + return internalServerError(error.S3_OBJECT_CREATION_ERROR); } - return { - status: StatusCodes.SUCCESS, - body: putReportMetadataParams.Item, - }; + return ok(putReportMetadataParams.Item); }); diff --git a/services/app-api/handlers/reports/submit.test.ts b/services/app-api/handlers/reports/submit.test.ts index 5059e38df..6c9e0b399 100644 --- a/services/app-api/handlers/reports/submit.test.ts +++ b/services/app-api/handlers/reports/submit.test.ts @@ -1,5 +1,9 @@ import { submitReport } from "./submit"; -import { DynamoDBDocumentClient, GetCommand } from "@aws-sdk/lib-dynamodb"; +import { + DynamoDBDocumentClient, + GetCommand, + PutCommand, +} from "@aws-sdk/lib-dynamodb"; import { mockClient } from "aws-sdk-client-mock"; // utils import { proxyEvent } from "../../utils/testing/proxyEvent"; @@ -14,13 +18,15 @@ import { mockS3PutObjectCommandOutput, } from "../../utils/testing/setupJest"; import s3Lib from "../../utils/s3/s3-lib"; +import { hasPermissions } from "../../utils/auth/authorization"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), + isAuthenticated: jest.fn().mockReturnValue(true), hasPermissions: jest.fn().mockReturnValue(true), })); @@ -53,7 +59,7 @@ describe("Test submitReport API method", () => { }); const res = await submitReport(testSubmitEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); }); test("Test Successful Report Submittal", async () => { @@ -71,8 +77,8 @@ describe("Test submitReport API method", () => { const res = await submitReport(testSubmitEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); expect(body.lastAlteredBy).toContain("Thelonious States"); expect(body.programName).toContain("testProgram"); expect(body.isComplete).toStrictEqual(true); @@ -102,8 +108,8 @@ describe("Test submitReport API method", () => { const res = await submitReport(testSubmitEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Ok); + const body = JSON.parse(res.body!); expect(body.lastAlteredBy).toContain("Thelonious States"); expect(body.submissionName).toContain("testProgram"); expect(body.isComplete).toStrictEqual(true); @@ -120,8 +126,8 @@ describe("Test submitReport API method", () => { }); const res = await submitReport(testSubmitEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SERVER_ERROR); - const body = JSON.parse(res.body); + expect(res.statusCode).toBe(StatusCodes.Conflict); + const body = JSON.parse(res.body!); expect(body).toStrictEqual(error.REPORT_INCOMPLETE); }); @@ -132,7 +138,7 @@ describe("Test submitReport API method", () => { }; const res = await submitReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -143,7 +149,68 @@ describe("Test submitReport API method", () => { }; const res = await submitReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); + + test("Test attempted report submit without permissions returns 403", async () => { + (hasPermissions as jest.Mock).mockReturnValueOnce(false); + const res = await submitReport(testSubmitEvent, null); + expect(res.statusCode).toBe(StatusCodes.Forbidden); + expect(res.body).toContain(error.UNAUTHORIZED); + }); + + test("Test dynamo issue throws error", async () => { + dynamoClientMock + .on(GetCommand) + .resolves({ + Item: mockDynamoDataCompleted, + }) + .on(PutCommand) + .rejectsOnce("error with dynamo"); + const res = await submitReport(testSubmitEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.DYNAMO_UPDATE_ERROR); + }); + + test("Test s3 form template get issue throws error", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: mockDynamoDataCompleted, + }); + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockS3PutObjectCommandOutput) + .mockRejectedValueOnce("error"); + const res = await submitReport(testSubmitEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_GET_ERROR); + }); + + test("Test s3 field data get issue throws error", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: mockDynamoDataCompleted, + }); + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockRejectedValueOnce("error") + .mockResolvedValueOnce(mockS3PutObjectCommandOutput); + const res = await submitReport(testSubmitEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_GET_ERROR); + }); + + test("Test s3 put field data issue throws error", async () => { + dynamoClientMock.on(GetCommand).resolves({ + Item: mockDynamoDataCompleted, + }); + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy.mockRejectedValueOnce("error"); + const res = await submitReport(testSubmitEvent, null); + expect(res.statusCode).toBe(StatusCodes.InternalServerError); + expect(res.body).toContain(error.S3_OBJECT_UPDATE_ERROR); + }); }); diff --git a/services/app-api/handlers/reports/submit.ts b/services/app-api/handlers/reports/submit.ts index cc9088e3e..b2542814d 100644 --- a/services/app-api/handlers/reports/submit.ts +++ b/services/app-api/handlers/reports/submit.ts @@ -14,12 +14,20 @@ import s3Lib, { } from "../../utils/s3/s3-lib"; import { convertDateUtcToEt } from "../../utils/time/time"; import { hasReportPathParams } from "../../utils/dynamo/hasReportPathParams"; +import { + badRequest, + conflict, + forbidden, + internalServerError, + notFound, + ok, +} from "../../utils/responses/response-lib"; // types import { + ReportStatus, isState, MCPARReportMetadata, MLRReportMetadata, - StatusCodes, UserRoles, } from "../../utils/types"; @@ -29,25 +37,16 @@ export const submitReport = handler(async (event, _context) => { !event.pathParameters || !hasReportPathParams(event.pathParameters, requiredParams) ) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const { id, state, reportType } = event.pathParameters; if (!isState(state)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } if (!hasPermissions(event, [UserRoles.STATE_USER], state)) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } const reportTable = reportTables[reportType as keyof typeof reportTables]; @@ -59,141 +58,108 @@ export const submitReport = handler(async (event, _context) => { Key: { id, state }, }; + const response = await dynamodbLib.get(reportMetadataParams); + if (!response?.Item) { + return notFound(error.NOT_IN_DATABASE); + } + + const reportMetadata = response.Item as + | MLRReportMetadata + | MCPARReportMetadata; + const { status, isComplete, fieldDataId, formTemplateId } = reportMetadata; + + if (status === "Submitted") { + return ok(reportMetadata); + } + + if (!isComplete) { + return conflict(error.REPORT_INCOMPLETE); + } + + const jwt = jwtDecode(event.headers["x-api-key"]!) as Record< + string, + string | boolean + >; + + const date = Date.now(); + const fullName = `${jwt.given_name} ${jwt.family_name}`; + const submittedReportMetadata = { + ...reportMetadata, + submittedBy: fullName, + submittedOnDate: date, + status: ReportStatus.SUBMITTED, + locked: true, + submissionCount: reportMetadata.submissionCount + 1, + }; + + const submitReportParams = { + TableName: reportTable, + Item: submittedReportMetadata, + }; + try { + await dynamodbLib.put(submitReportParams); + } catch { + return internalServerError(error.DYNAMO_UPDATE_ERROR); + } + + // Get field data + const fieldDataParams = { + Bucket: reportBucket, + Key: getFieldDataKey(state, fieldDataId), + }; + + let existingFieldData; + + try { + existingFieldData = (await s3Lib.get(fieldDataParams)) as Record< + string, + any + >; + } catch { + return internalServerError(error.S3_OBJECT_GET_ERROR); + } + + const fieldData = { + ...existingFieldData, + submitterName: fullName, + submitterEmailAddress: jwt.email, + reportSubmissionDate: convertDateUtcToEt(date), + }; + + const updateFieldDataParams = { + Bucket: reportBucket, + Key: getFieldDataKey(state, fieldDataId), + Body: JSON.stringify(fieldData), + ContentType: "application/json", + }; + + const getFormTemplateParams = { + Bucket: reportBucket, + Key: getFormTemplateKey(formTemplateId), + }; + + let formTemplate; + try { - const response = await dynamodbLib.get(reportMetadataParams); - if (!response?.Item) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NOT_IN_DATABASE, - }; - } - - const reportMetadata = response.Item as - | MLRReportMetadata - | MCPARReportMetadata; - const { status, isComplete, fieldDataId, formTemplateId } = reportMetadata; - - if (status === "Submitted") { - return { - status: StatusCodes.SUCCESS, - body: { - ...reportMetadata, - }, - }; - } - - if (!isComplete) { - return { - status: StatusCodes.SERVER_ERROR, - body: error.REPORT_INCOMPLETE, - }; - } - - const jwt = jwtDecode(event.headers["x-api-key"]!) as Record< + formTemplate = (await s3Lib.get(getFormTemplateParams)) as Record< string, - string | boolean + any >; + } catch { + return internalServerError(error.S3_OBJECT_GET_ERROR); + } - const date = Date.now(); - const fullName = `${jwt.given_name} ${jwt.family_name}`; - const newItem = { - ...reportMetadata, - submittedBy: fullName, - submittedOnDate: date, - status: "Submitted", - locked: true, - submissionCount: reportMetadata.submissionCount + 1, - }; - - const submitReportParams = { - TableName: reportTable, - Item: newItem, - }; - try { - await dynamodbLib.put(submitReportParams); - } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_UPDATE_ERROR, - }; - } - - // Get field data - const fieldDataParams = { - Bucket: reportBucket, - Key: getFieldDataKey(state, fieldDataId), - }; - - let existingFieldData; - - try { - existingFieldData = (await s3Lib.get(fieldDataParams)) as Record< - string, - any - >; - } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.NOT_IN_DATABASE, - }; - } - - const fieldData = { - ...existingFieldData, - submitterName: fullName, - submitterEmailAddress: jwt.email, - reportSubmissionDate: convertDateUtcToEt(date), - }; - - const updateFieldDataParams = { - Bucket: reportBucket, - Key: getFieldDataKey(state, fieldDataId), - Body: JSON.stringify(fieldData), - ContentType: "application/json", - }; - - const getFormTemplateParams = { - Bucket: reportBucket, - Key: getFormTemplateKey(formTemplateId), - }; - - let formTemplate; - - try { - formTemplate = (await s3Lib.get(getFormTemplateParams)) as Record< - string, - any - >; - } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.NOT_IN_DATABASE, - }; - } - - try { - await s3Lib.put(updateFieldDataParams); - } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.S3_OBJECT_UPDATE_ERROR, - }; - } - - return { - status: StatusCodes.SUCCESS, - body: { - ...newItem, - fieldData: { ...fieldData }, - formTemplate: { - ...formTemplate, - }, - }, - }; + try { + await s3Lib.put(updateFieldDataParams); } catch { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return internalServerError(error.S3_OBJECT_UPDATE_ERROR); } + + return ok({ + ...submittedReportMetadata, + fieldData: { ...fieldData }, + formTemplate: { + ...formTemplate, + }, + }); }); diff --git a/services/app-api/handlers/reports/update.test.ts b/services/app-api/handlers/reports/update.test.ts index e92186fde..51b228c8f 100644 --- a/services/app-api/handlers/reports/update.test.ts +++ b/services/app-api/handlers/reports/update.test.ts @@ -14,12 +14,13 @@ import { import { error } from "../../utils/constants/constants"; import s3Lib from "../../utils/s3/s3-lib"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; const dynamoClientMock = mockClient(DynamoDBDocumentClient); jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockResolvedValue(true), + isAuthenticated: jest.fn().mockResolvedValue(true), hasPermissions: jest.fn(() => {}), })); const mockAuthUtil = require("../../utils/auth/authorization"); @@ -90,13 +91,11 @@ describe("handlers/reports/update", () => { beforeEach(() => { consoleSpy.debug = jest.spyOn(console, "debug").mockImplementation(); consoleSpy.error = jest.spyOn(console, "error").mockImplementation(); + dynamoClientMock.reset(); + jest.clearAllMocks(); }); describe("Test updateReport and archiveReport unauthorized calls", () => { - afterAll(() => { - jest.clearAllMocks(); - }); - test("Test unauthorized report update throws 403 error", async () => { // fail both state and admin auth checks mockAuthUtil.hasPermissions.mockReturnValue(false); @@ -114,10 +113,6 @@ describe("handlers/reports/update", () => { mockAuthUtil.hasPermissions.mockReturnValue(true); }); - afterEach(() => { - jest.clearAllMocks(); - }); - test("Test report update submission succeeds", async () => { // s3 mocks const s3GetSpy = jest.spyOn(s3Lib, "get"); @@ -140,14 +135,24 @@ describe("handlers/reports/update", () => { }); const response = await updateReport(submissionEvent, null); - const body = JSON.parse(response.body); + const body = JSON.parse(response.body!); expect(body.status).toContain("submitted"); expect(body.fieldData["mock-number-field"]).toBe("2"); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(response.statusCode).toBe(StatusCodes.SUCCESS); + expect(response.statusCode).toBe(StatusCodes.Ok); expect(mockPut).toHaveBeenCalled(); }); + test("Test attempted report update with no data returns 400", async () => { + const noBodyEvent = { + ...submissionEvent, + body: null, + }; + const res = await updateReport(noBodyEvent, null); + expect(res.statusCode).toBe(StatusCodes.BadRequest); + expect(res.body).toContain(error.MISSING_DATA); + }); + test("Test report update with invalid fieldData fails", async () => { // s3 mocks const s3GetSpy = jest.spyOn(s3Lib, "get"); @@ -173,8 +178,7 @@ describe("handlers/reports/update", () => { invalidFieldDataSubmissionEvent, null ); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(response.statusCode).toBe(StatusCodes.SERVER_ERROR); + expect(response.statusCode).toBe(StatusCodes.BadRequest); expect(response.body).toContain(error.INVALID_DATA); }); @@ -189,10 +193,36 @@ describe("handlers/reports/update", () => { }); const res = await updateReport(updateEventWithInvalidData, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.BAD_REQUEST); + expect(res.statusCode).toBe(StatusCodes.NotFound); expect(res.body).toContain(error.MISSING_DATA); }); + test("Test attempted report update with disallowed metadata properties returns 400", async () => { + const eventWritingToReadonlyMetadataFields = { + ...submissionEvent, + body: `{"metadata":{"locked":true}}`, + }; + const res = await updateReport( + eventWritingToReadonlyMetadataFields, + null + ); + expect(res.statusCode).toBe(StatusCodes.BadRequest); + expect(res.body).toContain(error.INVALID_DATA); + }); + + test("Test attempted report update with disallowed fieldData properties returns 400", async () => { + const eventWritingToReadonlyFieldDataFields = { + ...submissionEvent, + body: `{"fieldData":{"submitterName":"Abaraham Lincoln"}}`, + }; + const res = await updateReport( + eventWritingToReadonlyFieldDataFields, + null + ); + expect(res.statusCode).toBe(StatusCodes.BadRequest); + expect(res.body).toContain(error.INVALID_DATA); + }); + test("Test attempted report update with no existing record throws 404", async () => { mockedFetchReport.mockResolvedValue({ statusCode: 200, @@ -204,7 +234,7 @@ describe("handlers/reports/update", () => { }); const res = await updateReport(updateEventWithInvalidData, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.NOT_FOUND); + expect(res.statusCode).toBe(StatusCodes.NotFound); expect(res.body).toContain(error.NO_MATCHING_RECORD); }); @@ -220,7 +250,7 @@ describe("handlers/reports/update", () => { const res = await updateReport(updateEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.UNAUTHORIZED); + expect(res.statusCode).toBe(StatusCodes.Forbidden); expect(res.body).toContain(error.UNAUTHORIZED); }); @@ -232,7 +262,7 @@ describe("handlers/reports/update", () => { const res = await updateReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); @@ -244,8 +274,76 @@ describe("handlers/reports/update", () => { const res = await updateReport(noKeyEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(400); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_KEY); }); + + test("Test dynamo put issue throws error", async () => { + // s3 mocks + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy.mockResolvedValue(mockS3PutObjectCommandOutput); + // fetch mock + mockedFetchReport.mockResolvedValue({ + statusCode: 200, + headers: { + "Access-Control-Allow-Origin": "string", + "Access-Control-Allow-Credentials": true, + }, + body: JSON.stringify(mockDynamoData), + }); + // dynamodb mock error + dynamoClientMock.on(PutCommand).rejectsOnce("error"); + + const response = await updateReport(submissionEvent, null); + expect(response.statusCode).toBe(StatusCodes.InternalServerError); + expect(response.body).toContain(error.DYNAMO_UPDATE_ERROR); + }); + + test("Test s3 put issue throws error", async () => { + // s3 mocks + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(mockReportJson) + .mockResolvedValueOnce(mockReportFieldData); + const s3PutSpy = jest.spyOn(s3Lib, "put"); + s3PutSpy.mockRejectedValueOnce("error"); + // fetch mock + mockedFetchReport.mockResolvedValue({ + statusCode: 200, + headers: { + "Access-Control-Allow-Origin": "string", + "Access-Control-Allow-Credentials": true, + }, + body: JSON.stringify(mockDynamoData), + }); + + const response = await updateReport(submissionEvent, null); + expect(response.statusCode).toBe(StatusCodes.InternalServerError); + expect(response.body).toContain(error.S3_OBJECT_UPDATE_ERROR); + }); + + test("Test missing form template returns 404", async () => { + const s3GetSpy = jest.spyOn(s3Lib, "get"); + s3GetSpy + .mockResolvedValueOnce(undefined) + .mockResolvedValueOnce(mockReportFieldData); + mockedFetchReport.mockResolvedValue({ + statusCode: 200, + headers: { + "Access-Control-Allow-Origin": "string", + "Access-Control-Allow-Credentials": true, + }, + body: JSON.stringify(mockDynamoData), + }); + + const response = await updateReport(submissionEvent, null); + + expect(response.statusCode).toBe(StatusCodes.NotFound); + expect(response.body).toContain(error.MISSING_DATA); + }); }); }); diff --git a/services/app-api/handlers/reports/update.ts b/services/app-api/handlers/reports/update.ts index b459cc2d7..fd0a49294 100644 --- a/services/app-api/handlers/reports/update.ts +++ b/services/app-api/handlers/reports/update.ts @@ -22,8 +22,15 @@ import { calculateCompletionStatus, isComplete, } from "../../utils/validation/completionStatus"; +import { + badRequest, + forbidden, + internalServerError, + notFound, + ok, +} from "../../utils/responses/response-lib"; // types -import { isState, ReportJson, StatusCodes, UserRoles } from "../../utils/types"; +import { isState, ReportJson, UserRoles } from "../../utils/types"; export const updateReport = handler(async (event, context) => { const requiredParams = ["reportType", "id", "state"]; @@ -31,72 +38,51 @@ export const updateReport = handler(async (event, context) => { !event.pathParameters || !hasReportPathParams(event.pathParameters!, requiredParams) ) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } const { state } = event.pathParameters!; if (!isState(state)) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.NO_KEY, - }; + return badRequest(error.NO_KEY); } // If request body is missing, return a 400 error. if (!event?.body) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.MISSING_DATA, - }; + return badRequest(error.MISSING_DATA); } // Blacklisted keys - const metadataBlacklist = [ + const metadataBlocklist = [ "submittedBy", "submittedOnDate", "locked", "archive", ]; - const fieldDataBlacklist = [ + const fieldDataBlocklist = [ "submitterName", "submitterEmailAddress", "reportSubmissionDate", ]; - try { - const eventBody = JSON.parse(event.body); - if ( - (eventBody.metadata && - Object.keys(eventBody.metadata).some((_) => - metadataBlacklist.includes(_) - )) || - (eventBody.fieldData && - Object.keys(eventBody.fieldData).some((_) => - fieldDataBlacklist.includes(_) - )) - ) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.INVALID_DATA, - }; - } - } catch { - return { - status: StatusCodes.BAD_REQUEST, - body: error.INVALID_DATA, - }; + // This parse is guaranteed to succeed, because handler-lib already did it. + const eventBody = JSON.parse(event.body); + if ( + (eventBody.metadata && + Object.keys(eventBody.metadata).some((_) => + metadataBlocklist.includes(_) + )) || + (eventBody.fieldData && + Object.keys(eventBody.fieldData).some((_) => + fieldDataBlocklist.includes(_) + )) + ) { + return badRequest(error.INVALID_DATA); } // Ensure user has correct permissions to update a report. if (!hasPermissions(event, [UserRoles.STATE_USER], state)) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } // Get current report @@ -104,20 +90,14 @@ export const updateReport = handler(async (event, context) => { const fetchReportRequest = await fetchReport(reportEvent, context); if (!fetchReportRequest?.body || fetchReportRequest.statusCode !== 200) { - return { - status: StatusCodes.NOT_FOUND, - body: error.NO_MATCHING_RECORD, - }; + return notFound(error.NO_MATCHING_RECORD); } // If current report exists, get formTemplateId and fieldDataId const currentReport = JSON.parse(fetchReportRequest.body); if (currentReport.archived || currentReport.locked) { - return { - status: StatusCodes.UNAUTHORIZED, - body: error.UNAUTHORIZED, - }; + return forbidden(error.UNAUTHORIZED); } const { formTemplateId, fieldDataId, reportType } = currentReport; @@ -126,10 +106,7 @@ export const updateReport = handler(async (event, context) => { const reportTable = reportTables[reportType as keyof typeof reportTables]; if (!formTemplateId || !fieldDataId) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.MISSING_DATA, - }; + return notFound(error.MISSING_DATA); } const formTemplateParams = { @@ -137,6 +114,9 @@ export const updateReport = handler(async (event, context) => { Key: getFormTemplateKey(formTemplateId), }; const formTemplate = (await s3Lib.get(formTemplateParams)) as ReportJson; + if (!formTemplate) { + return notFound(error.MISSING_DATA); + } // Get existing fieldData from s3 bucket (for patching with passed data) const fieldDataParams = { @@ -147,6 +127,9 @@ export const updateReport = handler(async (event, context) => { string, any >; + if (!existingFieldData) { + return notFound(error.MISSING_DATA); + } // Parse the passed payload. const unvalidatedPayload = JSON.parse(event.body); @@ -155,31 +138,23 @@ export const updateReport = handler(async (event, context) => { unvalidatedPayload; if (!unvalidatedFieldData) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.MISSING_DATA, - }; + return badRequest(error.MISSING_DATA); } // Validation JSON should be there—if it's not, there's an issue. if (!formTemplate.validationJson) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.MISSING_FORM_TEMPLATE, - }; + return internalServerError(error.MISSING_FORM_TEMPLATE); } // Validate passed field data - const validatedFieldData = await validateFieldData( - formTemplate.validationJson, - unvalidatedFieldData - ); - - if (!validatedFieldData) { - return { - status: StatusCodes.SERVER_ERROR, - body: error.INVALID_DATA, - }; + let validatedFieldData; + try { + validatedFieldData = await validateFieldData( + formTemplate.validationJson, + unvalidatedFieldData + ); + } catch { + return badRequest(error.INVALID_DATA); } // Post validated field data to s3 bucket @@ -198,10 +173,7 @@ export const updateReport = handler(async (event, context) => { try { await s3Lib.put(updateFieldDataParams); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.S3_OBJECT_UPDATE_ERROR, - }; + return internalServerError(error.S3_OBJECT_UPDATE_ERROR); } const completionStatus = await calculateCompletionStatus( @@ -210,17 +182,15 @@ export const updateReport = handler(async (event, context) => { ); // validate report metadata - const validatedMetadata = await validateData(metadataValidationSchema, { - ...unvalidatedMetadata, - completionStatus, - }); - - // If metadata fails validation, return 400 - if (!validatedMetadata) { - return { - status: StatusCodes.BAD_REQUEST, - body: error.INVALID_DATA, - }; + let validatedMetadata; + try { + validatedMetadata = await validateData(metadataValidationSchema, { + ...unvalidatedMetadata, + completionStatus, + }); + } catch { + // If metadata fails validation, return 400 + return badRequest(error.INVALID_DATA); } /* @@ -244,18 +214,12 @@ export const updateReport = handler(async (event, context) => { try { await dynamoDb.put(reportMetadataParams); } catch { - return { - status: StatusCodes.SERVER_ERROR, - body: error.DYNAMO_UPDATE_ERROR, - }; + return internalServerError(error.DYNAMO_UPDATE_ERROR); } - return { - status: StatusCodes.SUCCESS, - body: { - ...reportMetadataParams.Item, - fieldData, - formTemplate, - }, - }; + return ok({ + ...reportMetadataParams.Item, + fieldData, + formTemplate, + }); }); diff --git a/services/app-api/handlers/templates/fetch.test.ts b/services/app-api/handlers/templates/fetch.test.ts index 3607334f0..40d0dae40 100644 --- a/services/app-api/handlers/templates/fetch.test.ts +++ b/services/app-api/handlers/templates/fetch.test.ts @@ -3,10 +3,11 @@ import { fetchTemplate } from "./fetch"; import { proxyEvent } from "../../utils/testing/proxyEvent"; import { error } from "../../utils/constants/constants"; // types -import { APIGatewayProxyEvent, StatusCodes } from "../../utils/types"; +import { APIGatewayProxyEvent } from "../../utils/types"; +import { StatusCodes } from "../../utils/responses/response-lib"; jest.mock("../../utils/auth/authorization", () => ({ - isAuthorized: jest.fn().mockReturnValue(true), + isAuthenticated: jest.fn().mockReturnValue(true), })); jest.mock("../../utils/s3/s3-lib", () => ({ @@ -39,7 +40,7 @@ describe("Test fetchTemplate API method", () => { const res = await fetchTemplate(mcparEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(res.body).toContain("s3://fakeurl.bucket.here"); }); @@ -51,7 +52,7 @@ describe("Test fetchTemplate API method", () => { const res = await fetchTemplate(mlrEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(res.body).toContain("s3://fakeurl.bucket.here"); }); @@ -63,7 +64,7 @@ describe("Test fetchTemplate API method", () => { const res = await fetchTemplate(naaarEvent, null); expect(consoleSpy.debug).toHaveBeenCalled(); - expect(res.statusCode).toBe(StatusCodes.SUCCESS); + expect(res.statusCode).toBe(StatusCodes.Ok); expect(res.body).toContain("s3://fakeurl.bucket.here"); }); @@ -74,8 +75,7 @@ describe("Test fetchTemplate API method", () => { }; const res = await fetchTemplate(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.NO_TEMPLATE_NAME); }); @@ -86,8 +86,7 @@ describe("Test fetchTemplate API method", () => { }; const res = await fetchTemplate(noKeyEvent, null); - expect(consoleSpy.error).toHaveBeenCalled(); - expect(res.statusCode).toBe(500); + expect(res.statusCode).toBe(StatusCodes.BadRequest); expect(res.body).toContain(error.INVALID_TEMPLATE_NAME); }); }); diff --git a/services/app-api/handlers/templates/fetch.ts b/services/app-api/handlers/templates/fetch.ts index 6a7c69c72..46e9b91c5 100644 --- a/services/app-api/handlers/templates/fetch.ts +++ b/services/app-api/handlers/templates/fetch.ts @@ -2,12 +2,13 @@ import handler from "../handler-lib"; // utils import { error } from "../../utils/constants/constants"; import s3Lib from "../../utils/s3/s3-lib"; +import { badRequest, ok } from "../../utils/responses/response-lib"; // types -import { StatusCodes, TemplateKeys } from "../../utils/types"; +import { TemplateKeys } from "../../utils/types"; export const fetchTemplate = handler(async (event, _context) => { if (!event?.pathParameters?.templateName!) { - throw new Error(error.NO_TEMPLATE_NAME); + return badRequest(error.NO_TEMPLATE_NAME); } let key; if (event.pathParameters.templateName === "MCPAR") { @@ -17,7 +18,7 @@ export const fetchTemplate = handler(async (event, _context) => { } else if (event.pathParameters.templateName === "NAAAR") { key = TemplateKeys.NAAAR; } else { - throw new Error(error.INVALID_TEMPLATE_NAME); + return badRequest(error.INVALID_TEMPLATE_NAME); } // get the signed URL string const params = { @@ -26,5 +27,5 @@ export const fetchTemplate = handler(async (event, _context) => { Key: key, }; const url = await s3Lib.getSignedDownloadUrl(params); - return { status: StatusCodes.SUCCESS, body: url }; + return ok(url); }); diff --git a/services/app-api/package.json b/services/app-api/package.json index dab31d17a..2e3f442f1 100644 --- a/services/app-api/package.json +++ b/services/app-api/package.json @@ -31,17 +31,17 @@ "typescript": "^4.5.4" }, "dependencies": { - "@aws-sdk/client-dynamodb": "^3.621.0", - "@aws-sdk/client-s3": "^3.621.0", - "@aws-sdk/client-ssm": "^3.621.0", - "@aws-sdk/lib-dynamodb": "^3.621.0", - "@aws-sdk/s3-request-presigner": "^3.621.0", - "@aws-sdk/util-dynamodb": "^3.621.0", + "@aws-sdk/client-dynamodb": "^3.654.0", + "@aws-sdk/client-s3": "^3.654.0", + "@aws-sdk/client-ssm": "^3.654.0", + "@aws-sdk/lib-dynamodb": "^3.654.0", + "@aws-sdk/s3-request-presigner": "^3.654.0", + "@aws-sdk/util-dynamodb": "^3.654.0", "aws-jwt-verify": "^3.1.0", "date-fns": "^2.26.0", "date-fns-tz": "^1.2.2", "dompurify": "^2.5.6", - "jsdom": "^24.1.0", + "jsdom": "^24.1.3", "jwt-decode": "^3.1.2", "jwt-encode": "^1.0.1", "kafkajs": "^2.2.3", diff --git a/services/app-api/utils/auth/authorization.test.ts b/services/app-api/utils/auth/authorization.test.ts index 5f9b21a8e..a83594ced 100644 --- a/services/app-api/utils/auth/authorization.test.ts +++ b/services/app-api/utils/auth/authorization.test.ts @@ -3,7 +3,7 @@ import { mockClient } from "aws-sdk-client-mock"; import { proxyEvent } from "../testing/proxyEvent"; import { hasPermissions, - isAuthorized, + isAuthenticated, isAuthorizedToFetchState, } from "./authorization"; import { UserRoles } from "../types"; @@ -45,20 +45,22 @@ describe("Test authorization with api key and environment variables", () => { jest.clearAllMocks(); }); test("is not authorized when no api key is passed", async () => { - mockVerifier.mockReturnValue(true); - const authStatus = await isAuthorized(noApiKeyEvent); + mockVerifier.mockImplementation(() => { + throw new Error("no key provided"); + }); + const authStatus = await isAuthenticated(noApiKeyEvent); expect(authStatus).toBeFalsy(); }); test("is not authorized when token is invalid", async () => { mockVerifier.mockImplementation(() => { throw new Error("could not verify"); }); - const authStatus = await isAuthorized(apiKeyEvent); + const authStatus = await isAuthenticated(apiKeyEvent); expect(authStatus).toBeFalsy(); }); test("is authorized when api key is passed and environment variables are set", async () => { mockVerifier.mockReturnValue(true); - const authStatus = await isAuthorized(apiKeyEvent); + const authStatus = await isAuthenticated(apiKeyEvent); expect(authStatus).toBeTruthy(); }); }); @@ -75,14 +77,16 @@ describe("Test authorization with api key and ssm parameters", () => { throw new Error("failed in test"); }); ssmClientMock.on(GetParameterCommand).callsFake(mockGetSsmParameter); - await expect(isAuthorized(apiKeyEvent)).rejects.toThrow("failed in test"); + await expect(isAuthenticated(apiKeyEvent)).rejects.toThrow( + "failed in test" + ); }); test("is authorized when api key is passed and ssm parameters exist", async () => { const mockGetSsmParameter = jest .fn() .mockResolvedValue({ Parameter: { Value: "VALUE" } }); ssmClientMock.on(GetParameterCommand).callsFake(mockGetSsmParameter); - const authStatus = await isAuthorized(apiKeyEvent); + const authStatus = await isAuthenticated(apiKeyEvent); expect(authStatus).toBeTruthy(); }); @@ -92,7 +96,7 @@ describe("Test authorization with api key and ssm parameters", () => { const mockGetSsmParameter = jest.fn().mockResolvedValue(mockSsmResponse); ssmClientMock.on(GetParameterCommand).callsFake(mockGetSsmParameter); - await isAuthorized(apiKeyEvent); + await isAuthenticated(apiKeyEvent); expect(mockGetSsmParameter).toHaveBeenCalled(); }); @@ -101,7 +105,7 @@ describe("Test authorization with api key and ssm parameters", () => { delete process.env["COGNITO_USER_POOL_CLIENT_ID"]; ssmClientMock.on(GetParameterCommand).resolves({}); - await expect(isAuthorized(apiKeyEvent)).rejects.toThrow(Error); + await expect(isAuthenticated(apiKeyEvent)).rejects.toThrow(Error); }); }); diff --git a/services/app-api/utils/auth/authorization.ts b/services/app-api/utils/auth/authorization.ts index df27cf561..2fc419653 100644 --- a/services/app-api/utils/auth/authorization.ts +++ b/services/app-api/utils/auth/authorization.ts @@ -41,7 +41,7 @@ const loadCognitoValues = async () => { } }; -export const isAuthorized = async (event: APIGatewayProxyEvent) => { +export const isAuthenticated = async (event: APIGatewayProxyEvent) => { const cognitoValues = await loadCognitoValues(); // Verifier that expects valid access tokens: const verifier = CognitoJwtVerifier.create({ @@ -50,18 +50,12 @@ export const isAuthorized = async (event: APIGatewayProxyEvent) => { clientId: cognitoValues.userPoolClientId, }); - let isAuthorized; - - if (event?.headers?.["x-api-key"]) { - try { - isAuthorized = await verifier.verify(event.headers["x-api-key"]); - } catch { - // verification failed - unauthorized - isAuthorized = false; - } + try { + await verifier.verify(event?.headers?.["x-api-key"]!); + return true; + } catch { + return false; } - - return !!isAuthorized; }; export const hasPermissions = ( diff --git a/services/app-api/utils/constants/constants.ts b/services/app-api/utils/constants/constants.ts index f7c211bee..2f0d4ac65 100644 --- a/services/app-api/utils/constants/constants.ts +++ b/services/app-api/utils/constants/constants.ts @@ -5,7 +5,7 @@ export const error = { MISSING_DATA: "Missing required data.", INVALID_DATA: "Provided data is not valid.", NO_MATCHING_RECORD: "No matching record found.", - SERVER_ERROR: "An unspecified server error occured.", + SERVER_ERROR: "An unspecified server error occurred.", // bucket errors S3_OBJECT_CREATION_ERROR: "Report could not be created due to an S3 error.", S3_OBJECT_GET_ERROR: "Error while fetching report.", @@ -23,7 +23,7 @@ export const error = { ALREADY_ARCHIVED: "Cannot update archived report.", ALREADY_LOCKED: "Cannot update locked report.", REPORT_INCOMPLETE: "Cannot submit incomplete form.", -}; +} as const; export const buckets = { FORM_TEMPLATE: "formTemplates", diff --git a/services/app-api/utils/formTemplates/formTemplates.test.ts b/services/app-api/utils/formTemplates/formTemplates.test.ts index 28aa57b46..7bf572a1b 100644 --- a/services/app-api/utils/formTemplates/formTemplates.test.ts +++ b/services/app-api/utils/formTemplates/formTemplates.test.ts @@ -71,7 +71,8 @@ describe("Test getOrCreateFormTemplate MCPAR", () => { const result = await getOrCreateFormTemplate( "local-mcpar-reports", ReportType.MCPAR, - programIsNotPCCM + programIsNotPCCM, + true ); expect(dynamoPutSpy).toHaveBeenCalled(); @@ -101,7 +102,8 @@ describe("Test getOrCreateFormTemplate MCPAR", () => { const result = await getOrCreateFormTemplate( "local-mcpar-reports", ReportType.MCPAR, - programIsPCCM + programIsPCCM, + false ); expect(dynamoPutSpy).toHaveBeenCalled(); expect(s3PutSpy).toHaveBeenCalled(); @@ -132,7 +134,8 @@ describe("Test getOrCreateFormTemplate MCPAR", () => { const result = await getOrCreateFormTemplate( "local-mcpar-reports", ReportType.MCPAR, - programIsNotPCCM + programIsNotPCCM, + false ); expect(dynamoPutSpy).not.toHaveBeenCalled(); expect(s3PutSpy).not.toHaveBeenCalled(); @@ -171,7 +174,8 @@ describe("Test getOrCreateFormTemplate MCPAR", () => { const result = await getOrCreateFormTemplate( "local-mcpar-reports", ReportType.MCPAR, - programIsNotPCCM + programIsNotPCCM, + true ); expect(dynamoPutSpy).toHaveBeenCalled(); expect(s3PutSpy).toHaveBeenCalled(); @@ -196,7 +200,8 @@ describe("Test getOrCreateFormTemplate MCPAR", () => { const result = await getOrCreateFormTemplate( "local-mcpar-reports", ReportType.MCPAR, - programIsNotPCCM + programIsNotPCCM, + true ); expect(dynamoPutSpy).toHaveBeenCalled(); @@ -236,7 +241,8 @@ describe("Test getOrCreateFormTemplate MLR", () => { const result = await getOrCreateFormTemplate( "local-mlr-reports", ReportType.MLR, - programIsNotPCCM + programIsNotPCCM, + true ); expect(dynamoPutSpy).toHaveBeenCalled(); expect(s3PutSpy).toHaveBeenCalled(); @@ -267,7 +273,8 @@ describe("Test getOrCreateFormTemplate MLR", () => { const result = await getOrCreateFormTemplate( "local-mlr-reports", ReportType.MLR, - programIsNotPCCM + programIsNotPCCM, + false ); expect(dynamoPutSpy).not.toHaveBeenCalled(); expect(s3PutSpy).not.toHaveBeenCalled(); @@ -306,7 +313,8 @@ describe("Test getOrCreateFormTemplate MLR", () => { const result = await getOrCreateFormTemplate( "local-mlr-reports", ReportType.MLR, - programIsNotPCCM + programIsNotPCCM, + true ); expect(dynamoPutSpy).toHaveBeenCalled(); expect(s3PutSpy).toHaveBeenCalled(); diff --git a/services/app-api/utils/formTemplates/formTemplates.ts b/services/app-api/utils/formTemplates/formTemplates.ts index d9c2b7c27..7894da4ca 100644 --- a/services/app-api/utils/formTemplates/formTemplates.ts +++ b/services/app-api/utils/formTemplates/formTemplates.ts @@ -76,7 +76,8 @@ export const formTemplateForReportType = (reportType: ReportType) => { export async function getOrCreateFormTemplate( reportBucket: string, reportType: ReportType, - isProgramPCCM: boolean + isProgramPCCM: boolean, + novMcparRelease?: boolean ) { let currentFormTemplate = formTemplateForReportType(reportType); @@ -84,6 +85,11 @@ export async function getOrCreateFormTemplate( currentFormTemplate = generatePCCMTemplate(currentFormTemplate); } + // if Nov MCPAR Release is not enabled, remove the fields from form template + if (!novMcparRelease) { + currentFormTemplate = handleTemplateForNovMcparRelease(currentFormTemplate); + } + const stringifiedTemplate = JSON.stringify(currentFormTemplate); const currentTemplateHash = createHash("md5") .update(stringifiedTemplate) @@ -317,3 +323,21 @@ const makePCCMTemplateModifications = (reportTemplate: ReportJson) => { } programTypeQuestion.props!.disabled = true; }; + +const handleTemplateForNovMcparRelease = (originalReportTemplate: any) => { + const reportTemplate = structuredClone(originalReportTemplate); + const routesToFilter = [ + "/mcpar/state-level-indicators/prior-authorization", + "/mcpar/plan-level-indicators/prior-authorization", + "/mcpar/program-level-indicators/patient-access-api-usage", + ]; + + for (let route of reportTemplate.routes) { + if (route?.children) { + route.children = route.children.filter( + (childRoute: ReportRoute) => !routesToFilter.includes(childRoute.path) + ); + } + } + return reportTemplate; +}; diff --git a/services/app-api/utils/responses/response-lib.test.ts b/services/app-api/utils/responses/response-lib.test.ts index 6cae5e812..3c24cb5eb 100644 --- a/services/app-api/utils/responses/response-lib.test.ts +++ b/services/app-api/utils/responses/response-lib.test.ts @@ -1,25 +1,39 @@ -import { buildResponse, internalServerError } from "./response-lib"; +import { + ok, + created, + badRequest, + unauthenticated, + forbidden, + notFound, + conflict, + internalServerError, +} from "./response-lib"; -test("Internal Server Error should give a 500 status", () => { - const res = internalServerError("internal error"); - expect(res.body).toBe(JSON.stringify("internal error")); - expect(res.statusCode).toBe(500); - expect(res.headers["Access-Control-Allow-Origin"]).toBe("*"); - expect(res.headers["Access-Control-Allow-Credentials"]).toBe(true); -}); +describe("HTTP Response helper functions", () => { + test("Responses should have correct status codes", () => { + expect(ok({}).statusCode).toBe(200); + expect(created({}).statusCode).toBe(201); + expect(badRequest({}).statusCode).toBe(400); + expect(unauthenticated({}).statusCode).toBe(401); + expect(forbidden({}).statusCode).toBe(403); + expect(notFound({}).statusCode).toBe(404); + expect(conflict({}).statusCode).toBe(409); + expect(internalServerError({}).statusCode).toBe(500); + }); -test("Build Response should create an object with a status code 420 and message", () => { - const res = buildResponse(400, "status is 400"); - expect(res.body).toBe(JSON.stringify("status is 400")); - expect(res.statusCode).toBe(400); - expect(res.headers["Access-Control-Allow-Origin"]).toBe("*"); - expect(res.headers["Access-Control-Allow-Credentials"]).toBe(true); -}); + test("Responses should exclude a body if not provided", () => { + const response = badRequest(); + expect(response.body).toBeUndefined(); + }); + + test("Responses should include a body if provided", () => { + const res = badRequest("try again"); + expect(res.body).toBe('"try again"'); + }); -test("Build Response should create an object with a status code 403 and message", () => { - const res = buildResponse(403, "Unauthorized"); - expect(res.body).toBe(JSON.stringify("Unauthorized")); - expect(res.statusCode).toBe(403); - expect(res.headers["Access-Control-Allow-Origin"]).toBe("*"); - expect(res.headers["Access-Control-Allow-Credentials"]).toBe(true); + test("Responses should have the correct headers", () => { + const response = ok({}); + expect(response.headers["Access-Control-Allow-Origin"]).toBe("*"); + expect(response.headers["Access-Control-Allow-Credentials"]).toBe(true); + }); }); diff --git a/services/app-api/utils/responses/response-lib.ts b/services/app-api/utils/responses/response-lib.ts index 76dc7e0c0..ea0222c9e 100644 --- a/services/app-api/utils/responses/response-lib.ts +++ b/services/app-api/utils/responses/response-lib.ts @@ -1,14 +1,95 @@ -export function internalServerError(body: any) { - return buildResponse(500, body); +/** + * The response for a successful request. + * Should include a body for GET, PUT, or POST. + * Need not include a body for DELETE + */ +export const ok = (body?: Object) => new HttpResponse(StatusCodes.Ok, body); + +/** + * The response for a successful POST or PUT request, + * which resulted in the creation of a new resource. + */ +export const created = (body: Object) => + new HttpResponse(StatusCodes.Created, body); + +/** + * The response for a failed request, due to client-side issues. + * Typically indicates a missing parameter or malformed body. + */ +export const badRequest = (body?: Object) => + new HttpResponse(StatusCodes.BadRequest, body); + +/** + * The response for a client without any authorization. + * Typically indicates an issue with the request's headers or token. + * + * Note: The usual name for HTTP 401 is "Unauthorized", but that's misleading. + * Authentication is for identity; authorization is for permissions. + */ +export const unauthenticated = (body?: Object) => + new HttpResponse(StatusCodes.Unauthenticated, body); + +/** + * The response for a client without sufficient permissions. + * This is specific to the requested operation. + * For example, a regular user requesting an admin-only endpoint. + */ +export const forbidden = (body?: Object) => + new HttpResponse(StatusCodes.Forbidden, body); + +/** + * The response for a request that assumes the existence of a missing resource. + * For example, attempting to submit a report that isn't in the database. + */ +export const notFound = (body?: Object) => + new HttpResponse(StatusCodes.NotFound, body); + +/** + * The response for a request that assumes the server is in a different state. + * For example, attempting to submit a report that's already submitted. + */ +export const conflict = (body?: Object) => + new HttpResponse(StatusCodes.Conflict, body); + +/** + * The response for a request that errored out on the server side. + * Typically indicates there is nothing the client can do to resolve the issue. + */ +export const internalServerError = (body?: Object) => + new HttpResponse(StatusCodes.InternalServerError, body); + +/** + * Note: Production code shouldn't need to reference this directly. + * Use a helper method instead. + * + * This enum is listed mainly for the purpose of unit testing. + */ +export enum StatusCodes { + Ok = 200, + Created = 201, + BadRequest = 400, + Unauthenticated = 401, + Forbidden = 403, + NotFound = 404, + Conflict = 409, + InternalServerError = 500, } -export function buildResponse(statusCode: number, body: any) { - return { - statusCode: statusCode, - headers: { - "Access-Control-Allow-Origin": "*", - "Access-Control-Allow-Credentials": true, - }, - body: JSON.stringify(body), +/** + * Note: Production code shouldn't need to reference this directly. + * Use a helper method instead. + */ +export class HttpResponse { + readonly statusCode: number; + readonly body: string | undefined; + readonly headers = { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Credentials": true, }; + constructor(statusCode: number, body?: Object | undefined) { + this.statusCode = statusCode; + if (body !== undefined) { + this.body = JSON.stringify(body); + } + } } diff --git a/services/app-api/utils/testing/fixtures/completionStatus/mcpar-complete.result.test.json b/services/app-api/utils/testing/fixtures/completionStatus/mcpar-complete.result.test.json index faffcf8c1..a6368ed37 100644 --- a/services/app-api/utils/testing/fixtures/completionStatus/mcpar-complete.result.test.json +++ b/services/app-api/utils/testing/fixtures/completionStatus/mcpar-complete.result.test.json @@ -35,8 +35,7 @@ }, "/mcpar/plan-level-indicators/quality-measures": true, "/mcpar/plan-level-indicators/sanctions": true, - "/mcpar/plan-level-indicators/program-integrity": true, - "/mcpar/plan-level-indicators/ilos": true + "/mcpar/plan-level-indicators/program-integrity": true }, "/mcpar/bss-entity-indicators": true } diff --git a/services/app-api/utils/testing/fixtures/completionStatus/mcpar-template.test.json b/services/app-api/utils/testing/fixtures/completionStatus/mcpar-template.test.json index 36956d4a4..4659fb402 100644 --- a/services/app-api/utils/testing/fixtures/completionStatus/mcpar-template.test.json +++ b/services/app-api/utils/testing/fixtures/completionStatus/mcpar-template.test.json @@ -230,7 +230,7 @@ "verbiage": { "intro": { "section": "Section A: Program Information", - "subsection": "Add In Lieu of Services and Settings", + "subsection": "Add In Lieu of Services and Settings (A.9)", "info": [ { "type": "p", @@ -1761,68 +1761,64 @@ "props": { "label": "C1.XII.10b In the last analysis(es) conducted, describe all deficiencies identified." } - } - ] - }, - { - "id": "id5YVp8cXSTlUNX3dKXSqxqa", - "label": "No" - } - ] - } - }, - { - "id": "program_haveTheseDeficienciesBeenResolvedForAllPlans", - "type": "radio", - "validation": { - "type": "radio", - "nested": true, - "parentFieldName": "program_doesThisProgramIncludeMCOs", - "parentOptionId": "A4uFU0YyU9useo3DsWjnH264" - }, - "props": { - "label": "C1.XII.11a As of the end of this reporting period, have these deficiencies been resolved for all plans?", - "choices": [ - { - "id": "sLd8M1tgf9dpVIZWRYEXvdBe", - "label": "Yes" - }, - { - "id": "DCDJH4S1JHF7G5bZUMxOVMTe", - "label": "No", - "children": [ + }, { - "id": "reasonsForNoDeficiencyResolutionsForAllPlans", - "type": "checkbox", + "id": "program_haveTheseDeficienciesBeenResolvedForAllPlans", + "type": "radio", "validation": { - "type": "checkbox", + "type": "radio", "nested": true, - "parentFieldName": "program_haveTheseDeficienciesBeenResolvedForAllPlans", - "parentOptionId": "DCDJH4S1JHF7G5bZUMxOVMTe" + "parentFieldName": "program_doesThisProgramIncludeMCOs", + "parentOptionId": "A4uFU0YyU9useo3DsWjnH264" }, "props": { - "label": "C1.XII.11b If deficiencies have not been resolved, select all that apply.", + "label": "C1.XII.11a As of the end of this reporting period, have these deficiencies been resolved for all plans?", "choices": [ { - "id": "bEJDkUR6l4zwIgj3aLDd7TZ9", - "label": "Noncompliant limits are still being applied in operations, affecting some providers and/or enrollees." + "id": "sLd8M1tgf9dpVIZWRYEXvdBe", + "label": "Yes" }, { - "id": "E63ZYRXBmOocAEUS9JA1PkNB", - "label": "Non-compliance is related to updated parity documentation not yet submitted to CMS." - }, - { - "id": "NXbySoHbH3AvbOIvIUREAPsC", - "label": "Other, specify", + "id": "DCDJH4S1JHF7G5bZUMxOVMTe", + "label": "No", "children": [ { - "id": "reasonsForNoDeficiencyResolutionsForAllPlans-otherText", - "type": "textarea", + "id": "reasonsForNoDeficiencyResolutionsForAllPlans", + "type": "checkbox", "validation": { - "type": "text", + "type": "checkbox", "nested": true, - "parentFieldName": "reasonsForNoDeficiencyResolutionsForAllPlans", - "parentOptionId": "NXbySoHbH3AvbOIvIUREAPsC" + "parentFieldName": "program_haveTheseDeficienciesBeenResolvedForAllPlans", + "parentOptionId": "DCDJH4S1JHF7G5bZUMxOVMTe" + }, + "props": { + "label": "C1.XII.11b If deficiencies have not been resolved, select all that apply.", + "choices": [ + { + "id": "bEJDkUR6l4zwIgj3aLDd7TZ9", + "label": "Noncompliant limits are still being applied in operations, affecting some providers and/or enrollees." + }, + { + "id": "E63ZYRXBmOocAEUS9JA1PkNB", + "label": "Non-compliance is related to updated parity documentation not yet submitted to CMS." + }, + { + "id": "NXbySoHbH3AvbOIvIUREAPsC", + "label": "Other, specify", + "children": [ + { + "id": "reasonsForNoDeficiencyResolutionsForAllPlans-otherText", + "type": "textarea", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "reasonsForNoDeficiencyResolutionsForAllPlans", + "parentOptionId": "NXbySoHbH3AvbOIvIUREAPsC" + } + } + ] + } + ] } } ] @@ -1831,6 +1827,10 @@ } } ] + }, + { + "id": "id5YVp8cXSTlUNX3dKXSqxqa", + "label": "No" } ] } @@ -3974,7 +3974,7 @@ "info": [ { "type": "p", - "content": "If ILOSs are authorized for this program, report for each plan: if the plan offered any ILOS; if “Yes”, which ILOS the plan offered; and utilization data for each ILOS offered. If the plan offered an ILOS during the reporting period but there was no utilization, check \"Yes\" that the ILOS was offered but enter \"0\" for utilization." + "content": "If ILOSs are authorized for this program, report for each plan: if the plan offered any ILOS; if “Yes”, which ILOS the plan offered; and utilization data for each ILOS offered. If the plan offered an ILOS during the reporting period but there was no utilization, check that the ILOS was offered but enter \"0\" for utilization." } ] }, @@ -4134,6 +4134,378 @@ } ] } + }, + { + "name": "XIII: Prior Authorization", + "path": "/mcpar/plan-level-indicators/prior-authorization", + "pageType": "drawer", + "entityType": "plans", + "verbiage": { + "intro": { + "section": "Section D: Plan-Level Indicators", + "subsection": "Topic XIII: Prior Authorization", + "spreadsheet": "D1_Plan_Set", + "alert": "Beginning June 2026, Indicators D1.XIII.1-14 must be completed. Submission of this data before June 2026 is optional; if you choose not to response prior to June 2026, enter \"N/A\"." + }, + "dashboardTitle": "Report on prior authorization for each plan", + "drawerTitle": "Prior authorization (PA) for ", + "missingEntityMessage": [ + { + "type": "p", + "children": [ + { + "type": "html", + "content": "This program is missing plans. You won't be able to complete this section until you've added all the managed care plans that serve enrollees in the program. " + }, + { + "type": "internalLink", + "content": "Add Plans", + "props": { + "to": "/mcpar/program-information/add-plans" + } + }, + { + "type": "html", + "content": "." + } + ] + } + ] + }, + "form": { + "id": "pa", + "fields": [ + { + "id": "reportingDataPriorToJune2026", + "type": "radio", + "validation": "radio", + "props": { + "label": "Are you reporting data prior to June 2026?", + "hint": "If \"Yes\", please complete the following questions under each plan.", + "choices": [ + { + "id": "IELJsTZxQkFDkTMzWQkKocwb", + "label": "Not reporting data" + }, + { + "id": "bByTWRIwTSTBncyZRUiibagB", + "label": "Yes" + } + ] + } + } + ] + }, + "drawerForm": { + "id": "dpa", + "fields": [ + { + "id": "D1.XIII.1Header", + "type": "sectionHeader", + "props": { + "content": "Total count of PA requests logged in by the plan during the prior calendar year" + } + }, + { + "id": "plan_totalNumberOfStandardPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.1 Total number of standard PA requests", + "hint": "Logged by the plan during prior calendar year." + } + }, + { + "id": "plan_totalNumberOfExpeditedPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.2 Total number of expedited PA requests", + "hint": "Logged by the plan during prior calendar year." + } + }, + { + "id": "plan_totalNumberOfStandardAndExpeditedPARequests", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.3 Total number of standard and expedited PA requests", + "hint": "Logged by the plan during prior calendar year." + } + }, + { + "id": "D1.XIII.4Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of the total standard PA requests" + } + }, + { + "id": "plan_percentageOfStandardPARequestsApproved", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.4 Percentage of standard PA requests that were approved", + "hint": "Of the total standard PA requests, aggregated for all items and services. As defined in § 438.210(f)(2).", + "mask": "percentage" + } + }, + { + "id": "plan_percentageOfStandardPARequestsDenied", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.5 Percentage of standard PA requests that were denied", + "hint": "Of the total standard PA requests, aggregated for all items and services. As defined in § 438.210(f)(3).", + "mask": "percentage" + } + }, + { + "id": "plan_percentageOfStandardPARequestsApprovedAfterAppeal", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.6 Percentage of standard PA requests that were approved after appeal", + "hint": "Of the total standard PA requests, aggregated for all items and services. As defined in § 438.210(f)(4).", + "mask": "percentage" + } + }, + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "type": "radio", + "validation": "radio", + "props": { + "label": "D1.XIII.7 Average time elapsed between submission of request and determination by the MCO, PIHP or PAHP, for standard PAs", + "hint": "Enter a number of days or hours, aggregated. As defined in § 438.210(f)(8).", + "choices": [ + { + "id": "Sw6yO5BMWLjWNFGWHjaPOyvk", + "label": "Not reporting data" + }, + { + "id": "oGf7z8KzqDhWEOaNxOsCP0N9", + "label": "Number of days", + "children": [ + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs_oGf7z8KzqDhWEOaNxOsCP0N9", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "parentOptionId": "oGf7z8KzqDhWEOaNxOsCP0N9" + } + } + ] + }, + { + "id": "XWUBmmjb4PNscoGGfZCkQtGx", + "label": "Number of hours", + "children": [ + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs_XWUBmmjb4PNscoGGfZCkQtGx", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "parentOptionId": "XWUBmmjb4PNscoGGfZCkQtGx" + } + } + ] + } + ] + } + }, + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "type": "radio", + "validation": "radio", + "props": { + "label": "D1.XIII.8 Median time elapsed between submission of request and determination by the MCO, PIHP or PAHP, for standard PAs", + "hint": "Enter a number of days or hours, aggregated. As defined in § 438.210(f)(8).", + "choices": [ + { + "id": "dUxvTGk5UfoXkcaHJ5V8h4Ow", + "label": "Not reporting data" + }, + { + "id": "CeAnSBAH4kBsybe2kkyS6oFj", + "label": "Number of days", + "children": [ + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs_CeAnSBAH4kBsybe2kkyS6oFj", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "parentOptionId": "CeAnSBAH4kBsybe2kkyS6oFj" + } + } + ] + }, + { + "id": "K0RcySVSGrlITMpnLfRiqAJj", + "label": "Number of hours", + "children": [ + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs_K0RcySVSGrlITMpnLfRiqAJj", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForStandardPAs", + "parentOptionId": "K0RcySVSGrlITMpnLfRiqAJj" + } + } + ] + } + ] + } + }, + { + "id": "D1.XIII.9Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of the total expedited PA requests" + } + }, + { + "id": "plan_percentageOfExpeditedPARequestsApproved", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.9 Percentage of expedited PA requests that were approved", + "hint": "Of the total expedited PA requests, aggregated for all items and services. As defined in § 438.210(f)(6).", + "mask": "percentage" + } + }, + { + "id": "plan_percentageOfExpeditedPARequestsDenied", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.10 Percentage of expedited PA requests that were denied", + "hint": "Of the total expedited PA requests, aggregated for all items and services. As defined in § 438.210(f)(7).", + "mask": "percentage" + } + }, + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "type": "radio", + "validation": "radio", + "props": { + "label": "D1.XIII.11 Average time elapsed between submission of request and determination by the MCO, PIHP or PAHP, for expedited PAs", + "hint": "Enter a number of days or hours, aggregated. As defined in § 438.210(f)(9).", + "choices": [ + { + "id": "R5MHFOJ2dFebuCUsaYpDW30l", + "label": "Not reporting data" + }, + { + "id": "2dYVC0NQuDRrjBoH0GTX93fi", + "label": "Number of days", + "children": [ + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs_2dYVC0NQuDRrjBoH0GTX93fi", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "parentOptionId": "2dYVC0NQuDRrjBoH0GTX93fi" + } + } + ] + }, + { + "id": "kGfRc6M6HYMpC62cqoR2Vtpi", + "label": "Number of hours", + "children": [ + { + "id": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs_kGfRc6M6HYMpC62cqoR2Vtpi", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_averageTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "parentOptionId": "kGfRc6M6HYMpC62cqoR2Vtpi" + } + } + ] + } + ] + } + }, + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "type": "radio", + "validation": "radio", + "props": { + "label": "D1.XIII.12 Median time elapsed between submission of request and determination by the MCO, PIHP or PAHP, for expedited PAs", + "hint": "Enter a number of days or hours, aggregated. As defined in § 438.210(f)(9).", + "choices": [ + { + "id": "n6p5HvVjxjBFvYW03v52PwsY", + "label": "Not reporting data" + }, + { + "id": "8voYlfTx4ICkdQei5ng5QODK", + "label": "Number of days", + "children": [ + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs_8voYlfTx4ICkdQei5ng5QODK", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "parentOptionId": "8voYlfTx4ICkdQei5ng5QODK" + } + } + ] + }, + { + "id": "pNaOYMKwZtpLLU6DRxTtXOv7", + "label": "Number of hours", + "children": [ + { + "id": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs_pNaOYMKwZtpLLU6DRxTtXOv7", + "type": "text", + "validation": { + "type": "text", + "nested": true, + "parentFieldName": "plan_medianTimeElapsedBetweenSubmissionOfRequestAndDeterminationForExpeditedPAs", + "parentOptionId": "pNaOYMKwZtpLLU6DRxTtXOv7" + } + } + ] + } + ] + } + }, + { + "id": "D1.XIII.13Header", + "type": "sectionHeader", + "props": { + "divider": "top", + "content": "Of the total PA requests" + } + }, + { + "id": "plan_percentageOfPARequestsExtendedReviewTimeframeAndApproved", + "type": "number", + "validation": "number", + "props": { + "label": "D1.XIII.13 Percentage of prior authorization requests for which the timeframe for review was extended, and the request was approved", + "mask": "percentage" + } + } + ] + } } ] }, diff --git a/services/app-api/utils/testing/setupJest.ts b/services/app-api/utils/testing/setupJest.ts index e9f47d0d1..6f6e733ac 100644 --- a/services/app-api/utils/testing/setupJest.ts +++ b/services/app-api/utils/testing/setupJest.ts @@ -86,6 +86,7 @@ export const mockDynamoDataCompleted: MCPARReportMetadata = { submissionCount: 0, locked: false, previousRevisions: [], + novMcparRelease: false, }; export const mockDynamoDataMLRComplete: MLRReportMetadata = { diff --git a/services/app-api/utils/types/formFields.ts b/services/app-api/utils/types/formFields.ts index 7ede450af..28122b2af 100644 --- a/services/app-api/utils/types/formFields.ts +++ b/services/app-api/utils/types/formFields.ts @@ -14,6 +14,7 @@ export const entityTypes = [ "sanctions", "program", "ilos", + "priorAuthorization", ] as const; /** diff --git a/services/app-api/utils/types/other.ts b/services/app-api/utils/types/other.ts index 05bebd695..1b77000c5 100644 --- a/services/app-api/utils/types/other.ts +++ b/services/app-api/utils/types/other.ts @@ -4,15 +4,6 @@ export interface AnyObject { [key: string]: any; } -export const enum StatusCodes { - SUCCESS = 200, - CREATED = 201, - BAD_REQUEST = 400, - UNAUTHORIZED = 403, - NOT_FOUND = 404, - SERVER_ERROR = 500, -} - /** * Abridged copy of the type used by `aws-lambda@1.0.7` (from `@types/aws-lambda@8.10.88`) * We only this package for these types, and we use only a subset of the diff --git a/services/app-api/utils/types/reportContext.ts b/services/app-api/utils/types/reportContext.ts index 6ee06bcce..69dd52e41 100644 --- a/services/app-api/utils/types/reportContext.ts +++ b/services/app-api/utils/types/reportContext.ts @@ -30,6 +30,7 @@ export interface ReportMetadataShape extends ReportKeys { copyFieldDataSourceId?: string; programIsPCCM?: Choice[]; previousRevisions: string[]; + novMcparRelease?: boolean; } export interface ReportShape extends ReportMetadataShape { diff --git a/services/app-api/utils/types/reports.ts b/services/app-api/utils/types/reports.ts index 5a089db9d..090e74599 100644 --- a/services/app-api/utils/types/reports.ts +++ b/services/app-api/utils/types/reports.ts @@ -181,6 +181,7 @@ export interface MCPARReportMetadata extends ReportMetadata { dueDate: number; combinedData: boolean; programIsPCCM: Choice[]; + novMcparRelease: boolean; } // HELPER FUNCTIONS diff --git a/services/app-api/utils/validation/completionSchemas.ts b/services/app-api/utils/validation/completionSchemas.ts index 8f1bd6609..5ffe55e51 100644 --- a/services/app-api/utils/validation/completionSchemas.ts +++ b/services/app-api/utils/validation/completionSchemas.ts @@ -19,7 +19,7 @@ export const error = { NUMBER_LESS_THAN_ZERO: "Response must be greater than or equal to zero", NUMBER_LESS_THAN_ONE: "Response must be greater than or equal to one", INVALID_NUMBER: "Response must be a valid number", - INVALID_NUMBER_OR_NA: 'Response must be a valid number or "N/A"', + INVALID_NUMBER_OR_NA: 'Response must be a valid number, "N/A" or "NR"', INVALID_RATIO: "Response must be a valid ratio", }; @@ -46,6 +46,8 @@ export const validNAValues = [ "n/a", "N/a", "Data not available", + "NR", + "nr", ]; /** This regex must be at least as permissive as the one in ui-src */ diff --git a/services/app-api/utils/validation/completionStatus.test.ts b/services/app-api/utils/validation/completionStatus.test.ts index fe438db90..881b3b98b 100644 --- a/services/app-api/utils/validation/completionStatus.test.ts +++ b/services/app-api/utils/validation/completionStatus.test.ts @@ -174,6 +174,69 @@ describe("Completion Status Tests", () => { ); expect(result).toMatchObject({}); }); + + test("If user has not added an ILOS, they're not required to complete that section", async () => { + const testData = {}; + const formTemplate = { + routes: [ + { + name: "D: Plan-Level Indicators", + path: "/mcpar/plan-level-indicators", + children: [ + { + name: "ILOS", + path: "/mcpar/plan-level-indicators/ilos", + entityType: "plans", + pageType: "drawer", + drawerForm: { + id: "dpa", + fields: [], + }, + }, + ], + }, + ], + }; + const result = await calculateCompletionStatus(testData, formTemplate); + expect(result).toMatchObject({}); + }); + + test("If user is not reporting Prior Authorization data, they're not required to complete that section", async () => { + const testData = { + reportingDataPriorToJune2026: [ + { + key: "mock-key", + value: "Not reporting data", + }, + ], + }; + const formTemplate = { + routes: [ + { + name: "D: Plan-Level Indicators", + path: "/mcpar/plan-level-indicators", + children: [ + { + name: "Prior Authorization", + path: "/mcpar/plan-level-indicators/prior-authorization", + entityType: "plans", + pageType: "drawer", + form: { + id: "pa", + fields: [], + }, + drawerForm: { + id: "dpa", + fields: [], + }, + }, + ], + }, + ], + }; + const result = await calculateCompletionStatus(testData, formTemplate); + expect(result).toMatchObject({}); + }); }); describe("Fixture Testing", () => { diff --git a/services/app-api/utils/validation/completionStatus.ts b/services/app-api/utils/validation/completionStatus.ts index 4e8a15c65..3d6dc6603 100644 --- a/services/app-api/utils/validation/completionStatus.ts +++ b/services/app-api/utils/validation/completionStatus.ts @@ -176,7 +176,16 @@ export const calculateCompletionStatus = async ( !fieldData["ilos"]?.length ) { routeCompletion = { [route.path]: true }; - break; + return; + } + // handle Prior Authorization case: if the user is not reporting prior to June 2026, this section is not required + if ( + route.path === "/mcpar/plan-level-indicators/prior-authorization" && + fieldData["reportingDataPriorToJune2026"]?.[0].value === + "Not reporting data" + ) { + routeCompletion = { [route.path]: true }; + return; } routeCompletion = { [route.path]: await calculateEntityCompletion( diff --git a/services/app-api/utils/validation/schemaMap.test.ts b/services/app-api/utils/validation/schemaMap.test.ts index c4f3693ea..cd898488b 100644 --- a/services/app-api/utils/validation/schemaMap.test.ts +++ b/services/app-api/utils/validation/schemaMap.test.ts @@ -94,7 +94,6 @@ describe("Schemas", () => { ) => { for (let testCase of testCases) { let test = schemaToUse.isValidSync(testCase); - expect(test).toEqual(expectedReturn); } }; diff --git a/services/app-api/utils/validation/schemaMap.ts b/services/app-api/utils/validation/schemaMap.ts index 66f05c9a4..ea3a5c360 100644 --- a/services/app-api/utils/validation/schemaMap.ts +++ b/services/app-api/utils/validation/schemaMap.ts @@ -17,7 +17,7 @@ const error = { NUMBER_LESS_THAN_ONE: "Response must be greater than or equal to one", NUMBER_LESS_THAN_ZERO: "Response must be greater than or equal to zero", INVALID_NUMBER: "Response must be a valid number", - INVALID_NUMBER_OR_NA: 'Response must be a valid number or "N/A"', + INVALID_NUMBER_OR_NA: 'Response must be a valid number, "N/A" or "NR"', INVALID_RATIO: "Response must be a valid ratio", }; @@ -35,6 +35,8 @@ export const validNAValues = [ "n/a", "N/a", "Data not available", + "NR", + "nr", ]; const valueCleaningNumberSchema = (value: string, charsToReplace: RegExp) => { @@ -47,7 +49,6 @@ const valueCleaningNumberSchema = (value: string, charsToReplace: RegExp) => { const validNumberRegex = /^\.$|[0-9]/; // NUMBER - Number or Valid Strings - export const number = () => string().test({ message: error.INVALID_NUMBER_OR_NA, diff --git a/services/app-api/yarn.lock b/services/app-api/yarn.lock index eb0298328..21a4d57c6 100644 --- a/services/app-api/yarn.lock +++ b/services/app-api/yarn.lock @@ -78,411 +78,412 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-dynamodb@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.621.0.tgz#de0a23830a742f42ed031abb745d3787b0d4e759" - integrity sha512-aczOoVyufYwBCc/zZKJOP/xwbnojKQJ6Y8O7ZAZnxMPRyZXKXpoAxmlxLfOU6GUzXqzXdvj+Ir3VBd7MWB4KuQ== +"@aws-sdk/client-dynamodb@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.654.0.tgz#2adbe26b67808850c0e44eea51029c0c97829528" + integrity sha512-QG7n2WJ4ZycoYnq04K7bYgai11in93XJgGJXeQM2jAszbMxrlFfczwhWDciHDz7hXWMhNvpKWuhvrXyxj9Irlg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-endpoint-discovery" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.654.0" + "@aws-sdk/client-sts" "3.654.0" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/credential-provider-node" "3.654.0" + "@aws-sdk/middleware-endpoint-discovery" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-node" "^3.0.6" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" + "@smithy/util-waiter" "^3.1.5" tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-s3@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.621.0.tgz#86a0e77913cd1e82308299835431887fe306c3a0" - integrity sha512-YhGkd2HQTM4HCYJIAVWvfbUMpOF7XUr1W/e2LN3CFP0WTF4zcCJKesJ2iNHrExqC0Ek1+qarMxiXBK95itfjYQ== +"@aws-sdk/client-s3@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.654.0.tgz#a4a5a341959a4bab71b4a3326a76e59fb0d50ecd" + integrity sha512-EsyeZJhkZD2VMdZpNt4NhlQ3QUAF24gMC+5w2wpGg6Yw+Bv7VLdg1t3PkTQovriJX1KTJAYHcGAuy92OFmWIng== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-bucket-endpoint" "3.620.0" - "@aws-sdk/middleware-expect-continue" "3.620.0" - "@aws-sdk/middleware-flexible-checksums" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-location-constraint" "3.609.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-sdk-s3" "3.621.0" - "@aws-sdk/middleware-signing" "3.620.0" - "@aws-sdk/middleware-ssec" "3.609.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/signature-v4-multi-region" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@aws-sdk/xml-builder" "3.609.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/eventstream-serde-browser" "^3.0.5" - "@smithy/eventstream-serde-config-resolver" "^3.0.3" - "@smithy/eventstream-serde-node" "^3.0.4" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-blob-browser" "^3.1.2" - "@smithy/hash-node" "^3.0.3" - "@smithy/hash-stream-node" "^3.1.2" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/md5-js" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.654.0" + "@aws-sdk/client-sts" "3.654.0" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/credential-provider-node" "3.654.0" + "@aws-sdk/middleware-bucket-endpoint" "3.654.0" + "@aws-sdk/middleware-expect-continue" "3.654.0" + "@aws-sdk/middleware-flexible-checksums" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-location-constraint" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-sdk-s3" "3.654.0" + "@aws-sdk/middleware-ssec" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/signature-v4-multi-region" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@aws-sdk/xml-builder" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/eventstream-serde-browser" "^3.0.9" + "@smithy/eventstream-serde-config-resolver" "^3.0.6" + "@smithy/eventstream-serde-node" "^3.0.8" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-blob-browser" "^3.1.5" + "@smithy/hash-node" "^3.0.6" + "@smithy/hash-stream-node" "^3.1.5" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/md5-js" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-stream" "^3.1.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" + "@smithy/util-stream" "^3.1.6" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" + "@smithy/util-waiter" "^3.1.5" tslib "^2.6.2" -"@aws-sdk/client-ssm@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ssm/-/client-ssm-3.621.0.tgz#d5928d86c65c2cb072f8d3bdaa739d3ff06cd1e5" - integrity sha512-E4OM7HH9qU2TZGDrX2MlBlBr9gVgDm573Qa1CTFih58dUZyaPEOiZSYLUNOyw4nMyVLyDMR/5zQ4wAorNwKVPw== +"@aws-sdk/client-ssm@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ssm/-/client-ssm-3.654.0.tgz#ee76ab1b277a89c85cdc974971bc72a7a374d4ea" + integrity sha512-Lg+BvIcD+fol1Jke8GcPLofwJAs6gzLeXvHijI9lEIeTvtIJYG8QANG435StEEGHMsAeSVrmoVT9UHOwLnM/KA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.654.0" + "@aws-sdk/client-sts" "3.654.0" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/credential-provider-node" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-node" "^3.0.6" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" + "@smithy/util-waiter" "^3.1.5" tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-sso-oidc@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.621.0.tgz#3fa3d468fbebbd93a5f75c1d51b63cc7af3ef17b" - integrity sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg== +"@aws-sdk/client-sso-oidc@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.654.0.tgz#9c02ce49f95203e8b99e896cf0dca6e4858e2da7" + integrity sha512-gbHrKsEnaAtmkNCVQzLyiqMzpDaThV/bWl/ODEklI+t6stW3Pe3oDMstEHLfJ6JU5g8sYnx4VLuxlnJMtUkvPw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/credential-provider-node" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-node" "^3.0.6" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.621.0.tgz#c0eefeb9adcbc6bb7c91c32070404c8c91846825" - integrity sha512-xpKfikN4u0BaUYZA9FGUMkkDmfoIP0Q03+A86WjqDWhcOoqNA1DkHsE4kZ+r064ifkPUfcNuUvlkVTEoBZoFjA== +"@aws-sdk/client-sso@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.654.0.tgz#6d800f0cfca97f8acf1fbf46cdac46169201267b" + integrity sha512-4kBxs2IzCDtj6a6lRXa/lXK5wWpMGzwKtb+HMXf/rJYVM6x7wYRzc1hYrOd3DYkFQ/sR3dUFj+0mTP0os3aAbA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-node" "^3.0.6" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.621.0.tgz#2994f601790893901704c5df56c837e89f279952" - integrity sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA== +"@aws-sdk/client-sts@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.654.0.tgz#574194804834f6158cc06d44ab517ec6e4c1c1c2" + integrity sha512-tyHa8jsBy+/NQZFHm6Q2Q09Vi9p3EH4yPy6PU8yPewpi2klreObtrUd0anJa6nzjS9SSuqnlZWsRic3cQ4QwCg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.654.0" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/credential-provider-node" "3.654.0" + "@aws-sdk/middleware-host-header" "3.654.0" + "@aws-sdk/middleware-logger" "3.654.0" + "@aws-sdk/middleware-recursion-detection" "3.654.0" + "@aws-sdk/middleware-user-agent" "3.654.0" + "@aws-sdk/region-config-resolver" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@aws-sdk/util-user-agent-browser" "3.654.0" + "@aws-sdk/util-user-agent-node" "3.654.0" + "@smithy/config-resolver" "^3.0.8" + "@smithy/core" "^2.4.3" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/hash-node" "^3.0.6" + "@smithy/invalid-dependency" "^3.0.6" + "@smithy/middleware-content-length" "^3.0.8" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.18" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.18" + "@smithy/util-defaults-mode-node" "^3.0.18" + "@smithy/util-endpoints" "^2.1.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.621.0.tgz#e38c56c3ce0c819ca1185eaabcb98412429aaca3" - integrity sha512-CtOwWmDdEiINkGXD93iGfXjN0WmCp9l45cDWHHGa8lRgEDyhuL7bwd/pH5aSzj0j8SiQBG2k0S7DHbd5RaqvbQ== - dependencies: - "@smithy/core" "^2.3.1" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" +"@aws-sdk/core@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.654.0.tgz#9ccc3618af04b4ff198433a22e27d7db14890917" + integrity sha512-4Rwx7BVaNaFqmXBDmnOkMbyuIFFbpZ+ru4lr660p45zY1QoNNSalechfoRffcokLFOZO+VWEJkdcorPUUU993w== + dependencies: + "@smithy/core" "^2.4.3" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/property-provider" "^3.1.6" + "@smithy/protocol-http" "^4.1.3" + "@smithy/signature-v4" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/util-middleware" "^3.0.6" fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" - integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== +"@aws-sdk/credential-provider-env@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.654.0.tgz#5773a9d969ede7e30059472b26c9e39b3992cc0a" + integrity sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.621.0.tgz#5f944bf548f203d842cf71a5792f73c205544627" - integrity sha512-/jc2tEsdkT1QQAI5Dvoci50DbSxtJrevemwFsm0B73pwCcOQZ5ZwwSdVqGsPutzYzUVx3bcXg3LRL7jLACqRIg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" +"@aws-sdk/credential-provider-http@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.654.0.tgz#72ce2ff0136eb87ef0c90d435bf1dd61558fe96d" + integrity sha512-tgmAH4MBi/aDR882lfw48+tDV95ZH3GWc1Eoe6DpNLiM3GN2VfU/cZwuHmi6aq+vAbdIlswBHJ/+va0fOvlyjw== + dependencies: + "@aws-sdk/types" "3.654.0" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/node-http-handler" "^3.2.2" + "@smithy/property-provider" "^3.1.6" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" + "@smithy/util-stream" "^3.1.6" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.621.0.tgz#bda2365f88fee40e3ae067b08bf484106c339222" - integrity sha512-0EWVnSc+JQn5HLnF5Xv405M8n4zfdx9gyGdpnCmAmFqEDHA8LmBdxJdpUk1Ovp/I5oPANhjojxabIW5f1uU0RA== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" +"@aws-sdk/credential-provider-ini@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.654.0.tgz#557b3774d4ab3d127f96cb2cd29419b2a8569796" + integrity sha512-DKSdaNu2hwdmuvnm9KnA0NLqMWxxmxSOLWjSUSoFIm++wGXUjPrRMFYKvMktaXnPuyf5my8gF/yGbwzPZ8wlTg== + dependencies: + "@aws-sdk/credential-provider-env" "3.654.0" + "@aws-sdk/credential-provider-http" "3.654.0" + "@aws-sdk/credential-provider-process" "3.654.0" + "@aws-sdk/credential-provider-sso" "3.654.0" + "@aws-sdk/credential-provider-web-identity" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@smithy/credential-provider-imds" "^3.2.3" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.621.0.tgz#9cc5052760a9f9d70d70f12ddbdbf0d59bf13a47" - integrity sha512-4JqpccUgz5Snanpt2+53hbOBbJQrSFq7E1sAAbgY6BKVQUsW5qyXqnjvSF32kDeKa5JpBl3bBWLZl04IadcPHw== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-ini" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" +"@aws-sdk/credential-provider-node@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.654.0.tgz#a701dda47eea2a3d5996d97672c058949ef41d3b" + integrity sha512-wPV7CNYaXDEc+SS+3R0v8SZwkHRUE1z2k2j1d49tH5QBDT4tb/k2V/biXWkwSk3hbR+IMWXmuhJDv/5lybhIvg== + dependencies: + "@aws-sdk/credential-provider-env" "3.654.0" + "@aws-sdk/credential-provider-http" "3.654.0" + "@aws-sdk/credential-provider-ini" "3.654.0" + "@aws-sdk/credential-provider-process" "3.654.0" + "@aws-sdk/credential-provider-sso" "3.654.0" + "@aws-sdk/credential-provider-web-identity" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@smithy/credential-provider-imds" "^3.2.3" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" - integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== +"@aws-sdk/credential-provider-process@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.654.0.tgz#2c526d0d059eddfe4176933fadbbf8bd59480642" + integrity sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.621.0.tgz#710f413708cb372f9f94e8eb9726cf263ffd83e3" - integrity sha512-Kza0jcFeA/GEL6xJlzR2KFf1PfZKMFnxfGzJzl5yN7EjoGdMijl34KaRyVnfRjnCWcsUpBWKNIDk9WZVMY9yiw== - dependencies: - "@aws-sdk/client-sso" "3.621.0" - "@aws-sdk/token-providers" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" +"@aws-sdk/credential-provider-sso@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.654.0.tgz#cb6cd05a8279c6ffe7e7399c03ba2db5ef2534f5" + integrity sha512-7GFme6fWEdA/XYKzZPOAdj/jS6fMBy1NdSIZsDXikS0v9jU+ZzHrAaWt13YLzHyjgxB9Sg9id9ncdY1IiubQXQ== + dependencies: + "@aws-sdk/client-sso" "3.654.0" + "@aws-sdk/token-providers" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" - integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== +"@aws-sdk/credential-provider-web-identity@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.654.0.tgz#67dc0463d20f801c8577276e2066f9151b2d5eb1" + integrity sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@aws-sdk/endpoint-cache@3.572.0": @@ -493,208 +494,201 @@ mnemonist "0.38.3" tslib "^2.6.2" -"@aws-sdk/lib-dynamodb@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.621.0.tgz#f8c320af1b286f2827d3be97aaffc571fa4bbfeb" - integrity sha512-RJJwaR15BLSTtegf2kgJjlJofvxeR+0Jm0rnEbJmRZ/HZhjow1LawrMbCR0YxfcWKUMsDw9tp8BDkLlrH1+RJQ== +"@aws-sdk/lib-dynamodb@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.654.0.tgz#9527dafb98380876fc58abb1486911675ab17fc9" + integrity sha512-/mi11SFhw3LQN+MUOtn3Dsu3gUd3oX1viSx37E/yU9oh6debP+zQSBC2RX4crDuJ5dNpdsvmTSMbbvkbZQ88hA== dependencies: - "@aws-sdk/util-dynamodb" "3.621.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@aws-sdk/util-dynamodb" "3.654.0" + "@smithy/core" "^2.4.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" - integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== +"@aws-sdk/middleware-bucket-endpoint@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.654.0.tgz#f8241db792eb951e1aaa127911e9d35ae11f45f2" + integrity sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA== dependencies: - "@aws-sdk/types" "3.609.0" + "@aws-sdk/types" "3.654.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-endpoint-discovery@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.620.0.tgz#45acd6cf2a77ceaf736f2758274c383838c8584a" - integrity sha512-T6kuydHBF4BPP5CVH53Fze7c2b9rqxWP88XrGtmNMXXdY4sXur1v/itGdS2l3gqRjxKo0LsmjmuQm9zL4vGneQ== +"@aws-sdk/middleware-endpoint-discovery@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.654.0.tgz#1f21663b21d2277da27771471b3d411836cba2e2" + integrity sha512-oHmSZYWsoGSYTjrohu/EFbtthGZOr9qIU8ewDzzhI2ceCEvCy6w7Vd/Ov1pG6C3faNEGAGNZynOmYJBeF2XIOA== dependencies: "@aws-sdk/endpoint-cache" "3.572.0" - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" - integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== +"@aws-sdk/middleware-expect-continue@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.654.0.tgz#ccf64bd5dbde3266181a00052bad8f78fcc1914e" + integrity sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" - integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== +"@aws-sdk/middleware-flexible-checksums@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.654.0.tgz#2868528c66c1f0094811668e2e89b246ca94352a" + integrity sha512-ZSRC+Lf9WxyoDLuTkd7JrFRrBLPLXcTOZzX6tDsnHc6tgdneBNwV3/ZOYUwQ8bdwLLnzSaQUU+X5B2BkEFKIhQ== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.609.0" + "@aws-sdk/types" "3.654.0" "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" + "@smithy/util-middleware" "^3.0.6" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" - integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== +"@aws-sdk/middleware-host-header@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.654.0.tgz#8b02dcc28467d5b48c32cec22fd6e10ffd2a0549" + integrity sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" - integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== +"@aws-sdk/middleware-location-constraint@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.654.0.tgz#a64ab011c390e4c7be75a08e0e104e06ccb4d961" + integrity sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" - integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== +"@aws-sdk/middleware-logger@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.654.0.tgz#510495302fb134e1ef2163205f8eaedd46ffe05f" + integrity sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" - integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== +"@aws-sdk/middleware-recursion-detection@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.654.0.tgz#4ade897efb6cbbfd72dd62a66999f28fd1552f9a" + integrity sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.621.0.tgz#da9cc709fffa4d269bb472e8ca42f2a4d80a842b" - integrity sha512-CJrQrtKylcqvyPkRR16JmPZkHroCkWwLErQrg30ZcBPNNok8xbfX6cYqG16XDTnu4lSYzv2Yqc4w4oOBv8xerQ== +"@aws-sdk/middleware-sdk-s3@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.654.0.tgz#53c87e64e745b45b6ff30ba8f06ed27b1fa7c761" + integrity sha512-6prq+GK6hLMAbxEb83tBMb1YiTWWK196fJhFO/7gE5TUPL1v756RhQZzKV/njbwB1fIBjRBTuhYLh5Bn98HhdA== dependencies: - "@aws-sdk/types" "3.609.0" + "@aws-sdk/core" "3.654.0" + "@aws-sdk/types" "3.654.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/core" "^2.4.3" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.3" + "@smithy/signature-v4" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-stream" "^3.1.3" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-stream" "^3.1.6" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-signing@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.620.0.tgz#8aface959d610732b0a5ede6f2c48119b33c4f3f" - integrity sha512-gxI7rubiaanUXaLfJ4NybERa9MGPNg2Ycl/OqANsozrBnR3Pw8vqy3EuVImQOyn2pJ2IFvl8ZPoSMHf4pX56FQ== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@aws-sdk/middleware-ssec@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" - integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== +"@aws-sdk/middleware-ssec@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.654.0.tgz#025cddb3317e5ab8cfdb1f449c4135441810119b" + integrity sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.620.0.tgz#1fe3104f04f576a942cf0469bfbd73c38eef3d9e" - integrity sha512-bvS6etn+KsuL32ubY5D3xNof1qkenpbJXf/ugGXbg0n98DvDFQ/F+SMLxHgbnER5dsKYchNnhmtI6/FC3HFu/A== +"@aws-sdk/middleware-user-agent@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.654.0.tgz#5fa56514b97ced923fefe2653429d7b2bfb102bb" + integrity sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg== dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-endpoints" "3.654.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" - integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== +"@aws-sdk/region-config-resolver@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.654.0.tgz#f98e25a6669fde3d747db23eb589732384e213ef" + integrity sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/types" "^3.4.2" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.6" tslib "^2.6.2" -"@aws-sdk/s3-request-presigner@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.621.0.tgz#0c6d033dd3b3ae17061407766466ce66362c6d92" - integrity sha512-7XCH5wy1guywSa4PHKrSiAqm/mYpuKURQWD9nGN9tl2DWec6OK7z+TTTCOml8lBX8Mg5Hx2GUdO3V8uRVYnEmw== - dependencies: - "@aws-sdk/signature-v4-multi-region" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-format-url" "3.609.0" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" +"@aws-sdk/s3-request-presigner@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.654.0.tgz#0795c22a85263b1a24c8374da2f175f675db851c" + integrity sha512-se1DllTTkaB85RSB60U/VUq5rCzwhqYZudxrf1zlWD0YjZpwKqifWgBomd3AyPZtQRQOcQooBcmZCVfGfdAuJQ== + dependencies: + "@aws-sdk/signature-v4-multi-region" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@aws-sdk/util-format-url" "3.654.0" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.2" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.621.0.tgz#d8bd2e8bab970acaecfaca3de85c6924b43f07ff" - integrity sha512-u+ulCaHFveqHaTxgiYrEAyfBVP6GRKjnmDut67CtjhjslshPWYpo/ndtlCW1zc0RDne3uUeK13Pqp7dp7p1d6g== +"@aws-sdk/signature-v4-multi-region@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.654.0.tgz#717ec39af4ec371ee463d0e51fa3985a2fb784ac" + integrity sha512-f8kyvbzgD3lSK1kFc3jsDCYjdutcqGO3tOzYO/QIK7BTl5lxc4rm6IKTcF2UYJsn8jiNqih7tVK8aVIGi8IF/w== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/middleware-sdk-s3" "3.654.0" + "@aws-sdk/types" "3.654.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/signature-v4" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/token-providers@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" - integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== +"@aws-sdk/token-providers@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.654.0.tgz#1aba36d510d471ccac43f90b59e2a354399ed069" + integrity sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/types@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" - integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== +"@aws-sdk/types@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.654.0.tgz#d368dda5e8aff9e7b6575985bb425bbbaf67aa97" + integrity sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@aws-sdk/types@^3.222.0": @@ -712,31 +706,31 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-dynamodb@3.621.0", "@aws-sdk/util-dynamodb@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.621.0.tgz#a0d6501e5ab9aca695dc794963adf46a475ee5f3" - integrity sha512-/3qEmZ52FdP4+3AUsUX0/wKcCF3jvAG+avVKuSCUYIdKgSIYKSeYfH8F3/r6DE3czaFevBwHRiuKHEihCMApGw== +"@aws-sdk/util-dynamodb@3.654.0", "@aws-sdk/util-dynamodb@^3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.654.0.tgz#9d120ced0f65ccec0a12574f84c7357eb9293227" + integrity sha512-Jzl/1TR41VwtlBOBv3xfMHUErK6oLxkhTPmlUpwK0uY5XhKi17mr/JimYMjhOce3z3KNlkEpFLDmxUElw04p+w== dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz#6564b0ffd7dc3728221e9f9821f5aab1cc58468e" - integrity sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw== +"@aws-sdk/util-endpoints@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.654.0.tgz#ae8ac05c8afe73cf1428942c3a6d0ab8765f3911" + integrity sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - "@smithy/util-endpoints" "^2.0.5" + "@aws-sdk/types" "3.654.0" + "@smithy/types" "^3.4.2" + "@smithy/util-endpoints" "^2.1.2" tslib "^2.6.2" -"@aws-sdk/util-format-url@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.609.0.tgz#f53907193bb636b52b61c81bbe6d7bd5ddc76c68" - integrity sha512-fuk29BI/oLQlJ7pfm6iJ4gkEpHdavffAALZwXh9eaY1vQ0ip0aKfRTiNudPoJjyyahnz5yJ1HkmlcDitlzsOrQ== +"@aws-sdk/util-format-url@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.654.0.tgz#f48818a14fc8f892335792bbb8cbe3fb34a8bffc" + integrity sha512-2yAlJ/l1uTJhS52iu4+/EvdIyQhDBL+nATY8rEjFI0H+BHGVrJIH2CL4DByhvi2yvYwsqQX0HYah6pF/yoXukA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/querystring-builder" "^3.0.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -746,32 +740,32 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" - integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== +"@aws-sdk/util-user-agent-browser@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.654.0.tgz#caa5e5d6d502aad1fe5a436cffbabfff1ec3b92c" + integrity sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/types" "^3.4.2" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" - integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== +"@aws-sdk/util-user-agent-node@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.654.0.tgz#d4b88fa9f3fce2fd70118d2c01abd941d30cffa7" + integrity sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.654.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" - integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== +"@aws-sdk/xml-builder@3.654.0": + version "3.654.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.654.0.tgz#28d295a1a9bbe6313ba240ce9cf851e894fcd449" + integrity sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": @@ -1359,12 +1353,12 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -"@smithy/abort-controller@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" - integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== +"@smithy/abort-controller@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.4.tgz#7cb22871f7392319c565d1d9ab3cb04e635c4dd9" + integrity sha512-VupaALAQlXViW3/enTf/f5l5JZYSAxoJL7f0nanhNNKnww6DGCg1oYIuNP78KDugnkwthBO6iEcym16HhWV8RQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@smithy/chunked-blob-reader-native@^3.0.0": @@ -1382,133 +1376,135 @@ dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" - integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== +"@smithy/config-resolver@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.8.tgz#8717ea934f1d72474a709fc3535d7b8a11de2e33" + integrity sha512-Tv1obAC18XOd2OnDAjSWmmthzx6Pdeh63FbLin8MlPiuJ2ATpKkq0NcNOJFr0dO+JmZXnwu8FQxKJ3TKJ3Hulw== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/types" "^3.4.2" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.6" tslib "^2.6.2" -"@smithy/core@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.3.1.tgz#99cb8eda23009fd7df736c82072dafcf4eb4ff5d" - integrity sha512-BC7VMXx/1BCmRPCVzzn4HGWAtsrb7/0758EtwOGFJQrlSwJBEjCcDLNZLFoL/68JexYa2s+KmgL/UfmXdG6v1w== - dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" +"@smithy/core@^2.4.3": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.4.tgz#fad2e7c9a702fd701ba2811814b8b4be9f467acd" + integrity sha512-Vco+Q8Xela6tpBOvYHClkeei9z1+uChBClvv3XIJUstEjbpgbSZAvTlw3TEk3wIeEeLQwYgkZjCWfAQfnYQtIQ== + dependencies: + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-retry" "^3.0.19" + "@smithy/middleware-serde" "^3.0.6" + "@smithy/protocol-http" "^4.1.3" + "@smithy/smithy-client" "^3.3.3" + "@smithy/types" "^3.4.2" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" - integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== +"@smithy/credential-provider-imds@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.3.tgz#93314e58e4f81f2b641de6efac037c7a3250c050" + integrity sha512-VoxMzSzdvkkjMJNE38yQgx4CfnmT+Z+5EUXkg4x7yag93eQkVQgZvN3XBSHC/ylfBbLbAtdu7flTCChX9I+mVg== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/property-provider" "^3.1.6" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" tslib "^2.6.2" -"@smithy/eventstream-codec@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" - integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== +"@smithy/eventstream-codec@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.5.tgz#2b0d65818425d60e043b8e9d8dee9c6744de0e7b" + integrity sha512-6pu+PT2r+5ZnWEV3vLV1DzyrpJ0TmehQlniIDCSpZg6+Ji2SfOI38EqUyQ+O8lotVElCrfVc9chKtSMe9cmCZQ== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.5.tgz#3e971afd2b8a02a098af8decc4b9e3f35296d6a2" - integrity sha512-dEyiUYL/ekDfk+2Ra4GxV+xNnFoCmk1nuIXg+fMChFTrM2uI/1r9AdiTYzPqgb72yIv/NtAj6C3dG//1wwgakQ== +"@smithy/eventstream-serde-browser@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.9.tgz#bb71b836a8755dd5d5fed85ac2fa500702f60544" + integrity sha512-PiQLo6OQmZAotJweIcObL1H44gkvuJACKMNqpBBe5Rf2Ax1DOcGi/28+feZI7yTe1ERHlQQaGnm8sSkyDUgsMg== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-serde-universal" "^3.0.8" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" - integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== +"@smithy/eventstream-serde-config-resolver@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.6.tgz#538862ef05e549c0ef97b060100a5ffbb5d7adfb" + integrity sha512-iew15It+c7WfnVowWkt2a7cdPp533LFJnpjDQgfZQcxv2QiOcyEcea31mnrk5PVbgo0nNH3VbYGq7myw2q/F6A== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz#6301752ca51b3ebabcd2dec112f1dacd990de4c1" - integrity sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg== +"@smithy/eventstream-serde-node@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.8.tgz#0221c555f2851fd847b041f27a6231945822018f" + integrity sha512-6m+wI+fT0na+6oao6UqALVA38fsScCpoG5UO/A8ZSyGLnPM2i4MS1cFUhpuALgvLMxfYoTCh7qSeJa0aG4IWpQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-serde-universal" "^3.0.8" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" - integrity sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A== +"@smithy/eventstream-serde-universal@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.8.tgz#0dac5365e3bb349960999b10a4a3c66b77b79dc3" + integrity sha512-09tqzIQ6e+7jLqGvRji1yJoDbL/zob0OFhq75edgStWErGLf16+yI5hRc/o9/YAybOhUZs/swpW2SPn892G5Gg== dependencies: - "@smithy/eventstream-codec" "^3.1.2" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-codec" "^3.1.5" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/fetch-http-handler@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" - integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== +"@smithy/fetch-http-handler@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.7.tgz#30520ca939fb817d3eb3ab9445ddc0f6c1df2960" + integrity sha512-Ra6IPI1spYLO+t62/3jQbodjOwAbto9wlpJdHZwkycm0Kit+GVpzHW/NMmSgY4rK1bjJ4qLAmCnaBzePO5Nkkg== dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/querystring-builder" "^3.0.6" + "@smithy/types" "^3.4.2" "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" - integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== +"@smithy/hash-blob-browser@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.5.tgz#db1cf756647f8f39b4214403482750afbb8f2236" + integrity sha512-Vi3eoNCmao4iKglS80ktYnBOIqZhjbDDwa1IIbF/VaJ8PsHnZTQ5wSicicPrU7nTI4JPFn92/txzWkh4GlK18Q== dependencies: "@smithy/chunked-blob-reader" "^3.0.0" "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/hash-node@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" - integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== +"@smithy/hash-node@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.6.tgz#7c1a869afcbd411eac04c4777dd193ea7ac4e588" + integrity sha512-c/FHEdKK/7DU2z6ZE91L36ahyXWayR3B+FzELjnYq7wH5YqIseM24V+pWCS9kFn1Ln8OFGTf+pyYPiHZuX0s/Q== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" - integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== +"@smithy/hash-stream-node@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.5.tgz#4c8d290f6e4d55fdb143d65d645031da12af7fc1" + integrity sha512-61CyFCzqN3VBfcnGX7mof/rkzLb8oHjm4Lr6ZwBIRpBssBb8d09ChrZAqinP2rUrA915BRNkq9NpJz18N7+3hQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" - integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== +"@smithy/invalid-dependency@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.6.tgz#3b3e30a55b92341412626b412fe919929871eeb1" + integrity sha512-czM7Ioq3s8pIXht7oD+vmgy4Wfb4XavU/k/irO8NdXFFOx7YAlsCCcKOh/lJD1mJSYQqiR7NmpZ9JviryD/7AQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -1525,161 +1521,161 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" - integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== +"@smithy/md5-js@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.6.tgz#cb8881ffef4ffbf68b0daf52d8add30dc57e3a7a" + integrity sha512-Ze690T8O3M5SVbb70WormwrKzVf9QQRtIuxtJDgpUQDkmt+PtdYDetBbyCbF9ryupxLw6tgzWKgwffAShhVIXQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" - integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== +"@smithy/middleware-content-length@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.8.tgz#4e1c1631718e4d6dfe9a06f37faa90de92e884ed" + integrity sha512-VuyszlSO49WKh3H9/kIO2kf07VUwGV80QRiaDxUfP8P8UKlokz381ETJvwLhwuypBYhLymCYyNhB3fLAGBX2og== dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" - integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== - dependencies: - "@smithy/middleware-serde" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-middleware" "^3.0.3" +"@smithy/middleware-endpoint@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.3.tgz#8c84d40c9d26b77e2bbb99721fd4a3d379828505" + integrity sha512-KeM/OrK8MVFUsoJsmCN0MZMVPjKKLudn13xpgwIMpGTYpA8QZB2Xq5tJ+RE6iu3A6NhOI4VajDTwBsm8pwwrhg== + dependencies: + "@smithy/middleware-serde" "^3.0.6" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" + "@smithy/url-parser" "^3.0.6" + "@smithy/util-middleware" "^3.0.6" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.13.tgz#3bdd662aff01f360fcbaa166500bbc575dc9d1d0" - integrity sha512-zvCLfaRYCaUmjbF2yxShGZdolSHft7NNCTA28HVN9hKcEbOH+g5irr1X9s+in8EpambclGnevZY4A3lYpvDCFw== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" +"@smithy/middleware-retry@^3.0.18", "@smithy/middleware-retry@^3.0.19": + version "3.0.19" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.19.tgz#89043eb46bd113e9011387a4f637b4c226fa44c3" + integrity sha512-ISpI7cyBxN2vZrBXpn2oDcSks7v6S27xH0DjmRXcmxMhn97+Iy9HT93/4lnQ4H2Gj0drKDT9klUqWjs6yZgtdA== + dependencies: + "@smithy/node-config-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.3" + "@smithy/service-error-classification" "^3.0.6" + "@smithy/smithy-client" "^3.3.3" + "@smithy/types" "^3.4.2" + "@smithy/util-middleware" "^3.0.6" + "@smithy/util-retry" "^3.0.6" tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-serde@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" - integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== +"@smithy/middleware-serde@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.6.tgz#9f7a9c152989b59c12865ef3a17acbdb7b6a1566" + integrity sha512-KKTUSl1MzOM0MAjGbudeaVNtIDo+PpekTBkCNwvfZlKndodrnvRo+00USatiyLOc0ujjO9UydMRu3O9dYML7ag== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" - integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== +"@smithy/middleware-stack@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.6.tgz#e63d09b3e292b7a46ac3b9eb482973701de15a6f" + integrity sha512-2c0eSYhTQ8xQqHMcRxLMpadFbTXg6Zla5l0mwNftFCZMQmuhI7EbAJMx6R5eqfuV3YbJ3QGyS3d5uSmrHV8Khg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" - integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== +"@smithy/node-config-provider@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.7.tgz#6ae71aeff45e8c9792720986f0b1623cf6da671f" + integrity sha512-g3mfnC3Oo8pOI0dYuPXLtdW1WGVb3bR2tkV21GNkm0ZvQjLTtamXAwCWt/FCb0HGvKt3gHHmF1XerG0ICfalOg== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/shared-ini-file-loader" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/node-http-handler@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" - integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== +"@smithy/node-http-handler@^3.2.2", "@smithy/node-http-handler@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.3.tgz#6d10ece149b441f5417d34db45ddb76407d5c186" + integrity sha512-/gcm5DJ3k1b1zEInzBGAZC8ntJ+jwrz1NcSIu+9dSXd1FfG0G6QgkDI40tt8/WYUbHtLyo8fEqtm2v29koWo/w== dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/abort-controller" "^3.1.4" + "@smithy/protocol-http" "^4.1.3" + "@smithy/querystring-builder" "^3.0.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/property-provider@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" - integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== +"@smithy/property-provider@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.6.tgz#141a245ad8cac074d29a836ec992ef7dc3363bf7" + integrity sha512-NK3y/T7Q/Bw+Z8vsVs9MYIQ5v7gOX7clyrXcwhhIBQhbPgRl6JDrZbusO9qWDhcEus75Tg+VCxtIRfo3H76fpw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/protocol-http@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" - integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== +"@smithy/protocol-http@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.3.tgz#91d894ec7d82c012c5674cb3e209800852f05abd" + integrity sha512-GcbMmOYpH9iRqtC05RbRnc/0FssxSTHlmaNhYBTgSgNCYpdR3Kt88u5GAZTBmouzv+Zlj/VRv92J9ruuDeJuEw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" - integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== +"@smithy/querystring-builder@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.6.tgz#bcb718b860697dca5257ca38dc8041a4696c486f" + integrity sha512-sQe08RunoObe+Usujn9+R2zrLuQERi3CWvRO3BvnoWSYUaIrLKuAIeY7cMeDax6xGyfIP3x/yFWbEKSXvOnvVg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" - integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== +"@smithy/querystring-parser@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.6.tgz#f30e7e244fa674d77bdfd3c65481c5dc0aa083ef" + integrity sha512-UJKw4LlEkytzz2Wq+uIdHf6qOtFfee/o7ruH0jF5I6UAuU+19r9QV7nU3P/uI0l6+oElRHmG/5cBBcGJrD7Ozg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/service-error-classification@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" - integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== +"@smithy/service-error-classification@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.6.tgz#e0ca00b79d9ccf00795284e01cfdc48b43b81d76" + integrity sha512-53SpchU3+DUZrN7J6sBx9tBiCVGzsib2e4sc512Q7K9fpC5zkJKs6Z9s+qbMxSYrkEkle6hnMtrts7XNkMJJMg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" -"@smithy/shared-ini-file-loader@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" - integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== +"@smithy/shared-ini-file-loader@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.7.tgz#bdcf3f0213c3c5779c3fbb41580e9a217ad52e8f" + integrity sha512-IA4K2qTJYXkF5OfVN4vsY1hfnUZjaslEE8Fsr/gGFza4TAC2A9NfnZuSY2srQIbt9bwtjHiAayrRVgKse4Q7fA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/signature-v4@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" - integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== +"@smithy/signature-v4@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.3.tgz#1a5adc19563b8cf8f28ae1ada4d6cda7d351943d" + integrity sha512-YD2KYSCEEeFHcWZ1E3mLdAaHl8T/TANh6XwmocQ6nPcTdBfh4N5fusgnblnWDlnlU1/cUqEq3PiGi22GmT2Lkg== dependencies: "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.6" "@smithy/util-uri-escape" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.11": - version "3.1.11" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.11.tgz#f12a7a0acaa7db3ead488ddf12ef4681daec11a7" - integrity sha512-l0BpyYkciNyMaS+PnFFz4aO5sBcXvGLoJd7mX9xrMBIm2nIQBVvYgp2ZpPDMzwjKCavsXu06iuCm0F6ZJZc6yQ== +"@smithy/smithy-client@^3.3.2", "@smithy/smithy-client@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.3.3.tgz#f90340bba041ffcee3a96d7613c6c9afee6cc8c3" + integrity sha512-8IrpdOq7csW90+oXZ1tAw+g3sY/u+8ctEYjIlAvfYS2feZYorwNb/MH10+tG+b3MWRrLSiP4dz2vyxXV1Zll0g== dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" + "@smithy/middleware-endpoint" "^3.1.3" + "@smithy/middleware-stack" "^3.0.6" + "@smithy/protocol-http" "^4.1.3" + "@smithy/types" "^3.4.2" + "@smithy/util-stream" "^3.1.7" tslib "^2.6.2" "@smithy/types@^3.0.0": @@ -1689,20 +1685,20 @@ dependencies: tslib "^2.6.2" -"@smithy/types@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" - integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== +"@smithy/types@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.4.2.tgz#aa2d087922d57205dbad68df8a45c848699c551e" + integrity sha512-tHiFcfcVedVBHpmHUEUHOCCih8iZbIAYn9NvPsNzaPm/237I3imdDdZoOC8c87H5HBAVEa06tTgb+OcSWV9g5w== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" - integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== +"@smithy/url-parser@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.6.tgz#98b426f9a492e0c992fcd5dceac35444c2632837" + integrity sha512-47Op/NU8Opt49KyGpHtVdnmmJMsp2hEwBdyjuFB9M2V5QVOwA7pBhhxKN5z6ztKGrMw76gd8MlbPuzzvaAncuQ== dependencies: - "@smithy/querystring-parser" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/querystring-parser" "^3.0.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@smithy/util-base64@^3.0.0": @@ -1751,37 +1747,37 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.13.tgz#f574bbb89d60f5dcc443f106087d317b370634d0" - integrity sha512-ZIRSUsnnMRStOP6OKtW+gCSiVFkwnfQF2xtf32QKAbHR6ACjhbAybDvry+3L5qQYdh3H6+7yD/AiUE45n8mTTw== +"@smithy/util-defaults-mode-browser@^3.0.18": + version "3.0.19" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.19.tgz#e14fedaba73204820dacca323df467f41ad112e1" + integrity sha512-ln1wFI+iUW2OlfILtinCfDfRtBHoZ0qIdCXGj225x5+vxhHpCsejLLdsrdKxgL6B0CljQSDtunmSfNmVDgQzhw== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.6" + "@smithy/smithy-client" "^3.3.3" + "@smithy/types" "^3.4.2" bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.13.tgz#cdd3a08bb5af4d17c2b0a951af9936ce7f3bae93" - integrity sha512-voUa8TFJGfD+U12tlNNLCDlXibt9vRdNzRX45Onk/WxZe7TS+hTOZouEZRa7oARGicdgeXvt1A0W45qLGYdy+g== - dependencies: - "@smithy/config-resolver" "^3.0.5" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" +"@smithy/util-defaults-mode-node@^3.0.18": + version "3.0.19" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.19.tgz#f2d64646db1cc6baa9549fe6a45fed570375da84" + integrity sha512-lo6BehNZQnC1oo2Ps+cv0bEDC6XXhk6tK0X3B7+0NULPECBsd70b8uTlOlIjEux+VDmjNBYah+8EhjPJ4KbDIg== + dependencies: + "@smithy/config-resolver" "^3.0.8" + "@smithy/credential-provider-imds" "^3.2.3" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/property-provider" "^3.1.6" + "@smithy/smithy-client" "^3.3.3" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/util-endpoints@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" - integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== +"@smithy/util-endpoints@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.2.tgz#e1d789d598da9ab955b8cf3257ab2f263c35031a" + integrity sha512-FEISzffb4H8DLzGq1g4MuDpcv6CIG15fXoQzDH9SjpRJv6h7J++1STFWWinilG0tQh9H1v2UKWG19Jjr2B16zQ== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.7" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@smithy/util-hex-encoding@^3.0.0": @@ -1791,31 +1787,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" - integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== +"@smithy/util-middleware@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.6.tgz#463c41e74d6e8d758f6cceba4dbed4dc5a4afe50" + integrity sha512-BxbX4aBhI1O9p87/xM+zWy0GzT3CEVcXFPBRDoHAM+pV0eSW156pR+PSYEz0DQHDMYDsYAflC2bQNz2uaDBUZQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/util-retry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" - integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== +"@smithy/util-retry@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.6.tgz#297de1cd5a836fb957ab2ad3439041e848815499" + integrity sha512-BRZiuF7IwDntAbevqMco67an0Sr9oLQJqqRCsSPZZHYRnehS0LHDAkJk/pSmI7Z8c/1Vet294H7fY2fWUgB+Rg== dependencies: - "@smithy/service-error-classification" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/service-error-classification" "^3.0.6" + "@smithy/types" "^3.4.2" tslib "^2.6.2" -"@smithy/util-stream@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" - integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== +"@smithy/util-stream@^3.1.6", "@smithy/util-stream@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.7.tgz#5bc08383dc32319d7c3f1618f96d2267f1a82ed5" + integrity sha512-ytWnVBdSh2uFD/1MFk0N40IiLkY2BEqfimVr+mSm7hP9J0xw15pxiLmy73QUkfg45Y5GRbsD7LI56nKcAqjHbw== dependencies: - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/fetch-http-handler" "^3.2.7" + "@smithy/node-http-handler" "^3.2.3" + "@smithy/types" "^3.4.2" "@smithy/util-base64" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" @@ -1845,13 +1841,13 @@ "@smithy/util-buffer-from" "^3.0.0" tslib "^2.6.2" -"@smithy/util-waiter@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" - integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== +"@smithy/util-waiter@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.5.tgz#56b3a0fa6498ed22dfee7f40c64d13a54dd04fcc" + integrity sha512-jYOSvM3H6sZe3CHjzD2VQNCjWBJs+4DbtwBMvUp9y5EnnwNa7NQxTeYeQw0CKCAdGGZ3QvVkyJmvbvs5M/B10A== dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/types" "^3.3.0" + "@smithy/abort-controller" "^3.1.4" + "@smithy/types" "^3.4.2" tslib "^2.6.2" "@tootallnate/once@1": @@ -2977,7 +2973,7 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^7.0.4: +https-proxy-agent@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== @@ -3597,10 +3593,10 @@ jsdom@^16.6.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsdom@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.0.tgz#0cffdabd42c506788bfecd160e8ac22d4387f971" - integrity sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA== +jsdom@^24.1.3: + version "24.1.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.3.tgz#88e4a07cb9dd21067514a619e9f17b090a394a9f" + integrity sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ== dependencies: cssstyle "^4.0.1" data-urls "^5.0.0" @@ -3608,11 +3604,11 @@ jsdom@^24.1.0: form-data "^4.0.0" html-encoding-sniffer "^4.0.0" http-proxy-agent "^7.0.2" - https-proxy-agent "^7.0.4" + https-proxy-agent "^7.0.5" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.10" + nwsapi "^2.2.12" parse5 "^7.1.2" - rrweb-cssom "^0.7.0" + rrweb-cssom "^0.7.1" saxes "^6.0.0" symbol-tree "^3.2.4" tough-cookie "^4.1.4" @@ -3621,7 +3617,7 @@ jsdom@^24.1.0: whatwg-encoding "^3.1.1" whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" - ws "^8.17.0" + ws "^8.18.0" xml-name-validator "^5.0.0" jsesc@^2.5.1: @@ -3875,7 +3871,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nwsapi@^2.2.0, nwsapi@^2.2.10, nwsapi@^2.2.5: +nwsapi@^2.2.0, nwsapi@^2.2.12, nwsapi@^2.2.5: version "2.2.10" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== @@ -4158,7 +4154,7 @@ rrweb-cssom@^0.6.0: resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== -rrweb-cssom@^0.7.0: +rrweb-cssom@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== @@ -4741,7 +4737,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.4.6, ws@^8.17.0, ws@^8.18.0: +ws@^7.4.6, ws@^8.18.0: version "8.18.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== diff --git a/services/database/package.json b/services/database/package.json index 6828f28ac..8b96ffa98 100644 --- a/services/database/package.json +++ b/services/database/package.json @@ -13,8 +13,8 @@ "serverless-dynamodb": "^0.2.53" }, "dependencies": { - "@aws-sdk/client-dynamodb": "^3.621.0", - "@aws-sdk/client-s3": "^3.621.0", - "@aws-sdk/lib-dynamodb": "^3.621.0" + "@aws-sdk/client-dynamodb": "^3.658.1", + "@aws-sdk/client-s3": "^3.658.1", + "@aws-sdk/lib-dynamodb": "^3.658.1" } } diff --git a/services/database/yarn.lock b/services/database/yarn.lock index 3220409d0..41f3bbb23 100644 --- a/services/database/yarn.lock +++ b/services/database/yarn.lock @@ -166,118 +166,119 @@ tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-dynamodb@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.621.0.tgz#de0a23830a742f42ed031abb745d3787b0d4e759" - integrity sha512-aczOoVyufYwBCc/zZKJOP/xwbnojKQJ6Y8O7ZAZnxMPRyZXKXpoAxmlxLfOU6GUzXqzXdvj+Ir3VBd7MWB4KuQ== +"@aws-sdk/client-dynamodb@^3.658.1": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.675.0.tgz#9430c7e208ac2a375bf8ac590deee6b1deed4aba" + integrity sha512-Eg6B8aNwVpWS3vlXM9K3sbXSQbrPtza6BStHTZVWqjUUc0mEKHmTf6mBpeTrvhW+Q+inWe/QsQkXTwzm2N7WTQ== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-endpoint-discovery" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.675.0" + "@aws-sdk/client-sts" "3.675.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/middleware-endpoint-discovery" "3.667.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.669.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" + "@smithy/util-waiter" "^3.1.6" + "@types/uuid" "^9.0.1" tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-s3@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.621.0.tgz#86a0e77913cd1e82308299835431887fe306c3a0" - integrity sha512-YhGkd2HQTM4HCYJIAVWvfbUMpOF7XUr1W/e2LN3CFP0WTF4zcCJKesJ2iNHrExqC0Ek1+qarMxiXBK95itfjYQ== +"@aws-sdk/client-s3@^3.658.1": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.675.0.tgz#1588a70afec26be3cc9a7577fa3f37d768951222" + integrity sha512-WKPc9fwFsD0SrWmrj0MdMHE+hQ0YAIGLqACmTnL1yW76qAwjIlFa9TAhR8f29aVCQodt/I6HDf9dHX/F+GyDFg== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-bucket-endpoint" "3.620.0" - "@aws-sdk/middleware-expect-continue" "3.620.0" - "@aws-sdk/middleware-flexible-checksums" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-location-constraint" "3.609.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-sdk-s3" "3.621.0" - "@aws-sdk/middleware-signing" "3.620.0" - "@aws-sdk/middleware-ssec" "3.609.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/signature-v4-multi-region" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@aws-sdk/xml-builder" "3.609.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/eventstream-serde-browser" "^3.0.5" - "@smithy/eventstream-serde-config-resolver" "^3.0.3" - "@smithy/eventstream-serde-node" "^3.0.4" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-blob-browser" "^3.1.2" - "@smithy/hash-node" "^3.0.3" - "@smithy/hash-stream-node" "^3.1.2" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/md5-js" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.675.0" + "@aws-sdk/client-sts" "3.675.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/middleware-bucket-endpoint" "3.667.0" + "@aws-sdk/middleware-expect-continue" "3.667.0" + "@aws-sdk/middleware-flexible-checksums" "3.669.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-location-constraint" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-sdk-s3" "3.674.0" + "@aws-sdk/middleware-ssec" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/signature-v4-multi-region" "3.674.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.669.0" + "@aws-sdk/xml-builder" "3.662.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/eventstream-serde-browser" "^3.0.10" + "@smithy/eventstream-serde-config-resolver" "^3.0.7" + "@smithy/eventstream-serde-node" "^3.0.9" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-blob-browser" "^3.1.6" + "@smithy/hash-node" "^3.0.7" + "@smithy/hash-stream-node" "^3.1.6" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/md5-js" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-stream" "^3.1.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" + "@smithy/util-stream" "^3.1.9" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" + "@smithy/util-waiter" "^3.1.6" tslib "^2.6.2" "@aws-sdk/client-sso-oidc@3.569.0": @@ -326,48 +327,48 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.621.0.tgz#3fa3d468fbebbd93a5f75c1d51b63cc7af3ef17b" - integrity sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg== +"@aws-sdk/client-sso-oidc@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.675.0.tgz#a30650a462afcf0386adb26e99283d4989b9bbf4" + integrity sha512-4kEcaa2P/BFz+xy5tagbtzM08gbjHXyYqW+n6SJuUFK7N6bZNnA4cu1hVgHcqOqk8Dbwv7fiseGT0x3Hhqjwqg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.669.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -415,47 +416,47 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.621.0.tgz#c0eefeb9adcbc6bb7c91c32070404c8c91846825" - integrity sha512-xpKfikN4u0BaUYZA9FGUMkkDmfoIP0Q03+A86WjqDWhcOoqNA1DkHsE4kZ+r064ifkPUfcNuUvlkVTEoBZoFjA== +"@aws-sdk/client-sso@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.675.0.tgz#4e400ef0141ee2e19b64c9948af7a27697a3f0cc" + integrity sha512-2goBCEr4acZJ1YJ69eWPTsIfZUbO7enog+lBA5kZShDiwovqzwYSHSlf6OGz4ETs2xT1n7n+QfKY0p+TluTfEw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.669.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -505,49 +506,49 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.621.0.tgz#2994f601790893901704c5df56c837e89f279952" - integrity sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA== +"@aws-sdk/client-sts@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.675.0.tgz#8efcff1270d1f10e7dafa469f88fb71dcfd70178" + integrity sha512-zgjyR4GyuONeDGJBKNt9lFJ8HfDX7rpxZZVR7LSXr9lUkjf6vUGgD2k/K4UAoOTWCKKCor6TA562ezGlA8su6Q== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.675.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/credential-provider-node" "3.675.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.669.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -564,18 +565,20 @@ fast-xml-parser "4.2.5" tslib "^2.6.2" -"@aws-sdk/core@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.621.0.tgz#e38c56c3ce0c819ca1185eaabcb98412429aaca3" - integrity sha512-CtOwWmDdEiINkGXD93iGfXjN0WmCp9l45cDWHHGa8lRgEDyhuL7bwd/pH5aSzj0j8SiQBG2k0S7DHbd5RaqvbQ== - dependencies: - "@smithy/core" "^2.3.1" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" +"@aws-sdk/core@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.667.0.tgz#ecf93bf8e3ebea3bd972576a67b87dd291d7a90a" + integrity sha512-pMcDVI7Tmdsc8R3sDv0Omj/4iRParGY+uJtAfF669WnZfDfaBQaix2Mq7+Mu08vdjqO9K3gicFvjk9S1VLmOKA== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/core" "^2.4.8" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" fast-xml-parser "4.4.1" tslib "^2.6.2" @@ -589,14 +592,15 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" - integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== +"@aws-sdk/credential-provider-env@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.667.0.tgz#1b3a4b049fc164a3a3eb3617f7448fed3cb3a2db" + integrity sha512-zZbrkkaPc54WXm+QAnpuv0LPNfsts0HPPd+oCECGs7IQRaFsGj187cwvPg9RMWDFZqpm64MdBDoA8OQHsqzYCw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/credential-provider-http@3.568.0": @@ -614,19 +618,20 @@ "@smithy/util-stream" "^2.2.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.621.0.tgz#5f944bf548f203d842cf71a5792f73c205544627" - integrity sha512-/jc2tEsdkT1QQAI5Dvoci50DbSxtJrevemwFsm0B73pwCcOQZ5ZwwSdVqGsPutzYzUVx3bcXg3LRL7jLACqRIg== +"@aws-sdk/credential-provider-http@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.667.0.tgz#ff78b7f76715a7456976930bff6221dfac70afbc" + integrity sha512-sjtybFfERZWiqTY7fswBxKQLvUkiCucOWyqh3IaPo/4nE1PXRnaZCVG0+kRBPrYIxWqiVwytvZzMJy8sVZcG0A== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-stream" "^3.1.9" tslib "^2.6.2" "@aws-sdk/credential-provider-ini@3.568.0": @@ -645,21 +650,22 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.621.0.tgz#bda2365f88fee40e3ae067b08bf484106c339222" - integrity sha512-0EWVnSc+JQn5HLnF5Xv405M8n4zfdx9gyGdpnCmAmFqEDHA8LmBdxJdpUk1Ovp/I5oPANhjojxabIW5f1uU0RA== +"@aws-sdk/credential-provider-ini@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.675.0.tgz#031b75d26ab8e2921c8945a905f6ca7c2005e15e" + integrity sha512-kCBlC6grpbpCvgowk9T4JHZxJ88VfN0r77bDZClcadFRAKQ8UHyO02zhgFCfUdnU1lNv1mr3ngEcGN7XzJlYWA== dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/credential-provider-env" "3.667.0" + "@aws-sdk/credential-provider-http" "3.667.0" + "@aws-sdk/credential-provider-process" "3.667.0" + "@aws-sdk/credential-provider-sso" "3.675.0" + "@aws-sdk/credential-provider-web-identity" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/credential-provider-node@3.569.0": @@ -680,22 +686,22 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.621.0.tgz#9cc5052760a9f9d70d70f12ddbdbf0d59bf13a47" - integrity sha512-4JqpccUgz5Snanpt2+53hbOBbJQrSFq7E1sAAbgY6BKVQUsW5qyXqnjvSF32kDeKa5JpBl3bBWLZl04IadcPHw== +"@aws-sdk/credential-provider-node@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.675.0.tgz#25ebe731279dbc1f165e2fb5f7648bae43b7c693" + integrity sha512-VO1WVZCDmAYu4sY/6qIBzdm5vJTxLhWKJWvL5kVFfSe8WiNNoHlTqYYUK9vAm/JYpIgFLTefPbIc5W4MK7o6Pg== dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-ini" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/credential-provider-env" "3.667.0" + "@aws-sdk/credential-provider-http" "3.667.0" + "@aws-sdk/credential-provider-ini" "3.675.0" + "@aws-sdk/credential-provider-process" "3.667.0" + "@aws-sdk/credential-provider-sso" "3.675.0" + "@aws-sdk/credential-provider-web-identity" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/credential-provider-process@3.568.0": @@ -709,15 +715,16 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" - integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== +"@aws-sdk/credential-provider-process@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.667.0.tgz#fa721b1b5b0024156c3852a9fc92c0ed9935959f" + integrity sha512-HZHnvop32fKgsNHkdhVaul7UzQ25sEc0j9yqA4bjhtbk0ECl42kj3f1pJ+ZU/YD9ut8lMJs/vVqiOdNThVdeBw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/credential-provider-sso@3.568.0": @@ -733,17 +740,18 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.621.0.tgz#710f413708cb372f9f94e8eb9726cf263ffd83e3" - integrity sha512-Kza0jcFeA/GEL6xJlzR2KFf1PfZKMFnxfGzJzl5yN7EjoGdMijl34KaRyVnfRjnCWcsUpBWKNIDk9WZVMY9yiw== +"@aws-sdk/credential-provider-sso@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.675.0.tgz#d9bf80e25cd7756e959747804484340071ac3e83" + integrity sha512-p/EE2c0ebSgRhg1Fe1OH2+xNl7j1P4DTc7kZy1mX1NJ72fkqnGgBuf1vk5J9RmiRpbauPNMlm+xohjkGS7iodA== dependencies: - "@aws-sdk/client-sso" "3.621.0" - "@aws-sdk/token-providers" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/client-sso" "3.675.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/token-providers" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/credential-provider-web-identity@3.568.0": @@ -756,14 +764,15 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" - integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== +"@aws-sdk/credential-provider-web-identity@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.667.0.tgz#439e3aa2fc9a081de53186f6d8aa78a8a6913769" + integrity sha512-t8CFlZMD/1p/8Cli3rvRiTJpjr/8BO64gw166AHgFZYSN2h95L2l1tcW0jpsc3PprA32nLg1iQVKYt4WGM4ugw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/endpoint-cache@3.568.0": @@ -792,26 +801,28 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/lib-dynamodb@^3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.621.0.tgz#f8c320af1b286f2827d3be97aaffc571fa4bbfeb" - integrity sha512-RJJwaR15BLSTtegf2kgJjlJofvxeR+0Jm0rnEbJmRZ/HZhjow1LawrMbCR0YxfcWKUMsDw9tp8BDkLlrH1+RJQ== +"@aws-sdk/lib-dynamodb@^3.658.1": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.675.0.tgz#1841cdc7e118917f67e3dd861765e4f7c152c268" + integrity sha512-3z53kmCr1wbtjemQujK2w8e1ElKYMuFB32uwNZsogG1pv0dORRaMfHPHHDuKiEDSiXiU35GSfRfgPOanxVZCrg== dependencies: - "@aws-sdk/util-dynamodb" "3.621.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/util-dynamodb" "3.675.0" + "@smithy/core" "^2.4.8" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" - integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== +"@aws-sdk/middleware-bucket-endpoint@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.667.0.tgz#bd0a0a24f71d3709debf6e48f4e503547398e7eb" + integrity sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA== dependencies: - "@aws-sdk/types" "3.609.0" + "@aws-sdk/types" "3.667.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" @@ -827,39 +838,42 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-endpoint-discovery@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.620.0.tgz#45acd6cf2a77ceaf736f2758274c383838c8584a" - integrity sha512-T6kuydHBF4BPP5CVH53Fze7c2b9rqxWP88XrGtmNMXXdY4sXur1v/itGdS2l3gqRjxKo0LsmjmuQm9zL4vGneQ== +"@aws-sdk/middleware-endpoint-discovery@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.667.0.tgz#ac62d9b9e8bb87efe5be2b3c34af968cfe9b8640" + integrity sha512-igN8eP7uNLENeS7FKmZdkVHggglLDNJ0f7Ytzep6hJg8Rf9qsfkfVsAbMzyBq4KLDcyG6SFnpva/u/fu4P5t+w== dependencies: "@aws-sdk/endpoint-cache" "3.572.0" - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" - integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== +"@aws-sdk/middleware-expect-continue@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.667.0.tgz#d1b9e4871c8bde3402bdd0f73e740f5f5bf190d7" + integrity sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" - integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== +"@aws-sdk/middleware-flexible-checksums@3.669.0": + version "3.669.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.669.0.tgz#00566b4981a6b35d007815d05a5d0d3ee4f9e265" + integrity sha512-01UQLoUzVwWMf+b+AEuwJ2lluBD+Cp8AcbyEHqvEaPdjGKHIS4BCvnY70mZYnAfRtL8R2h9tt7iI61oWU3Gjkg== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.609.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -873,23 +887,23 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" - integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== +"@aws-sdk/middleware-host-header@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz#d255aa6e73aec9a2d1a241de737679b6d2723c3f" + integrity sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" - integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== +"@aws-sdk/middleware-location-constraint@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.667.0.tgz#e5da0580656a1a385fd5783bb93ea320b4baeb1b" + integrity sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/middleware-logger@3.568.0": @@ -901,13 +915,13 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" - integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== +"@aws-sdk/middleware-logger@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz#bf072a1aa5b03239e20d75f9b525d8a990caf29f" + integrity sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/middleware-recursion-detection@3.567.0": @@ -920,53 +934,43 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" - integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== +"@aws-sdk/middleware-recursion-detection@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz#e3f158d5b5ea1b1d73ab280c0cbe5ef077ed3fdc" + integrity sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.621.0.tgz#da9cc709fffa4d269bb472e8ca42f2a4d80a842b" - integrity sha512-CJrQrtKylcqvyPkRR16JmPZkHroCkWwLErQrg30ZcBPNNok8xbfX6cYqG16XDTnu4lSYzv2Yqc4w4oOBv8xerQ== +"@aws-sdk/middleware-sdk-s3@3.674.0": + version "3.674.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.674.0.tgz#ed80913d38ada26ce7ad184cbb77892f5b29ef99" + integrity sha512-IvXnWrKy4mO+I44kLYHd6Wlw+FdB4sg1jvHCmnZo1KNaAFIA3x1iXgOaZynKoBdEmol3xfr2uDbeXUQvIwoIgg== dependencies: - "@aws-sdk/types" "3.609.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/core" "^2.4.8" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-stream" "^3.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-stream" "^3.1.9" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-signing@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.620.0.tgz#8aface959d610732b0a5ede6f2c48119b33c4f3f" - integrity sha512-gxI7rubiaanUXaLfJ4NybERa9MGPNg2Ycl/OqANsozrBnR3Pw8vqy3EuVImQOyn2pJ2IFvl8ZPoSMHf4pX56FQ== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@aws-sdk/middleware-ssec@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" - integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== +"@aws-sdk/middleware-ssec@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.667.0.tgz#19d510e4882c170eff33a5ced558781eee0ee716" + integrity sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/middleware-user-agent@3.567.0": @@ -980,15 +984,17 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.620.0.tgz#1fe3104f04f576a942cf0469bfbd73c38eef3d9e" - integrity sha512-bvS6etn+KsuL32ubY5D3xNof1qkenpbJXf/ugGXbg0n98DvDFQ/F+SMLxHgbnER5dsKYchNnhmtI6/FC3HFu/A== +"@aws-sdk/middleware-user-agent@3.669.0": + version "3.669.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.669.0.tgz#a313a4f1fcc9cc77eef3e04573ce0edade931a26" + integrity sha512-K8ScPi45zjJrj5Y2gRqVsvKKQCQbvQBfYGcBw9ZOx9TTavH80bOCBjWg/GFnvs4f37tqVc1wMN2oGvcTF6HveQ== dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/core" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@smithy/core" "^2.4.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/region-config-resolver@3.567.0": @@ -1003,28 +1009,28 @@ "@smithy/util-middleware" "^2.2.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" - integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== +"@aws-sdk/region-config-resolver@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz#1804103246e6b6c7586edc57d26801647d2972d8" + integrity sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.621.0.tgz#d8bd2e8bab970acaecfaca3de85c6924b43f07ff" - integrity sha512-u+ulCaHFveqHaTxgiYrEAyfBVP6GRKjnmDut67CtjhjslshPWYpo/ndtlCW1zc0RDne3uUeK13Pqp7dp7p1d6g== +"@aws-sdk/signature-v4-multi-region@3.674.0": + version "3.674.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.674.0.tgz#03e37865cd09bed5b047d2b80457ed26e41101bb" + integrity sha512-VMQWbtcbg4FV/fILrODADV21pPg9AghuEzQlW2kH0hCtacvBwFl7eBxIiCBLLtkNple+CVPJvyBcqOZdBkEv/w== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/middleware-sdk-s3" "3.674.0" + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/token-providers@3.568.0": @@ -1038,15 +1044,15 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" - integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== +"@aws-sdk/token-providers@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz#ea990ef364d6bd75f0ebcf19a22f9ccd0edb3c41" + integrity sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/types@3.567.0", "@aws-sdk/types@^3.222.0": @@ -1057,12 +1063,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/types@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" - integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== +"@aws-sdk/types@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.667.0.tgz#1b307c5af5a029ea1893f799fcfa122988f9d025" + integrity sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/util-arn-parser@3.568.0": @@ -1079,10 +1085,10 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-dynamodb@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.621.0.tgz#a0d6501e5ab9aca695dc794963adf46a475ee5f3" - integrity sha512-/3qEmZ52FdP4+3AUsUX0/wKcCF3jvAG+avVKuSCUYIdKgSIYKSeYfH8F3/r6DE3czaFevBwHRiuKHEihCMApGw== +"@aws-sdk/util-dynamodb@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.675.0.tgz#511095fc1b0ab44511e9f29e0763b2c6581549dd" + integrity sha512-JC0rauF9CZmIIMhZWbM+SC36StG2tXET7Iu2jjv/HjhsDKSu1bdP53dSjFhN0msV9TnoVG2vAYmYunxS1K03ew== dependencies: tslib "^2.6.2" @@ -1096,14 +1102,14 @@ "@smithy/util-endpoints" "^1.2.0" tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz#6564b0ffd7dc3728221e9f9821f5aab1cc58468e" - integrity sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw== +"@aws-sdk/util-endpoints@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz#c880fbc3bda5a11eec81e4ac5f95a256f8dbb24e" + integrity sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - "@smithy/util-endpoints" "^2.0.5" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" + "@smithy/util-endpoints" "^2.1.3" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -1123,13 +1129,13 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" - integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== +"@aws-sdk/util-user-agent-browser@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.675.0.tgz#ad5371e0d4f68733e3dd04d455d99ee99609dbd9" + integrity sha512-HW4vGfRiX54RLcsYjLuAhcBBJ6lRVEZd7njfGpAwBB9s7BH8t48vrpYbyA5XbbqbTvXfYBnugQCUw9HWjEa1ww== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" bowser "^2.11.0" tslib "^2.6.2" @@ -1143,14 +1149,15 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" - integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== +"@aws-sdk/util-user-agent-node@3.669.0": + version "3.669.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.669.0.tgz#e83e17d04c65fa2bec942c239b5ad9b02c22ebc1" + integrity sha512-9jxCYrgggy2xd44ZASqI7AMiRVaSiFp+06Kg8BQSU0ijKpBJlwcsqIS8pDT/n6LxuOw2eV5ipvM2C0r1iKzrGA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/middleware-user-agent" "3.669.0" + "@aws-sdk/types" "3.667.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -1160,12 +1167,12 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/xml-builder@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" - integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== +"@aws-sdk/xml-builder@3.662.0": + version "3.662.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.662.0.tgz#6cbe5aea6205fd2280ec043189985240628d1cb2" + integrity sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/abort-controller@^2.2.0": @@ -1176,12 +1183,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/abort-controller@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" - integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== +"@smithy/abort-controller@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.5.tgz#ca7a86a3c6b20fabe59667143f58d9e198616d14" + integrity sha512-DhNPnqTqPoG8aZ5dWkFOgsuY+i0GQ3CI6hMmvCoduNsnU9gUZWZBwGfDQsTTB7NvFPkom1df7jMIJWU90kuXXg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/chunked-blob-reader-native@^3.0.0": @@ -1210,15 +1217,15 @@ "@smithy/util-middleware" "^2.2.0" tslib "^2.6.2" -"@smithy/config-resolver@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" - integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== +"@smithy/config-resolver@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.9.tgz#dcf4b7747ca481866f9bfac21469ebe2031a599e" + integrity sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" "@smithy/core@^1.4.2": @@ -1235,18 +1242,20 @@ "@smithy/util-middleware" "^2.2.0" tslib "^2.6.2" -"@smithy/core@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.3.1.tgz#99cb8eda23009fd7df736c82072dafcf4eb4ff5d" - integrity sha512-BC7VMXx/1BCmRPCVzzn4HGWAtsrb7/0758EtwOGFJQrlSwJBEjCcDLNZLFoL/68JexYa2s+KmgL/UfmXdG6v1w== +"@smithy/core@^2.4.8": + version "2.4.8" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.8.tgz#397ac17dfa8ad658b77f96f19484f0eeaf22d397" + integrity sha512-x4qWk7p/a4dcf7Vxb2MODIf4OIcqNbK182WxRvZ/3oKPrf/6Fdic5sSElhO1UtXpWKBazWfqg0ZEK9xN1DsuHA== dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" "@smithy/credential-provider-imds@^2.3.0": @@ -1260,60 +1269,60 @@ "@smithy/url-parser" "^2.2.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" - integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== +"@smithy/credential-provider-imds@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.4.tgz#e1a2bfc8a0066f673756ad8735247cf284b9735c" + integrity sha512-S9bb0EIokfYEuar4kEbLta+ivlKCWOCFsLZuilkNy9i0uEUEHSi47IFLPaxqqCl+0ftKmcOTHayY5nQhAuq7+w== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" tslib "^2.6.2" -"@smithy/eventstream-codec@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" - integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== +"@smithy/eventstream-codec@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.6.tgz#70ca95aad82d5140522eb883fbc140f1f22dcb27" + integrity sha512-SBiOYPBH+5wOyPS7lfI150ePfGLhnp/eTu5RnV9xvhGvRiKfnl6HzRK9wehBph+il8FxS9KTeadx7Rcmf1GLPQ== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.5.tgz#3e971afd2b8a02a098af8decc4b9e3f35296d6a2" - integrity sha512-dEyiUYL/ekDfk+2Ra4GxV+xNnFoCmk1nuIXg+fMChFTrM2uI/1r9AdiTYzPqgb72yIv/NtAj6C3dG//1wwgakQ== +"@smithy/eventstream-serde-browser@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.10.tgz#ffca366a4edee5097be5a710f87627a5b2da5dec" + integrity sha512-1i9aMY6Pl/SmA6NjvidxnfBLHMPzhKu2BP148pEt5VwhMdmXn36PE2kWKGa9Hj8b0XGtCTRucpCncylevCtI7g== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-serde-universal" "^3.0.9" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" - integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== +"@smithy/eventstream-serde-config-resolver@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.7.tgz#1f352f384665f322e024a1396a7a2cca52fce9e3" + integrity sha512-eVzhGQBPEqXXYHvIUku0jMTxd4gDvenRzUQPTmKVWdRvp9JUCKrbAXGQRYiGxUYq9+cqQckRm0wq3kTWnNtDhw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz#6301752ca51b3ebabcd2dec112f1dacd990de4c1" - integrity sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg== +"@smithy/eventstream-serde-node@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.9.tgz#e985340093c2ca6587ae2fdd0663e6845fbe9463" + integrity sha512-JE0Guqvt0xsmfQ5y1EI342/qtJqznBv8cJqkHZV10PwC8GWGU5KNgFbQnsVCcX+xF+qIqwwfRmeWoJCjuOLmng== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-serde-universal" "^3.0.9" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" - integrity sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A== +"@smithy/eventstream-serde-universal@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.9.tgz#1832b190a3018204e33487ba1f7f0f6e2fb0da34" + integrity sha512-bydfgSisfepCufw9kCEnWRxqxJFzX/o8ysXWv+W9F2FIyiaEwZ/D8bBKINbh4ONz3i05QJ1xE7A5OKYvgJsXaw== dependencies: - "@smithy/eventstream-codec" "^3.1.2" - "@smithy/types" "^3.3.0" + "@smithy/eventstream-codec" "^3.1.6" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/fetch-http-handler@^2.5.0": @@ -1327,25 +1336,25 @@ "@smithy/util-base64" "^2.3.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" - integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== +"@smithy/fetch-http-handler@^3.2.9": + version "3.2.9" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.9.tgz#8d5199c162a37caa37a8b6848eefa9ca58221a0b" + integrity sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A== dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/querystring-builder" "^3.0.7" + "@smithy/types" "^3.5.0" "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" - integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== +"@smithy/hash-blob-browser@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.6.tgz#d61de344aa3cef0bc83e3ab8166558256262dfcd" + integrity sha512-BKNcMIaeZ9lB67sgo88iCF4YB35KT8X2dNJ8DqrtZNTgN6tUDYBKThzfGtos/mnZkGkW91AYHisESHmSiYQmKw== dependencies: "@smithy/chunked-blob-reader" "^3.0.0" "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/hash-node@^2.2.0": @@ -1358,22 +1367,22 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@smithy/hash-node@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" - integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== +"@smithy/hash-node@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.7.tgz#03b5a382fb588b8c2bac11b4fe7300aaf1661c88" + integrity sha512-SAGHN+QkrwcHFjfWzs/czX94ZEjPJ0CrWJS3M43WswDXVEuP4AVy9gJ3+AF6JQHZD13bojmuf/Ap/ItDeZ+Qfw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" - integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== +"@smithy/hash-stream-node@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.6.tgz#854ad354a865a1334baa2abc2f2247f2723de688" + integrity sha512-sFSSt7cmCpFWZPfVx7k80Bgb1K2VJ27VmMxH8X+dDhp7Wv8IBgID4K2VK5ehMJROF8hQgcj4WywnkHIwX/xlwQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -1385,12 +1394,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" - integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== +"@smithy/invalid-dependency@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.7.tgz#b36f258d94498f3c72ab6020091a66fc7cc16eda" + integrity sha512-Bq00GsAhHeYSuZX8Kpu4sbI9agH2BNYnqUmmbTGWOhki9NVsWn2jFr896vvoTMH8KAjNX/ErC/8t5QHuEXG+IA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -1407,12 +1416,12 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" - integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== +"@smithy/md5-js@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.7.tgz#0a645dd9c139254353fd6e6a6b65154baeab7d2e" + integrity sha512-+wco9IN9uOW4tNGkZIqTR6IXyfO7Z8A+IOq82QCRn/f/xcmt7H1fXwmQVbfDSvbeFwfNnhv7s+u0G9PzPG6o2w== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -1425,13 +1434,13 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" - integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== +"@smithy/middleware-content-length@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.9.tgz#fb613d1a6b8c91e828d11c0d7a0a8576dba89b8b" + integrity sha512-t97PidoGElF9hTtLCrof32wfWMqC5g2SEJNxaVH3NjlatuNGsdxXRYO/t+RPnxA15RpYiS0f+zG7FuE2DeGgjA== dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/middleware-endpoint@^2.5.1": @@ -1447,17 +1456,17 @@ "@smithy/util-middleware" "^2.2.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" - integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== +"@smithy/middleware-endpoint@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.4.tgz#222c9fa49c8af6ebf8bea8ab220d92d9b8c90d3d" + integrity sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ== dependencies: - "@smithy/middleware-serde" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-middleware" "^3.0.3" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" + "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" "@smithy/middleware-retry@^2.3.1": @@ -1475,18 +1484,18 @@ tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-retry@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.13.tgz#3bdd662aff01f360fcbaa166500bbc575dc9d1d0" - integrity sha512-zvCLfaRYCaUmjbF2yxShGZdolSHft7NNCTA28HVN9hKcEbOH+g5irr1X9s+in8EpambclGnevZY4A3lYpvDCFw== +"@smithy/middleware-retry@^3.0.23": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.23.tgz#ce5574e278dd14a7995afd5a4ed2a6c9891da8ed" + integrity sha512-x9PbGXxkcXIpm6L26qRSCC+eaYcHwybRmqU8LO/WM2RRlW0g8lz6FIiKbKgGvHuoK3dLZRiQVSQJveiCzwnA5A== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/service-error-classification" "^3.0.7" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" tslib "^2.6.2" uuid "^9.0.1" @@ -1498,12 +1507,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/middleware-serde@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" - integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== +"@smithy/middleware-serde@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.7.tgz#03f0dda75edffc4cc90ea422349cbfb82368efa7" + integrity sha512-VytaagsQqtH2OugzVTq4qvjkLNbWehHfGcGr0JLJmlDRrNCeZoWkWsSOw1nhS/4hyUUWF/TLGGml4X/OnEep5g== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/middleware-stack@^2.2.0": @@ -1514,12 +1523,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" - integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== +"@smithy/middleware-stack@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.7.tgz#813fa7b47895ce0d085eac89c056d21b1e46e771" + integrity sha512-EyTbMCdqS1DoeQsO4gI7z2Gzq1MoRFAeS8GkFYIwbedB7Lp5zlLHJdg+56tllIIG5Hnf9ZWX48YKSHlsKvugGA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/node-config-provider@^2.3.0": @@ -1532,14 +1541,14 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" - integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== +"@smithy/node-config-provider@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz#2c1092040b4062eae0f7c9e121cc00ac6a77efee" + integrity sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/node-http-handler@^2.5.0": @@ -1553,15 +1562,15 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/node-http-handler@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" - integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== +"@smithy/node-http-handler@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.4.tgz#3c57c40d082c3bacac1e49955bd1240e8ccc40b2" + integrity sha512-49reY3+JgLMFNm7uTAKBWiKCA6XSvkNp9FqhVmusm2jpVnHORYFeFZ704LShtqWfjZW/nhX+7Iexyb6zQfXYIQ== dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/abort-controller" "^3.1.5" + "@smithy/protocol-http" "^4.1.4" + "@smithy/querystring-builder" "^3.0.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/property-provider@^2.2.0": @@ -1572,12 +1581,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/property-provider@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" - integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== +"@smithy/property-provider@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.7.tgz#8a304a4b9110a067a93c784e4c11e175f82da379" + integrity sha512-QfzLi1GPMisY7bAM5hOUqBdGYnY5S2JAlr201pghksrQv139f8iiiMalXtjczIP5f6owxFn3MINLNUNvUkgtPw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/protocol-http@^3.3.0": @@ -1588,12 +1597,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/protocol-http@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" - integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== +"@smithy/protocol-http@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.4.tgz#6940d652b1825bda2422163ec9baab552669a338" + integrity sha512-MlWK8eqj0JlpZBnWmjQLqmFp71Ug00P+m72/1xQB3YByXD4zZ+y9N4hYrR0EDmrUCZIkyATWHOXFgtavwGDTzQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/querystring-builder@^2.2.0": @@ -1605,12 +1614,12 @@ "@smithy/util-uri-escape" "^2.2.0" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" - integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== +"@smithy/querystring-builder@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.7.tgz#8c443c65f4249ff1637088db1166d18411d41555" + integrity sha512-65RXGZZ20rzqqxTsChdqSpbhA6tdt5IFNgG6o7e1lnPVLCe6TNWQq4rTl4N87hTDD8mV4IxJJnvyE7brbnRkQw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" @@ -1622,12 +1631,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" - integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== +"@smithy/querystring-parser@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.7.tgz#936206d1e6da9d862384dae730b4bad042d6a948" + integrity sha512-Fouw4KJVWqqUVIu1gZW8BH2HakwLz6dvdrAhXeXfeymOBrZw+hcqaWs+cS1AZPVp4nlbeIujYrKA921ZW2WMPA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/service-error-classification@^2.1.5": @@ -1637,12 +1646,12 @@ dependencies: "@smithy/types" "^2.12.0" -"@smithy/service-error-classification@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" - integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== +"@smithy/service-error-classification@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.7.tgz#5bab4ad802d30bd3fa52b8134f6c171582358226" + integrity sha512-91PRkTfiBf9hxkIchhRKJfl1rsplRDyBnmyFca3y0Z3x/q0JJN480S83LBd8R6sBCkm2bBbqw2FHp0Mbh+ecSA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" "@smithy/shared-ini-file-loader@^2.4.0": version "2.4.0" @@ -1652,12 +1661,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/shared-ini-file-loader@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" - integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== +"@smithy/shared-ini-file-loader@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz#7a0bf5f20cfe8e0c4a36d8dcab8194d0d2ee958e" + integrity sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/signature-v4@^2.3.0": @@ -1673,16 +1682,16 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@smithy/signature-v4@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" - integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== +"@smithy/signature-v4@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.2.0.tgz#291f5a0e756cc251377e1e8af2a1f494e6173029" + integrity sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ== dependencies: "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.7" "@smithy/util-uri-escape" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" @@ -1699,16 +1708,16 @@ "@smithy/util-stream" "^2.2.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.11": - version "3.1.11" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.11.tgz#f12a7a0acaa7db3ead488ddf12ef4681daec11a7" - integrity sha512-l0BpyYkciNyMaS+PnFFz4aO5sBcXvGLoJd7mX9xrMBIm2nIQBVvYgp2ZpPDMzwjKCavsXu06iuCm0F6ZJZc6yQ== +"@smithy/smithy-client@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.4.0.tgz#ceffb92108a4ad60cbede3baf44ed224dc70b333" + integrity sha512-nOfJ1nVQsxiP6srKt43r2My0Gp5PLWCW2ASqUioxIiGmu6d32v4Nekidiv5qOmmtzIrmaD+ADX5SKHUuhReeBQ== dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" + "@smithy/util-stream" "^3.1.9" tslib "^2.6.2" "@smithy/types@^2.12.0": @@ -1718,10 +1727,10 @@ dependencies: tslib "^2.6.2" -"@smithy/types@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" - integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== +"@smithy/types@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.5.0.tgz#9589e154c50d9c5d00feb7d818112ef8fc285d6e" + integrity sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q== dependencies: tslib "^2.6.2" @@ -1734,13 +1743,13 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/url-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" - integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== +"@smithy/url-parser@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.7.tgz#9d7d7e4e38514bf75ade6e8a30d2300f3db17d1b" + integrity sha512-70UbSSR8J97c1rHZOWhl+VKiZDqHWxs/iW8ZHrHp5fCCPLSBE7GcUlUvKSle3Ca+J9LLbYCj/A79BxztBvAfpA== dependencies: - "@smithy/querystring-parser" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/querystring-parser" "^3.0.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/util-base64@^2.3.0": @@ -1830,14 +1839,14 @@ bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.13.tgz#f574bbb89d60f5dcc443f106087d317b370634d0" - integrity sha512-ZIRSUsnnMRStOP6OKtW+gCSiVFkwnfQF2xtf32QKAbHR6ACjhbAybDvry+3L5qQYdh3H6+7yD/AiUE45n8mTTw== +"@smithy/util-defaults-mode-browser@^3.0.23": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.23.tgz#6920b473126ae8857a04dd6941793bbda12adc8b" + integrity sha512-Y07qslyRtXDP/C5aWKqxTPBl4YxplEELG3xRrz2dnAQ6Lq/FgNrcKWmV561nNaZmFH+EzeGOX3ZRMbU8p1T6Nw== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" bowser "^2.11.0" tslib "^2.6.2" @@ -1854,17 +1863,17 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.13.tgz#cdd3a08bb5af4d17c2b0a951af9936ce7f3bae93" - integrity sha512-voUa8TFJGfD+U12tlNNLCDlXibt9vRdNzRX45Onk/WxZe7TS+hTOZouEZRa7oARGicdgeXvt1A0W45qLGYdy+g== +"@smithy/util-defaults-mode-node@^3.0.23": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.23.tgz#d03d21816e8b2f586ccf4a87cd0b1cc55b4d75e0" + integrity sha512-9Y4WH7f0vnDGuHUa4lGX9e2p+sMwODibsceSV6rfkZOvMC+BY3StB2LdO1NHafpsyHJLpwAgChxQ38tFyd6vkg== dependencies: - "@smithy/config-resolver" "^3.0.5" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/property-provider" "^3.1.7" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/util-endpoints@^1.2.0": @@ -1876,13 +1885,13 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-endpoints@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" - integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== +"@smithy/util-endpoints@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.3.tgz#7498151e9dc714bdd0c6339314dd2350fa4d250a" + integrity sha512-34eACeKov6jZdHqS5hxBMJ4KyWKztTMulhuQ2UdOoP6vVxMLrOKUqIXAwJe/wiWMhXhydLW664B02CNpQBQ4Aw== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^2.2.0": @@ -1907,12 +1916,12 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-middleware@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" - integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== +"@smithy/util-middleware@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.7.tgz#770d09749b6d170a1641384a2e961487447446fa" + integrity sha512-OVA6fv/3o7TMJTpTgOi1H5OTwnuUa8hzRzhSFDtZyNxi6OZ70L/FHattSmhE212I7b6WSOJAAmbYnvcjTHOJCA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/util-retry@^2.2.0": @@ -1924,13 +1933,13 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-retry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" - integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== +"@smithy/util-retry@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.7.tgz#694e0667574ffe9772f620b35d3c7286aced35e9" + integrity sha512-nh1ZO1vTeo2YX1plFPSe/OXaHkLAHza5jpokNiiKX2M5YpNUv6RxGJZhpfmiR4jSvVHCjIDmILjrxKmP+/Ghug== dependencies: - "@smithy/service-error-classification" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/service-error-classification" "^3.0.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@smithy/util-stream@^2.2.0": @@ -1947,14 +1956,14 @@ "@smithy/util-utf8" "^2.3.0" tslib "^2.6.2" -"@smithy/util-stream@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" - integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== +"@smithy/util-stream@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.9.tgz#d39656eae27696bdc5a3ec7c2f6b89c32dccd1ca" + integrity sha512-7YAR0Ub3MwTMjDfjnup4qa6W8gygZMxikBhFMPESi6ASsl/rZJhwLpF/0k9TuezScCojsM0FryGdz4LZtjKPPQ== dependencies: - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/types" "^3.5.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" @@ -2000,15 +2009,20 @@ "@smithy/types" "^2.12.0" tslib "^2.6.2" -"@smithy/util-waiter@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" - integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== +"@smithy/util-waiter@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.6.tgz#c65870d0c802e33b96112fac5c4471b3bf2eeecb" + integrity sha512-xs/KAwWOeCklq8aMlnpk25LgxEYHKOEodfjfKclDMLcBJEVEKzDLxZxBQyztcuPJ7F54213NJS8PxoiHNMdItQ== dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/types" "^3.3.0" + "@smithy/abort-controller" "^3.1.5" + "@smithy/types" "^3.5.0" tslib "^2.6.2" +"@types/uuid@^9.0.1": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" diff --git a/services/ui-auth/package.json b/services/ui-auth/package.json index 25af5d11d..fd961186e 100644 --- a/services/ui-auth/package.json +++ b/services/ui-auth/package.json @@ -9,7 +9,7 @@ "author": "", "license": "CC0-1.0", "dependencies": { - "@aws-sdk/client-cognito-identity-provider": "^3.606.0" + "@aws-sdk/client-cognito-identity-provider": "^3.662.0" }, "devDependencies": { "serverless-plugin-common-excludes": "^4.0.0", diff --git a/services/ui-auth/serverless.yml b/services/ui-auth/serverless.yml index 7c213d862..99c979794 100644 --- a/services/ui-auth/serverless.yml +++ b/services/ui-auth/serverless.yml @@ -173,6 +173,7 @@ resources: GenerateSecret: false # pragma: allowlist secret AllowedOAuthFlows: - code + - implicit AllowedOAuthFlowsUserPoolClient: true AllowedOAuthScopes: - email diff --git a/services/ui-auth/yarn.lock b/services/ui-auth/yarn.lock index 44833d174..ce6508c87 100644 --- a/services/ui-auth/yarn.lock +++ b/services/ui-auth/yarn.lock @@ -40,366 +40,376 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cognito-identity-provider@^3.606.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.621.0.tgz#7e5d85943fff1cfb0379866c2c3b3c91fd3f4ffa" - integrity sha512-Tu2m18zW87gJwme6J74p/ZrfC5eJ3kv4yXpCAkfOz1JBO0vfxdoZIkkZ94G5tuCpiS5kljwS6GXpsKOojpVXcg== +"@aws-sdk/client-cognito-identity-provider@^3.662.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.678.0.tgz#4000012ec808f680d22049c5ea6723fb176f284a" + integrity sha512-dIfTuBoDvEjoPku043AdEWqcsPHkD6qLOvRUBf0I3YpAcZwdhXVJ1Z76KP16IwKHxLOszVx5U3BYOg0zuTmTag== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/client-sts" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.678.0" + "@aws-sdk/client-sts" "3.678.0" + "@aws-sdk/core" "3.678.0" + "@aws-sdk/credential-provider-node" "3.678.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.678.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.678.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.621.0.tgz#3fa3d468fbebbd93a5f75c1d51b63cc7af3ef17b" - integrity sha512-mMjk3mFUwV2Y68POf1BQMTF+F6qxt5tPu6daEUCNGC9Cenk3h2YXQQoS4/eSyYzuBiYk3vx49VgleRvdvkg8rg== +"@aws-sdk/client-sso-oidc@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.678.0.tgz#abe3764c8da9e810d4c4216ba09d5b2662b6ef78" + integrity sha512-sgj9Y4zGiwLePLDjqhGoghoZgseh88JkKkwWH558IIte/cf/ix7ezOvptnA0WUlI5Z/329LtkN6O8TRqSJ7MWw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.678.0" + "@aws-sdk/credential-provider-node" "3.678.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.678.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.678.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.621.0.tgz#c0eefeb9adcbc6bb7c91c32070404c8c91846825" - integrity sha512-xpKfikN4u0BaUYZA9FGUMkkDmfoIP0Q03+A86WjqDWhcOoqNA1DkHsE4kZ+r064ifkPUfcNuUvlkVTEoBZoFjA== +"@aws-sdk/client-sso@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.678.0.tgz#47a6cecf1c7ba91c558f66f954589e85f539869b" + integrity sha512-5Fg2BkR1En8iBbiZ18STvLDGPK9Re5MyCmX+hfIhQzPsEf1FRkAkOluEXX79aBva8iWn2oCD/xKBUku4x3eusw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/core" "3.678.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.678.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.678.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.621.0.tgz#2994f601790893901704c5df56c837e89f279952" - integrity sha512-707uiuReSt+nAx6d0c21xLjLm2lxeKc7padxjv92CIrIocnQSlJPxSCM7r5zBhwiahJA6MNQwmTl2xznU67KgA== +"@aws-sdk/client-sts@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.678.0.tgz#c46fffda95b24931ce260bc5be9c2383855fd9a5" + integrity sha512-oRtDnbqIuTbBq0xd7XlaugDA41EqRFzWLpPNr4uwkH8L7xwtIByfJG/qXx2OtOiFFasAhMWJLu/DDqWZyp819A== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.621.0" - "@aws-sdk/core" "3.621.0" - "@aws-sdk/credential-provider-node" "3.621.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.620.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.1" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@aws-sdk/client-sso-oidc" "3.678.0" + "@aws-sdk/core" "3.678.0" + "@aws-sdk/credential-provider-node" "3.678.0" + "@aws-sdk/middleware-host-header" "3.667.0" + "@aws-sdk/middleware-logger" "3.667.0" + "@aws-sdk/middleware-recursion-detection" "3.667.0" + "@aws-sdk/middleware-user-agent" "3.678.0" + "@aws-sdk/region-config-resolver" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@aws-sdk/util-user-agent-browser" "3.675.0" + "@aws-sdk/util-user-agent-node" "3.678.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@smithy/util-base64" "^3.0.0" "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.13" - "@smithy/util-defaults-mode-node" "^3.0.13" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.621.0.tgz#e38c56c3ce0c819ca1185eaabcb98412429aaca3" - integrity sha512-CtOwWmDdEiINkGXD93iGfXjN0WmCp9l45cDWHHGa8lRgEDyhuL7bwd/pH5aSzj0j8SiQBG2k0S7DHbd5RaqvbQ== - dependencies: - "@smithy/core" "^2.3.1" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" +"@aws-sdk/core@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.678.0.tgz#ce259fd1832ab502abfa3426b6b10005567b8afa" + integrity sha512-ZTzybFZqSaPQymgRkTl08vk6xilaxr8LnJOc0h3KhcHLK4TJmdOcxqPpa6QxrBKcn2rmxzGiPRbAHLGI+BIxBw== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/core" "^2.4.8" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" - integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-http@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.621.0.tgz#5f944bf548f203d842cf71a5792f73c205544627" - integrity sha512-/jc2tEsdkT1QQAI5Dvoci50DbSxtJrevemwFsm0B73pwCcOQZ5ZwwSdVqGsPutzYzUVx3bcXg3LRL7jLACqRIg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.621.0.tgz#bda2365f88fee40e3ae067b08bf484106c339222" - integrity sha512-0EWVnSc+JQn5HLnF5Xv405M8n4zfdx9gyGdpnCmAmFqEDHA8LmBdxJdpUk1Ovp/I5oPANhjojxabIW5f1uU0RA== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.621.0.tgz#9cc5052760a9f9d70d70f12ddbdbf0d59bf13a47" - integrity sha512-4JqpccUgz5Snanpt2+53hbOBbJQrSFq7E1sAAbgY6BKVQUsW5qyXqnjvSF32kDeKa5JpBl3bBWLZl04IadcPHw== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.621.0" - "@aws-sdk/credential-provider-ini" "3.621.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.621.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-process@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" - integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.621.0.tgz#710f413708cb372f9f94e8eb9726cf263ffd83e3" - integrity sha512-Kza0jcFeA/GEL6xJlzR2KFf1PfZKMFnxfGzJzl5yN7EjoGdMijl34KaRyVnfRjnCWcsUpBWKNIDk9WZVMY9yiw== - dependencies: - "@aws-sdk/client-sso" "3.621.0" - "@aws-sdk/token-providers" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-web-identity@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" - integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-host-header@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" - integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-logger@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" - integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-recursion-detection@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" - integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.620.0.tgz#1fe3104f04f576a942cf0469bfbd73c38eef3d9e" - integrity sha512-bvS6etn+KsuL32ubY5D3xNof1qkenpbJXf/ugGXbg0n98DvDFQ/F+SMLxHgbnER5dsKYchNnhmtI6/FC3HFu/A== - dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.614.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" +"@aws-sdk/credential-provider-env@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.678.0.tgz#6e56564446e58f2e3e8870d530ce17e51b2661af" + integrity sha512-29uhXAB7uJqHtvJ2U3pi1YkMfv0WefW9EmSMoFAunjudXXBVktwTlWg0lyCM+KHrGKLkQyfs5UF/A9IelS8tdQ== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.678.0.tgz#a7a7627640577a7a51d8a59161150d4c286c5713" + integrity sha512-EvpmP0nc7ddRp0qwJOSu0uBXa+MMk4+OLlyEJcdaHnZI4/BoyVWr5fJUD5eQYZk11LZPZSvnsliYXWwLyVNXHQ== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-stream" "^3.1.9" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.678.0.tgz#652d7427274626104bc93ad0420771561c9b7d45" + integrity sha512-8kHy7V5rRO73EpBCUclykP9T/QIBVi0SkQsc88ZRxpdh59/JY2N6DT5khMTzrz9+Vvlw3FDMJN4AI/qWjJHhdw== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/credential-provider-env" "3.678.0" + "@aws-sdk/credential-provider-http" "3.678.0" + "@aws-sdk/credential-provider-process" "3.678.0" + "@aws-sdk/credential-provider-sso" "3.678.0" + "@aws-sdk/credential-provider-web-identity" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.678.0.tgz#38542c185160c22d43be3ff8a24532e555d8dd40" + integrity sha512-KGRBVD/oNr/aD+Wy5zc5AjfeSv5b4ahAu5eAUbOz+eGjGpGgrMtjY+R2rDY/3i3wFj9/DvOIfFGeZQMwtDzIuA== + dependencies: + "@aws-sdk/credential-provider-env" "3.678.0" + "@aws-sdk/credential-provider-http" "3.678.0" + "@aws-sdk/credential-provider-ini" "3.678.0" + "@aws-sdk/credential-provider-process" "3.678.0" + "@aws-sdk/credential-provider-sso" "3.678.0" + "@aws-sdk/credential-provider-web-identity" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.678.0.tgz#996304fd379e5d30a5e29bbe9e410c8bc837f337" + integrity sha512-5TpzzHKwPOvUJig0bvTt+brtXfLPaSVLwea9re+XGrS5T6Hz65IaX2RL6uY1GQ0UVOqgwQ5nAti1WOfBoSJ5BA== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.678.0.tgz#e54acf49d66e8bd0e2067fc150b05b061bbf04ac" + integrity sha512-PXydLUsLYd1rkhZ7zwf0613u5sofxIEhh7C1QGP1MSY3L1jt8bu7pZIcMzubfvmaGZI5k84aHhhjQEiAJUxIMg== + dependencies: + "@aws-sdk/client-sso" "3.678.0" + "@aws-sdk/core" "3.678.0" + "@aws-sdk/token-providers" "3.667.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.678.0.tgz#5aeeeec887f994cf62763f4c4c91c61ca49268b8" + integrity sha512-fcYZjTTFcef99l+BhcEAhHS4tEK1kE6Xj5Zz5lT4tFA07BkQt3d6kUKRVVfJnsbcHH4RDBUCnLhU8HPfc/kvjA== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.667.0.tgz#d255aa6e73aec9a2d1a241de737679b6d2723c3f" + integrity sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.667.0.tgz#bf072a1aa5b03239e20d75f9b525d8a990caf29f" + integrity sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.667.0.tgz#e3f158d5b5ea1b1d73ab280c0cbe5ef077ed3fdc" + integrity sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.678.0.tgz#524bcbbfb1a581270f786b79c36a8b79e9e4735d" + integrity sha512-tg9cC5COgGP0cznD2ys9kxPtVeKUygPZshDWXLAfA/cH/4m2ZUBvoEVv1SxkIbvOjnPwa976rdPLQUwRZvsL0g== + dependencies: + "@aws-sdk/core" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@aws-sdk/util-endpoints" "3.667.0" + "@smithy/core" "^2.4.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" - integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" +"@aws-sdk/region-config-resolver@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.667.0.tgz#1804103246e6b6c7586edc57d26801647d2972d8" + integrity sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg== + dependencies: + "@aws-sdk/types" "3.667.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" -"@aws-sdk/token-providers@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" - integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== +"@aws-sdk/token-providers@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.667.0.tgz#ea990ef364d6bd75f0ebcf19a22f9ccd0edb3c41" + integrity sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/types@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" - integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== +"@aws-sdk/types@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.667.0.tgz#1b307c5af5a029ea1893f799fcfa122988f9d025" + integrity sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@aws-sdk/types@^3.222.0": @@ -409,14 +419,14 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-endpoints@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz#6564b0ffd7dc3728221e9f9821f5aab1cc58468e" - integrity sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw== +"@aws-sdk/util-endpoints@3.667.0": + version "3.667.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.667.0.tgz#c880fbc3bda5a11eec81e4ac5f95a256f8dbb24e" + integrity sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - "@smithy/util-endpoints" "^2.0.5" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" + "@smithy/util-endpoints" "^2.1.3" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -426,24 +436,25 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" - integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== +"@aws-sdk/util-user-agent-browser@3.675.0": + version "3.675.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.675.0.tgz#ad5371e0d4f68733e3dd04d455d99ee99609dbd9" + integrity sha512-HW4vGfRiX54RLcsYjLuAhcBBJ6lRVEZd7njfGpAwBB9s7BH8t48vrpYbyA5XbbqbTvXfYBnugQCUw9HWjEa1ww== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" + "@aws-sdk/types" "3.667.0" + "@smithy/types" "^3.5.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" - integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== +"@aws-sdk/util-user-agent-node@3.678.0": + version "3.678.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.678.0.tgz#c17440be852afcce52246dbd2d12b60f80f89ce8" + integrity sha512-bKRemCdHMPAlEYE9KuQiMQG9/b4n8C+9DlJAL/X00Q7Zvm9Gv6h0+i5EZ+Xx8sbHq5oUv9a4W4tb+nkUZ0ltpw== dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@aws-sdk/middleware-user-agent" "3.678.0" + "@aws-sdk/types" "3.667.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" "@babel/code-frame@^7.0.0": @@ -494,77 +505,88 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@smithy/abort-controller@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" - integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== +"@smithy/abort-controller@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.6.tgz#d9de97b85ca277df6ffb9ee7cd83d5da793ee6de" + integrity sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/config-resolver@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" - integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== +"@smithy/config-resolver@^3.0.10", "@smithy/config-resolver@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.10.tgz#d9529d9893e5fae1f14cb1ffd55517feb6d7e50f" + integrity sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/types" "^3.6.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.8" tslib "^2.6.2" -"@smithy/core@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.3.1.tgz#99cb8eda23009fd7df736c82072dafcf4eb4ff5d" - integrity sha512-BC7VMXx/1BCmRPCVzzn4HGWAtsrb7/0758EtwOGFJQrlSwJBEjCcDLNZLFoL/68JexYa2s+KmgL/UfmXdG6v1w== +"@smithy/core@^2.4.8", "@smithy/core@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.5.1.tgz#7f635b76778afca845bcb401d36f22fa37712f15" + integrity sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg== + dependencies: + "@smithy/middleware-serde" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-stream" "^3.2.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^3.2.4", "@smithy/credential-provider-imds@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz#dbfd849a4a7ebd68519cd9fc35f78d091e126d0a" + integrity sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg== dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.13" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" - integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== +"@smithy/fetch-http-handler@^3.2.9": + version "3.2.9" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.9.tgz#8d5199c162a37caa37a8b6848eefa9ca58221a0b" + integrity sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" + "@smithy/protocol-http" "^4.1.4" + "@smithy/querystring-builder" "^3.0.7" + "@smithy/types" "^3.5.0" + "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" - integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== +"@smithy/fetch-http-handler@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz#3763cb5178745ed630ed5bc3beb6328abdc31f36" + integrity sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g== dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-node@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" - integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== +"@smithy/hash-node@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.8.tgz#f451cc342f74830466b0b39bf985dc3022634065" + integrity sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" - integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== +"@smithy/invalid-dependency@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz#4d381a4c24832371ade79e904a72c173c9851e5f" + integrity sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -581,168 +603,170 @@ dependencies: tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" - integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== - dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/middleware-endpoint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" - integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== +"@smithy/middleware-content-length@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz#738266f6d81436d7e3a86bea931bc64e04ae7dbf" + integrity sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg== dependencies: - "@smithy/middleware-serde" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-middleware" "^3.0.3" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.13.tgz#3bdd662aff01f360fcbaa166500bbc575dc9d1d0" - integrity sha512-zvCLfaRYCaUmjbF2yxShGZdolSHft7NNCTA28HVN9hKcEbOH+g5irr1X9s+in8EpambclGnevZY4A3lYpvDCFw== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" +"@smithy/middleware-endpoint@^3.1.4", "@smithy/middleware-endpoint@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz#b9ee42d29d8f3a266883d293c4d6a586f7b60979" + integrity sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA== + dependencies: + "@smithy/core" "^2.5.1" + "@smithy/middleware-serde" "^3.0.8" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" + "@smithy/util-middleware" "^3.0.8" + tslib "^2.6.2" + +"@smithy/middleware-retry@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz#a6b1081fc1a0991ffe1d15e567e76198af01f37c" + integrity sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg== + dependencies: + "@smithy/node-config-provider" "^3.1.9" + "@smithy/protocol-http" "^4.1.5" + "@smithy/service-error-classification" "^3.0.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-retry" "^3.0.8" tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-serde@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" - integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== +"@smithy/middleware-serde@^3.0.7", "@smithy/middleware-serde@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz#a46d10dba3c395be0d28610d55c89ff8c07c0cd3" + integrity sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" - integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== +"@smithy/middleware-stack@^3.0.7", "@smithy/middleware-stack@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz#f1c7d9c7fe8280c6081141c88f4a76875da1fc43" + integrity sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" - integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== +"@smithy/node-config-provider@^3.1.8", "@smithy/node-config-provider@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz#d27ba8e4753f1941c24ed0af824dbc6c492f510a" + integrity sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.8" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/node-http-handler@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" - integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== +"@smithy/node-http-handler@^3.2.4", "@smithy/node-http-handler@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz#ad9d9ba1528bf0d4a655135e978ecc14b3df26a2" + integrity sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w== dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/abort-controller" "^3.1.6" + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/property-provider@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" - integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== +"@smithy/property-provider@^3.1.7", "@smithy/property-provider@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.8.tgz#b1c5a3949effbb9772785ad7ddc5b4b235b10fbe" + integrity sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/protocol-http@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" - integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== +"@smithy/protocol-http@^4.1.4", "@smithy/protocol-http@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.5.tgz#a1f397440f299b6a5abeed6866957fecb1bf5013" + integrity sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" - integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== +"@smithy/querystring-builder@^3.0.7", "@smithy/querystring-builder@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz#0d845be53aa624771c518d1412881236ce12ed4f" + integrity sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" - integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== +"@smithy/querystring-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz#057a8e2d301eea8eac7071923100ba38a824d7df" + integrity sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/service-error-classification@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" - integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== +"@smithy/service-error-classification@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz#265ad2573b972f6c7bdd1ad6c5155a88aeeea1c4" + integrity sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" -"@smithy/shared-ini-file-loader@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" - integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== +"@smithy/shared-ini-file-loader@^3.1.8", "@smithy/shared-ini-file-loader@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz#1b77852b5bb176445e1d80333fa3f739313a4928" + integrity sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/signature-v4@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" - integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== +"@smithy/signature-v4@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.2.1.tgz#a918fd7d99af9f60aa07617506fa54be408126ee" + integrity sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg== dependencies: "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" + "@smithy/util-middleware" "^3.0.8" "@smithy/util-uri-escape" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.11": - version "3.1.11" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.11.tgz#f12a7a0acaa7db3ead488ddf12ef4681daec11a7" - integrity sha512-l0BpyYkciNyMaS+PnFFz4aO5sBcXvGLoJd7mX9xrMBIm2nIQBVvYgp2ZpPDMzwjKCavsXu06iuCm0F6ZJZc6yQ== +"@smithy/smithy-client@^3.4.0", "@smithy/smithy-client@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.4.2.tgz#a6e3ed98330ce170cf482e765bd0c21e0fde8ae4" + integrity sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA== dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" + "@smithy/core" "^2.5.1" + "@smithy/middleware-endpoint" "^3.2.1" + "@smithy/middleware-stack" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" + "@smithy/util-stream" "^3.2.1" tslib "^2.6.2" -"@smithy/types@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" - integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== +"@smithy/types@^3.5.0", "@smithy/types@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.6.0.tgz#03a52bfd62ee4b7b2a1842c8ae3ada7a0a5ff3a4" + integrity sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" - integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== +"@smithy/url-parser@^3.0.7", "@smithy/url-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.8.tgz#8057d91d55ba8df97d74576e000f927b42da9e18" + integrity sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg== dependencies: - "@smithy/querystring-parser" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/querystring-parser" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-base64@^3.0.0": @@ -791,37 +815,37 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.13.tgz#f574bbb89d60f5dcc443f106087d317b370634d0" - integrity sha512-ZIRSUsnnMRStOP6OKtW+gCSiVFkwnfQF2xtf32QKAbHR6ACjhbAybDvry+3L5qQYdh3H6+7yD/AiUE45n8mTTw== +"@smithy/util-defaults-mode-browser@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz#ef9b84272d1db23503ff155f9075a4543ab6dab7" + integrity sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA== dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.13.tgz#cdd3a08bb5af4d17c2b0a951af9936ce7f3bae93" - integrity sha512-voUa8TFJGfD+U12tlNNLCDlXibt9vRdNzRX45Onk/WxZe7TS+hTOZouEZRa7oARGicdgeXvt1A0W45qLGYdy+g== +"@smithy/util-defaults-mode-node@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz#c16fe3995c8e90ae318e336178392173aebe1e37" + integrity sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g== dependencies: - "@smithy/config-resolver" "^3.0.5" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.11" - "@smithy/types" "^3.3.0" + "@smithy/config-resolver" "^3.0.10" + "@smithy/credential-provider-imds" "^3.2.5" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-endpoints@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" - integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== +"@smithy/util-endpoints@^2.1.3": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz#a29134c2b1982442c5fc3be18d9b22796e8eb964" + integrity sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ== dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^3.0.0": @@ -831,31 +855,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" - integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== +"@smithy/util-middleware@^3.0.7", "@smithy/util-middleware@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.8.tgz#372bc7a2845408ad69da039d277fc23c2734d0c6" + integrity sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA== dependencies: - "@smithy/types" "^3.3.0" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-retry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" - integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== +"@smithy/util-retry@^3.0.7", "@smithy/util-retry@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.8.tgz#9c607c175a4d8a87b5d8ebaf308f6b849e4dc4d0" + integrity sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow== dependencies: - "@smithy/service-error-classification" "^3.0.3" - "@smithy/types" "^3.3.0" + "@smithy/service-error-classification" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-stream@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" - integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== +"@smithy/util-stream@^3.1.9", "@smithy/util-stream@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.2.1.tgz#f3055dc4c8caba8af4e47191ea7e773d0e5a429d" + integrity sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A== dependencies: - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/types" "^3.3.0" + "@smithy/fetch-http-handler" "^4.0.0" + "@smithy/node-http-handler" "^3.2.5" + "@smithy/types" "^3.6.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" diff --git a/services/ui-src/index.html b/services/ui-src/index.html index 636d5184a..8e7252ec8 100644 --- a/services/ui-src/index.html +++ b/services/ui-src/index.html @@ -12,7 +12,7 @@