From aa220fc515c9543a1d0883ec56da13d600ab1493 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Fri, 8 Dec 2023 18:07:25 +0100 Subject: [PATCH 01/22] Stop sync on traced exception (#33246) Co-authored-by: flash1293 --- .../file_types/unstructured_parser.py | 9 ++++++++- .../stream/default_file_based_stream.py | 4 ++++ .../file_types/test_unstructured_parser.py | 6 +++++- .../stream/test_default_file_based_stream.py | 19 +++++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py index bb6d8b27c2a52..64407d5ea04e7 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py @@ -9,6 +9,7 @@ import backoff import dpath.util import requests +from airbyte_cdk.models import FailureType from airbyte_cdk.sources.file_based.config.file_based_stream_config import FileBasedStreamConfig from airbyte_cdk.sources.file_based.config.unstructured_format import ( APIParameterConfigModel, @@ -22,6 +23,7 @@ from airbyte_cdk.sources.file_based.remote_file import RemoteFile from airbyte_cdk.sources.file_based.schema_helpers import SchemaType from airbyte_cdk.utils import is_cloud_environment +from airbyte_cdk.utils.traced_exception import AirbyteTracedException from unstructured.file_utils.filetype import FILETYPE_TO_MIMETYPE, STR_TO_FILETYPE, FileType, detect_filetype unstructured_partition_pdf = None @@ -161,7 +163,12 @@ def _read_file(self, file_handle: IOBase, remote_file: RemoteFile, format: Unstr if format.processing.mode == "local": return self._read_file_locally(file_handle, filetype, format.strategy, remote_file) elif format.processing.mode == "api": - result: str = self._read_file_remotely_with_retries(file_handle, format.processing, filetype, format.strategy) + try: + result: str = self._read_file_remotely_with_retries(file_handle, format.processing, filetype, format.strategy) + except Exception as e: + # Re-throw as config error so the sync is stopped as problems with the external API need to be resolved by the user and are not considered part of the SLA. + # Once this parser leaves experimental stage, we should consider making this a system error instead for issues that might be transient. + raise AirbyteTracedException.from_exception(e, failure_type=FailureType.config_error) return result diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py index 010484aa95485..86888236b466c 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py @@ -121,6 +121,10 @@ def read_records_from_slice(self, stream_slice: StreamSlice) -> Iterable[Airbyte ), ) + except AirbyteTracedException as exc: + # Re-raise the exception to stop the whole sync immediately as this is a fatal error + raise exc + except Exception: yield AirbyteMessage( type=MessageType.LOG, diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/test_unstructured_parser.py b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/test_unstructured_parser.py index 23781046b2295..7085ca1ca6e6f 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/test_unstructured_parser.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/test_unstructured_parser.py @@ -9,11 +9,13 @@ import pytest import requests +from airbyte_cdk.models import FailureType from airbyte_cdk.sources.file_based.config.file_based_stream_config import FileBasedStreamConfig from airbyte_cdk.sources.file_based.config.unstructured_format import APIParameterConfigModel, APIProcessingConfigModel, UnstructuredFormat from airbyte_cdk.sources.file_based.exceptions import RecordParseError from airbyte_cdk.sources.file_based.file_types import UnstructuredParser from airbyte_cdk.sources.file_based.remote_file import RemoteFile +from airbyte_cdk.utils.traced_exception import AirbyteTracedException from unstructured.documents.elements import ElementMetadata, Formula, ListItem, Text, Title from unstructured.file_utils.filetype import FileType @@ -488,8 +490,10 @@ def test_parse_records_remotely( requests_mock.exceptions.RequestException = requests.exceptions.RequestException if raises: - with pytest.raises(Exception): + with pytest.raises(AirbyteTracedException) as exc: list(UnstructuredParser().parse_records(config, fake_file, stream_reader, logger, MagicMock())) + # Failures from the API are treated as config errors + assert exc.value.failure_type == FailureType.config_error else: assert list(UnstructuredParser().parse_records(config, fake_file, stream_reader, logger, MagicMock())) == expected_records diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/stream/test_default_file_based_stream.py b/airbyte-cdk/python/unit_tests/sources/file_based/stream/test_default_file_based_stream.py index 3e79c5f9cebf7..e0c5f59623f53 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/stream/test_default_file_based_stream.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/stream/test_default_file_based_stream.py @@ -17,6 +17,7 @@ from airbyte_cdk.sources.file_based.schema_validation_policies import AbstractSchemaValidationPolicy from airbyte_cdk.sources.file_based.stream.cursor import AbstractFileBasedCursor from airbyte_cdk.sources.file_based.stream.default_file_based_stream import DefaultFileBasedStream +from airbyte_cdk.utils.traced_exception import AirbyteTracedException class MockFormat: @@ -119,6 +120,24 @@ def test_given_exception_when_read_records_from_slice_then_do_process_other_file assert messages[0].log.level == Level.ERROR assert messages[1].record.data["data"] == self._A_RECORD + def test_given_traced_exception_when_read_records_from_slice_then_fail(self) -> None: + """ + When a traced exception is raised, the stream shouldn't try to handle but pass it on to the caller. + """ + self._parser.parse_records.side_effect = [AirbyteTracedException("An error")] + + with pytest.raises(AirbyteTracedException): + list( + self._stream.read_records_from_slice( + { + "files": [ + RemoteFile(uri="invalid_file", last_modified=self._NOW), + RemoteFile(uri="valid_file", last_modified=self._NOW), + ] + } + ) + ) + def test_given_exception_after_skipping_records_when_read_records_from_slice_then_send_warning(self) -> None: self._stream_config.schemaless = False self._validation_policy.record_passes_validation_policy.return_value = False From 79d6e51843f164d875e51720d2b78d66c5be5741 Mon Sep 17 00:00:00 2001 From: Daryna Ishchenko <80129833+darynaishchenko@users.noreply.github.com> Date: Fri, 8 Dec 2023 19:10:18 +0200 Subject: [PATCH 02/22] :sparkles: Source Bing Ads: Accounts: update docs, unit tests for empty streams (#32704) Co-authored-by: Roman Yermilov [GL] <86300758+roman-yermilov-gl@users.noreply.github.com> Co-authored-by: Christo Grabowski <108154848+ChristoGrab@users.noreply.github.com> Co-authored-by: darynaishchenko Co-authored-by: Augustin --- .../acceptance-test-config.yml | 522 +++++++++++++++++- .../integration_tests/expected_records.jsonl | 57 +- .../expected_records_no_start_date.jsonl | 5 + .../unit_tests/app_install_ad_labels_base.csv | 3 + .../account_impression_performance.csv | 2 + ...ccount_impression_performance_records.json | 70 +++ .../hourly_reports/account_performance.csv | 2 + .../account_performance_records.json | 42 ++ .../ad_group_impression_performance.csv | 2 + ..._group_impression_performance_records.json | 81 +++ .../hourly_reports/ad_group_performance.csv | 2 + .../ad_group_performance_records.json | 54 ++ .../hourly_reports/ad_performance.csv | 2 + .../ad_performance_records.json | 52 ++ .../hourly_reports/age_gender_audience.csv | 2 + .../age_gender_audience_records.json | 38 ++ .../campaign_impression_performance.csv | 2 + ...mpaign_impression_performance_records.json | 84 +++ .../hourly_reports/campaign_performance.csv | 2 + .../campaign_performance_records.json | 60 ++ .../hourly_reports/geographic_performance.csv | 2 + .../geographic_performance_records.json | 72 +++ .../hourly_reports/keyword_performance.csv | 2 + .../keyword_performance_records.json | 61 ++ .../search_query_performance.csv | 2 + .../search_query_performance_records.json | 62 +++ .../user_location_performance.csv | 2 + .../user_location_performance_records.json | 73 +++ .../unit_tests/test_bulk_streams.py | 28 +- .../unit_tests/test_reports.py | 30 + docs/integrations/sources/bing-ads.md | 16 + 31 files changed, 1399 insertions(+), 35 deletions(-) create mode 100644 airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records_no_start_date.jsonl create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/app_install_ad_labels_base.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance_records.json create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance.csv create mode 100644 airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance_records.json diff --git a/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml b/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml index c61a97075ea31..bef3f6d63a2ac 100644 --- a/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-bing-ads/acceptance-test-config.yml @@ -15,6 +15,8 @@ acceptance_tests: tests: - config_path: secrets/config.json status: succeed + - config_path: secrets/config_no_date.json + status: succeed - config_path: integration_tests/invalid_config.json status: failed basic_read: @@ -77,12 +79,528 @@ acceptance_tests: bypass_reason: "Campaign is still in progress" - name: account_impression_performance_report_monthly bypass_reason: "Campaign is still in progress" - timeout_seconds: 7200 + ### For stream below start date in config is not relevant, empty data + - name: keyword_labels + bypass_reason: "This stream is tested without start date" + - name: keywords + bypass_reason: "This stream is tested without start date" + - name: ad_group_labels + bypass_reason: "This stream is tested without start date" + - name: labels + bypass_reason: "This stream is tested without start date" + - name: campaign_labels + bypass_reason: "This stream is tested without start date" + ignored_fields: + account_impression_performance_report_weekly: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + - name: LowQualityImpressionsPercent + bypass_reason: "dynamic field" + age_gender_audience_report_daily: + - name: Impressions + bypass_reason: "dynamic field" + age_gender_audience_report_weekly: + - name: Impressions + bypass_reason: "dynamic field" + keyword_performance_report_weekly: + - name: Mainline1Bid + bypass_reason: "dynamic field" + - name: MainlineBid + bypass_reason: "dynamic field" + campaign_impression_performance_report_weekly: + - name: Impressions + bypass_reason: "dynamic field" + - name: LowQualityImpressions + bypass_reason: "dynamic field" + - name: LowQualityImpressionsPercent + bypass_reason: "dynamic field" + campaign_performance_report_weekly: + - name: Impressions + bypass_reason: "dynamic field" + - name: DeviceType + bypass_reason: "dynamic field" + - name: DeviceOS + bypass_reason: "dynamic field" + - name: LowQualityImpressions + bypass_reason: "dynamic field" + ad_group_impression_performance_report_weekly: + - name: Impressions + bypass_reason: "dynamic field" + - name: DeviceType + bypass_reason: "dynamic field" + - name: HistoricalQualityScore + bypass_reason: "dynamic field" + - name: HistoricalExpectedCtr + bypass_reason: "dynamic field" + - name: HistoricalAdRelevance + bypass_reason: "dynamic field" + - name: HistoricalLandingPageExperience + bypass_reason: "dynamic field" + ad_group_performance_report_weekly: + - name: Impressions + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: Clicks + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + ad_performance_report_daily: + - name: TimePeriod + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionRatePercent + bypass_reason: "dynamic field" + - name: AdDistribution + bypass_reason: "dynamic field" + - name: DeviceType + bypass_reason: "dynamic field" + - name: Language + bypass_reason: "dynamic field" + - name: Network + bypass_reason: "dynamic field" + - name: DeviceOS + bypass_reason: "dynamic field" + - name: TopVsOther + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: Spend + bypass_reason: "dynamic field" + - name: AverageCpc + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + ad_performance_report_weekly: + - name: TimePeriod + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionRatePercent + bypass_reason: "dynamic field" + - name: AdDistribution + bypass_reason: "dynamic field" + - name: DeviceType + bypass_reason: "dynamic field" + - name: Language + bypass_reason: "dynamic field" + - name: Network + bypass_reason: "dynamic field" + - name: DeviceOS + bypass_reason: "dynamic field" + - name: TopVsOther + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: Clicks + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: Spent + bypass_reason: "dynamic field" + - name: ReturnOnAdSpend + bypass_reason: "dynamic field" + - name: AllReturnOnAdSpend + bypass_reason: "dynamic field" + - name: ConversionRate + bypass_reason: "dynamic field" + - name: AverageCpc + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + - name: AllConversions + bypass_reason: "dynamic field" + - name: AllConversionRate + bypass_reason: "dynamic field" + - name: AllRevenue + bypass_reason: "dynamic field" + ad_group_performance_report_daily: + - name: Impressions + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + budget_summary_report: + - name: Date + bypass_reason: "dynamic field" + - name: MonthlyBudget + bypass_reason: "dynamic field" + - name: DailySpend + bypass_reason: "dynamic field" + - name: MonthToDateSpend + bypass_reason: "dynamic field" + campaign_impression_performance_report_daily: + - name: TimePeriod + bypass_reason: "dynamic field" + - name: AdDistribution + bypass_reason: "dynamic field" + - name: LowQualityImpressions + bypass_reason: "dynamic field" + - name: LowQualityImpressionsPercent + bypass_reason: "dynamic field" + - name: DeviceType + bypass_reason: "dynamic field" + - name: ImpressionSharePercent + bypass_reason: "dynamic field" + - name: ImpressionLostToBudgetPercent + bypass_reason: "dynamic field" + - name: ImpressionLostToRankAggPercent + bypass_reason: "dynamic field" + - name: HistoricalQualityScore + bypass_reason: "dynamic field" + - name: HistoricalExpectedCtr + bypass_reason: "dynamic field" + - name: HistoricalAdRelevance + bypass_reason: "dynamic field" + - name: HistoricalLandingPageExperience + bypass_reason: "dynamic field" + - name: Network + bypass_reason: "dynamic field" + - name: ExactMatchImpressionSharePercent + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionSharePercent + bypass_reason: "dynamic field" + - name: TopImpressionShareLostToRankPercent + bypass_reason: "dynamic field" + - name: TopImpressionShareLostToBudgetPercent + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionShareLostToRankPercent + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionShareLostToBudgetPercent + bypass_reason: "dynamic field" + - name: TopImpressionSharePercent + bypass_reason: "dynamic field" + - name: AbsoluteTopImpressionRatePercent + bypass_reason: "dynamic field" + - name: TopImpressionRatePercent + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + account_performance_report_daily: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + account_performance_report_weekly: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + account_impression_performance_report_daily: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + - name: LowQualityImpressionsPercent + bypass_reason: "dynamic field" + ad_group_impression_performance_report_daily: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + campaign_performance_report_daily: + - name: Ctr + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + keyword_performance_report_daily: + - name: Language + bypass_reason: "dynamic field" + - name: Network + bypass_reason: "dynamic field" + - name: DeviceOS + bypass_reason: "dynamic field" + - name: TopVsOther + bypass_reason: "dynamic field" + - name: Impressions + bypass_reason: "dynamic field" + - name: Clicks + bypass_reason: "dynamic field" + - name: Ctr + bypass_reason: "dynamic field" + - name: Spend + bypass_reason: "dynamic field" + - name: ReturnOnAdSpend + bypass_reason: "dynamic field" + - name: AllReturnOnAdSpend + bypass_reason: "dynamic field" + - name: ConversionRate + bypass_reason: "dynamic field" + - name: AverageCpc + bypass_reason: "dynamic field" + - name: AverageCpm + bypass_reason: "dynamic field" + - name: AllConversionRate + bypass_reason: "dynamic field" + - name: Mainline1Bid + bypass_reason: "dynamic field" + - name: MainlineBid + bypass_reason: "dynamic field" + timeout_seconds: 9000 + - config_path: secrets/config_no_date.json + expect_records: + path: "integration_tests/expected_records_no_start_date.jsonl" + extra_records: yes + empty_streams: + - name: app_install_ads + bypass_reason: "Can not populate; new campaign with link to app needed; feature is not available yet" + - name: app_install_ad_labels + bypass_reason: "Can not populate; depends on stream app_install_ads" + - name: age_gender_audience_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + - name: user_location_performance_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + - name: account_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: account_impression_performance_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + - name: campaign_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: ad_group_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: ad_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: ad_group_impression_performance_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + - name: keyword_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: geographic_performance_report_hourly + bypass_reason: "Hourly reports are disabled, because sync is too long" + - name: campaign_impression_performance_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + - name: search_query_performance_report_hourly + bypass_reason: "Empty report; hourly data fetched is limited to 180 days" + #### TODO: remove *_report_monthly after all become populated on December, 1 + - name: account_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: ad_group_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: ad_group_impression_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: ad_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: campaign_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: campaign_impression_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: keyword_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: geographic_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: age_gender_audience_report_monthly + bypass_reason: "Campaign is still in progress" + - name: search_query_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: user_location_performance_report_monthly + bypass_reason: "Campaign is still in progress" + - name: account_impression_performance_report_monthly + bypass_reason: "Campaign is still in progress" + #### Streams below sync takes a lot of time if start date is not provided + - name: ad_groups + bypass_reason: "This stream is tested with config with start date" + - name: ads + bypass_reason: "This stream is tested with config with start date" + - name: campaigns + bypass_reason: "This stream is tested with config with start date" + - name: accounts + bypass_reason: "This stream is tested with config with start date" + - name: account_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: account_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: ad_group_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: ad_group_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: ad_group_impression_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: ad_group_impression_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: ad_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: ad_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: budget_summary_report + bypass_reason: "This stream is tested with config with start date" + - name: campaign_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: campaign_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: campaign_impression_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: campaign_impression_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: keyword_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: keyword_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: geographic_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: geographic_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: age_gender_audience_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: age_gender_audience_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: search_query_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: search_query_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: user_location_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: user_location_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + - name: account_impression_performance_report_daily + bypass_reason: "This stream is tested with config with start date" + - name: account_impression_performance_report_weekly + bypass_reason: "This stream is tested with config with start date" + ignored_fields: + campaign_labels: + - name: Modified Time + bypass_reason: "dynamic field" + keyword_labels: + - name: Modified Time + bypass_reason: "dynamic field" + ad_group_labels: + - name: Modified Time + bypass_reason: "dynamic field" + labels: + - name: Modified Time + bypass_reason: "dynamic field" + timeout_seconds: 9000 full_refresh: tests: - config_path: secrets/config.json configured_catalog_path: integration_tests/configured_catalog_full_refresh.json - timeout_seconds: 7200 + timeout_seconds: 9000 + ignored_fields: + account_performance_report_hourly: + - name: "AdDistribution" + bypass_reason: "dynamic field" + - name: "DeviceType" + bypass_reason: "dynamic field" + - name: "Network" + bypass_reason: "dynamic field" + - name: "DeliveredMatchType" + bypass_reason: "dynamic field" + - name: "DeviceOS" + bypass_reason: "dynamic field" + - name: "TopVsOther" + bypass_reason: "dynamic field" + - name: "Impressions" + bypass_reason: "dynamic field" + - name: "Clicks" + bypass_reason: "dynamic field" + - name: "Ctr" + bypass_reason: "dynamic field" + - name: "Spend" + bypass_reason: "dynamic field" + - name: "ReturnOnAdSpend" + bypass_reason: "dynamic field" + - name: "AverageCpc" + bypass_reason: "dynamic field" + - name: "AverageCpm" + bypass_reason: "dynamic field" + - name: "ConversionRate" + bypass_reason: "dynamic field" + - name: "LowQualityClicksPercent" + bypass_reason: "dynamic field" + - name: "LowQualityImpressions" + bypass_reason: "dynamic field" + account_performance_report_weekly: + - name: "AdDistribution" + bypass_reason: "dynamic field" + - name: "DeviceType" + bypass_reason: "dynamic field" + - name: "Network" + bypass_reason: "dynamic field" + - name: "DeliveredMatchType" + bypass_reason: "dynamic field" + - name: "DeviceOS" + bypass_reason: "dynamic field" + - name: "TopVsOther" + bypass_reason: "dynamic field" + - name: "Impressions" + bypass_reason: "dynamic field" + - name: "Clicks" + bypass_reason: "dynamic field" + - name: "Ctr" + bypass_reason: "dynamic field" + - name: "Spend" + bypass_reason: "dynamic field" + - name: "ReturnOnAdSpend" + bypass_reason: "dynamic field" + - name: "AverageCpc" + bypass_reason: "dynamic field" + - name: "AverageCpm" + bypass_reason: "dynamic field" + - name: "ConversionRate" + bypass_reason: "dynamic field" + - name: "LowQualityClicksPercent" + bypass_reason: "dynamic field" + - name: "LowQualityImpressions" + bypass_reason: "dynamic field" + account_performance_report_daily: + - name: "AdDistribution" + bypass_reason: "dynamic field" + - name: "DeviceType" + bypass_reason: "dynamic field" + - name: "Network" + bypass_reason: "dynamic field" + - name: "DeliveredMatchType" + bypass_reason: "dynamic field" + - name: "DeviceOS" + bypass_reason: "dynamic field" + - name: "TopVsOther" + bypass_reason: "dynamic field" + - name: "Impressions" + bypass_reason: "dynamic field" + - name: "Clicks" + bypass_reason: "dynamic field" + - name: "Ctr" + bypass_reason: "dynamic field" + - name: "Spend" + bypass_reason: "dynamic field" + - name: "ReturnOnAdSpend" + bypass_reason: "dynamic field" + - name: "AverageCpc" + bypass_reason: "dynamic field" + - name: "AverageCpm" + bypass_reason: "dynamic field" + - name: "ConversionRate" + bypass_reason: "dynamic field" + - name: "LowQualityClicksPercent" + bypass_reason: "dynamic field" + - name: "LowQualityImpressions" + bypass_reason: "dynamic field" + budget_summary_report: + - name: Date + bypass_reason: "dynamic field" + - name: MonthlyBudget + bypass_reason: "dynamic field" + - name: DailySpend + bypass_reason: "dynamic field" + - name: MonthToDateSpend + bypass_reason: "dynamic field" + incremental: tests: bypass_reason: "SAT doesn't support complex nested states used in incremental report streams" diff --git a/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.jsonl index 73359a9643202..5555639268c9d 100644 --- a/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.jsonl +++ b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records.jsonl @@ -2,35 +2,28 @@ {"stream":"ads","data":{"AdFormatPreference":"All","DevicePreference":0,"EditorialStatus":"Active","FinalAppUrls":null,"FinalMobileUrls":null,"FinalUrlSuffix":null,"FinalUrls":{"string":["https://airbyte.com"]},"ForwardCompatibilityMap":null,"Id":84800390693061,"Status":"Active","TrackingUrlTemplate":null,"Type":"ResponsiveSearch","UrlCustomParameters":null,"Descriptions":{"AssetLink":[{"Asset":{"Id":10239363892977,"Name":null,"Type":"TextAsset","Text":"Connect, integrate, and sync data seamlessly with Airbyte's 800+ contributors and growing!"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239363892976,"Name":null,"Type":"TextAsset","Text":"Move data like a pro with our powerful tool trusted by 40,000+ engineers worldwide!"},"AssetPerformanceLabel":"Learning","EditorialStatus":"Active","PinnedField":null}]},"Domain":"airbyte.com","Headlines":{"AssetLink":[{"Asset":{"Id":10239363892979,"Name":null,"Type":"TextAsset","Text":"Get synced with Airbyte"},"AssetPerformanceLabel":"Good","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239363893384,"Name":null,"Type":"TextAsset","Text":"Data management made easy"},"AssetPerformanceLabel":"Good","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239363892978,"Name":null,"Type":"TextAsset","Text":"Connectors for every need"},"AssetPerformanceLabel":"Best","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239363892980,"Name":null,"Type":"TextAsset","Text":"Industry-leading connectors"},"AssetPerformanceLabel":"Best","EditorialStatus":"Active","PinnedField":null},{"Asset":{"Id":10239363893383,"Name":null,"Type":"TextAsset","Text":"Try Airbyte now for free"},"AssetPerformanceLabel":"Good","EditorialStatus":"Active","PinnedField":null}]},"Path1":null,"Path2":null,"AdGroupId":1356799861840328,"AccountId":180519267,"CustomerId":251186883},"emitted_at":1700075716309} {"stream":"campaigns","data":{"AudienceAdsBidAdjustment":0,"BiddingScheme":{"Type":"EnhancedCpc"},"BudgetType":"DailyBudgetStandard","DailyBudget":2.0,"ExperimentId":null,"FinalUrlSuffix":null,"ForwardCompatibilityMap":null,"Id":531016227,"MultimediaAdsBidAdjustment":40,"Name":"Airbyte test","Status":"Active","SubType":null,"TimeZone":"CentralTimeUSCanada","TrackingUrlTemplate":null,"UrlCustomParameters":null,"CampaignType":"Search","Settings":{"Setting":[{"Type":"TargetSetting","Details":{"TargetSettingDetail":[{"CriterionTypeGroup":"Audience","TargetAndBid":false}]}}]},"BudgetId":null,"Languages":{"string":["English"]},"AdScheduleUseSearcherTimeZone":false,"AccountId":180519267,"CustomerId":251186883},"emitted_at":1699913381852} {"stream":"accounts","data":{"BillToCustomerId":251186883,"CurrencyCode":"USD","AccountFinancialStatus":"ClearFinancialStatus","Id":180535609,"Language":"English","LastModifiedByUserId":0,"LastModifiedTime":"2023-08-11T08:24:26.603000","Name":"DEMO-ACCOUNT","Number":"F149W3B6","ParentCustomerId":251186883,"PaymentMethodId":null,"PaymentMethodType":null,"PrimaryUserId":138225488,"AccountLifeCycleStatus":"Pause","TimeStamp":"AAAAAH10c1A=","TimeZone":"Santiago","PauseReason":2,"ForwardCompatibilityMap":null,"LinkedAgencies":null,"SalesHouseCustomerId":null,"TaxInformation":null,"BackUpPaymentInstrumentId":null,"BillingThresholdAmount":null,"BusinessAddress":{"City":"San Francisco","CountryCode":"US","Id":149694999,"Line1":"350 29th avenue","Line2":null,"Line3":null,"Line4":null,"PostalCode":"94121","StateOrProvince":"CA","TimeStamp":null,"BusinessName":"Daxtarity Inc."},"AutoTagType":"Inactive","SoldToPaymentInstrumentId":null,"AccountMode":"Expert"},"emitted_at":1699913384475} -{"stream":"account_performance_report_daily","data":{"AccountId":180519267,"TimePeriod":"2023-11-07","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Syndicated search partners","DeliveredMatchType":"Phrase","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","AccountName":"Airbyte","AccountNumber":"F149MJ18","PhoneImpressions":0,"PhoneCalls":0,"Clicks":1,"Ctr":16.67,"Spend":0.33,"Impressions":6,"CostPerConversion":null,"Ptr":null,"Assists":0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"AverageCpc":0.33,"AveragePosition":0.0,"AverageCpm":55.0,"Conversions":0.0,"ConversionRate":0.0,"ConversionsQualified":0.0,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":0,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1699953356703} -{"stream":"account_performance_report_weekly","data":{"AccountId":180519267,"TimePeriod":"2023-11-05","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Syndicated search partners","DeliveredMatchType":"Exact","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","AccountName":"Airbyte","AccountNumber":"F149MJ18","PhoneImpressions":0,"PhoneCalls":0,"Clicks":1,"Ctr":8.33,"Spend":0.03,"Impressions":12,"CostPerConversion":null,"Ptr":null,"Assists":0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"AverageCpc":0.03,"AveragePosition":0.0,"AverageCpm":2.5,"Conversions":0.0,"ConversionRate":0.0,"ConversionsQualified":0.0,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":0,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1699953382081} -{"stream":"ad_group_performance_report_daily","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"TimePeriod":"2023-11-07","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Microsoft sites and select traffic","DeliveredMatchType":"Phrase","DeviceOS":"Windows","TopVsOther":"Microsoft sites and select traffic - other","BidMatchType":"Broad","Language":"English","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","AdGroupName":"keywords","AdGroupType":"Standard","Impressions":121,"Clicks":1,"Ctr":0.83,"Spend":0.66,"CostPerConversion":null,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"CostPerAssist":null,"CustomParameters":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllConversions":0,"AllConversionRate":0.0,"AllRevenue":0.0,"AllRevenuePerConversion":null,"AverageCpc":0.66,"AveragePosition":0.0,"AverageCpm":5.45,"Conversions":0.0,"ConversionRate":0.0,"ConversionsQualified":0.0,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":null,"HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null},"emitted_at":1699953471148} -{"stream":"ad_group_performance_report_weekly","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"TimePeriod":"2023-11-05","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Syndicated search partners","DeliveredMatchType":"Exact","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","Language":"English","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","AdGroupName":"keywords","AdGroupType":"Standard","Impressions":3,"Clicks":0,"Ctr":0.0,"Spend":0.0,"CostPerConversion":null,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"CostPerAssist":null,"CustomParameters":null,"FinalUrlSuffix":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null,"HistoricalQualityScore":5.0,"HistoricalExpectedCtr":2.0,"HistoricalAdRelevance":3.0,"HistoricalLandingPageExperience":1.0},"emitted_at":1699953500072} -{"stream":"ad_group_impression_performance_report_daily","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-07","Status":"Active","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":1,"Clicks":0,"Ctr":0.0,"AverageCpc":0.0,"Spend":0.0,"AveragePosition":0.0,"Conversions":0,"ConversionRate":null,"CostPerConversion":null,"DeviceType":"Computer","Language":"German","ImpressionSharePercent":null,"ImpressionLostToBudgetPercent":null,"ImpressionLostToRankAggPercent":null,"QualityScore":5,"ExpectedCtr":2.0,"AdRelevance":3,"LandingPageExperience":1,"HistoricalQualityScore":null,"HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Syndicated search partners","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":null,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"TrackingTemplate":null,"CustomParameters":null,"AccountStatus":"Active","CampaignStatus":"Active","AdGroupLabels":null,"ExactMatchImpressionSharePercent":null,"ClickSharePercent":null,"AbsoluteTopImpressionSharePercent":null,"FinalUrlSuffix":null,"CampaignType":"Search & content","TopImpressionShareLostToRankPercent":null,"TopImpressionShareLostToBudgetPercent":null,"AbsoluteTopImpressionShareLostToRankPercent":null,"AbsoluteTopImpressionShareLostToBudgetPercent":null,"TopImpressionSharePercent":null,"AbsoluteTopImpressionRatePercent":100.0,"TopImpressionRatePercent":100.0,"BaseCampaignId":531016227,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"RelativeCtr":null,"AdGroupType":"Standard","AverageCpm":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699955374204} -{"stream":"ad_group_impression_performance_report_weekly","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-05","Status":"Active","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":3,"Clicks":1,"Ctr":33.33,"AverageCpc":0.08,"Spend":0.08,"AveragePosition":0.0,"Conversions":0,"ConversionRate":0.0,"CostPerConversion":null,"DeviceType":"Computer","Language":"Danish","ImpressionSharePercent":11.11,"ImpressionLostToBudgetPercent":0.0,"ImpressionLostToRankAggPercent":88.89,"QualityScore":5,"ExpectedCtr":2.0,"AdRelevance":3,"LandingPageExperience":1,"HistoricalQualityScore":5,"HistoricalExpectedCtr":2,"HistoricalAdRelevance":3,"HistoricalLandingPageExperience":1,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Microsoft sites and select traffic","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"TrackingTemplate":null,"CustomParameters":null,"AccountStatus":"Active","CampaignStatus":"Active","AdGroupLabels":null,"ExactMatchImpressionSharePercent":null,"ClickSharePercent":null,"AbsoluteTopImpressionSharePercent":null,"FinalUrlSuffix":null,"CampaignType":"Search & content","TopImpressionShareLostToRankPercent":null,"TopImpressionShareLostToBudgetPercent":null,"AbsoluteTopImpressionShareLostToRankPercent":null,"AbsoluteTopImpressionShareLostToBudgetPercent":null,"TopImpressionSharePercent":null,"AbsoluteTopImpressionRatePercent":100.0,"TopImpressionRatePercent":100.0,"BaseCampaignId":531016227,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":0.0,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"RelativeCtr":null,"AdGroupType":"Standard","AverageCpm":26.67,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699955407065} -{"stream":"ad_performance_report_daily","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"AdId":84800390693061,"TimePeriod":"2023-11-07","AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":100.0,"CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Language":"German","Network":"Microsoft sites and select traffic","DeviceOS":"Windows","TopVsOther":"Microsoft sites and select traffic - top","BidMatchType":"Broad","DeliveredMatchType":"Phrase","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","AdGroupName":"keywords","Impressions":2,"Clicks":1,"Ctr":50.0,"Spend":0.79,"CostPerConversion":null,"DestinationUrl":null,"Assists":0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"AdDescription":null,"AdDescription2":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"Conversions":0.0,"ConversionRate":0.0,"ConversionsQualified":0.0,"AverageCpc":0.79,"AveragePosition":0.0,"AverageCpm":395.0,"AllConversions":0,"AllConversionRate":0.0,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1700076965521} -{"stream":"ad_performance_report_weekly","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"AdId":84800390693061,"TimePeriod":"2023-11-05","AbsoluteTopImpressionRatePercent":100.0,"TopImpressionRatePercent":100.0,"CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Language":"Danish","Network":"Microsoft sites and select traffic","DeviceOS":"Windows","TopVsOther":"Microsoft sites and select traffic - top","BidMatchType":"Broad","DeliveredMatchType":"Phrase","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","AdGroupName":"keywords","Impressions":3,"Clicks":1,"Ctr":33.33,"Spend":0.08,"CostPerConversion":null,"DestinationUrl":null,"Assists":0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"AdDescription":null,"AdDescription2":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"Conversions":0.0,"ConversionRate":0.0,"ConversionsQualified":0.0,"AverageCpc":0.08,"AveragePosition":0.0,"AverageCpm":26.67,"AllConversions":0,"AllConversionRate":0.0,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1700077221065} -{"stream":"budget_summary_report","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"CampaignName":"Airbyte test","CampaignId":531016227,"Date":"2023-11-07","MonthlyBudget":48.0,"DailySpend":3.12,"MonthToDateSpend":3.12},"emitted_at":1699953978176} -{"stream":"campaign_performance_report_daily","data":{"AccountId":180519267,"CampaignId":531016227,"TimePeriod":"2023-11-07","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Syndicated search partners","DeliveredMatchType":"Phrase","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Other","BidMatchType":"Broad","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","CampaignStatus":"Active","CampaignLabels":null,"Impressions":0,"Clicks":0,"Ctr":null,"Spend":0.0,"CostPerConversion":null,"QualityScore":5.0,"AdRelevance":3.0,"LandingPageExperience":1.0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"LowQualityClicks":0,"LowQualityClicksPercent":null,"LowQualityImpressions":1,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null,"BudgetName":null,"BudgetStatus":null,"BudgetAssociationStatus":"Current","HistoricalQualityScore":null,"HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null},"emitted_at":1699954051067} -{"stream":"campaign_performance_report_weekly","data":{"AccountId":180519267,"CampaignId":531016227,"TimePeriod":"2023-11-05","CurrencyCode":"USD","AdDistribution":"Search","DeviceType":"Computer","Network":"Syndicated search partners","DeliveredMatchType":"Exact","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","AccountName":"Airbyte","CampaignName":"Airbyte test","CampaignType":"Search & content","CampaignStatus":"Active","CampaignLabels":null,"Impressions":9,"Clicks":1,"Ctr":11.11,"Spend":0.03,"CostPerConversion":null,"QualityScore":5.0,"AdRelevance":3.0,"LandingPageExperience":1.0,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Assists":0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"CustomParameters":null,"ViewThroughConversions":0,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"AverageCpc":0.03,"AveragePosition":0.0,"AverageCpm":3.33,"Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":0,"LowQualitySophisticatedClicks":0,"LowQualityConversions":0,"LowQualityConversionRate":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null,"BudgetName":null,"BudgetStatus":null,"BudgetAssociationStatus":"Current","HistoricalQualityScore":5.0,"HistoricalExpectedCtr":2.0,"HistoricalAdRelevance":3.0,"HistoricalLandingPageExperience":1.0},"emitted_at":1699954081143} -{"stream":"campaign_impression_performance_report_daily","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-07","CampaignStatus":"Active","CampaignName":"Airbyte test","CampaignId":531016227,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":10,"Clicks":1,"Ctr":10.0,"AverageCpc":0.33,"Spend":0.33,"AveragePosition":0.0,"Conversions":0,"ConversionRate":null,"CostPerConversion":null,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":9,"LowQualityImpressionsPercent":47.37,"LowQualityConversions":0,"LowQualityConversionRate":null,"DeviceType":"Computer","ImpressionSharePercent":3.37,"ImpressionLostToBudgetPercent":85.19,"ImpressionLostToRankAggPercent":11.45,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"HistoricalQualityScore":null,"HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Syndicated search partners","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"TrackingTemplate":null,"CustomParameters":null,"AccountStatus":"Active","LowQualityGeneralClicks":0,"LowQualitySophisticatedClicks":0,"CampaignLabels":null,"ExactMatchImpressionSharePercent":null,"ClickSharePercent":null,"AbsoluteTopImpressionSharePercent":6.02,"FinalUrlSuffix":null,"CampaignType":"Search & content","TopImpressionShareLostToRankPercent":14.63,"TopImpressionShareLostToBudgetPercent":77.24,"AbsoluteTopImpressionShareLostToRankPercent":15.66,"AbsoluteTopImpressionShareLostToBudgetPercent":78.31,"TopImpressionSharePercent":8.13,"AbsoluteTopImpressionRatePercent":50.0,"TopImpressionRatePercent":100.0,"BaseCampaignId":531016227,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"RelativeCtr":null,"AverageCpm":33.0,"ConversionsQualified":0.0,"LowQualityConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699954182626} -{"stream":"campaign_impression_performance_report_weekly","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-05","CampaignStatus":"Active","CampaignName":"Airbyte test","CampaignId":531016227,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":10,"Clicks":1,"Ctr":10.0,"AverageCpc":0.33,"Spend":0.33,"AveragePosition":0.0,"Conversions":0,"ConversionRate":null,"CostPerConversion":null,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":9,"LowQualityImpressionsPercent":47.37,"LowQualityConversions":0,"LowQualityConversionRate":null,"DeviceType":"Computer","ImpressionSharePercent":10.87,"ImpressionLostToBudgetPercent":17.05,"ImpressionLostToRankAggPercent":72.08,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"HistoricalQualityScore":null,"HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Syndicated search partners","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"TrackingTemplate":null,"CustomParameters":null,"AccountStatus":"Active","LowQualityGeneralClicks":0,"LowQualitySophisticatedClicks":0,"CampaignLabels":null,"ExactMatchImpressionSharePercent":29.07,"ClickSharePercent":2.89,"AbsoluteTopImpressionSharePercent":8.88,"FinalUrlSuffix":null,"CampaignType":"Search & content","TopImpressionShareLostToRankPercent":76.51,"TopImpressionShareLostToBudgetPercent":9.99,"AbsoluteTopImpressionShareLostToRankPercent":81.99,"AbsoluteTopImpressionShareLostToBudgetPercent":9.13,"TopImpressionSharePercent":13.5,"AbsoluteTopImpressionRatePercent":50.0,"TopImpressionRatePercent":100.0,"BaseCampaignId":531016227,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"RelativeCtr":null,"AverageCpm":33.0,"ConversionsQualified":0.0,"LowQualityConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699954211223} -{"stream":"keyword_performance_report_daily","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"KeywordId":84801135055365,"Keyword":"connector","AdId":84800390693061,"TimePeriod":"2023-11-07","CurrencyCode":"USD","DeliveredMatchType":"Phrase","AdDistribution":"Search","DeviceType":"Computer","Language":"German","Network":"Syndicated search partners","DeviceOS":"Unknown","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","AccountName":"Airbyte","CampaignName":"Airbyte test","AdGroupName":"keywords","KeywordStatus":"Active","HistoricalExpectedCtr":null,"HistoricalAdRelevance":null,"HistoricalLandingPageExperience":null,"HistoricalQualityScore":null,"Impressions":1,"Clicks":0,"Ctr":0.0,"CurrentMaxCpc":2.27,"Spend":0.0,"CostPerConversion":null,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"QualityImpact":0.0,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"Mainline1Bid":null,"MainlineBid":1.0,"FirstPageBid":0.43,"FinalUrlSuffix":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1700237754157} -{"stream":"keyword_performance_report_weekly","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"KeywordId":84801135055365,"Keyword":"connector","AdId":84800390693061,"TimePeriod":"2023-11-05","CurrencyCode":"USD","DeliveredMatchType":"Exact","AdDistribution":"Search","DeviceType":"Computer","Language":"English","Network":"Microsoft sites and select traffic","DeviceOS":"Windows","TopVsOther":"Microsoft sites and select traffic - top","BidMatchType":"Broad","AccountName":"Airbyte","CampaignName":"Airbyte test","AdGroupName":"keywords","KeywordStatus":"Active","Impressions":2,"Clicks":0,"Ctr":0.0,"CurrentMaxCpc":2.27,"Spend":0.0,"CostPerConversion":null,"QualityScore":5.0,"ExpectedCtr":"2","AdRelevance":3.0,"LandingPageExperience":1.0,"QualityImpact":0.0,"Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"CustomParameters":null,"FinalAppUrl":null,"Mainline1Bid":null,"MainlineBid":1.0,"FirstPageBid":0.43,"FinalUrlSuffix":null,"ViewThroughConversions":0,"ViewThroughConversionsQualified":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1700237801690} -{"stream":"geographic_performance_report_daily","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"TimePeriod":"2023-11-07","Country":"Australia","CurrencyCode":"USD","DeliveredMatchType":"Broad","AdDistribution":"Search","DeviceType":"Computer","Language":"English","Network":"Syndicated search partners","DeviceOS":"Windows","TopVsOther":"Syndicated search partners - Top","BidMatchType":"Broad","MetroArea":null,"State":"New South Wales","City":null,"AdGroupName":"keywords","Ctr":0.0,"ProximityTargetLocation":null,"Radius":"0","Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"LocationType":"Physical location","MostSpecificLocation":"2000","AccountStatus":"Active","CampaignStatus":"Active","AdGroupStatus":"Active","County":null,"PostalCode":"2000","LocationId":"122395","BaseCampaignId":"531016227","AllCostPerConversion":null,"AllReturnOnAdSpend":null,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":"100.00","AllConversionsQualified":"0.00","ViewThroughConversionsQualified":null,"Neighborhood":null,"ViewThroughRevenue":"0.00","CampaignType":"Search & content","AssetGroupId":null,"AssetGroupName":null,"AssetGroupStatus":null,"Clicks":0,"Spend":0.0,"Impressions":1,"CostPerConversion":null,"AccountName":"Airbyte","AccountNumber":"F149MJ18","CampaignName":"Airbyte test","Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1699956863587} -{"stream":"geographic_performance_report_weekly","data":{"AccountId":180519267,"CampaignId":531016227,"AdGroupId":1356799861840328,"TimePeriod":"2023-11-05","Country":"Argentina","CurrencyCode":"USD","DeliveredMatchType":"Exact","AdDistribution":"Search","DeviceType":"Computer","Language":"Spanish","Network":"Microsoft sites and select traffic","DeviceOS":"Windows","TopVsOther":"Microsoft sites and select traffic - top","BidMatchType":"Broad","MetroArea":null,"State":"Buenos Aires Province","City":null,"AdGroupName":"keywords","Ctr":0.0,"ProximityTargetLocation":null,"Radius":"0","Assists":0,"ReturnOnAdSpend":null,"CostPerAssist":null,"LocationType":"Physical location","MostSpecificLocation":"Buenos Aires Province","AccountStatus":"Active","CampaignStatus":"Active","AdGroupStatus":"Active","County":null,"PostalCode":null,"LocationId":"141965","BaseCampaignId":"531016227","AllCostPerConversion":null,"AllReturnOnAdSpend":null,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":"100.00","AllConversionsQualified":"0.00","ViewThroughConversionsQualified":null,"Neighborhood":null,"ViewThroughRevenue":"0.00","CampaignType":"Search & content","AssetGroupId":null,"AssetGroupName":null,"AssetGroupStatus":null,"Clicks":0,"Spend":0.0,"Impressions":1,"CostPerConversion":null,"AccountName":"Airbyte","AccountNumber":"F149MJ18","CampaignName":"Airbyte test","Conversions":0.0,"ConversionRate":null,"ConversionsQualified":0.0,"AverageCpc":0.0,"AveragePosition":0.0,"AverageCpm":0.0,"AllConversions":0,"AllConversionRate":null,"AllRevenue":0.0,"AllRevenuePerConversion":null,"Revenue":0.0,"RevenuePerConversion":null,"RevenuePerAssist":null},"emitted_at":1699953673210} -{"stream":"age_gender_audience_report_daily","data":{"AccountId":180519267,"AgeGroup":"Unknown","Gender":"Unknown","TimePeriod":"2023-11-07","AllConversions":0,"AccountName":"Airbyte","AccountNumber":"F149MJ18","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"AdDistribution":"Search","Impressions":3,"Clicks":1,"Conversions":0.0,"Spend":0.79,"Revenue":0.0,"ExtendedCost":0.0,"Assists":0,"Language":"German","AccountStatus":"Active","CampaignStatus":"Active","AdGroupStatus":"Active","BaseCampaignId":"531016227","AllRevenue":0.0,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":33.33,"TopImpressionRatePercent":100.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0},"emitted_at":1699954406862} -{"stream":"age_gender_audience_report_weekly","data":{"AccountId":180519267,"AgeGroup":"18-24","Gender":"Unknown","TimePeriod":"2023-11-05","AllConversions":0,"AccountName":"Airbyte","AccountNumber":"F149MJ18","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"AdDistribution":"Search","Impressions":1,"Clicks":0,"Conversions":0.0,"Spend":0.0,"Revenue":0.0,"ExtendedCost":0.0,"Assists":0,"Language":"English","AccountStatus":"Active","CampaignStatus":"Active","AdGroupStatus":"Active","BaseCampaignId":"531016227","AllRevenue":0.0,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0},"emitted_at":1699954427029} -{"stream":"search_query_performance_report_daily","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-07","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"AdId":84800390693061,"AdType":"Responsive search ad","DestinationUrl":null,"BidMatchType":"Broad","DeliveredMatchType":"Phrase","CampaignStatus":"Active","AdStatus":"Active","Impressions":1,"Clicks":0,"Ctr":0.0,"AverageCpc":0.0,"Spend":0.0,"AveragePosition":0.0,"SearchQuery":"16 pin dlc connector","Keyword":"connector","AdGroupCriterionId":null,"Conversions":0,"ConversionRate":null,"CostPerConversion":null,"Language":"English","KeywordId":84801135055365,"Network":"Microsoft sites and select traffic","TopVsOther":"Microsoft sites and select traffic - top","DeviceType":"Computer","DeviceOS":"Windows","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":null,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"AccountStatus":"Active","AdGroupStatus":"Active","KeywordStatus":"Active","CampaignType":"Search & content","CustomerId":251186883,"CustomerName":"Daxtarity Inc.","AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllRevenuePerConversion":null,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":100.0,"AverageCpm":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0},"emitted_at":1699954517804} -{"stream":"search_query_performance_report_weekly","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-05","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"AdId":84800390693061,"AdType":"Responsive search ad","DestinationUrl":null,"BidMatchType":"Broad","DeliveredMatchType":"Exact","CampaignStatus":"Active","AdStatus":"Active","Impressions":3,"Clicks":0,"Ctr":0.0,"AverageCpc":0.0,"Spend":0.0,"AveragePosition":0.0,"SearchQuery":"airbyte","Keyword":"Airbyte","AdGroupCriterionId":null,"Conversions":0,"ConversionRate":null,"CostPerConversion":null,"Language":"English","KeywordId":84801135055370,"Network":"Syndicated search partners","TopVsOther":"Syndicated search partners - Top","DeviceType":"Computer","DeviceOS":"Unknown","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":null,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"AccountStatus":"Active","AdGroupStatus":"Active","KeywordStatus":"Active","CampaignType":"Search & content","CustomerId":251186883,"CustomerName":"Daxtarity Inc.","AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllRevenuePerConversion":null,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":100.0,"TopImpressionRatePercent":100.0,"AverageCpm":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0},"emitted_at":1699954546030} -{"stream":"user_location_performance_report_daily","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-07","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"Country":"Australia","State":"New South Wales","MetroArea":null,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":1,"Clicks":0,"Ctr":0.0,"AverageCpc":0.0,"Spend":0.0,"AveragePosition":0.0,"ProximityTargetLocation":null,"Radius":0,"Language":"English","City":null,"QueryIntentCountry":"Australia","QueryIntentState":null,"QueryIntentCity":null,"QueryIntentDMA":null,"BidMatchType":"Broad","DeliveredMatchType":"Broad","Network":"Syndicated search partners","TopVsOther":"Syndicated search partners - Top","DeviceType":"Computer","DeviceOS":"Windows","Assists":0,"Conversions":0,"ConversionRate":null,"Revenue":0.0,"ReturnOnAdSpend":null,"CostPerConversion":null,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"County":null,"PostalCode":"2000","QueryIntentCounty":null,"QueryIntentPostalCode":null,"LocationId":122395,"QueryIntentLocationId":9,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":0.0,"TopImpressionRatePercent":100.0,"AverageCpm":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"Neighborhood":null,"QueryIntentNeighborhood":null,"ViewThroughRevenue":0.0,"CampaignType":"Search & content","AssetGroupId":null,"AssetGroupName":null},"emitted_at":1699954599053} -{"stream":"user_location_performance_report_weekly","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-05","CampaignName":"Airbyte test","CampaignId":531016227,"AdGroupName":"keywords","AdGroupId":1356799861840328,"Country":"Argentina","State":null,"MetroArea":null,"CurrencyCode":"USD","AdDistribution":"Search","Impressions":1,"Clicks":0,"Ctr":0.0,"AverageCpc":0.0,"Spend":0.0,"AveragePosition":0.0,"ProximityTargetLocation":null,"Radius":0,"Language":"Spanish","City":null,"QueryIntentCountry":"Argentina","QueryIntentState":null,"QueryIntentCity":null,"QueryIntentDMA":null,"BidMatchType":"Broad","DeliveredMatchType":"Phrase","Network":"Syndicated search partners","TopVsOther":"Syndicated search partners - Top","DeviceType":"Computer","DeviceOS":"Unknown","Assists":0,"Conversions":0,"ConversionRate":null,"Revenue":0.0,"ReturnOnAdSpend":null,"CostPerConversion":null,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"County":null,"PostalCode":null,"QueryIntentCounty":null,"QueryIntentPostalCode":null,"LocationId":8,"QueryIntentLocationId":8,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":null,"AllCostPerConversion":null,"AllReturnOnAdSpend":null,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"Goal":null,"GoalType":null,"AbsoluteTopImpressionRatePercent":100.0,"TopImpressionRatePercent":100.0,"AverageCpm":0.0,"ConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"Neighborhood":null,"QueryIntentNeighborhood":null,"ViewThroughRevenue":0.0,"CampaignType":"Search & content","AssetGroupId":null,"AssetGroupName":null},"emitted_at":1699954842196} -{"stream":"account_impression_performance_report_daily","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-07","CurrencyCode":"USD","AdDistribution":"Search","Impressions":10,"Clicks":1,"Ctr":10.0,"AverageCpc":0.33,"Spend":0.33,"AveragePosition":0.0,"Conversions":0,"ConversionRate":0.0,"CostPerConversion":null,"LowQualityClicks":0,"LowQualityClicksPercent":0.0,"LowQualityImpressions":9,"LowQualityImpressionsPercent":47.37,"LowQualityConversions":0,"LowQualityConversionRate":null,"DeviceType":"Computer","ImpressionSharePercent":3.37,"ImpressionLostToBudgetPercent":85.19,"ImpressionLostToRankAggPercent":11.45,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Syndicated search partners","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"AccountStatus":"Active","LowQualityGeneralClicks":0,"LowQualitySophisticatedClicks":0,"ExactMatchImpressionSharePercent":null,"ClickSharePercent":null,"AbsoluteTopImpressionSharePercent":6.02,"TopImpressionShareLostToRankPercent":14.63,"TopImpressionShareLostToBudgetPercent":77.24,"AbsoluteTopImpressionShareLostToRankPercent":15.66,"AbsoluteTopImpressionShareLostToBudgetPercent":78.31,"TopImpressionSharePercent":8.13,"AbsoluteTopImpressionRatePercent":50.0,"TopImpressionRatePercent":100.0,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":0.0,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"AverageCpm":33.0,"ConversionsQualified":0.0,"LowQualityConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699955144374} -{"stream":"account_impression_performance_report_weekly","data":{"AccountName":"Airbyte","AccountNumber":"F149MJ18","AccountId":180519267,"TimePeriod":"2023-11-05","CurrencyCode":"USD","AdDistribution":"Search","Impressions":457,"Clicks":5,"Ctr":1.09,"AverageCpc":0.38,"Spend":1.88,"AveragePosition":0.0,"Conversions":0,"ConversionRate":0.0,"CostPerConversion":null,"LowQualityClicks":6,"LowQualityClicksPercent":54.55,"LowQualityImpressions":183,"LowQualityImpressionsPercent":28.59,"LowQualityConversions":0,"LowQualityConversionRate":0.0,"DeviceType":"Computer","ImpressionSharePercent":10.87,"ImpressionLostToBudgetPercent":17.05,"ImpressionLostToRankAggPercent":72.08,"PhoneImpressions":0,"PhoneCalls":0,"Ptr":null,"Network":"Syndicated search partners","Assists":0,"Revenue":0.0,"ReturnOnAdSpend":0.0,"CostPerAssist":null,"RevenuePerConversion":null,"RevenuePerAssist":null,"AccountStatus":"Active","LowQualityGeneralClicks":4,"LowQualitySophisticatedClicks":2,"ExactMatchImpressionSharePercent":29.07,"ClickSharePercent":2.89,"AbsoluteTopImpressionSharePercent":8.88,"TopImpressionShareLostToRankPercent":76.51,"TopImpressionShareLostToBudgetPercent":9.99,"AbsoluteTopImpressionShareLostToRankPercent":81.99,"AbsoluteTopImpressionShareLostToBudgetPercent":9.13,"TopImpressionSharePercent":13.5,"AbsoluteTopImpressionRatePercent":39.61,"TopImpressionRatePercent":81.62,"AllConversions":0,"AllRevenue":0.0,"AllConversionRate":0.0,"AllCostPerConversion":null,"AllReturnOnAdSpend":0.0,"AllRevenuePerConversion":null,"ViewThroughConversions":0,"AudienceImpressionSharePercent":null,"AudienceImpressionLostToRankPercent":null,"AudienceImpressionLostToBudgetPercent":null,"AverageCpm":4.11,"ConversionsQualified":0.0,"LowQualityConversionsQualified":0.0,"AllConversionsQualified":0.0,"ViewThroughConversionsQualified":null,"ViewThroughRevenue":0.0,"VideoViews":0,"ViewThroughRate":0.0,"AverageCPV":null,"VideoViewsAt25Percent":0,"VideoViewsAt50Percent":0,"VideoViewsAt75Percent":0,"CompletedVideoViews":0,"VideoCompletionRate":null,"TotalWatchTimeInMS":0,"AverageWatchTimePerVideoView":null,"AverageWatchTimePerImpression":0.0,"Sales":0,"CostPerSale":null,"RevenuePerSale":null,"Installs":0,"CostPerInstall":null,"RevenuePerInstall":null},"emitted_at":1699955205307} -{"stream":"labels","data":{"Status":"Active","Id":10239203506495,"Client Id":null,"Modified Time":"2023-04-27T17:16:49.170+00:00","Description":null,"Label":"what a new label","Color":"#B0B20F","Account Id":180278106},"emitted_at":1698687185070} -{"stream":"campaign_labels","data":{"Status":"Active","Id":10239203506494,"Parent Id":413444833,"Campaign":null,"Client Id":null,"Modified Time":"2023-04-27T17:57:38.110+00:00","Account Id":180278106},"emitted_at":1698687214960} -{"stream":"keyword_labels","data":{"Status":"Active","Id":10239203506495,"Parent Id":84868925026027,"Client Id":null,"Modified Time":"2023-04-27T17:22:52.733+00:00","Account Id":180278106},"emitted_at":1698687224964} -{"stream":"ad_group_labels","data":{"Status":"Active","Id":10239203506494,"Parent Id":1350201453189474,"Campaign":null,"Ad Group":null,"Client Id":null,"Modified Time":"2023-04-27T18:00:14.970+00:00","Account Id":180278106},"emitted_at":1698751388918} -{"stream": "keywords", "data": {"Status": "Active", "Id": 84525593559627, "Parent Id": "1352400325389092", "Campaign": "Test 2", "Ad Group": "Airbyte", "Client Id": null, "Modified Time": "2021-08-13T02:33:08.560+00:00", "Tracking Template": null, "Final Url Suffix": null, "Custom Parameter": null, "Final Url": null, "Mobile Final Url": null, "Bid Strategy Type": "InheritFromParent", "Inherited Bid Strategy Type": "MaxClicks", "Destination Url": null, "Editorial Status": "Active", "Editorial Location": null, "Editorial Term": null, "Editorial Reason Code": null, "Editorial Appeal Status": null, "Keyword": "big data integration tools", "Match Type": "Broad", "Bid": "0.11", "Param1": null, "Param2": null, "Param3": null, "Publisher Countries": null, "Quality Score": null, "Keyword Relevance": null, "Landing Page Relevance": null, "Landing Page User Experience": null, "Account Id": 180278106}, "emitted_at": 1698768109942} -{"stream": "keywords", "data": {"Status": "Active", "Id": 84525593559628, "Parent Id": "1352400325389092", "Campaign": "Test 2", "Ad Group": "Airbyte", "Client Id": null, "Modified Time": "2021-08-13T02:33:14.270+00:00", "Tracking Template": null, "Final Url Suffix": null, "Custom Parameter": null, "Final Url": null, "Mobile Final Url": null, "Bid Strategy Type": "InheritFromParent", "Inherited Bid Strategy Type": "MaxClicks", "Destination Url": null, "Editorial Status": "Active", "Editorial Location": null, "Editorial Term": null, "Editorial Reason Code": null, "Editorial Appeal Status": null, "Keyword": "best data integration tool", "Match Type": "Broad", "Bid": "0.11", "Param1": null, "Param2": null, "Param3": null, "Publisher Countries": null, "Quality Score": null, "Keyword Relevance": null, "Landing Page Relevance": null, "Landing Page User Experience": null, "Account Id": 180278106}, "emitted_at": 1698768109942} -{"stream": "keywords", "data": {"Status": "Active", "Id": 84525593559629, "Parent Id": "1352400325389092", "Campaign": "Test 2", "Ad Group": "Airbyte", "Client Id": null, "Modified Time": "2021-08-13T02:33:19.053+00:00", "Tracking Template": null, "Final Url Suffix": null, "Custom Parameter": null, "Final Url": null, "Mobile Final Url": null, "Bid Strategy Type": "InheritFromParent", "Inherited Bid Strategy Type": "MaxClicks", "Destination Url": null, "Editorial Status": "Active", "Editorial Location": null, "Editorial Term": null, "Editorial Reason Code": null, "Editorial Appeal Status": null, "Keyword": "data integration tools", "Match Type": "Broad", "Bid": "0.11", "Param1": null, "Param2": null, "Param3": null, "Publisher Countries": null, "Quality Score": null, "Keyword Relevance": null, "Landing Page Relevance": null, "Landing Page User Experience": null, "Account Id": 180278106}, "emitted_at": 1698768109943} +{"stream": "account_performance_report_daily", "data": {"AccountId": 180519267, "TimePeriod": "2023-12-07", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Smartphone", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "AccountName": "Airbyte", "AccountNumber": "F149MJ18", "PhoneImpressions": 0, "PhoneCalls": 0, "Clicks": 1, "Ctr": 0.42, "Spend": 0.04, "Impressions": 236, "CostPerConversion": null, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "AverageCpc": 0.04, "AveragePosition": 0.0, "AverageCpm": 0.17, "Conversions": 0.0, "ConversionsQualified": 0.0, "ConversionRate": 0.0, "LowQualityClicks": 0, "LowQualityClicksPercent": 0.0, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979051100} +{"stream": "account_performance_report_weekly", "data": {"AccountId": 180519267, "TimePeriod": "2023-12-03", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Tablet", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "AccountName": "Airbyte", "AccountNumber": "F149MJ18", "PhoneImpressions": 0, "PhoneCalls": 0, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "Impressions": 8, "CostPerConversion": null, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionsQualified": 0.0, "ConversionRate": null, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979146771} +{"stream": "ad_group_performance_report_daily", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "TimePeriod": "2023-12-07", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Smartphone", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "Language": "English", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "AdGroupName": "keywords", "AdGroupType": "Standard", "Impressions": 239, "Clicks": 1, "Ctr": 0.42, "Spend": 0.04, "CostPerConversion": null, "QualityScore": 6.0, "ExpectedCtr": "2", "AdRelevance": 3.0, "LandingPageExperience": 1.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "CostPerAssist": null, "CustomParameters": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllConversions": 0, "AllConversionRate": 0.0, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.04, "AveragePosition": 0.0, "AverageCpm": 0.17, "Conversions": 0.0, "ConversionRate": 0.0, "ConversionsQualified": 0.0, "HistoricalQualityScore": null, "HistoricalExpectedCtr": null, "HistoricalAdRelevance": null, "HistoricalLandingPageExperience": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979416341} +{"stream": "ad_group_performance_report_weekly", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "TimePeriod": "2023-12-03", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Tablet", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "Language": "English", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "AdGroupName": "keywords", "AdGroupType": "Standard", "Impressions": 7, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 6.0, "ExpectedCtr": "2", "AdRelevance": 3.0, "LandingPageExperience": 1.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "CostPerAssist": null, "CustomParameters": null, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "HistoricalQualityScore": 6.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 1.0, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979256059} +{"stream": "ad_group_impression_performance_report_daily", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-07", "Status": "Active", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 295, "Clicks": 2, "Ctr": 0.68, "AverageCpc": 0.03, "Spend": 0.06, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": 0.0, "CostPerConversion": null, "DeviceType": "Smartphone", "Language": "English", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "QualityScore": 6, "ExpectedCtr": 2.0, "AdRelevance": 3, "LandingPageExperience": 1, "HistoricalQualityScore": null, "HistoricalExpectedCtr": null, "HistoricalAdRelevance": null, "HistoricalLandingPageExperience": null, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "TrackingTemplate": null, "CustomParameters": null, "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupLabels": null, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "FinalUrlSuffix": null, "CampaignType": "Search & content", "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": null, "TopImpressionRatePercent": null, "BaseCampaignId": 531016227, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": 0.0, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "RelativeCtr": null, "AdGroupType": "Standard", "AverageCpm": 0.2, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701979628655} +{"stream": "ad_group_impression_performance_report_weekly", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-03", "Status": "Active", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 14, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": null, "CostPerConversion": null, "DeviceType": "Tablet", "Language": "English", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "QualityScore": 6, "ExpectedCtr": 2.0, "AdRelevance": 3, "LandingPageExperience": 1, "HistoricalQualityScore": 6, "HistoricalExpectedCtr": 2, "HistoricalAdRelevance": 3, "HistoricalLandingPageExperience": 1, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "TrackingTemplate": null, "CustomParameters": null, "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupLabels": null, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "FinalUrlSuffix": null, "CampaignType": "Search & content", "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": null, "TopImpressionRatePercent": null, "BaseCampaignId": 531016227, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "RelativeCtr": null, "AdGroupType": "Standard", "AverageCpm": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701979716237} +{"stream": "ad_performance_report_daily", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "AdId": 84800390693061, "TimePeriod": "2023-12-07", "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Smartphone", "Language": "English", "Network": "Audience", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "DeliveredMatchType": "Exact", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "AdGroupName": "keywords", "Impressions": 239, "Clicks": 1, "Ctr": 0.42, "Spend": 0.04, "CostPerConversion": null, "DestinationUrl": null, "Assists": 0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "AdDescription": null, "AdDescription2": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "Conversions": 0.0, "ConversionRate": 0.0, "ConversionsQualified": 0.0, "AverageCpc": 0.04, "AveragePosition": 0.0, "AverageCpm": 0.17, "AllConversions": 0, "AllConversionRate": 0.0, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979816123} +{"stream": "ad_performance_report_weekly", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "AdId": 84800390693061, "TimePeriod": "2023-12-03", "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Tablet", "Language": "English", "Network": "Audience", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "DeliveredMatchType": "Exact", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "AdGroupName": "keywords", "Impressions": 8, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "DestinationUrl": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "AdDescription": null, "AdDescription2": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701979935551} +{"stream": "budget_summary_report", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "CampaignId": 531016227, "CampaignName": "Airbyte test", "Date": "2023-12-07", "MonthlyBudget": 60.8, "DailySpend": 0.52, "MonthToDateSpend": 12.75}, "emitted_at": 1701980000241} +{"stream": "campaign_performance_report_daily", "data": {"AccountId": 180519267, "CampaignId": 531016227, "TimePeriod": "2023-12-07", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Smartphone", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "CampaignStatus": "Active", "CampaignLabels": null, "Impressions": 239, "Clicks": 1, "Ctr": 0.42, "Spend": 0.04, "CostPerConversion": null, "QualityScore": 6.0, "AdRelevance": 3.0, "LandingPageExperience": 1.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "CustomParameters": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllConversions": 0, "ConversionsQualified": 0.0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.04, "AveragePosition": 0.0, "AverageCpm": 0.17, "Conversions": 0.0, "ConversionRate": null, "LowQualityClicks": 0, "LowQualityClicksPercent": 0.0, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "HistoricalQualityScore": null, "HistoricalExpectedCtr": null, "HistoricalAdRelevance": null, "HistoricalLandingPageExperience": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "BudgetName": null, "BudgetStatus": null, "BudgetAssociationStatus": "Current"}, "emitted_at": 1701980084453} +{"stream": "campaign_performance_report_weekly", "data": {"AccountId": 180519267, "CampaignId": 531016227, "TimePeriod": "2023-12-03", "CurrencyCode": "USD", "AdDistribution": "Audience", "DeviceType": "Tablet", "Network": "Audience", "DeliveredMatchType": "Exact", "DeviceOS": "Android", "TopVsOther": "Audience network", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "CampaignType": "Search & content", "CampaignStatus": "Active", "CampaignLabels": null, "Impressions": 7, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 6.0, "AdRelevance": 3.0, "LandingPageExperience": 1.0, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "ViewThroughConversions": 0, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllConversions": 0, "ConversionsQualified": 0.0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "Conversions": 0.0, "ConversionRate": null, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 0, "LowQualitySophisticatedClicks": 0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "HistoricalQualityScore": 6.0, "HistoricalExpectedCtr": 2.0, "HistoricalAdRelevance": 3.0, "HistoricalLandingPageExperience": 1.0, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null, "BudgetName": null, "BudgetStatus": null, "BudgetAssociationStatus": "Current"}, "emitted_at": 1701980157383} +{"stream": "campaign_impression_performance_report_daily", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-07", "CampaignStatus": "Active", "CampaignName": "Airbyte test", "CampaignId": 531016227, "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 297, "Clicks": 2, "Ctr": 0.67, "AverageCpc": 0.03, "Spend": 0.06, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": null, "CostPerConversion": null, "LowQualityClicks": 0, "LowQualityClicksPercent": 0.0, "LowQualityImpressions": 2, "LowQualityImpressionsPercent": 0.67, "LowQualityConversions": 0, "LowQualityConversionRate": null, "DeviceType": "Smartphone", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "QualityScore": 6.0, "ExpectedCtr": "2", "AdRelevance": 3.0, "LandingPageExperience": 1.0, "HistoricalQualityScore": null, "HistoricalExpectedCtr": null, "HistoricalAdRelevance": null, "HistoricalLandingPageExperience": null, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "TrackingTemplate": null, "CustomParameters": null, "AccountStatus": "Active", "LowQualityGeneralClicks": 0, "LowQualitySophisticatedClicks": 0, "CampaignLabels": null, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "FinalUrlSuffix": null, "CampaignType": "Search & content", "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "BaseCampaignId": 531016227, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "RelativeCtr": null, "AverageCpm": 0.2, "ConversionsQualified": 0.0, "LowQualityConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701980256348} +{"stream": "campaign_impression_performance_report_weekly", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-03", "CampaignStatus": "Active", "CampaignName": "Airbyte test", "CampaignId": 531016227, "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 14, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": null, "CostPerConversion": null, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 0, "LowQualityImpressionsPercent": 0.0, "LowQualityConversions": 0, "LowQualityConversionRate": null, "DeviceType": "Tablet", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "QualityScore": 6.0, "ExpectedCtr": "2", "AdRelevance": 3.0, "LandingPageExperience": 1.0, "HistoricalQualityScore": 6, "HistoricalExpectedCtr": 2, "HistoricalAdRelevance": 3, "HistoricalLandingPageExperience": 1, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "TrackingTemplate": null, "CustomParameters": null, "AccountStatus": "Active", "LowQualityGeneralClicks": 0, "LowQualitySophisticatedClicks": 0, "CampaignLabels": null, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "FinalUrlSuffix": null, "CampaignType": "Search & content", "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "BaseCampaignId": 531016227, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "RelativeCtr": null, "AverageCpm": 0.0, "ConversionsQualified": 0.0, "LowQualityConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701980347415} +{"stream": "keyword_performance_report_daily", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "KeywordId": 84801135055370, "Keyword": "Airbyte", "AdId": 84800390693061, "TimePeriod": "2023-12-07", "CurrencyCode": "USD", "DeliveredMatchType": "Phrase", "AdDistribution": "Search", "DeviceType": "Computer", "Language": "Portuguese", "Network": "Syndicated search partners", "DeviceOS": "Unknown", "TopVsOther": "Syndicated search partners - Top", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "AdGroupName": "keywords", "KeywordStatus": "Active", "HistoricalExpectedCtr": null, "HistoricalAdRelevance": null, "HistoricalLandingPageExperience": null, "HistoricalQualityScore": null, "Impressions": 3, "Clicks": 0, "Ctr": 0.0, "CurrentMaxCpc": 2.27, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 10.0, "ExpectedCtr": "3", "AdRelevance": 3.0, "LandingPageExperience": 3.0, "QualityImpact": 0.0, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "Mainline1Bid": 4.77, "MainlineBid": 0.22, "FirstPageBid": 0.13, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701980440595} +{"stream": "keyword_performance_report_weekly", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "KeywordId": 84801135055370, "Keyword": "Airbyte", "AdId": 84800390693061, "TimePeriod": "2023-12-03", "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Computer", "Language": "Portuguese", "Network": "Microsoft sites and select traffic", "DeviceOS": "Windows", "TopVsOther": "Microsoft sites and select traffic - other", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "AdGroupName": "keywords", "KeywordStatus": "Active", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "CurrentMaxCpc": 2.27, "Spend": 0.0, "CostPerConversion": null, "QualityScore": 10.0, "ExpectedCtr": "3", "AdRelevance": 3.0, "LandingPageExperience": 3.0, "QualityImpact": 0.0, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "CustomParameters": null, "FinalAppUrl": null, "Mainline1Bid": 4.77, "MainlineBid": 0.22, "FirstPageBid": 0.13, "FinalUrlSuffix": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701980530452} +{"stream": "geographic_performance_report_daily", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "TimePeriod": "2023-12-07", "AccountNumber": "F149MJ18", "Country": "South Africa", "State": "Western Cape", "MetroArea": "City of Cape Town", "City": "Cape Town", "ProximityTargetLocation": null, "Radius": "0", "LocationType": "Physical location", "MostSpecificLocation": "Cape Town", "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupStatus": "Active", "County": null, "PostalCode": null, "LocationId": "137943", "BaseCampaignId": "531016227", "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": "0.00", "AllConversionsQualified": "0.00", "Neighborhood": null, "ViewThroughRevenue": "0.00", "CampaignType": "Search & content", "AssetGroupId": null, "AssetGroupName": null, "AssetGroupStatus": null, "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Computer", "Language": "English", "Network": "Microsoft sites and select traffic", "DeviceOS": "Windows", "TopVsOther": "Microsoft sites and select traffic - other", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "AdGroupName": "keywords", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701980771941} +{"stream": "geographic_performance_report_weekly", "data": {"AccountId": 180519267, "CampaignId": 531016227, "AdGroupId": 1356799861840328, "TimePeriod": "2023-12-03", "AccountNumber": "F149MJ18", "Country": "South Africa", "State": "Western Cape", "MetroArea": "City of Cape Town", "City": "Cape Town", "ProximityTargetLocation": null, "Radius": "0", "LocationType": "Physical location", "MostSpecificLocation": "Cape Town", "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupStatus": "Active", "County": null, "PostalCode": null, "LocationId": "137943", "BaseCampaignId": "531016227", "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": "0.00", "AllConversionsQualified": "0.00", "Neighborhood": null, "ViewThroughRevenue": "0.00", "CampaignType": "Search & content", "AssetGroupId": null, "AssetGroupName": null, "AssetGroupStatus": null, "CurrencyCode": "USD", "DeliveredMatchType": "Broad", "AdDistribution": "Search", "DeviceType": "Computer", "Language": "English", "Network": "Microsoft sites and select traffic", "DeviceOS": "Windows", "TopVsOther": "Microsoft sites and select traffic - other", "BidMatchType": "Broad", "AccountName": "Airbyte", "CampaignName": "Airbyte test", "AdGroupName": "keywords", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "Spend": 0.0, "CostPerConversion": null, "Assists": 0, "ReturnOnAdSpend": null, "CostPerAssist": null, "ViewThroughConversions": 0, "ViewThroughConversionsQualified": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "Conversions": 0.0, "ConversionRate": null, "ConversionsQualified": 0.0, "AverageCpc": 0.0, "AveragePosition": 0.0, "AverageCpm": 0.0, "AllConversions": 0, "AllConversionRate": null, "AllRevenue": 0.0, "AllRevenuePerConversion": null, "Revenue": 0.0, "RevenuePerConversion": null, "RevenuePerAssist": null}, "emitted_at": 1701981094311} +{"stream": "age_gender_audience_report_daily", "data": {"AccountId": 180519267, "AgeGroup": "65+", "Gender": "Male", "TimePeriod": "2023-12-07", "AllConversions": 0, "AccountName": "Airbyte", "AccountNumber": "F149MJ18", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "AdDistribution": "Audience", "Impressions": 11, "Clicks": 0, "Conversions": 0.0, "Spend": 0.0, "Revenue": 0.0, "ExtendedCost": 0.0, "Assists": 0, "Language": "English", "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupStatus": "Active", "BaseCampaignId": "531016227", "AllRevenue": 0.0, "ViewThroughConversions": 0, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0}, "emitted_at": 1701981164857} +{"stream": "age_gender_audience_report_weekly", "data": {"AccountId": 180519267, "AgeGroup": "65+", "Gender": "Female", "TimePeriod": "2023-12-03", "AllConversions": 0, "AccountName": "Airbyte", "AccountNumber": "F149MJ18", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "AdDistribution": "Audience", "Impressions": 6, "Clicks": 0, "Conversions": 0.0, "Spend": 0.0, "Revenue": 0.0, "ExtendedCost": 0.0, "Assists": 0, "Language": "English", "AccountStatus": "Active", "CampaignStatus": "Active", "AdGroupStatus": "Active", "BaseCampaignId": "531016227", "AllRevenue": 0.0, "ViewThroughConversions": 0, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0}, "emitted_at": 1701981230932} +{"stream": "search_query_performance_report_daily", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-07", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "AdId": 84800390693061, "AdType": "Responsive search ad", "DestinationUrl": null, "BidMatchType": "Broad", "DeliveredMatchType": "Broad", "CampaignStatus": "Active", "AdStatus": "Active", "Impressions": 1, "Clicks": 1, "Ctr": 100.0, "AverageCpc": 0.05, "Spend": 0.05, "AveragePosition": 0.0, "SearchQuery": "datasource", "Keyword": "ELT infrastructure", "AdGroupCriterionId": null, "Conversions": 0, "ConversionRate": 0.0, "CostPerConversion": null, "Language": "English", "KeywordId": 84801135055369, "Network": "Microsoft sites and select traffic", "TopVsOther": "Microsoft sites and select traffic - other", "DeviceType": "Computer", "DeviceOS": "Windows", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "AccountStatus": "Active", "AdGroupStatus": "Active", "KeywordStatus": "Active", "CampaignType": "Search & content", "CustomerId": 251186883, "CustomerName": "Daxtarity Inc.", "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": 0.0, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllRevenuePerConversion": null, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "AverageCpm": 50.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0}, "emitted_at": 1701981312538} +{"stream": "search_query_performance_report_weekly", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-03", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "AdId": 84800390693061, "AdType": "Responsive search ad", "DestinationUrl": null, "BidMatchType": "Broad", "DeliveredMatchType": "Broad", "CampaignStatus": "Active", "AdStatus": "Active", "Impressions": 3, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "SearchQuery": "informatica data integration platform", "Keyword": "ELT infrastructure", "AdGroupCriterionId": null, "Conversions": 0, "ConversionRate": null, "CostPerConversion": null, "Language": "English", "KeywordId": 84801135055369, "Network": "Syndicated search partners", "TopVsOther": "Syndicated search partners - Other", "DeviceType": "Smartphone", "DeviceOS": "Android", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "AccountStatus": "Active", "AdGroupStatus": "Active", "KeywordStatus": "Active", "CampaignType": "Search & content", "CustomerId": 251186883, "CustomerName": "Daxtarity Inc.", "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "AverageCpm": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0}, "emitted_at": 1701981381431} +{"stream": "user_location_performance_report_daily", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-07", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "Country": "South Africa", "State": "Western Cape", "MetroArea": "City of Cape Town", "CurrencyCode": "USD", "AdDistribution": "Search", "Impressions": 1, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "ProximityTargetLocation": null, "Radius": 0, "Language": "English", "City": "Cape Town", "QueryIntentCountry": "United States", "QueryIntentState": null, "QueryIntentCity": null, "QueryIntentDMA": null, "BidMatchType": "Broad", "DeliveredMatchType": "Broad", "Network": "Microsoft sites and select traffic", "TopVsOther": "Microsoft sites and select traffic - other", "DeviceType": "Computer", "DeviceOS": "Windows", "Assists": 0, "Conversions": 0, "ConversionRate": null, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerConversion": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "County": null, "PostalCode": null, "QueryIntentCounty": null, "QueryIntentPostalCode": null, "LocationId": 137943, "QueryIntentLocationId": 190, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "AverageCpm": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "Neighborhood": null, "QueryIntentNeighborhood": null, "ViewThroughRevenue": 0.0, "CampaignType": "Search & content", "AssetGroupId": null, "AssetGroupName": null}, "emitted_at": 1701981614442} +{"stream": "user_location_performance_report_weekly", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-03", "CampaignName": "Airbyte test", "CampaignId": 531016227, "AdGroupName": "keywords", "AdGroupId": 1356799861840328, "Country": "South Africa", "State": "Western Cape", "MetroArea": "City of Cape Town", "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 7, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "ProximityTargetLocation": null, "Radius": 0, "Language": "English", "City": "Cape Town", "QueryIntentCountry": "South Africa", "QueryIntentState": null, "QueryIntentCity": null, "QueryIntentDMA": null, "BidMatchType": "Broad", "DeliveredMatchType": "Exact", "Network": "Audience", "TopVsOther": "Audience network", "DeviceType": "Computer", "DeviceOS": "Unknown", "Assists": 0, "Conversions": 0, "ConversionRate": null, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerConversion": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "County": null, "PostalCode": null, "QueryIntentCounty": null, "QueryIntentPostalCode": null, "LocationId": 137943, "QueryIntentLocationId": 168, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "Goal": null, "GoalType": null, "AbsoluteTopImpressionRatePercent": 0.0, "TopImpressionRatePercent": 0.0, "AverageCpm": 0.0, "ConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "Neighborhood": null, "QueryIntentNeighborhood": null, "ViewThroughRevenue": 0.0, "CampaignType": "Search & content", "AssetGroupId": null, "AssetGroupName": null}, "emitted_at": 1701981938898} +{"stream": "account_impression_performance_report_daily", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-07", "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 299, "Clicks": 2, "Ctr": 0.67, "AverageCpc": 0.03, "Spend": 0.06, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": 0.0, "CostPerConversion": null, "LowQualityClicks": 0, "LowQualityClicksPercent": 0.0, "LowQualityImpressions": 2, "LowQualityImpressionsPercent": 0.66, "LowQualityConversions": 0, "LowQualityConversionRate": null, "DeviceType": "Smartphone", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": 0.0, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "AccountStatus": "Active", "LowQualityGeneralClicks": 0, "LowQualitySophisticatedClicks": 0, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": null, "TopImpressionRatePercent": null, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": 0.0, "AllCostPerConversion": null, "AllReturnOnAdSpend": 0.0, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "AverageCpm": 0.2, "ConversionsQualified": 0.0, "LowQualityConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701982014926} +{"stream": "account_impression_performance_report_weekly", "data": {"AccountName": "Airbyte", "AccountNumber": "F149MJ18", "AccountId": 180519267, "TimePeriod": "2023-12-03", "CurrencyCode": "USD", "AdDistribution": "Audience", "Impressions": 20, "Clicks": 0, "Ctr": 0.0, "AverageCpc": 0.0, "Spend": 0.0, "AveragePosition": 0.0, "Conversions": 0, "ConversionRate": null, "CostPerConversion": null, "LowQualityClicks": 0, "LowQualityClicksPercent": null, "LowQualityImpressions": 2, "LowQualityImpressionsPercent": 9.09, "LowQualityConversions": 0, "LowQualityConversionRate": null, "DeviceType": "Tablet", "ImpressionSharePercent": null, "ImpressionLostToBudgetPercent": null, "ImpressionLostToRankAggPercent": null, "PhoneImpressions": 0, "PhoneCalls": 0, "Ptr": null, "Network": "Audience", "Assists": 0, "Revenue": 0.0, "ReturnOnAdSpend": null, "CostPerAssist": null, "RevenuePerConversion": null, "RevenuePerAssist": null, "AccountStatus": "Active", "LowQualityGeneralClicks": 0, "LowQualitySophisticatedClicks": 0, "ExactMatchImpressionSharePercent": null, "ClickSharePercent": null, "AbsoluteTopImpressionSharePercent": null, "TopImpressionShareLostToRankPercent": null, "TopImpressionShareLostToBudgetPercent": null, "AbsoluteTopImpressionShareLostToRankPercent": null, "AbsoluteTopImpressionShareLostToBudgetPercent": null, "TopImpressionSharePercent": null, "AbsoluteTopImpressionRatePercent": null, "TopImpressionRatePercent": null, "AllConversions": 0, "AllRevenue": 0.0, "AllConversionRate": null, "AllCostPerConversion": null, "AllReturnOnAdSpend": null, "AllRevenuePerConversion": null, "ViewThroughConversions": 0, "AudienceImpressionSharePercent": null, "AudienceImpressionLostToRankPercent": null, "AudienceImpressionLostToBudgetPercent": null, "AverageCpm": 0.0, "ConversionsQualified": 0.0, "LowQualityConversionsQualified": 0.0, "AllConversionsQualified": 0.0, "ViewThroughConversionsQualified": null, "ViewThroughRevenue": 0.0, "VideoViews": 0, "ViewThroughRate": 0.0, "AverageCPV": null, "VideoViewsAt25Percent": 0, "VideoViewsAt50Percent": 0, "VideoViewsAt75Percent": 0, "CompletedVideoViews": 0, "VideoCompletionRate": null, "TotalWatchTimeInMS": 0, "AverageWatchTimePerVideoView": null, "AverageWatchTimePerImpression": 0.0, "Sales": 0, "CostPerSale": null, "RevenuePerSale": null, "Installs": 0, "CostPerInstall": null, "RevenuePerInstall": null}, "emitted_at": 1701982180735} diff --git a/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records_no_start_date.jsonl b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records_no_start_date.jsonl new file mode 100644 index 0000000000000..d9be9afa0293f --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/integration_tests/expected_records_no_start_date.jsonl @@ -0,0 +1,5 @@ +{"stream": "keyword_labels", "data": {"Status": "Active", "Id": 10239203506495, "Parent Id": 84868925026027, "Client Id": null, "Modified Time": "2023-04-27T17:22:52.733+00:00", "Account Id": 180278106}, "emitted_at": 1701982357451} +{"stream": "keywords", "data": {"Status": "Active", "Id": 84801135055370, "Parent Id": "1356799861840328", "Campaign": "Airbyte test", "Ad Group": "keywords", "Client Id": null, "Modified Time": "2023-11-07T12:21:17.120+00:00", "Tracking Template": null, "Final Url Suffix": null, "Custom Parameter": null, "Final Url": null, "Mobile Final Url": null, "Bid Strategy Type": "InheritFromParent", "Inherited Bid Strategy Type": "EnhancedCpc", "Destination Url": null, "Editorial Status": "Active", "Editorial Location": null, "Editorial Term": null, "Editorial Reason Code": null, "Editorial Appeal Status": null, "Keyword": "Airbyte", "Match Type": "Broad", "Bid": null, "Param1": null, "Param2": null, "Param3": null, "Publisher Countries": null, "Quality Score": null, "Keyword Relevance": null, "Landing Page Relevance": null, "Landing Page User Experience": null, "Account Id": 180519267}, "emitted_at": 1701982417302} +{"stream": "ad_group_labels", "data": {"Status": "Active", "Id": 10239203506495, "Parent Id": 1350201453189474, "Campaign": null, "Ad Group": null, "Client Id": null, "Modified Time": "2023-04-27T18:00:14.970+00:00", "Account Id": 180278106}, "emitted_at": 1701982478843} +{"stream": "labels", "data": {"Status": "Active", "Id": 10239203506496, "Client Id": null, "Modified Time": "2023-04-27T17:16:53.430+00:00", "Description": null, "Label": "campaign label 2", "Color": "#D8558B", "Account Id": 180278106}, "emitted_at": 1701982532098} +{"stream": "campaign_labels", "data": {"Status": "Active", "Id": 10239203506495, "Parent Id": 413732450, "Campaign": null, "Client Id": null, "Modified Time": "2023-04-27T17:57:21.497+00:00", "Account Id": 180278106}, "emitted_at": 1701982600348} diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/app_install_ad_labels_base.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/app_install_ad_labels_base.csv new file mode 100644 index 0000000000000..48e9371037191 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/app_install_ad_labels_base.csv @@ -0,0 +1,3 @@ +Type,Status,Id,Parent Id,Campaign,Ad Group,Client Id,Modified Time,Name,Description,Label,Color +Format Version,,,,,,,,6.0,,, +App Install Ad Label,,-22,-11112,,,ClientIdGoesHere,,,,, \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance.csv new file mode 100644 index 0000000000000..614529a0e45c6 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance.csv @@ -0,0 +1,2 @@ +AccountName,AccountNumber,AccountId,TimePeriod,CurrencyCode,AdDistribution,Impressions,Clicks,Ctr,AverageCpc,Spend,AveragePosition,Conversions,ConversionRate,CostPerConversion,LowQualityClicks,LowQualityClicksPercent,LowQualityImpressions,LowQualityImpressionsPercent,LowQualityConversions,LowQualityConversionRate,DeviceType,PhoneImpressions,PhoneCalls,Ptr,Network,Assists,Revenue,ReturnOnAdSpend,CostPerAssist,RevenuePerConversion,RevenuePerAssist,AccountStatus,LowQualityGeneralClicks,LowQualitySophisticatedClicks,TopImpressionRatePercent,AllConversions,AllRevenue,AllConversionRate,AllCostPerConversion,AllReturnOnAdSpend,AllRevenuePerConversion,ViewThroughConversions,AverageCpm,ConversionsQualified,LowQualityConversionsQualified,AllConversionsQualified,ViewThroughConversionsQualified,ViewThroughRevenue,VideoViews,ViewThroughRate,AverageCPV,VideoViewsAt25Percent,VideoViewsAt50Percent,VideoViewsAt75Percent,CompletedVideoViews,VideoCompletionRate,TotalWatchTimeInMS,AverageWatchTimePerVideoView,AverageWatchTimePerImpression,Sales,CostPerSale,RevenuePerSale,Installs,CostPerInstall,RevenuePerInstall +Airbyte,F149MJ18,180519267,2023-11-11T01:00:00+00:00,USD,Search,0,0,,0,0,0,0,,,0,,1,100,0,,Computer,0,0,,AOL search,0,0,,,,,Active,0,0,,0,0,,,,,0,0,0,0,0,,0,0,,,0,0,0,0,,0,,,0,,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance_records.json new file mode 100644 index 0000000000000..ca1243eebf0be --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_impression_performance_records.json @@ -0,0 +1,70 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdDistribution": "Search", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCPV": null, + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "AverageWatchTimePerImpression": null, + "AverageWatchTimePerVideoView": null, + "Clicks": "0", + "CompletedVideoViews": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "CostPerInstall": null, + "CostPerSale": null, + "Ctr": null, + "CurrencyCode": "USD", + "DeviceType": "Computer", + "Impressions": "0", + "Installs": "0", + "LowQualityClicks": "0", + "LowQualityClicksPercent": null, + "LowQualityConversionRate": null, + "LowQualityConversions": "0", + "LowQualityConversionsQualified": "0", + "LowQualityGeneralClicks": "0", + "LowQualityImpressions": "1", + "LowQualityImpressionsPercent": "100", + "LowQualitySophisticatedClicks": "0", + "Network": "AOL search", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "RevenuePerInstall": null, + "RevenuePerSale": null, + "Sales": "0", + "Spend": "0", + "TimePeriod": "2023-11-11T01:00:00+00:00", + "TopImpressionRatePercent": null, + "TotalWatchTimeInMS": "0", + "VideoCompletionRate": null, + "VideoViews": "0", + "VideoViewsAt25Percent": "0", + "VideoViewsAt50Percent": "0", + "VideoViewsAt75Percent": "0", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRate": null, + "ViewThroughRevenue": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance.csv new file mode 100644 index 0000000000000..5f9456369f4bd --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance.csv @@ -0,0 +1,2 @@ +AccountId,TimePeriod,CurrencyCode,AdDistribution,DeviceType,Network,DeliveredMatchType,DeviceOS,TopVsOther,BidMatchType,AccountName,AccountNumber,PhoneImpressions,PhoneCalls,Clicks,Ctr,Spend,Impressions,CostPerConversion,Ptr,Assists,ReturnOnAdSpend,CostPerAssist,AverageCpc,AveragePosition,AverageCpm,Conversions,ConversionsQualified,ConversionRate,LowQualityClicks,LowQualityClicksPercent,LowQualityImpressions,LowQualitySophisticatedClicks,LowQualityConversions,LowQualityConversionRate,Revenue,RevenuePerConversion,RevenuePerAssist +180519267,2023-11-08T00:00:00+00:00,USD,Search,Smartphone,Syndicated search partners,Phrase,Android,Syndicated search partners - Other,Broad,Airbyte,F149MJ18,0,0,0,,0,0,,,0,,,0,0,0,0,0,,0,,11,0,0,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance_records.json new file mode 100644 index 0000000000000..306d42ab60db3 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/account_performance_records.json @@ -0,0 +1,42 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AdDistribution": "Search", + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": null, + "CurrencyCode": "USD", + "DeliveredMatchType": "Phrase", + "DeviceOS": "Android", + "DeviceType": "Smartphone", + "Impressions": "0", + "LowQualityClicks": "0", + "LowQualityClicksPercent": null, + "LowQualityConversionRate": null, + "LowQualityConversions": "0", + "LowQualityImpressions": "11", + "LowQualitySophisticatedClicks": "0", + "Network": "Syndicated search partners", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "TimePeriod": "2023-11-08T00:00:00+00:00", + "TopVsOther": "Syndicated search partners - Other" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance.csv new file mode 100644 index 0000000000000..3fc35b23a3876 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance.csv @@ -0,0 +1,2 @@ +AccountName,AccountNumber,AccountId,TimePeriod,Status,CampaignName,CampaignId,AdGroupName,AdGroupId,CurrencyCode,AdDistribution,Impressions,Clicks,Ctr,AverageCpc,Spend,AveragePosition,Conversions,ConversionRate,CostPerConversion,DeviceType,Language,QualityScore,ExpectedCtr,AdRelevance,LandingPageExperience,PhoneImpressions,PhoneCalls,Ptr,Network,Assists,Revenue,ReturnOnAdSpend,CostPerAssist,RevenuePerConversion,RevenuePerAssist,TrackingTemplate,CustomParameters,AccountStatus,CampaignStatus,AdGroupLabels,FinalUrlSuffix,CampaignType,TopImpressionSharePercent,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,BaseCampaignId,AllConversions,AllRevenue,AllConversionRate,AllCostPerConversion,AllReturnOnAdSpend,AllRevenuePerConversion,ViewThroughConversions,AdGroupType,AverageCpm,ConversionsQualified,AllConversionsQualified,ViewThroughConversionsQualified,ViewThroughRevenue,VideoViews,ViewThroughRate,AverageCPV,VideoViewsAt25Percent,VideoViewsAt50Percent,VideoViewsAt75Percent,CompletedVideoViews,VideoCompletionRate,TotalWatchTimeInMS,AverageWatchTimePerVideoView,AverageWatchTimePerImpression,Sales,CostPerSale,RevenuePerSale,Installs,CostPerInstall,RevenuePerInstall +Airbyte,F149MJ18,180519267,2023-11-11T10:00:00+00:00,Active,Airbyte test,531016227,keywords,1356799861840328,USD,Search,2,0,0,0,0,0,0,,,Smartphone,Spanish,6,2,3,1,0,0,,Syndicated search partners,0,0,,,,,,,Active,Active,,,Search & content,,0,100,531016227,0,0,,,,,0,Standard,0,0,0,,0,0,0,,0,0,0,0,,0,,0,0,,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance_records.json new file mode 100644 index 0000000000000..1fcc3ed4e7b49 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_impression_performance_records.json @@ -0,0 +1,81 @@ +[ + { + "AbsoluteTopImpressionRatePercent": "0", + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupLabels": null, + "AdGroupName": "keywords", + "AdGroupType": "Standard", + "AdRelevance": "3", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCPV": null, + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "AverageWatchTimePerImpression": "0", + "AverageWatchTimePerVideoView": null, + "BaseCampaignId": "531016227", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "CampaignType": "Search & content", + "Clicks": "0", + "CompletedVideoViews": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "CostPerInstall": null, + "CostPerSale": null, + "Ctr": "0", + "CurrencyCode": "USD", + "CustomParameters": null, + "DeviceType": "Smartphone", + "ExpectedCtr": "2", + "FinalUrlSuffix": null, + "Impressions": "2", + "Installs": "0", + "LandingPageExperience": "1", + "Language": "Spanish", + "Network": "Syndicated search partners", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "QualityScore": "6", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "RevenuePerInstall": null, + "RevenuePerSale": null, + "Sales": "0", + "Spend": "0", + "Status": "Active", + "TimePeriod": "2023-11-11T10:00:00+00:00", + "TopImpressionRatePercent": "100", + "TopImpressionSharePercent": null, + "TotalWatchTimeInMS": "0", + "TrackingTemplate": null, + "VideoCompletionRate": null, + "VideoViews": "0", + "VideoViewsAt25Percent": "0", + "VideoViewsAt50Percent": "0", + "VideoViewsAt75Percent": "0", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRate": "0", + "ViewThroughRevenue": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance.csv new file mode 100644 index 0000000000000..41dc72ca4d99b --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance.csv @@ -0,0 +1,2 @@ +AccountId,CampaignId,AdGroupId,TimePeriod,CurrencyCode,AdDistribution,DeviceType,Network,DeliveredMatchType,DeviceOS,TopVsOther,BidMatchType,Language,AccountName,CampaignName,CampaignType,AdGroupName,AdGroupType,Impressions,Clicks,Ctr,Spend,CostPerConversion,QualityScore,ExpectedCtr,AdRelevance,LandingPageExperience,PhoneImpressions,PhoneCalls,Ptr,Assists,CostPerAssist,CustomParameters,FinalUrlSuffix,ViewThroughConversions,AllCostPerConversion,AllReturnOnAdSpend,AllConversions,AllConversionRate,AllRevenue,AllRevenuePerConversion,AverageCpc,AveragePosition,AverageCpm,Conversions,ConversionRate,ConversionsQualified,Revenue,RevenuePerConversion,RevenuePerAssist +180519267,531016227,1356799861840328,2023-11-11T05:00:00+00:00,USD,Search,Computer,Syndicated search partners,Phrase,Unknown,Syndicated search partners - Top,Broad,Portuguese,Airbyte,Airbyte test,Search & content,keywords,Standard,1,0,0,0,,6,2,3,1,0,0,,0,,,,0,,,0,,0,,0,0,0,0,,0,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance_records.json new file mode 100644 index 0000000000000..af9834cffffd9 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_group_performance_records.json @@ -0,0 +1,54 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdGroupType": "Standard", + "AdRelevance": "3", + "AllConversionRate": null, + "AllConversions": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignType": "Search & content", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": "0", + "CurrencyCode": "USD", + "CustomParameters": null, + "DeliveredMatchType": "Phrase", + "DeviceOS": "Unknown", + "DeviceType": "Computer", + "ExpectedCtr": "2", + "FinalUrlSuffix": null, + "Impressions": "1", + "LandingPageExperience": "1", + "Language": "Portuguese", + "Network": "Syndicated search partners", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "QualityScore": "6", + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "TimePeriod": "2023-11-11T05:00:00+00:00", + "TopVsOther": "Syndicated search partners - Top", + "ViewThroughConversions": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance.csv new file mode 100644 index 0000000000000..6027fb1bdfbc1 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance.csv @@ -0,0 +1,2 @@ +AccountId,CampaignId,AdGroupId,AdId,TimePeriod,CurrencyCode,AdDistribution,DeviceType,Language,Network,DeviceOS,TopVsOther,BidMatchType,DeliveredMatchType,AccountName,CampaignName,CampaignType,AdGroupName,Impressions,Clicks,Ctr,Spend,CostPerConversion,DestinationUrl,Assists,ReturnOnAdSpend,CostPerAssist,CustomParameters,FinalAppUrl,AdDescription,AdDescription2,ViewThroughConversions,ViewThroughConversionsQualified,AllCostPerConversion,AllReturnOnAdSpend,Conversions,ConversionRate,ConversionsQualified,AverageCpc,AveragePosition,AverageCpm,AllConversions,AllConversionRate,AllRevenue,AllRevenuePerConversion,Revenue,RevenuePerConversion,RevenuePerAssist +180519267,531016227,1356799861840328,84800390693061,2023-11-08T00:00:00+00:00,USD,Search,Tablet,English,Microsoft sites and select traffic,Android,Microsoft sites and select traffic - top,Broad,Phrase,Airbyte,Airbyte test,Search & content,keywords,2,0,0,0,,,0,,,,,,,0,,,,0,,0,0,0,0,0,,0,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance_records.json new file mode 100644 index 0000000000000..89902ccdb270f --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/ad_performance_records.json @@ -0,0 +1,52 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AdDescription": null, + "AdDescription2": null, + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdId": "84800390693061", + "AllConversionRate": null, + "AllConversions": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignType": "Search & content", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": "0", + "CurrencyCode": "USD", + "CustomParameters": null, + "DeliveredMatchType": "Phrase", + "DestinationUrl": null, + "DeviceOS": "Android", + "DeviceType": "Tablet", + "FinalAppUrl": null, + "Impressions": "2", + "Language": "English", + "Network": "Microsoft sites and select traffic", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "TimePeriod": "2023-11-08T00:00:00+00:00", + "TopVsOther": "Microsoft sites and select traffic - top", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience.csv new file mode 100644 index 0000000000000..2b8a271cc54e0 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience.csv @@ -0,0 +1,2 @@ +AccountId,AgeGroup,Gender,TimePeriod,AllConversions,AccountName,AccountNumber,CampaignName,CampaignId,AdGroupName,AdGroupId,AdDistribution,Impressions,Clicks,Conversions,Spend,Revenue,ExtendedCost,Assists,Language,AccountStatus,CampaignStatus,AdGroupStatus,BaseCampaignId,AllRevenue,ViewThroughConversions,Goal,GoalType,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,ConversionsQualified,AllConversionsQualified,ViewThroughConversionsQualified,ViewThroughRevenue +180519267,Unknown,Unknown,2023-11-14T04:00:00+00:00,0,Airbyte,F149MJ18,Airbyte test,531016227,keywords,1356799861840328,Search,2,0,0,0,0,0,0,German,Active,Active,Active,531016227,0,0,,,100,100,0,0,,0 diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience_records.json new file mode 100644 index 0000000000000..95b460108d384 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/age_gender_audience_records.json @@ -0,0 +1,38 @@ +[ + { + "AbsoluteTopImpressionRatePercent": "100", + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdGroupStatus": "Active", + "AgeGroup": "Unknown", + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllRevenue": "0", + "Assists": "0", + "BaseCampaignId": "531016227", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "Clicks": "0", + "Conversions": "0", + "ConversionsQualified": "0", + "ExtendedCost": "0", + "Gender": "Unknown", + "Goal": null, + "GoalType": null, + "Impressions": "2", + "Language": "German", + "Revenue": "0", + "Spend": "0", + "TimePeriod": "2023-11-14T04:00:00+00:00", + "TopImpressionRatePercent": "100", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRevenue": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance.csv new file mode 100644 index 0000000000000..50815fcac5d24 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance.csv @@ -0,0 +1,2 @@ +AccountName,AccountNumber,AccountId,TimePeriod,CampaignStatus,CampaignName,CampaignId,CurrencyCode,AdDistribution,Impressions,Clicks,Ctr,AverageCpc,Spend,AveragePosition,Conversions,ConversionRate,CostPerConversion,LowQualityClicks,LowQualityClicksPercent,LowQualityImpressions,LowQualityImpressionsPercent,LowQualityConversions,LowQualityConversionRate,DeviceType,QualityScore,ExpectedCtr,AdRelevance,LandingPageExperience,PhoneImpressions,PhoneCalls,Ptr,Network,Assists,Revenue,ReturnOnAdSpend,CostPerAssist,RevenuePerConversion,RevenuePerAssist,TrackingTemplate,CustomParameters,AccountStatus,LowQualityGeneralClicks,LowQualitySophisticatedClicks,CampaignLabels,FinalUrlSuffix,CampaignType,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,BaseCampaignId,AllConversions,AllRevenue,AllConversionRate,AllCostPerConversion,AllReturnOnAdSpend,AllRevenuePerConversion,ViewThroughConversions,AverageCpm,ConversionsQualified,LowQualityConversionsQualified,AllConversionsQualified,ViewThroughConversionsQualified,ViewThroughRevenue,VideoViews,ViewThroughRate,AverageCPV,VideoViewsAt25Percent,VideoViewsAt50Percent,VideoViewsAt75Percent,CompletedVideoViews,VideoCompletionRate,TotalWatchTimeInMS,AverageWatchTimePerVideoView,AverageWatchTimePerImpression,Sales,CostPerSale,RevenuePerSale,Installs,CostPerInstall,RevenuePerInstall +Airbyte,F149MJ18,180519267,2023-11-10T04:00:00+00:00,Active,Airbyte test,531016227,USD,Search,0,0,,0,0,0,0,,,0,,1,100,0,,Smartphone,6,2,3,1,0,0,,Syndicated search partners,0,0,,,,,,,Active,0,0,,,Search & content,,,531016227,0,0,,,,,0,0,0,0,0,,0,0,,,0,0,0,0,,0,,,0,,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance_records.json new file mode 100644 index 0000000000000..8ffdae4ce8f72 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_impression_performance_records.json @@ -0,0 +1,84 @@ +[ + { + "AbsoluteTopImpressionRatePercent": null, + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdDistribution": "Search", + "AdRelevance": "3", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCPV": null, + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "AverageWatchTimePerImpression": null, + "AverageWatchTimePerVideoView": null, + "BaseCampaignId": "531016227", + "CampaignId": "531016227", + "CampaignLabels": null, + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "CampaignType": "Search & content", + "Clicks": "0", + "CompletedVideoViews": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "CostPerInstall": null, + "CostPerSale": null, + "Ctr": null, + "CurrencyCode": "USD", + "CustomParameters": null, + "DeviceType": "Smartphone", + "ExpectedCtr": "2", + "FinalUrlSuffix": null, + "Impressions": "0", + "Installs": "0", + "LandingPageExperience": "1", + "LowQualityClicks": "0", + "LowQualityClicksPercent": null, + "LowQualityConversionRate": null, + "LowQualityConversions": "0", + "LowQualityConversionsQualified": "0", + "LowQualityGeneralClicks": "0", + "LowQualityImpressions": "1", + "LowQualityImpressionsPercent": "100", + "LowQualitySophisticatedClicks": "0", + "Network": "Syndicated search partners", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "QualityScore": "6", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "RevenuePerInstall": null, + "RevenuePerSale": null, + "Sales": "0", + "Spend": "0", + "TimePeriod": "2023-11-10T04:00:00+00:00", + "TopImpressionRatePercent": null, + "TotalWatchTimeInMS": "0", + "TrackingTemplate": null, + "VideoCompletionRate": null, + "VideoViews": "0", + "VideoViewsAt25Percent": "0", + "VideoViewsAt50Percent": "0", + "VideoViewsAt75Percent": "0", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRate": null, + "ViewThroughRevenue": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance.csv new file mode 100644 index 0000000000000..511b8ea17d09f --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance.csv @@ -0,0 +1,2 @@ +AccountId,CampaignId,TimePeriod,CurrencyCode,AdDistribution,DeviceType,Network,DeliveredMatchType,DeviceOS,TopVsOther,BidMatchType,AccountName,CampaignName,CampaignType,CampaignStatus,CampaignLabels,Impressions,Clicks,Ctr,Spend,CostPerConversion,QualityScore,AdRelevance,LandingPageExperience,PhoneImpressions,PhoneCalls,Ptr,Assists,ReturnOnAdSpend,CostPerAssist,CustomParameters,ViewThroughConversions,AllCostPerConversion,AllReturnOnAdSpend,AllConversions,ConversionsQualified,AllConversionRate,AllRevenue,AllRevenuePerConversion,AverageCpc,AveragePosition,AverageCpm,Conversions,ConversionRate,LowQualityClicks,LowQualityClicksPercent,LowQualityImpressions,LowQualitySophisticatedClicks,LowQualityConversions,LowQualityConversionRate,Revenue,RevenuePerConversion,RevenuePerAssist,BudgetName,BudgetStatus,BudgetAssociationStatus +180519267,531016227,2023-11-11T16:00:00+00:00,USD,Search,Computer,Microsoft sites and select traffic,Phrase,Windows,Microsoft sites and select traffic - other,Broad,Airbyte,Airbyte test,Search & content,Active,,1,0,0,0,,6,3,1,0,0,,0,,,,0,,,0,0,,0,,0,0,0,0,,0,,4,0,0,,0,,,,,Current diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance_records.json new file mode 100644 index 0000000000000..2d781b1185a8a --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/campaign_performance_records.json @@ -0,0 +1,60 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AdDistribution": "Search", + "AdRelevance": "3", + "AllConversionRate": null, + "AllConversions": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "BudgetAssociationStatus": "Current", + "BudgetName": null, + "BudgetStatus": null, + "CampaignId": "531016227", + "CampaignLabels": null, + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "CampaignType": "Search & content", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": "0", + "CurrencyCode": "USD", + "CustomParameters": null, + "DeliveredMatchType": "Phrase", + "DeviceOS": "Windows", + "DeviceType": "Computer", + "Impressions": "1", + "LandingPageExperience": "1", + "LowQualityClicks": "0", + "LowQualityClicksPercent": null, + "LowQualityConversionRate": null, + "LowQualityConversions": "0", + "LowQualityImpressions": "4", + "LowQualitySophisticatedClicks": "0", + "Network": "Microsoft sites and select traffic", + "PhoneCalls": "0", + "PhoneImpressions": "0", + "Ptr": null, + "QualityScore": "6", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "TimePeriod": "2023-11-11T16:00:00+00:00", + "TopVsOther": "Microsoft sites and select traffic - other", + "ViewThroughConversions": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance.csv new file mode 100644 index 0000000000000..8bf733bfff10c --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance.csv @@ -0,0 +1,2 @@ +AccountId,CampaignId,AdGroupId,TimePeriod,AccountNumber,Country,State,MetroArea,City,ProximityTargetLocation,Radius,LocationType,MostSpecificLocation,AccountStatus,CampaignStatus,AdGroupStatus,County,PostalCode,LocationId,BaseCampaignId,Goal,GoalType,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,AllConversionsQualified,Neighborhood,ViewThroughRevenue,CampaignType,AssetGroupId,AssetGroupName,AssetGroupStatus,CurrencyCode,DeliveredMatchType,AdDistribution,DeviceType,Language,Network,DeviceOS,TopVsOther,BidMatchType,AccountName,CampaignName,AdGroupName,Impressions,Clicks,Ctr,Spend,CostPerConversion,Assists,ReturnOnAdSpend,CostPerAssist,ViewThroughConversions,ViewThroughConversionsQualified,AllCostPerConversion,AllReturnOnAdSpend,Conversions,ConversionRate,ConversionsQualified,AverageCpc,AveragePosition,AverageCpm,AllConversions,AllConversionRate,AllRevenue,AllRevenuePerConversion,Revenue,RevenuePerConversion,RevenuePerAssist +180519267,531016227,1356799861840328,2023-11-07T08:00:00+00:00,F149MJ18,United States,Illinois,"Champaign & Springfield-Decatur, IL",Riverton,,0,Physical location,62561,Active,Active,Active,Sangamon County,62561,94028,531016227,,,100,100.00,0.00,,0.00,Search & content,,,,USD,Phrase,Search,Computer,English,Microsoft sites and select traffic,Unknown,Microsoft sites and select traffic - top,Broad,Airbyte,Airbyte test,keywords,1,0,0,0,,0,,,0,,,,0,,0,0,0,0,0,,0,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance_records.json new file mode 100644 index 0000000000000..8ade486df6245 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/geographic_performance_records.json @@ -0,0 +1,72 @@ +[ + { + "AbsoluteTopImpressionRatePercent": "100", + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdGroupStatus": "Active", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0.00", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "AssetGroupId": null, + "AssetGroupName": null, + "AssetGroupStatus": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BaseCampaignId": "531016227", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "CampaignType": "Search & content", + "City": "Riverton", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Country": "United States", + "County": "Sangamon County", + "Ctr": "0", + "CurrencyCode": "USD", + "DeliveredMatchType": "Phrase", + "DeviceOS": "Unknown", + "DeviceType": "Computer", + "Goal": null, + "GoalType": null, + "Impressions": "1", + "Language": "English", + "LocationId": "94028", + "LocationType": "Physical location", + "MetroArea": "Champaign & Springfield-Decatur, IL", + "MostSpecificLocation": "62561", + "Neighborhood": null, + "Network": "Microsoft sites and select traffic", + "PostalCode": "62561", + "ProximityTargetLocation": null, + "Radius": "0", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "State": "Illinois", + "TimePeriod": "2023-11-07T08:00:00+00:00", + "TopImpressionRatePercent": "100.00", + "TopVsOther": "Microsoft sites and select traffic - top", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRevenue": "0.00" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance.csv new file mode 100644 index 0000000000000..885d0b42770a3 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance.csv @@ -0,0 +1,2 @@ +AccountId,CampaignId,AdGroupId,KeywordId,Keyword,AdId,TimePeriod,CurrencyCode,DeliveredMatchType,AdDistribution,DeviceType,Language,Network,DeviceOS,TopVsOther,BidMatchType,AccountName,CampaignName,AdGroupName,KeywordStatus,Impressions,Clicks,Ctr,CurrentMaxCpc,Spend,CostPerConversion,QualityScore,ExpectedCtr,AdRelevance,LandingPageExperience,QualityImpact,Assists,ReturnOnAdSpend,CostPerAssist,CustomParameters,FinalAppUrl,Mainline1Bid,MainlineBid,FirstPageBid,FinalUrlSuffix,ViewThroughConversions,ViewThroughConversionsQualified,AllCostPerConversion,AllReturnOnAdSpend,Conversions,ConversionRate,ConversionsQualified,AverageCpc,AveragePosition,AverageCpm,AllConversions,AllConversionRate,AllRevenue,AllRevenuePerConversion,Revenue,RevenuePerConversion,RevenuePerAssist +180519267,531016227,1356799861840328,84801135055365,connector,84800390693061,2023-11-10T00:00:00+00:00,USD,Phrase,Search,Smartphone,German,Syndicated search partners,Android,Syndicated search partners - Top,Broad,Airbyte,Airbyte test,keywords,Active,1,0,0,2.27,0,,5,2,3,1,0,0,,,,,,1.11,0.35,,0,,,,0,,0,0,0,0,0,,0,,0,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance_records.json new file mode 100644 index 0000000000000..a16a478b83547 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/keyword_performance_records.json @@ -0,0 +1,61 @@ +[ + { + "AccountId": "180519267", + "AccountName": "Airbyte", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdId": "84800390693061", + "AdRelevance": "3", + "AllConversionRate": null, + "AllConversions": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": "0", + "CurrencyCode": "USD", + "CurrentMaxCpc": "2.27", + "CustomParameters": null, + "DeliveredMatchType": "Phrase", + "DeviceOS": "Android", + "DeviceType": "Smartphone", + "ExpectedCtr": "2", + "FinalAppUrl": null, + "FinalUrlSuffix": null, + "FirstPageBid": "0.35", + "Impressions": "1", + "Keyword": "connector", + "KeywordId": "84801135055365", + "KeywordStatus": "Active", + "LandingPageExperience": "1", + "Language": "German", + "Mainline1Bid": null, + "MainlineBid": "1.11", + "Network": "Syndicated search partners", + "QualityImpact": "0", + "QualityScore": "5", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "TimePeriod": "2023-11-10T00:00:00+00:00", + "TopVsOther": "Syndicated search partners - Top", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance.csv new file mode 100644 index 0000000000000..6319f41309d9d --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance.csv @@ -0,0 +1,2 @@ +AccountName,AccountNumber,AccountId,TimePeriod,CampaignName,CampaignId,AdGroupName,AdGroupId,AdId,AdType,DestinationUrl,BidMatchType,DeliveredMatchType,CampaignStatus,AdStatus,Impressions,Clicks,Ctr,AverageCpc,Spend,AveragePosition,SearchQuery,Keyword,AdGroupCriterionId,Conversions,ConversionRate,CostPerConversion,Language,KeywordId,Network,TopVsOther,DeviceType,DeviceOS,Assists,Revenue,ReturnOnAdSpend,CostPerAssist,RevenuePerConversion,RevenuePerAssist,AccountStatus,AdGroupStatus,KeywordStatus,CampaignType,CustomerId,CustomerName,AllConversions,AllRevenue,AllConversionRate,AllCostPerConversion,AllReturnOnAdSpend,AllRevenuePerConversion,Goal,GoalType,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,AverageCpm,ConversionsQualified,AllConversionsQualified +Airbyte,F149MJ18,180519267,2023-11-07T08:00:00+00:00,Airbyte test,531016227,keywords,1356799861840328,84800390693061,Responsive search ad,,Broad,Phrase (close variant),Active,Active,1,0,0,0,0,0,halex screw clamp connectors,connector,,0,,,English,84801135055365,Microsoft sites and select traffic,Microsoft sites and select traffic - other,Computer,Windows,0,0,,,,,Active,Active,Active,Search & content,251186883,Daxtarity Inc.,0,0,,,,,,,0,0,0,0,0 diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance_records.json new file mode 100644 index 0000000000000..fda2521725d97 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/search_query_performance_records.json @@ -0,0 +1,62 @@ +[ + { + "AbsoluteTopImpressionRatePercent": "0", + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AccountStatus": "Active", + "AdGroupCriterionId": null, + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AdGroupStatus": "Active", + "AdId": "84800390693061", + "AdStatus": "Active", + "AdType": "Responsive search ad", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignStatus": "Active", + "CampaignType": "Search & content", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Ctr": "0", + "CustomerId": "251186883", + "CustomerName": "Daxtarity Inc.", + "DeliveredMatchType": "Phrase (close variant)", + "DestinationUrl": null, + "DeviceOS": "Windows", + "DeviceType": "Computer", + "Goal": null, + "GoalType": null, + "Impressions": "1", + "Keyword": "connector", + "KeywordId": "84801135055365", + "KeywordStatus": "Active", + "Language": "English", + "Network": "Microsoft sites and select traffic", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "SearchQuery": "halex screw clamp connectors", + "Spend": "0", + "TimePeriod": "2023-11-07T08:00:00+00:00", + "TopImpressionRatePercent": "0", + "TopVsOther": "Microsoft sites and select traffic - other" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance.csv b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance.csv new file mode 100644 index 0000000000000..0e9812694d237 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance.csv @@ -0,0 +1,2 @@ +AccountName,AccountNumber,AccountId,TimePeriod,CampaignName,CampaignId,AdGroupName,AdGroupId,Country,State,MetroArea,CurrencyCode,AdDistribution,Impressions,Clicks,Ctr,AverageCpc,Spend,AveragePosition,ProximityTargetLocation,Radius,Language,City,QueryIntentCountry,QueryIntentState,QueryIntentCity,QueryIntentDMA,BidMatchType,DeliveredMatchType,Network,TopVsOther,DeviceType,DeviceOS,Assists,Conversions,ConversionRate,Revenue,ReturnOnAdSpend,CostPerConversion,CostPerAssist,RevenuePerConversion,RevenuePerAssist,County,PostalCode,QueryIntentCounty,QueryIntentPostalCode,LocationId,QueryIntentLocationId,AllConversions,AllRevenue,AllConversionRate,AllCostPerConversion,AllReturnOnAdSpend,AllRevenuePerConversion,ViewThroughConversions,Goal,GoalType,AbsoluteTopImpressionRatePercent,TopImpressionRatePercent,AverageCpm,ConversionsQualified,AllConversionsQualified,ViewThroughConversionsQualified,Neighborhood,QueryIntentNeighborhood,ViewThroughRevenue,CampaignType,AssetGroupId,AssetGroupName +Airbyte,F149MJ18,180519267,2023-11-07T08:00:00+00:00,Airbyte test,531016227,keywords,1356799861840328,United Kingdom,England,Warwickshire,USD,Search,1,0,0,0,0,0,,0,English,Rugby,United Kingdom,,,,Broad,Phrase,Syndicated search partners,Syndicated search partners - Top,Computer,Unknown,0,0,,0,,,,,,,,,,162523,188,0,0,,,,,0,,,100,100,0,0,0,,,,0,Search & content,, diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance_records.json b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance_records.json new file mode 100644 index 0000000000000..0ac9344eacac6 --- /dev/null +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/hourly_reports/user_location_performance_records.json @@ -0,0 +1,73 @@ +[ + { + "AbsoluteTopImpressionRatePercent": "100", + "AccountId": "180519267", + "AccountName": "Airbyte", + "AccountNumber": "F149MJ18", + "AdDistribution": "Search", + "AdGroupId": "1356799861840328", + "AdGroupName": "keywords", + "AllConversionRate": null, + "AllConversions": "0", + "AllConversionsQualified": "0", + "AllCostPerConversion": null, + "AllReturnOnAdSpend": null, + "AllRevenue": "0", + "AllRevenuePerConversion": null, + "AssetGroupId": null, + "AssetGroupName": null, + "Assists": "0", + "AverageCpc": "0", + "AverageCpm": "0", + "AveragePosition": "0", + "BidMatchType": "Broad", + "CampaignId": "531016227", + "CampaignName": "Airbyte test", + "CampaignType": "Search & content", + "City": "Rugby", + "Clicks": "0", + "ConversionRate": null, + "Conversions": "0", + "ConversionsQualified": "0", + "CostPerAssist": null, + "CostPerConversion": null, + "Country": "United Kingdom", + "County": null, + "Ctr": "0", + "CurrencyCode": "USD", + "DeliveredMatchType": "Phrase", + "DeviceOS": "Unknown", + "DeviceType": "Computer", + "Goal": null, + "GoalType": null, + "Impressions": "1", + "Language": "English", + "LocationId": "162523", + "MetroArea": "Warwickshire", + "Neighborhood": null, + "Network": "Syndicated search partners", + "PostalCode": null, + "ProximityTargetLocation": null, + "QueryIntentCity": null, + "QueryIntentCountry": "United Kingdom", + "QueryIntentCounty": null, + "QueryIntentDMA": null, + "QueryIntentLocationId": "188", + "QueryIntentNeighborhood": null, + "QueryIntentPostalCode": null, + "QueryIntentState": null, + "Radius": "0", + "ReturnOnAdSpend": null, + "Revenue": "0", + "RevenuePerAssist": null, + "RevenuePerConversion": null, + "Spend": "0", + "State": "England", + "TimePeriod": "2023-11-07T08:00:00+00:00", + "TopImpressionRatePercent": "100", + "TopVsOther": "Syndicated search partners - Top", + "ViewThroughConversions": "0", + "ViewThroughConversionsQualified": null, + "ViewThroughRevenue": "0" + } +] diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_bulk_streams.py b/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_bulk_streams.py index 23f7efb7bb8e9..7ded33ab23fee 100644 --- a/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_bulk_streams.py +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_bulk_streams.py @@ -11,7 +11,7 @@ from freezegun import freeze_time from pendulum import UTC, DateTime from source_bing_ads.base_streams import Accounts -from source_bing_ads.bulk_streams import AppInstallAds +from source_bing_ads.bulk_streams import AppInstallAdLabels, AppInstallAds @patch.object(source_bing_ads.source, "Client") @@ -77,6 +77,32 @@ def test_bulk_stream_read_with_chunks(mocked_client, config): } +@patch.object(source_bing_ads.source, "Client") +def test_bulk_stream_read_with_chunks_app_install_ad_labels(mocked_client, config): + path_to_file = Path(__file__).parent / "app_install_ad_labels.csv" + path_to_file_base = Path(__file__).parent / "app_install_ad_labels_base.csv" + with open(path_to_file_base, "r") as f1, open(path_to_file, "a") as f2: + for line in f1: + f2.write(line) + + app_install_ads = AppInstallAdLabels(mocked_client, config) + result = app_install_ads.read_with_chunks(path=path_to_file) + assert next(result) == { + 'Ad Group': None, + 'Campaign': None, + 'Client Id': 'ClientIdGoesHere', + 'Color': None, + 'Description': None, + 'Id': '-22', + 'Label': None, + 'Modified Time': None, + 'Name': None, + 'Parent Id': '-11112', + 'Status': None, + 'Type': 'App Install Ad Label' + } + + @patch.object(source_bing_ads.source, "Client") @freeze_time("2023-11-01T12:00:00.000+00:00") @pytest.mark.parametrize( diff --git a/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_reports.py b/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_reports.py index a10ba7f94022d..e00a6b67b6f7e 100644 --- a/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_reports.py +++ b/airbyte-integrations/connectors/source-bing-ads/unit_tests/test_reports.py @@ -3,7 +3,9 @@ # import copy +import json import xml.etree.ElementTree as ET +from pathlib import Path from unittest.mock import MagicMock, Mock, patch from urllib.parse import urlparse @@ -11,7 +13,9 @@ import pendulum import pytest import source_bing_ads +from airbyte_cdk.models import SyncMode from bingads.service_info import SERVICE_INFO_DICT_V13 +from bingads.v13.internal.reporting.row_report import _RowReport from bingads.v13.internal.reporting.row_report_iterator import _RowReportRecord, _RowValues from source_bing_ads.base_streams import Accounts from source_bing_ads.report_streams import ( @@ -424,3 +428,29 @@ def test_custom_performance_report_no_last_year_stream_slices(mocked_client, con {"account_id": 180519267, "customer_id": 100, "time_period": "ThisYear"}, {"account_id": 180278106, "customer_id": 200, "time_period": "ThisYear"}, ] + + +@pytest.mark.parametrize( + "stream, response, records", + [ + (CampaignPerformanceReportHourly, "hourly_reports/campaign_performance.csv", "hourly_reports/campaign_performance_records.json"), + (AccountPerformanceReportHourly, "hourly_reports/account_performance.csv", "hourly_reports/account_performance_records.json"), + (AdGroupPerformanceReportHourly, "hourly_reports/ad_group_performance.csv", "hourly_reports/ad_group_performance_records.json"), + (AdPerformanceReportHourly, "hourly_reports/ad_performance.csv", "hourly_reports/ad_performance_records.json"), + (CampaignImpressionPerformanceReportHourly, "hourly_reports/campaign_impression_performance.csv", "hourly_reports/campaign_impression_performance_records.json"), + (KeywordPerformanceReportHourly, "hourly_reports/keyword_performance.csv", "hourly_reports/keyword_performance_records.json"), + (GeographicPerformanceReportHourly, "hourly_reports/geographic_performance.csv", "hourly_reports/geographic_performance_records.json"), + (AgeGenderAudienceReportHourly, "hourly_reports/age_gender_audience.csv", "hourly_reports/age_gender_audience_records.json"), + (SearchQueryPerformanceReportHourly, "hourly_reports/search_query_performance.csv", "hourly_reports/search_query_performance_records.json"), + (UserLocationPerformanceReportHourly, "hourly_reports/user_location_performance.csv", "hourly_reports/user_location_performance_records.json"), + (AccountImpressionPerformanceReportHourly, "hourly_reports/account_impression_performance.csv", "hourly_reports/account_impression_performance_records.json"), + (AdGroupImpressionPerformanceReportHourly, "hourly_reports/ad_group_impression_performance.csv", "hourly_reports/ad_group_impression_performance_records.json"), + ], +) +@patch.object(source_bing_ads.source, "Client") +def test_hourly_reports(mocked_client, config, stream, response, records): + stream_object = stream(mocked_client, config) + with patch.object(stream, "send_request", return_value=_RowReport(file=Path(__file__).parent / response)): + with open(Path(__file__).parent / records, "r") as file: + assert list(stream_object.read_records(sync_mode=SyncMode.full_refresh, stream_slice={}, stream_state={})) == json.load(file) + diff --git a/docs/integrations/sources/bing-ads.md b/docs/integrations/sources/bing-ads.md index a7a9729313942..969314f0c29cb 100644 --- a/docs/integrations/sources/bing-ads.md +++ b/docs/integrations/sources/bing-ads.md @@ -169,6 +169,22 @@ The Bing Ads source connector supports the following streams. For more informati - [Search Query Performance Report Weekly](https://learn.microsoft.com/en-us/advertising/reporting-service/searchqueryperformancereportrequest?view=bingads-13) - [Search Query Performance Report Monthly](https://learn.microsoft.com/en-us/advertising/reporting-service/searchqueryperformancereportrequest?view=bingads-13) +:::info + +Ad Group Impression Performance Report, Geographic Performance Report, Account Impression Performance Report have user-defined primary key. +This means that you can define your own primary key in Replication tab in your connection for these streams. + +Example pk: +Ad Group Impression Performance Report: composite pk - [AdGroupId, Status, TimePeriod, AccountId] +Geographic Performance Report: composite pk - [AdGroupId, Country, State, MetroArea, City] +Account Impression Performance Report: composite pk - [AccountName, AccountNumber, AccountId, TimePeriod] + +Note: These are just examples, and you should consider your own data and needs in order to correctly define the primary key. + +See more info about user-defined pk [here](https://docs.airbyte.com/understanding-airbyte/connections/incremental-append-deduped#user-defined-primary-key). + +::: + ### Custom Reports You can build your own report by providing: - *Report Name* - name of the stream From be85cac726bd981a1c9c9e48fb7051a01ba178e5 Mon Sep 17 00:00:00 2001 From: Yevhenii Date: Fri, 8 Dec 2023 17:16:18 +0000 Subject: [PATCH 03/22] =?UTF-8?q?=F0=9F=90=9BCDK:=20Fix=20cdk=20models=20b?= =?UTF-8?q?y=20adding=20use=5Fcache=20param=20for=20HttpRequests=20into=20?= =?UTF-8?q?the=20declarative=5Fcomponents=5Fschema.yaml=20(#33247)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Alexandre Girard --- .../declarative_component_schema.yaml | 5 + .../models/declarative_component_schema.py | 1045 +++++++++-------- 2 files changed, 540 insertions(+), 510 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/declarative_component_schema.yaml b/airbyte-cdk/python/airbyte_cdk/sources/declarative/declarative_component_schema.yaml index f6c516591b6c4..8d4af292f68af 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/declarative_component_schema.yaml @@ -1244,6 +1244,11 @@ definitions: - query: 'last_event_time BETWEEN TIMESTAMP "{{ stream_interval.start_time }}" AND TIMESTAMP "{{ stream_interval.end_time }}"' - searchIn: "{{ ','.join(config.get('search_in', [])) }}" - sort_by[asc]: updated_at + use_cache: + title: Use Cache + description: Enables stream requests caching. This field is automatically set by the CDK. + type: boolean + default: false $parameters: type: object additionalProperties: true diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py index 4bf4d54486a5b..9981f26169e8d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py @@ -1,7 +1,3 @@ -# -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. -# - # generated by datamodel-codegen: # filename: declarative_component_schema.yaml @@ -15,595 +11,601 @@ class AuthFlowType(Enum): - oauth2_0 = "oauth2.0" - oauth1_0 = "oauth1.0" + oauth2_0 = 'oauth2.0' + oauth1_0 = 'oauth1.0' class BasicHttpAuthenticator(BaseModel): - type: Literal["BasicHttpAuthenticator"] + type: Literal['BasicHttpAuthenticator'] username: str = Field( ..., - description="The username that will be combined with the password, base64 encoded and used to make requests. Fill it in the user inputs.", + description='The username that will be combined with the password, base64 encoded and used to make requests. Fill it in the user inputs.', examples=["{{ config['username'] }}", "{{ config['api_key'] }}"], - title="Username", + title='Username', ) password: Optional[str] = Field( - "", - description="The password that will be combined with the username, base64 encoded and used to make requests. Fill it in the user inputs.", - examples=["{{ config['password'] }}", ""], - title="Password", + '', + description='The password that will be combined with the username, base64 encoded and used to make requests. Fill it in the user inputs.', + examples=["{{ config['password'] }}", ''], + title='Password', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class BearerAuthenticator(BaseModel): - type: Literal["BearerAuthenticator"] + type: Literal['BearerAuthenticator'] api_token: str = Field( ..., - description="Token to inject as request header for authenticating with the API.", + description='Token to inject as request header for authenticating with the API.', examples=["{{ config['api_key'] }}", "{{ config['token'] }}"], - title="Bearer Token", + title='Bearer Token', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CheckStream(BaseModel): - type: Literal["CheckStream"] + type: Literal['CheckStream'] stream_names: List[str] = Field( ..., - description="Names of the streams to try reading from when running a check operation.", - examples=[["users"], ["users", "contacts"]], - title="Stream Names", + description='Names of the streams to try reading from when running a check operation.', + examples=[['users'], ['users', 'contacts']], + title='Stream Names', ) class ConstantBackoffStrategy(BaseModel): - type: Literal["ConstantBackoffStrategy"] + type: Literal['ConstantBackoffStrategy'] backoff_time_in_seconds: Union[float, str] = Field( ..., - description="Backoff time in seconds.", + description='Backoff time in seconds.', examples=[30, 30.5, "{{ config['backoff_time'] }}"], - title="Backoff Time", + title='Backoff Time', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomAuthenticator(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomAuthenticator"] + type: Literal['CustomAuthenticator'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom authentication strategy. Has to be a sub class of DeclarativeAuthenticator. The format is `source_..`.", - examples=["source_railz.components.ShortLivedTokenAuthenticator"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom authentication strategy. Has to be a sub class of DeclarativeAuthenticator. The format is `source_..`.', + examples=['source_railz.components.ShortLivedTokenAuthenticator'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomBackoffStrategy(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomBackoffStrategy"] + type: Literal['CustomBackoffStrategy'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom backoff strategy. The format is `source_..`.", - examples=["source_railz.components.MyCustomBackoffStrategy"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom backoff strategy. The format is `source_..`.', + examples=['source_railz.components.MyCustomBackoffStrategy'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomErrorHandler(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomErrorHandler"] + type: Literal['CustomErrorHandler'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom error handler. The format is `source_..`.", - examples=["source_railz.components.MyCustomErrorHandler"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom error handler. The format is `source_..`.', + examples=['source_railz.components.MyCustomErrorHandler'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomIncrementalSync(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomIncrementalSync"] + type: Literal['CustomIncrementalSync'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom incremental sync. The format is `source_..`.", - examples=["source_railz.components.MyCustomIncrementalSync"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom incremental sync. The format is `source_..`.', + examples=['source_railz.components.MyCustomIncrementalSync'], + title='Class Name', ) cursor_field: str = Field( ..., - description="The location of the value on a record that will be used as a bookmark during sync.", + description='The location of the value on a record that will be used as a bookmark during sync.', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomPaginationStrategy(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomPaginationStrategy"] + type: Literal['CustomPaginationStrategy'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom pagination strategy. The format is `source_..`.", - examples=["source_railz.components.MyCustomPaginationStrategy"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom pagination strategy. The format is `source_..`.', + examples=['source_railz.components.MyCustomPaginationStrategy'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomRecordExtractor(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomRecordExtractor"] + type: Literal['CustomRecordExtractor'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom record extraction strategy. The format is `source_..`.", - examples=["source_railz.components.MyCustomRecordExtractor"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom record extraction strategy. The format is `source_..`.', + examples=['source_railz.components.MyCustomRecordExtractor'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomRequester(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomRequester"] + type: Literal['CustomRequester'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom requester strategy. The format is `source_..`.", - examples=["source_railz.components.MyCustomRecordExtractor"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom requester strategy. The format is `source_..`.', + examples=['source_railz.components.MyCustomRecordExtractor'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomRetriever(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomRetriever"] + type: Literal['CustomRetriever'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom retriever strategy. The format is `source_..`.", - examples=["source_railz.components.MyCustomRetriever"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom retriever strategy. The format is `source_..`.', + examples=['source_railz.components.MyCustomRetriever'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomPartitionRouter(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomPartitionRouter"] + type: Literal['CustomPartitionRouter'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom partition router. The format is `source_..`.", - examples=["source_railz.components.MyCustomPartitionRouter"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom partition router. The format is `source_..`.', + examples=['source_railz.components.MyCustomPartitionRouter'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class CustomTransformation(BaseModel): class Config: extra = Extra.allow - type: Literal["CustomTransformation"] + type: Literal['CustomTransformation'] class_name: str = Field( ..., - description="Fully-qualified name of the class that will be implementing the custom transformation. The format is `source_..`.", - examples=["source_railz.components.MyCustomTransformation"], - title="Class Name", + description='Fully-qualified name of the class that will be implementing the custom transformation. The format is `source_..`.', + examples=['source_railz.components.MyCustomTransformation'], + title='Class Name', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class RefreshTokenUpdater(BaseModel): refresh_token_name: Optional[str] = Field( - "refresh_token", - description="The name of the property which contains the updated refresh token in the response from the token refresh endpoint.", - examples=["refresh_token"], - title="Refresh Token Property Name", + 'refresh_token', + description='The name of the property which contains the updated refresh token in the response from the token refresh endpoint.', + examples=['refresh_token'], + title='Refresh Token Property Name', ) access_token_config_path: Optional[List[str]] = Field( - ["credentials", "access_token"], - description="Config path to the access token. Make sure the field actually exists in the config.", - examples=[["credentials", "access_token"], ["access_token"]], - title="Config Path To Access Token", + ['credentials', 'access_token'], + description='Config path to the access token. Make sure the field actually exists in the config.', + examples=[['credentials', 'access_token'], ['access_token']], + title='Config Path To Access Token', ) refresh_token_config_path: Optional[List[str]] = Field( - ["credentials", "refresh_token"], - description="Config path to the access token. Make sure the field actually exists in the config.", - examples=[["credentials", "refresh_token"], ["refresh_token"]], - title="Config Path To Refresh Token", + ['credentials', 'refresh_token'], + description='Config path to the access token. Make sure the field actually exists in the config.', + examples=[['credentials', 'refresh_token'], ['refresh_token']], + title='Config Path To Refresh Token', ) token_expiry_date_config_path: Optional[List[str]] = Field( - ["credentials", "token_expiry_date"], - description="Config path to the expiry date. Make sure actually exists in the config.", - examples=[["credentials", "token_expiry_date"]], - title="Config Path To Expiry Date", + ['credentials', 'token_expiry_date'], + description='Config path to the expiry date. Make sure actually exists in the config.', + examples=[['credentials', 'token_expiry_date']], + title='Config Path To Expiry Date', ) class OAuthAuthenticator(BaseModel): - type: Literal["OAuthAuthenticator"] + type: Literal['OAuthAuthenticator'] client_id: str = Field( ..., - description="The OAuth client ID. Fill it in the user inputs.", + description='The OAuth client ID. Fill it in the user inputs.', examples=["{{ config['client_id }}", "{{ config['credentials']['client_id }}"], - title="Client ID", + title='Client ID', ) client_secret: str = Field( ..., - description="The OAuth client secret. Fill it in the user inputs.", + description='The OAuth client secret. Fill it in the user inputs.', examples=[ "{{ config['client_secret }}", "{{ config['credentials']['client_secret }}", ], - title="Client Secret", + title='Client Secret', ) refresh_token: Optional[str] = Field( None, - description="Credential artifact used to get a new access token.", + description='Credential artifact used to get a new access token.', examples=[ "{{ config['refresh_token'] }}", "{{ config['credentials]['refresh_token'] }}", ], - title="Refresh Token", + title='Refresh Token', ) token_refresh_endpoint: str = Field( ..., - description="The full URL to call to obtain a new access token.", - examples=["https://connect.squareup.com/oauth2/token"], - title="Token Refresh Endpoint", + description='The full URL to call to obtain a new access token.', + examples=['https://connect.squareup.com/oauth2/token'], + title='Token Refresh Endpoint', ) access_token_name: Optional[str] = Field( - "access_token", - description="The name of the property which contains the access token in the response from the token refresh endpoint.", - examples=["access_token"], - title="Access Token Property Name", + 'access_token', + description='The name of the property which contains the access token in the response from the token refresh endpoint.', + examples=['access_token'], + title='Access Token Property Name', ) expires_in_name: Optional[str] = Field( - "expires_in", - description="The name of the property which contains the expiry date in the response from the token refresh endpoint.", - examples=["expires_in"], - title="Token Expiry Property Name", + 'expires_in', + description='The name of the property which contains the expiry date in the response from the token refresh endpoint.', + examples=['expires_in'], + title='Token Expiry Property Name', ) grant_type: Optional[str] = Field( - "refresh_token", - description="Specifies the OAuth2 grant type. If set to refresh_token, the refresh_token needs to be provided as well. For client_credentials, only client id and secret are required. Other grant types are not officially supported.", - examples=["refresh_token", "client_credentials"], - title="Grant Type", + 'refresh_token', + description='Specifies the OAuth2 grant type. If set to refresh_token, the refresh_token needs to be provided as well. For client_credentials, only client id and secret are required. Other grant types are not officially supported.', + examples=['refresh_token', 'client_credentials'], + title='Grant Type', ) refresh_request_body: Optional[Dict[str, Any]] = Field( None, - description="Body of the request sent to get a new access token.", + description='Body of the request sent to get a new access token.', examples=[ { - "applicationId": "{{ config['application_id'] }}", - "applicationSecret": "{{ config['application_secret'] }}", - "token": "{{ config['token'] }}", + 'applicationId': "{{ config['application_id'] }}", + 'applicationSecret': "{{ config['application_secret'] }}", + 'token': "{{ config['token'] }}", } ], - title="Refresh Request Body", + title='Refresh Request Body', ) scopes: Optional[List[str]] = Field( None, - description="List of scopes that should be granted to the access token.", - examples=[["crm.list.read", "crm.objects.contacts.read", "crm.schema.contacts.read"]], - title="Scopes", + description='List of scopes that should be granted to the access token.', + examples=[ + ['crm.list.read', 'crm.objects.contacts.read', 'crm.schema.contacts.read'] + ], + title='Scopes', ) token_expiry_date: Optional[str] = Field( None, - description="The access token expiry date.", - examples=["2023-04-06T07:12:10.421833+00:00", 1680842386], - title="Token Expiry Date", + description='The access token expiry date.', + examples=['2023-04-06T07:12:10.421833+00:00', 1680842386], + title='Token Expiry Date', ) token_expiry_date_format: Optional[str] = Field( None, - description="The format of the time to expiration datetime. Provide it if the time is returned as a date-time string instead of seconds.", - examples=["%Y-%m-%d %H:%M:%S.%f+00:00"], - title="Token Expiry Date Format", + description='The format of the time to expiration datetime. Provide it if the time is returned as a date-time string instead of seconds.', + examples=['%Y-%m-%d %H:%M:%S.%f+00:00'], + title='Token Expiry Date Format', ) refresh_token_updater: Optional[RefreshTokenUpdater] = Field( None, - description="When the token updater is defined, new refresh tokens, access tokens and the access token expiry date are written back from the authentication response to the config object. This is important if the refresh token can only used once.", - title="Token Updater", + description='When the token updater is defined, new refresh tokens, access tokens and the access token expiry date are written back from the authentication response to the config object. This is important if the refresh token can only used once.', + title='Token Updater', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class ExponentialBackoffStrategy(BaseModel): - type: Literal["ExponentialBackoffStrategy"] + type: Literal['ExponentialBackoffStrategy'] factor: Optional[Union[float, str]] = Field( 5, - description="Multiplicative constant applied on each retry.", - examples=[5, 5.5, "10"], - title="Factor", + description='Multiplicative constant applied on each retry.', + examples=[5, 5.5, '10'], + title='Factor', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class SessionTokenRequestBearerAuthenticator(BaseModel): - type: Literal["Bearer"] + type: Literal['Bearer'] class HttpMethodEnum(Enum): - GET = "GET" - POST = "POST" + GET = 'GET' + POST = 'POST' class Action(Enum): - SUCCESS = "SUCCESS" - FAIL = "FAIL" - RETRY = "RETRY" - IGNORE = "IGNORE" + SUCCESS = 'SUCCESS' + FAIL = 'FAIL' + RETRY = 'RETRY' + IGNORE = 'IGNORE' class HttpResponseFilter(BaseModel): - type: Literal["HttpResponseFilter"] + type: Literal['HttpResponseFilter'] action: Action = Field( ..., - description="Action to execute if a response matches the filter.", - examples=["SUCCESS", "FAIL", "RETRY", "IGNORE"], - title="Action", + description='Action to execute if a response matches the filter.', + examples=['SUCCESS', 'FAIL', 'RETRY', 'IGNORE'], + title='Action', ) error_message: Optional[str] = Field( None, - description="Error Message to display if the response matches the filter.", - title="Error Message", + description='Error Message to display if the response matches the filter.', + title='Error Message', ) error_message_contains: Optional[str] = Field( None, - description="Match the response if its error message contains the substring.", - example=["This API operation is not enabled for this site"], - title="Error Message Substring", + description='Match the response if its error message contains the substring.', + example=['This API operation is not enabled for this site'], + title='Error Message Substring', ) http_codes: Optional[List[int]] = Field( None, - description="Match the response if its HTTP code is included in this list.", + description='Match the response if its HTTP code is included in this list.', examples=[[420, 429], [500]], - title="HTTP Codes", + title='HTTP Codes', ) predicate: Optional[str] = Field( None, - description="Match the response if the predicate evaluates to true.", + description='Match the response if the predicate evaluates to true.', examples=[ "{{ 'Too much requests' in response }}", "{{ 'error_code' in response and response['error_code'] == 'ComplexityException' }}", ], - title="Predicate", + title='Predicate', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class InlineSchemaLoader(BaseModel): - type: Literal["InlineSchemaLoader"] + type: Literal['InlineSchemaLoader'] schema_: Optional[Dict[str, Any]] = Field( None, - alias="schema", + alias='schema', description='Describes a streams\' schema. Refer to the Data Types documentation for more details on which types are valid.', - title="Schema", + title='Schema', ) class JsonFileSchemaLoader(BaseModel): - type: Literal["JsonFileSchemaLoader"] + type: Literal['JsonFileSchemaLoader'] file_path: Optional[str] = Field( None, description="Path to the JSON file defining the schema. The path is relative to the connector module's root.", - example=["./schemas/users.json"], - title="File Path", + example=['./schemas/users.json'], + title='File Path', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class JsonDecoder(BaseModel): - type: Literal["JsonDecoder"] + type: Literal['JsonDecoder'] class MinMaxDatetime(BaseModel): - type: Literal["MinMaxDatetime"] + type: Literal['MinMaxDatetime'] datetime: str = Field( ..., - description="Datetime value.", - examples=["2021-01-01", "2021-01-01T00:00:00Z", "{{ config['start_time'] }}"], - title="Datetime", + description='Datetime value.', + examples=['2021-01-01', '2021-01-01T00:00:00Z', "{{ config['start_time'] }}"], + title='Datetime', ) datetime_format: Optional[str] = Field( - "", + '', description='Format of the datetime value. Defaults to "%Y-%m-%dT%H:%M:%S.%f%z" if left empty. Use placeholders starting with "%" to describe the format the API is using. The following placeholders are available:\n * **%s**: Epoch unix timestamp - `1686218963`\n * **%ms**: Epoch unix timestamp - `1686218963123`\n * **%a**: Weekday (abbreviated) - `Sun`\n * **%A**: Weekday (full) - `Sunday`\n * **%w**: Weekday (decimal) - `0` (Sunday), `6` (Saturday)\n * **%d**: Day of the month (zero-padded) - `01`, `02`, ..., `31`\n * **%b**: Month (abbreviated) - `Jan`\n * **%B**: Month (full) - `January`\n * **%m**: Month (zero-padded) - `01`, `02`, ..., `12`\n * **%y**: Year (without century, zero-padded) - `00`, `01`, ..., `99`\n * **%Y**: Year (with century) - `0001`, `0002`, ..., `9999`\n * **%H**: Hour (24-hour, zero-padded) - `00`, `01`, ..., `23`\n * **%I**: Hour (12-hour, zero-padded) - `01`, `02`, ..., `12`\n * **%p**: AM/PM indicator\n * **%M**: Minute (zero-padded) - `00`, `01`, ..., `59`\n * **%S**: Second (zero-padded) - `00`, `01`, ..., `59`\n * **%f**: Microsecond (zero-padded to 6 digits) - `000000`, `000001`, ..., `999999`\n * **%z**: UTC offset - `(empty)`, `+0000`, `-04:00`\n * **%Z**: Time zone name - `(empty)`, `UTC`, `GMT`\n * **%j**: Day of the year (zero-padded) - `001`, `002`, ..., `366`\n * **%U**: Week number of the year (Sunday as first day) - `00`, `01`, ..., `53`\n * **%W**: Week number of the year (Monday as first day) - `00`, `01`, ..., `53`\n * **%c**: Date and time representation - `Tue Aug 16 21:30:00 1988`\n * **%x**: Date representation - `08/16/1988`\n * **%X**: Time representation - `21:30:00`\n * **%%**: Literal \'%\' character\n\n Some placeholders depend on the locale of the underlying system - in most cases this locale is configured as en/US. For more information see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).\n', - examples=["%Y-%m-%dT%H:%M:%S.%f%z", "%Y-%m-%d", "%s"], - title="Datetime Format", + examples=['%Y-%m-%dT%H:%M:%S.%f%z', '%Y-%m-%d', '%s'], + title='Datetime Format', ) max_datetime: Optional[str] = Field( None, - description="Ceiling applied on the datetime value. Must be formatted with the datetime_format field.", - examples=["2021-01-01T00:00:00Z", "2021-01-01"], - title="Max Datetime", + description='Ceiling applied on the datetime value. Must be formatted with the datetime_format field.', + examples=['2021-01-01T00:00:00Z', '2021-01-01'], + title='Max Datetime', ) min_datetime: Optional[str] = Field( None, - description="Floor applied on the datetime value. Must be formatted with the datetime_format field.", - examples=["2010-01-01T00:00:00Z", "2010-01-01"], - title="Min Datetime", + description='Floor applied on the datetime value. Must be formatted with the datetime_format field.', + examples=['2010-01-01T00:00:00Z', '2010-01-01'], + title='Min Datetime', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class NoAuth(BaseModel): - type: Literal["NoAuth"] - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + type: Literal['NoAuth'] + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class NoPagination(BaseModel): - type: Literal["NoPagination"] + type: Literal['NoPagination'] class OAuthConfigSpecification(BaseModel): class Config: extra = Extra.allow - oauth_user_input_from_connector_config_specification: Optional[Dict[str, Any]] = Field( + oauth_user_input_from_connector_config_specification: Optional[ + Dict[str, Any] + ] = Field( None, description="OAuth specific blob. This is a Json Schema used to validate Json configurations used as input to OAuth.\nMust be a valid non-nested JSON that refers to properties from ConnectorSpecification.connectionSpecification\nusing special annotation 'path_in_connector_config'.\nThese are input values the user is entering through the UI to authenticate to the connector, that might also shared\nas inputs for syncing data via the connector.\nExamples:\nif no connector values is shared during oauth flow, oauth_user_input_from_connector_config_specification=[]\nif connector values such as 'app_id' inside the top level are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['app_id']\n }\n }\nif connector values such as 'info.app_id' nested inside another object are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['info', 'app_id']\n }\n }", examples=[ - {"app_id": {"type": "string", "path_in_connector_config": ["app_id"]}}, + {'app_id': {'type': 'string', 'path_in_connector_config': ['app_id']}}, { - "app_id": { - "type": "string", - "path_in_connector_config": ["info", "app_id"], + 'app_id': { + 'type': 'string', + 'path_in_connector_config': ['info', 'app_id'], } }, ], - title="OAuth user input", + title='OAuth user input', ) complete_oauth_output_specification: Optional[Dict[str, Any]] = Field( None, description="OAuth specific blob. This is a Json Schema used to validate Json configurations produced by the OAuth flows as they are\nreturned by the distant OAuth APIs.\nMust be a valid JSON describing the fields to merge back to `ConnectorSpecification.connectionSpecification`.\nFor each field, a special annotation `path_in_connector_config` can be specified to determine where to merge it,\nExamples:\n complete_oauth_output_specification={\n refresh_token: {\n type: string,\n path_in_connector_config: ['credentials', 'refresh_token']\n }\n }", examples=[ { - "refresh_token": { - "type": "string,", - "path_in_connector_config": ["credentials", "refresh_token"], + 'refresh_token': { + 'type': 'string,', + 'path_in_connector_config': ['credentials', 'refresh_token'], } } ], - title="OAuth output specification", + title='OAuth output specification', ) complete_oauth_server_input_specification: Optional[Dict[str, Any]] = Field( None, - description="OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations.\nMust be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the\nserver when completing an OAuth flow (typically exchanging an auth code for refresh token).\nExamples:\n complete_oauth_server_input_specification={\n client_id: {\n type: string\n },\n client_secret: {\n type: string\n }\n }", - examples=[{"client_id": {"type": "string"}, "client_secret": {"type": "string"}}], - title="OAuth input specification", + description='OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations.\nMust be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the\nserver when completing an OAuth flow (typically exchanging an auth code for refresh token).\nExamples:\n complete_oauth_server_input_specification={\n client_id: {\n type: string\n },\n client_secret: {\n type: string\n }\n }', + examples=[ + {'client_id': {'type': 'string'}, 'client_secret': {'type': 'string'}} + ], + title='OAuth input specification', ) complete_oauth_server_output_specification: Optional[Dict[str, Any]] = Field( None, description="OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations that\nalso need to be merged back into the connector configuration at runtime.\nThis is a subset configuration of `complete_oauth_server_input_specification` that filters fields out to retain only the ones that\nare necessary for the connector to function with OAuth. (some fields could be used during oauth flows but not needed afterwards, therefore\nthey would be listed in the `complete_oauth_server_input_specification` but not `complete_oauth_server_output_specification`)\nMust be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the\nconnector when using OAuth flow APIs.\nThese fields are to be merged back to `ConnectorSpecification.connectionSpecification`.\nFor each field, a special annotation `path_in_connector_config` can be specified to determine where to merge it,\nExamples:\n complete_oauth_server_output_specification={\n client_id: {\n type: string,\n path_in_connector_config: ['credentials', 'client_id']\n },\n client_secret: {\n type: string,\n path_in_connector_config: ['credentials', 'client_secret']\n }\n }", examples=[ { - "client_id": { - "type": "string,", - "path_in_connector_config": ["credentials", "client_id"], + 'client_id': { + 'type': 'string,', + 'path_in_connector_config': ['credentials', 'client_id'], }, - "client_secret": { - "type": "string,", - "path_in_connector_config": ["credentials", "client_secret"], + 'client_secret': { + 'type': 'string,', + 'path_in_connector_config': ['credentials', 'client_secret'], }, } ], - title="OAuth server output specification", + title='OAuth server output specification', ) class OffsetIncrement(BaseModel): - type: Literal["OffsetIncrement"] + type: Literal['OffsetIncrement'] page_size: Optional[Union[int, str]] = Field( None, - description="The number of records to include in each pages.", + description='The number of records to include in each pages.', examples=[100, "{{ config['page_size'] }}"], - title="Limit", + title='Limit', ) inject_on_first_request: Optional[bool] = Field( False, - description="Using the `offset` with value `0` during the first request", - title="Inject Offset", + description='Using the `offset` with value `0` during the first request', + title='Inject Offset', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class PageIncrement(BaseModel): - type: Literal["PageIncrement"] + type: Literal['PageIncrement'] page_size: Optional[int] = Field( None, - description="The number of records to include in each pages.", - examples=[100, "100"], - title="Page Size", + description='The number of records to include in each pages.', + examples=[100, '100'], + title='Page Size', ) start_from_page: Optional[int] = Field( 0, - description="Index of the first page to request.", + description='Index of the first page to request.', examples=[0, 1], - title="Start From Page", + title='Start From Page', ) inject_on_first_request: Optional[bool] = Field( False, - description="Using the `page number` with value defined by `start_from_page` during the first request", - title="Inject Page Number", + description='Using the `page number` with value defined by `start_from_page` during the first request', + title='Inject Page Number', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class PrimaryKey(BaseModel): __root__: Union[str, List[str], List[List[str]]] = Field( ..., - description="The stream field to be used to distinguish unique records. Can either be a single field, an array of fields representing a composite key, or an array of arrays representing a composite key where the fields are nested fields.", - examples=["id", ["code", "type"]], - title="Primary Key", + description='The stream field to be used to distinguish unique records. Can either be a single field, an array of fields representing a composite key, or an array of arrays representing a composite key where the fields are nested fields.', + examples=['id', ['code', 'type']], + title='Primary Key', ) class RecordFilter(BaseModel): - type: Literal["RecordFilter"] + type: Literal['RecordFilter'] condition: Optional[str] = Field( - "", - description="The predicate to filter a record. Records will be removed if evaluated to False.", + '', + description='The predicate to filter a record. Records will be removed if evaluated to False.', examples=[ "{{ record['created_at'] >= stream_interval['start_time'] }}", "{{ record.status in ['active', 'expired'] }}", ], ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class RemoveFields(BaseModel): - type: Literal["RemoveFields"] + type: Literal['RemoveFields'] field_pointers: List[List[str]] = Field( ..., - description="Array of paths defining the field to remove. Each item is an array whose field describe the path of a field to remove.", - examples=[["tags"], [["content", "html"], ["content", "plain_text"]]], - title="Field Paths", + description='Array of paths defining the field to remove. Each item is an array whose field describe the path of a field to remove.', + examples=[['tags'], [['content', 'html'], ['content', 'plain_text']]], + title='Field Paths', ) class RequestPath(BaseModel): - type: Literal["RequestPath"] + type: Literal['RequestPath'] class InjectInto(Enum): - request_parameter = "request_parameter" - header = "header" - body_data = "body_data" - body_json = "body_json" + request_parameter = 'request_parameter' + header = 'header' + body_data = 'body_data' + body_json = 'body_json' class RequestOption(BaseModel): - type: Literal["RequestOption"] + type: Literal['RequestOption'] field_name: str = Field( ..., - description="Configures which key should be used in the location that the descriptor is being injected into", - examples=["segment_id"], - title="Request Option", + description='Configures which key should be used in the location that the descriptor is being injected into', + examples=['segment_id'], + title='Request Option', ) inject_into: InjectInto = Field( ..., - description="Configures where the descriptor should be set on the HTTP requests. Note that request parameters that are already encoded in the URL path will not be duplicated.", - examples=["request_parameter", "header", "body_data", "body_json"], - title="Inject Into", + description='Configures where the descriptor should be set on the HTTP requests. Note that request parameters that are already encoded in the URL path will not be duplicated.', + examples=['request_parameter', 'header', 'body_data', 'body_json'], + title='Inject Into', ) @@ -615,106 +617,106 @@ class Config: class LegacySessionTokenAuthenticator(BaseModel): - type: Literal["LegacySessionTokenAuthenticator"] + type: Literal['LegacySessionTokenAuthenticator'] header: str = Field( ..., - description="The name of the session token header that will be injected in the request", - examples=["X-Session"], - title="Session Request Header", + description='The name of the session token header that will be injected in the request', + examples=['X-Session'], + title='Session Request Header', ) login_url: str = Field( ..., - description="Path of the login URL (do not include the base URL)", - examples=["session"], - title="Login Path", + description='Path of the login URL (do not include the base URL)', + examples=['session'], + title='Login Path', ) session_token: Optional[str] = Field( None, - description="Session token to use if using a pre-defined token. Not needed if authenticating with username + password pair", + description='Session token to use if using a pre-defined token. Not needed if authenticating with username + password pair', example=["{{ config['session_token'] }}"], - title="Session Token", + title='Session Token', ) session_token_response_key: str = Field( ..., - description="Name of the key of the session token to be extracted from the response", - examples=["id"], - title="Response Token Response Key", + description='Name of the key of the session token to be extracted from the response', + examples=['id'], + title='Response Token Response Key', ) username: Optional[str] = Field( None, - description="Username used to authenticate and obtain a session token", + description='Username used to authenticate and obtain a session token', examples=[" {{ config['username'] }}"], - title="Username", + title='Username', ) password: Optional[str] = Field( - "", - description="Password used to authenticate and obtain a session token", - examples=["{{ config['password'] }}", ""], - title="Password", + '', + description='Password used to authenticate and obtain a session token', + examples=["{{ config['password'] }}", ''], + title='Password', ) validate_session_url: str = Field( ..., - description="Path of the URL to use to validate that the session token is valid (do not include the base URL)", - examples=["user/current"], - title="Validate Session Path", + description='Path of the URL to use to validate that the session token is valid (do not include the base URL)', + examples=['user/current'], + title='Validate Session Path', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class ValueType(Enum): - string = "string" - number = "number" - integer = "integer" - boolean = "boolean" + string = 'string' + number = 'number' + integer = 'integer' + boolean = 'boolean' class WaitTimeFromHeader(BaseModel): - type: Literal["WaitTimeFromHeader"] + type: Literal['WaitTimeFromHeader'] header: str = Field( ..., - description="The name of the response header defining how long to wait before retrying.", - examples=["Retry-After"], - title="Response Header Name", + description='The name of the response header defining how long to wait before retrying.', + examples=['Retry-After'], + title='Response Header Name', ) regex: Optional[str] = Field( None, - description="Optional regex to apply on the header to extract its value. The regex should define a capture group defining the wait time.", - examples=["([-+]?\\d+)"], - title="Extraction Regex", + description='Optional regex to apply on the header to extract its value. The regex should define a capture group defining the wait time.', + examples=['([-+]?\\d+)'], + title='Extraction Regex', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class WaitUntilTimeFromHeader(BaseModel): - type: Literal["WaitUntilTimeFromHeader"] + type: Literal['WaitUntilTimeFromHeader'] header: str = Field( ..., - description="The name of the response header defining how long to wait before retrying.", - examples=["wait_time"], - title="Response Header", + description='The name of the response header defining how long to wait before retrying.', + examples=['wait_time'], + title='Response Header', ) min_wait: Optional[Union[float, str]] = Field( None, - description="Minimum time to wait before retrying.", - examples=[10, "60"], - title="Minimum Wait Time", + description='Minimum time to wait before retrying.', + examples=[10, '60'], + title='Minimum Wait Time', ) regex: Optional[str] = Field( None, - description="Optional regex to apply on the header to extract its value. The regex should define a capture group defining the wait time.", - examples=["([-+]?\\d+)"], - title="Extraction Regex", + description='Optional regex to apply on the header to extract its value. The regex should define a capture group defining the wait time.', + examples=['([-+]?\\d+)'], + title='Extraction Regex', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class AddedFieldDefinition(BaseModel): - type: Literal["AddedFieldDefinition"] + type: Literal['AddedFieldDefinition'] path: List[str] = Field( ..., - description="List of strings defining the path where to add the value on the record.", - examples=[["segment_id"], ["metadata", "segment_id"]], - title="Path", + description='List of strings defining the path where to add the value on the record.', + examples=[['segment_id'], ['metadata', 'segment_id']], + title='Path', ) value: str = Field( ..., @@ -724,185 +726,187 @@ class AddedFieldDefinition(BaseModel): "{{ record['MetaData']['LastUpdatedTime'] }}", "{{ stream_partition['segment_id'] }}", ], - title="Value", + title='Value', ) value_type: Optional[ValueType] = Field( None, - description="Type of the value. If not specified, the type will be inferred from the value.", - title="Value Type", + description='Type of the value. If not specified, the type will be inferred from the value.', + title='Value Type', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class AddFields(BaseModel): - type: Literal["AddFields"] + type: Literal['AddFields'] fields: List[AddedFieldDefinition] = Field( ..., - description="List of transformations (path and corresponding value) that will be added to the record.", - title="Fields", + description='List of transformations (path and corresponding value) that will be added to the record.', + title='Fields', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class ApiKeyAuthenticator(BaseModel): - type: Literal["ApiKeyAuthenticator"] + type: Literal['ApiKeyAuthenticator'] api_token: Optional[str] = Field( None, - description="The API key to inject in the request. Fill it in the user inputs.", + description='The API key to inject in the request. Fill it in the user inputs.', examples=["{{ config['api_key'] }}", "Token token={{ config['api_key'] }}"], - title="API Key", + title='API Key', ) header: Optional[str] = Field( None, - description="The name of the HTTP header that will be set to the API key. This setting is deprecated, use inject_into instead. Header and inject_into can not be defined at the same time.", - examples=["Authorization", "Api-Token", "X-Auth-Token"], - title="Header Name", + description='The name of the HTTP header that will be set to the API key. This setting is deprecated, use inject_into instead. Header and inject_into can not be defined at the same time.', + examples=['Authorization', 'Api-Token', 'X-Auth-Token'], + title='Header Name', ) inject_into: Optional[RequestOption] = Field( None, - description="Configure how the API Key will be sent in requests to the source API. Either inject_into or header has to be defined.", + description='Configure how the API Key will be sent in requests to the source API. Either inject_into or header has to be defined.', examples=[ - {"inject_into": "header", "field_name": "Authorization"}, - {"inject_into": "request_parameter", "field_name": "authKey"}, + {'inject_into': 'header', 'field_name': 'Authorization'}, + {'inject_into': 'request_parameter', 'field_name': 'authKey'}, ], - title="Inject API Key Into Outgoing HTTP Request", + title='Inject API Key Into Outgoing HTTP Request', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class AuthFlow(BaseModel): - auth_flow_type: Optional[AuthFlowType] = Field(None, description="The type of auth to use", title="Auth flow type") + auth_flow_type: Optional[AuthFlowType] = Field( + None, description='The type of auth to use', title='Auth flow type' + ) predicate_key: Optional[List[str]] = Field( None, - description="JSON path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.", - examples=[["credentials", "auth_type"]], - title="Predicate key", + description='JSON path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.', + examples=[['credentials', 'auth_type']], + title='Predicate key', ) predicate_value: Optional[str] = Field( None, - description="Value of the predicate_key fields for the advanced auth to be applicable.", - examples=["Oauth"], - title="Predicate value", + description='Value of the predicate_key fields for the advanced auth to be applicable.', + examples=['Oauth'], + title='Predicate value', ) oauth_config_specification: Optional[OAuthConfigSpecification] = None class CursorPagination(BaseModel): - type: Literal["CursorPagination"] + type: Literal['CursorPagination'] cursor_value: str = Field( ..., - description="Value of the cursor defining the next page to fetch.", + description='Value of the cursor defining the next page to fetch.', examples=[ - "{{ headers.link.next.cursor }}", + '{{ headers.link.next.cursor }}', "{{ last_records[-1]['key'] }}", "{{ response['nextPage'] }}", ], - title="Cursor Value", + title='Cursor Value', ) page_size: Optional[int] = Field( None, - description="The number of records to include in each pages.", + description='The number of records to include in each pages.', examples=[100], - title="Page Size", + title='Page Size', ) stop_condition: Optional[str] = Field( None, - description="Template string evaluating when to stop paginating.", + description='Template string evaluating when to stop paginating.', examples=[ - "{{ response.data.has_more is false }}", + '{{ response.data.has_more is false }}', "{{ 'next' not in headers['link'] }}", ], - title="Stop Condition", + title='Stop Condition', ) decoder: Optional[JsonDecoder] = Field( None, - description="Component decoding the response so records can be extracted.", - title="Decoder", + description='Component decoding the response so records can be extracted.', + title='Decoder', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class DatetimeBasedCursor(BaseModel): - type: Literal["DatetimeBasedCursor"] + type: Literal['DatetimeBasedCursor'] cursor_field: str = Field( ..., - description="The location of the value on a record that will be used as a bookmark during sync. To ensure no data loss, the API must return records in ascending order based on the cursor field. Nested fields are not supported, so the field must be at the top level of the record. You can use a combination of Add Field and Remove Field transformations to move the nested field to the top.", - examples=["created_at", "{{ config['record_cursor'] }}"], - title="Cursor Field", + description='The location of the value on a record that will be used as a bookmark during sync. To ensure no data loss, the API must return records in ascending order based on the cursor field. Nested fields are not supported, so the field must be at the top level of the record. You can use a combination of Add Field and Remove Field transformations to move the nested field to the top.', + examples=['created_at', "{{ config['record_cursor'] }}"], + title='Cursor Field', ) datetime_format: str = Field( ..., - description="The datetime format used to format the datetime values that are sent in outgoing requests to the API. Use placeholders starting with \"%\" to describe the format the API is using. The following placeholders are available:\n * **%s**: Epoch unix timestamp - `1686218963`\n * **%ms**: Epoch unix timestamp (milliseconds) - `1686218963123`\n * **%a**: Weekday (abbreviated) - `Sun`\n * **%A**: Weekday (full) - `Sunday`\n * **%w**: Weekday (decimal) - `0` (Sunday), `6` (Saturday)\n * **%d**: Day of the month (zero-padded) - `01`, `02`, ..., `31`\n * **%b**: Month (abbreviated) - `Jan`\n * **%B**: Month (full) - `January`\n * **%m**: Month (zero-padded) - `01`, `02`, ..., `12`\n * **%y**: Year (without century, zero-padded) - `00`, `01`, ..., `99`\n * **%Y**: Year (with century) - `0001`, `0002`, ..., `9999`\n * **%H**: Hour (24-hour, zero-padded) - `00`, `01`, ..., `23`\n * **%I**: Hour (12-hour, zero-padded) - `01`, `02`, ..., `12`\n * **%p**: AM/PM indicator\n * **%M**: Minute (zero-padded) - `00`, `01`, ..., `59`\n * **%S**: Second (zero-padded) - `00`, `01`, ..., `59`\n * **%f**: Microsecond (zero-padded to 6 digits) - `000000`\n * **%z**: UTC offset - `(empty)`, `+0000`, `-04:00`\n * **%Z**: Time zone name - `(empty)`, `UTC`, `GMT`\n * **%j**: Day of the year (zero-padded) - `001`, `002`, ..., `366`\n * **%U**: Week number of the year (starting Sunday) - `00`, ..., `53`\n * **%W**: Week number of the year (starting Monday) - `00`, ..., `53`\n * **%c**: Date and time - `Tue Aug 16 21:30:00 1988`\n * **%x**: Date standard format - `08/16/1988`\n * **%X**: Time standard format - `21:30:00`\n * **%%**: Literal '%' character\n\n Some placeholders depend on the locale of the underlying system - in most cases this locale is configured as en/US. For more information see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).\n", - examples=["%Y-%m-%dT%H:%M:%S.%f%z", "%Y-%m-%d", "%s", "%ms"], - title="Outgoing Datetime Format", + description='The datetime format used to format the datetime values that are sent in outgoing requests to the API. Use placeholders starting with "%" to describe the format the API is using. The following placeholders are available:\n * **%s**: Epoch unix timestamp - `1686218963`\n * **%ms**: Epoch unix timestamp (milliseconds) - `1686218963123`\n * **%a**: Weekday (abbreviated) - `Sun`\n * **%A**: Weekday (full) - `Sunday`\n * **%w**: Weekday (decimal) - `0` (Sunday), `6` (Saturday)\n * **%d**: Day of the month (zero-padded) - `01`, `02`, ..., `31`\n * **%b**: Month (abbreviated) - `Jan`\n * **%B**: Month (full) - `January`\n * **%m**: Month (zero-padded) - `01`, `02`, ..., `12`\n * **%y**: Year (without century, zero-padded) - `00`, `01`, ..., `99`\n * **%Y**: Year (with century) - `0001`, `0002`, ..., `9999`\n * **%H**: Hour (24-hour, zero-padded) - `00`, `01`, ..., `23`\n * **%I**: Hour (12-hour, zero-padded) - `01`, `02`, ..., `12`\n * **%p**: AM/PM indicator\n * **%M**: Minute (zero-padded) - `00`, `01`, ..., `59`\n * **%S**: Second (zero-padded) - `00`, `01`, ..., `59`\n * **%f**: Microsecond (zero-padded to 6 digits) - `000000`\n * **%z**: UTC offset - `(empty)`, `+0000`, `-04:00`\n * **%Z**: Time zone name - `(empty)`, `UTC`, `GMT`\n * **%j**: Day of the year (zero-padded) - `001`, `002`, ..., `366`\n * **%U**: Week number of the year (starting Sunday) - `00`, ..., `53`\n * **%W**: Week number of the year (starting Monday) - `00`, ..., `53`\n * **%c**: Date and time - `Tue Aug 16 21:30:00 1988`\n * **%x**: Date standard format - `08/16/1988`\n * **%X**: Time standard format - `21:30:00`\n * **%%**: Literal \'%\' character\n\n Some placeholders depend on the locale of the underlying system - in most cases this locale is configured as en/US. For more information see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).\n', + examples=['%Y-%m-%dT%H:%M:%S.%f%z', '%Y-%m-%d', '%s', '%ms'], + title='Outgoing Datetime Format', ) start_datetime: Union[str, MinMaxDatetime] = Field( ..., - description="The datetime that determines the earliest record that should be synced.", - examples=["2020-01-1T00:00:00Z", "{{ config['start_time'] }}"], - title="Start Datetime", + description='The datetime that determines the earliest record that should be synced.', + examples=['2020-01-1T00:00:00Z', "{{ config['start_time'] }}"], + title='Start Datetime', ) cursor_datetime_formats: Optional[List[str]] = Field( None, - description="The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the `datetime_format` will be used.", - title="Cursor Datetime Formats", + description='The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the `datetime_format` will be used.', + title='Cursor Datetime Formats', ) cursor_granularity: Optional[str] = Field( None, - description="Smallest increment the datetime_format has (ISO 8601 duration) that is used to ensure the start of a slice does not overlap with the end of the previous one, e.g. for %Y-%m-%d the granularity should be P1D, for %Y-%m-%dT%H:%M:%SZ the granularity should be PT1S. Given this field is provided, `step` needs to be provided as well.", - examples=["PT1S"], - title="Cursor Granularity", + description='Smallest increment the datetime_format has (ISO 8601 duration) that is used to ensure the start of a slice does not overlap with the end of the previous one, e.g. for %Y-%m-%d the granularity should be P1D, for %Y-%m-%dT%H:%M:%SZ the granularity should be PT1S. Given this field is provided, `step` needs to be provided as well.', + examples=['PT1S'], + title='Cursor Granularity', ) end_datetime: Optional[Union[str, MinMaxDatetime]] = Field( None, - description="The datetime that determines the last record that should be synced. If not provided, `{{ now_utc() }}` will be used.", - examples=["2021-01-1T00:00:00Z", "{{ now_utc() }}", "{{ day_delta(-1) }}"], - title="End Datetime", + description='The datetime that determines the last record that should be synced. If not provided, `{{ now_utc() }}` will be used.', + examples=['2021-01-1T00:00:00Z', '{{ now_utc() }}', '{{ day_delta(-1) }}'], + title='End Datetime', ) end_time_option: Optional[RequestOption] = Field( None, - description="Optionally configures how the end datetime will be sent in requests to the source API.", - title="Inject End Time Into Outgoing HTTP Request", + description='Optionally configures how the end datetime will be sent in requests to the source API.', + title='Inject End Time Into Outgoing HTTP Request', ) is_data_feed: Optional[bool] = Field( None, - description="A data feed API is an API that does not allow filtering and paginates the content from the most recent to the least recent. Given this, the CDK needs to know when to stop paginating and this field will generate a stop condition for pagination.", - title="Whether the target API is formatted as a data feed", + description='A data feed API is an API that does not allow filtering and paginates the content from the most recent to the least recent. Given this, the CDK needs to know when to stop paginating and this field will generate a stop condition for pagination.', + title='Whether the target API is formatted as a data feed', ) lookback_window: Optional[str] = Field( None, - description="Time interval before the start_datetime to read data for, e.g. P1M for looking back one month.", - examples=["P1D", "P{{ config['lookback_days'] }}D"], - title="Lookback Window", + description='Time interval before the start_datetime to read data for, e.g. P1M for looking back one month.', + examples=['P1D', "P{{ config['lookback_days'] }}D"], + title='Lookback Window', ) partition_field_end: Optional[str] = Field( None, - description="Name of the partition start time field.", - examples=["ending_time"], - title="Partition Field End", + description='Name of the partition start time field.', + examples=['ending_time'], + title='Partition Field End', ) partition_field_start: Optional[str] = Field( None, - description="Name of the partition end time field.", - examples=["starting_time"], - title="Partition Field Start", + description='Name of the partition end time field.', + examples=['starting_time'], + title='Partition Field Start', ) start_time_option: Optional[RequestOption] = Field( None, - description="Optionally configures how the start datetime will be sent in requests to the source API.", - title="Inject Start Time Into Outgoing HTTP Request", + description='Optionally configures how the start datetime will be sent in requests to the source API.', + title='Inject Start Time Into Outgoing HTTP Request', ) step: Optional[str] = Field( None, - description="The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.", - examples=["P1W", "{{ config['step_increment'] }}"], - title="Step", + description='The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.', + examples=['P1W', "{{ config['step_increment'] }}"], + title='Step', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class DefaultErrorHandler(BaseModel): - type: Literal["DefaultErrorHandler"] + type: Literal['DefaultErrorHandler'] backoff_strategies: Optional[ List[ Union[ @@ -915,142 +919,144 @@ class DefaultErrorHandler(BaseModel): ] ] = Field( None, - description="List of backoff strategies to use to determine how long to wait before retrying a retryable request.", - title="Backoff Strategies", + description='List of backoff strategies to use to determine how long to wait before retrying a retryable request.', + title='Backoff Strategies', ) max_retries: Optional[int] = Field( 5, - description="The maximum number of time to retry a retryable request before giving up and failing.", + description='The maximum number of time to retry a retryable request before giving up and failing.', examples=[5, 0, 10], - title="Max Retry Count", + title='Max Retry Count', ) response_filters: Optional[List[HttpResponseFilter]] = Field( None, description="List of response filters to iterate on when deciding how to handle an error. When using an array of multiple filters, the filters will be applied sequentially and the response will be selected if it matches any of the filter's predicate.", - title="Response Filters", + title='Response Filters', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class DefaultPaginator(BaseModel): - type: Literal["DefaultPaginator"] - pagination_strategy: Union[CursorPagination, CustomPaginationStrategy, OffsetIncrement, PageIncrement] = Field( + type: Literal['DefaultPaginator'] + pagination_strategy: Union[ + CursorPagination, CustomPaginationStrategy, OffsetIncrement, PageIncrement + ] = Field( ..., - description="Strategy defining how records are paginated.", - title="Pagination Strategy", + description='Strategy defining how records are paginated.', + title='Pagination Strategy', ) decoder: Optional[JsonDecoder] = Field( None, - description="Component decoding the response so records can be extracted.", - title="Decoder", + description='Component decoding the response so records can be extracted.', + title='Decoder', ) page_size_option: Optional[RequestOption] = None page_token_option: Optional[Union[RequestOption, RequestPath]] = None - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class DpathExtractor(BaseModel): - type: Literal["DpathExtractor"] + type: Literal['DpathExtractor'] field_path: List[str] = Field( ..., description='List of potentially nested fields describing the full path of the field to extract. Use "*" to extract all values from an array. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/record-selector).', examples=[ - ["data"], - ["data", "records"], - ["data", "{{ parameters.name }}"], - ["data", "*", "record"], + ['data'], + ['data', 'records'], + ['data', '{{ parameters.name }}'], + ['data', '*', 'record'], ], - title="Field Path", + title='Field Path', ) decoder: Optional[JsonDecoder] = Field( None, - description="Component decoding the response so records can be extracted.", - title="Decoder", + description='Component decoding the response so records can be extracted.', + title='Decoder', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class SessionTokenRequestApiKeyAuthenticator(BaseModel): - type: Literal["ApiKey"] + type: Literal['ApiKey'] inject_into: RequestOption = Field( ..., - description="Configure how the API Key will be sent in requests to the source API.", + description='Configure how the API Key will be sent in requests to the source API.', examples=[ - {"inject_into": "header", "field_name": "Authorization"}, - {"inject_into": "request_parameter", "field_name": "authKey"}, + {'inject_into': 'header', 'field_name': 'Authorization'}, + {'inject_into': 'request_parameter', 'field_name': 'authKey'}, ], - title="Inject API Key Into Outgoing HTTP Request", + title='Inject API Key Into Outgoing HTTP Request', ) class ListPartitionRouter(BaseModel): - type: Literal["ListPartitionRouter"] + type: Literal['ListPartitionRouter'] cursor_field: str = Field( ..., description='While iterating over list values, the name of field used to reference a list value. The partition value can be accessed with string interpolation. e.g. "{{ stream_partition[\'my_key\'] }}" where "my_key" is the value of the cursor_field.', - examples=["section", "{{ config['section_key'] }}"], - title="Current Partition Value Identifier", + examples=['section', "{{ config['section_key'] }}"], + title='Current Partition Value Identifier', ) values: Union[str, List[str]] = Field( ..., - description="The list of attributes being iterated over and used as input for the requests made to the source API.", - examples=[["section_a", "section_b", "section_c"], "{{ config['sections'] }}"], - title="Partition Values", + description='The list of attributes being iterated over and used as input for the requests made to the source API.', + examples=[['section_a', 'section_b', 'section_c'], "{{ config['sections'] }}"], + title='Partition Values', ) request_option: Optional[RequestOption] = Field( None, - description="A request option describing where the list value should be injected into and under what field name if applicable.", - title="Inject Partition Value Into Outgoing HTTP Request", + description='A request option describing where the list value should be injected into and under what field name if applicable.', + title='Inject Partition Value Into Outgoing HTTP Request', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class RecordSelector(BaseModel): - type: Literal["RecordSelector"] + type: Literal['RecordSelector'] extractor: Union[CustomRecordExtractor, DpathExtractor] record_filter: Optional[RecordFilter] = Field( None, - description="Responsible for filtering records to be emitted by the Source.", - title="Record Filter", + description='Responsible for filtering records to be emitted by the Source.', + title='Record Filter', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class Spec(BaseModel): - type: Literal["Spec"] + type: Literal['Spec'] connection_specification: Dict[str, Any] = Field( ..., - description="A connection specification describing how a the connector can be configured.", - title="Connection Specification", + description='A connection specification describing how a the connector can be configured.', + title='Connection Specification', ) documentation_url: Optional[str] = Field( None, description="URL of the connector's documentation page.", - examples=["https://docs.airbyte.com/integrations/sources/dremio"], - title="Documentation URL", + examples=['https://docs.airbyte.com/integrations/sources/dremio'], + title='Documentation URL', ) advanced_auth: Optional[AuthFlow] = Field( None, - description="Advanced specification for configuring the authentication flow.", - title="Advanced Auth", + description='Advanced specification for configuring the authentication flow.', + title='Advanced Auth', ) class CompositeErrorHandler(BaseModel): - type: Literal["CompositeErrorHandler"] + type: Literal['CompositeErrorHandler'] error_handlers: List[Union[CompositeErrorHandler, DefaultErrorHandler]] = Field( ..., - description="List of error handlers to iterate on to determine how to handle a failed response.", - title="Error Handlers", + description='List of error handlers to iterate on to determine how to handle a failed response.', + title='Error Handlers', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class DeclarativeSource(BaseModel): class Config: extra = Extra.forbid - type: Literal["DeclarativeSource"] + type: Literal['DeclarativeSource'] check: CheckStream streams: List[DeclarativeStream] version: str @@ -1059,7 +1065,7 @@ class Config: spec: Optional[Spec] = None metadata: Optional[Dict[str, Any]] = Field( None, - description="For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.", + description='For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.', ) @@ -1067,91 +1073,101 @@ class DeclarativeStream(BaseModel): class Config: extra = Extra.allow - type: Literal["DeclarativeStream"] + type: Literal['DeclarativeStream'] retriever: Union[CustomRetriever, SimpleRetriever] = Field( ..., - description="Component used to coordinate how records are extracted across stream slices and request pages.", - title="Retriever", + description='Component used to coordinate how records are extracted across stream slices and request pages.', + title='Retriever', ) - incremental_sync: Optional[Union[CustomIncrementalSync, DatetimeBasedCursor]] = Field( + incremental_sync: Optional[ + Union[CustomIncrementalSync, DatetimeBasedCursor] + ] = Field( None, - description="Component used to fetch data incrementally based on a time field in the data.", - title="Incremental Sync", + description='Component used to fetch data incrementally based on a time field in the data.', + title='Incremental Sync', + ) + name: Optional[str] = Field( + '', description='The stream name.', example=['Users'], title='Name' + ) + primary_key: Optional[PrimaryKey] = Field( + '', description='The primary key of the stream.', title='Primary Key' ) - name: Optional[str] = Field("", description="The stream name.", example=["Users"], title="Name") - primary_key: Optional[PrimaryKey] = Field("", description="The primary key of the stream.", title="Primary Key") schema_loader: Optional[Union[InlineSchemaLoader, JsonFileSchemaLoader]] = Field( None, - description="Component used to retrieve the schema for the current stream.", - title="Schema Loader", + description='Component used to retrieve the schema for the current stream.', + title='Schema Loader', ) - transformations: Optional[List[Union[AddFields, CustomTransformation, RemoveFields]]] = Field( + transformations: Optional[ + List[Union[AddFields, CustomTransformation, RemoveFields]] + ] = Field( None, - description="A list of transformations to be applied to each output record.", - title="Transformations", + description='A list of transformations to be applied to each output record.', + title='Transformations', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class SessionTokenAuthenticator(BaseModel): - type: Literal["SessionTokenAuthenticator"] + type: Literal['SessionTokenAuthenticator'] login_requester: HttpRequester = Field( ..., - description="Description of the request to perform to obtain a session token to perform data requests. The response body is expected to be a JSON object with a session token property.", + description='Description of the request to perform to obtain a session token to perform data requests. The response body is expected to be a JSON object with a session token property.', examples=[ { - "type": "HttpRequester", - "url_base": "https://my_api.com", - "path": "/login", - "authenticator": { - "type": "BasicHttpAuthenticator", - "username": "{{ config.username }}", - "password": "{{ config.password }}", + 'type': 'HttpRequester', + 'url_base': 'https://my_api.com', + 'path': '/login', + 'authenticator': { + 'type': 'BasicHttpAuthenticator', + 'username': '{{ config.username }}', + 'password': '{{ config.password }}', }, } ], - title="Login Requester", + title='Login Requester', ) session_token_path: List[str] = Field( ..., - description="The path in the response body returned from the login requester to the session token.", - examples=[["access_token"], ["result", "token"]], - title="Session Token Path", + description='The path in the response body returned from the login requester to the session token.', + examples=[['access_token'], ['result', 'token']], + title='Session Token Path', ) expiration_duration: Optional[str] = Field( None, - description="The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.", - examples=["PT1H", "P1D"], - title="Expiration Duration", + description='The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.', + examples=['PT1H', 'P1D'], + title='Expiration Duration', ) - request_authentication: Union[SessionTokenRequestApiKeyAuthenticator, SessionTokenRequestBearerAuthenticator] = Field( + request_authentication: Union[ + SessionTokenRequestApiKeyAuthenticator, SessionTokenRequestBearerAuthenticator + ] = Field( ..., - description="Authentication method to use for requests sent to the API, specifying how to inject the session token.", - title="Data Request Authentication", + description='Authentication method to use for requests sent to the API, specifying how to inject the session token.', + title='Data Request Authentication', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class HttpRequester(BaseModel): - type: Literal["HttpRequester"] + type: Literal['HttpRequester'] url_base: str = Field( ..., - description="Base URL of the API source. Do not put sensitive information (e.g. API tokens) into this field - Use the Authentication component for this.", + description='Base URL of the API source. Do not put sensitive information (e.g. API tokens) into this field - Use the Authentication component for this.', examples=[ - "https://connect.squareup.com/v2", + 'https://connect.squareup.com/v2', "{{ config['base_url'] or 'https://app.posthog.com'}}/api/", ], - title="API Base URL", + title='API Base URL', ) path: str = Field( ..., - description="Path the specific API endpoint that this stream represents. Do not put sensitive information (e.g. API tokens) into this field - Use the Authentication component for this.", + description='Path the specific API endpoint that this stream represents. Do not put sensitive information (e.g. API tokens) into this field - Use the Authentication component for this.', examples=[ - "/products", + '/products', "/quotes/{{ stream_partition['id'] }}/quote_line_groups", "/trades/{{ config['symbol_id'] }}/history", ], - title="URL Path", + title='URL Path', ) authenticator: Optional[ Union[ @@ -1166,96 +1182,101 @@ class HttpRequester(BaseModel): ] ] = Field( None, - description="Authentication method to use for requests sent to the API.", - title="Authenticator", + description='Authentication method to use for requests sent to the API.', + title='Authenticator', ) - error_handler: Optional[Union[DefaultErrorHandler, CustomErrorHandler, CompositeErrorHandler]] = Field( + error_handler: Optional[ + Union[DefaultErrorHandler, CustomErrorHandler, CompositeErrorHandler] + ] = Field( None, - description="Error handler component that defines how to handle errors.", - title="Error Handler", + description='Error handler component that defines how to handle errors.', + title='Error Handler', ) http_method: Optional[Union[str, HttpMethodEnum]] = Field( - "GET", - description="The HTTP method used to fetch data from the source (can be GET or POST).", - examples=["GET", "POST"], - title="HTTP Method", + 'GET', + description='The HTTP method used to fetch data from the source (can be GET or POST).', + examples=['GET', 'POST'], + title='HTTP Method', ) request_body_data: Optional[Union[str, Dict[str, str]]] = Field( None, - description="Specifies how to populate the body of the request with a non-JSON payload. Plain text will be sent as is, whereas objects will be converted to a urlencoded form.", + description='Specifies how to populate the body of the request with a non-JSON payload. Plain text will be sent as is, whereas objects will be converted to a urlencoded form.', examples=[ '[{"clause": {"type": "timestamp", "operator": 10, "parameters":\n [{"value": {{ stream_interval[\'start_time\'] | int * 1000 }} }]\n }, "orderBy": 1, "columnName": "Timestamp"}]/\n' ], - title="Request Body Payload (Non-JSON)", + title='Request Body Payload (Non-JSON)', ) request_body_json: Optional[Union[str, Dict[str, Any]]] = Field( None, - description="Specifies how to populate the body of the request with a JSON payload. Can contain nested objects.", + description='Specifies how to populate the body of the request with a JSON payload. Can contain nested objects.', examples=[ - {"sort_order": "ASC", "sort_field": "CREATED_AT"}, - {"key": "{{ config['value'] }}"}, - {"sort": {"field": "updated_at", "order": "ascending"}}, + {'sort_order': 'ASC', 'sort_field': 'CREATED_AT'}, + {'key': "{{ config['value'] }}"}, + {'sort': {'field': 'updated_at', 'order': 'ascending'}}, ], - title="Request Body JSON Payload", + title='Request Body JSON Payload', ) request_headers: Optional[Union[str, Dict[str, str]]] = Field( None, - description="Return any non-auth headers. Authentication headers will overwrite any overlapping headers returned from this method.", - examples=[{"Output-Format": "JSON"}, {"Version": "{{ config['version'] }}"}], - title="Request Headers", + description='Return any non-auth headers. Authentication headers will overwrite any overlapping headers returned from this method.', + examples=[{'Output-Format': 'JSON'}, {'Version': "{{ config['version'] }}"}], + title='Request Headers', ) request_parameters: Optional[Union[str, Dict[str, str]]] = Field( None, - description="Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.", + description='Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.', examples=[ - {"unit": "day"}, + {'unit': 'day'}, { - "query": 'last_event_time BETWEEN TIMESTAMP "{{ stream_interval.start_time }}" AND TIMESTAMP "{{ stream_interval.end_time }}"' + 'query': 'last_event_time BETWEEN TIMESTAMP "{{ stream_interval.start_time }}" AND TIMESTAMP "{{ stream_interval.end_time }}"' }, - {"searchIn": "{{ ','.join(config.get('search_in', [])) }}"}, - {"sort_by[asc]": "updated_at"}, + {'searchIn': "{{ ','.join(config.get('search_in', [])) }}"}, + {'sort_by[asc]': 'updated_at'}, ], - title="Query Parameters", + title='Query Parameters', ) - use_cache: bool = Field( + use_cache: Optional[bool] = Field( False, - title="Use Cache", + description='Enables stream requests caching. This field is automatically set by the CDK.', + title='Use Cache', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class ParentStreamConfig(BaseModel): - type: Literal["ParentStreamConfig"] + type: Literal['ParentStreamConfig'] parent_key: str = Field( ..., - description="The primary key of records from the parent stream that will be used during the retrieval of records for the current substream. This parent identifier field is typically a characteristic of the child records being extracted from the source API.", - examples=["id", "{{ config['parent_record_id'] }}"], - title="Parent Key", + description='The primary key of records from the parent stream that will be used during the retrieval of records for the current substream. This parent identifier field is typically a characteristic of the child records being extracted from the source API.', + examples=['id', "{{ config['parent_record_id'] }}"], + title='Parent Key', + ) + stream: DeclarativeStream = Field( + ..., description='Reference to the parent stream.', title='Parent Stream' ) - stream: DeclarativeStream = Field(..., description="Reference to the parent stream.", title="Parent Stream") partition_field: str = Field( ..., - description="While iterating over parent records during a sync, the parent_key value can be referenced by using this field.", - examples=["parent_id", "{{ config['parent_partition_field'] }}"], - title="Current Parent Key Value Identifier", + description='While iterating over parent records during a sync, the parent_key value can be referenced by using this field.', + examples=['parent_id', "{{ config['parent_partition_field'] }}"], + title='Current Parent Key Value Identifier', ) request_option: Optional[RequestOption] = Field( None, - description="A request option describing where the parent key value should be injected into and under what field name if applicable.", - title="Request Option", + description='A request option describing where the parent key value should be injected into and under what field name if applicable.', + title='Request Option', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class SimpleRetriever(BaseModel): - type: Literal["SimpleRetriever"] + type: Literal['SimpleRetriever'] record_selector: RecordSelector = Field( ..., - description="Component that describes how to extract records from a HTTP response.", + description='Component that describes how to extract records from a HTTP response.', ) requester: Union[CustomRequester, HttpRequester] = Field( ..., - description="Requester component that describes how to prepare HTTP requests to send to the source API.", + description='Requester component that describes how to prepare HTTP requests to send to the source API.', ) paginator: Optional[Union[DefaultPaginator, NoPagination]] = Field( None, @@ -1266,24 +1287,28 @@ class SimpleRetriever(BaseModel): CustomPartitionRouter, ListPartitionRouter, SubstreamPartitionRouter, - List[Union[CustomPartitionRouter, ListPartitionRouter, SubstreamPartitionRouter]], + List[ + Union[ + CustomPartitionRouter, ListPartitionRouter, SubstreamPartitionRouter + ] + ], ] ] = Field( [], - description="PartitionRouter component that describes how to partition the stream, enabling incremental syncs and checkpointing.", - title="Partition Router", + description='PartitionRouter component that describes how to partition the stream, enabling incremental syncs and checkpointing.', + title='Partition Router', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') class SubstreamPartitionRouter(BaseModel): - type: Literal["SubstreamPartitionRouter"] + type: Literal['SubstreamPartitionRouter'] parent_stream_configs: List[ParentStreamConfig] = Field( ..., - description="Specifies which parent streams are being iterated over and how parent records should be used to partition the child stream data set.", - title="Parent Stream Configs", + description='Specifies which parent streams are being iterated over and how parent records should be used to partition the child stream data set.', + title='Parent Stream Configs', ) - parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") + parameters: Optional[Dict[str, Any]] = Field(None, alias='$parameters') CompositeErrorHandler.update_forward_refs() From 1dfa4cdbb2a8c827ab74d87eed53c66fa08a0c9a Mon Sep 17 00:00:00 2001 From: girarda Date: Fri, 8 Dec 2023 17:24:36 +0000 Subject: [PATCH 04/22] =?UTF-8?q?=F0=9F=A4=96=20Bump=20minor=20version=20o?= =?UTF-8?q?f=20Python=20CDK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- airbyte-cdk/python/.bumpversion.cfg | 2 +- airbyte-cdk/python/CHANGELOG.md | 3 +++ airbyte-cdk/python/Dockerfile | 4 ++-- airbyte-cdk/python/setup.py | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg index 555f3aff330ee..f7dabb14b15e5 100644 --- a/airbyte-cdk/python/.bumpversion.cfg +++ b/airbyte-cdk/python/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.56.1 +current_version = 0.57.0 commit = False [bumpversion:file:setup.py] diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md index 9be884afb8156..73e3f6213e6df 100644 --- a/airbyte-cdk/python/CHANGELOG.md +++ b/airbyte-cdk/python/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.57.0 +low-code: cache requests sent for parent streams + ## 0.56.1 no-op to verify pypi publish flow diff --git a/airbyte-cdk/python/Dockerfile b/airbyte-cdk/python/Dockerfile index abec641201ba0..1fdab7b90e0f7 100644 --- a/airbyte-cdk/python/Dockerfile +++ b/airbyte-cdk/python/Dockerfile @@ -10,7 +10,7 @@ RUN apk --no-cache upgrade \ && apk --no-cache add tzdata build-base # install airbyte-cdk -RUN pip install --prefix=/install airbyte-cdk==0.56.1 +RUN pip install --prefix=/install airbyte-cdk==0.57.0 # build a clean environment FROM base @@ -32,5 +32,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] # needs to be the same as CDK -LABEL io.airbyte.version=0.56.1 +LABEL io.airbyte.version=0.57.0 LABEL io.airbyte.name=airbyte/source-declarative-manifest diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py index 3798671648c6e..0d84508f00d32 100644 --- a/airbyte-cdk/python/setup.py +++ b/airbyte-cdk/python/setup.py @@ -36,7 +36,7 @@ name="airbyte-cdk", # The version of the airbyte-cdk package is used at runtime to validate manifests. That validation must be # updated if our semver format changes such as using release candidate versions. - version="0.56.1", + version="0.57.0", description="A framework for writing Airbyte Connectors.", long_description=README, long_description_content_type="text/markdown", From a98e05159f5095a4da0ed438a351b7e674c77ace Mon Sep 17 00:00:00 2001 From: Ella Rohm-Ensing Date: Fri, 8 Dec 2023 12:17:10 -0600 Subject: [PATCH 05/22] re-organize metadata test fixtures (#33134) --- .../repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml | 0 .../repo_nonexistent/metadata_main_repo_does_not_exist.yaml | 0 .../metadata_normalization_repo_does_not_exist.yaml | 0 .../repo_nonexistent/metadata_oss_repo_does_not_exist.yaml | 0 .../metadata_breaking_change_image_tag_does_not_exist.yaml | 0 .../tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml | 0 .../tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml | 0 .../metadata_normalization_image_tag_does_not_exist.yaml | 0 .../tag_nonexistent/metadata_oss_repo_does_not_exist.yaml | 0 .../metadata_main_image_tag_does_not_exist_but_is_overrode.yaml | 0 .../metadata_main_repo_does_not_exist_but_is_overrode.yaml | 0 .../metadata_all_images_exist.yaml | 0 .../metadata_all_images_exist_no_overrides.yaml | 0 ...metadata_all_images_exist_no_overrides_with_normalization.yaml | 0 .../metadata_base_image_exists.yaml | 0 .../metadata_base_image_digest_does_not_exists.yaml | 0 .../metadata_base_image_name_does_not_exists.yaml | 0 .../metadata_base_image_tag_does_not_exists.yaml | 0 .../metadata_build_base_image_wrong_type.yaml | 0 .../metadata_invalid_base_image_no_sha.yml | 0 .../metadata_invalid_internal_fields.yaml | 0 .../metadata_unknown_support_level.yaml | 0 .../overrides_invalid}/metadata_registry_no_id_override.yaml | 0 .../overrides_invalid}/metadata_registry_no_type_override.yaml | 0 .../overrides_invalid}/metadata_registry_unknown_override.yaml | 0 .../metadata_breaking_change_versions_under_releases.yml | 0 .../metadata_breaking_changes_not_under_releases.yml | 0 .../metadata_invalid_breaking_change_additional_property.yaml | 0 .../metadata_invalid_breaking_change_invalid_deadline.yaml | 0 .../metadata_invalid_breaking_change_no_deadline.yaml | 0 .../metadata_invalid_breaking_change_no_message.yaml | 0 .../metadata_invalid_breaking_change_version.yaml | 0 ...tadata_major_version_no_breaking_change_entry_for_version.yaml | 0 .../releases_invalid}/metadata_major_version_no_releases.yaml | 0 .../tags_invalid}/metadata_empty_tags.yaml | 0 .../tags_invalid}/metadata_invalid_tag_format.yaml | 0 .../tags_invalid}/metadata_no_lang_tag.yaml | 0 .../metadata_missing_connector_type.yaml | 0 .../metadata_missing_definition_id.yaml | 0 .../metadata_missing_docker_image_tag.yaml | 0 .../metadata_missing_docker_repo.yaml | 0 .../metadata_missing_tags.yaml} | 0 .../metadata_missing_version.yaml | 0 .../{ => with_optional_field}/metadata_build_base_image.yaml | 0 .../valid/{ => with_optional_field}/metadata_internal_fields.yaml | 0 .../metadata_registry_allowed_hosts.yaml | 0 .../metadata_registry_required_resources.yaml | 0 .../valid/{ => with_optional_field}/metadata_support_level.yaml | 0 .../with_overrides}/metadata_registry_complex_override.yaml | 0 .../with_overrides}/metadata_registry_enabled.yaml | 0 .../with_releases}/metadata_breaking_change_prerelease.yaml | 0 .../with_releases}/metadata_breaking_changes.yaml | 0 .../metadata_breaking_changes_with_migration_doc_url.yaml | 0 .../metadata_major_version_with_breaking_change_for_version.yaml | 0 54 files changed, 0 insertions(+), 0 deletions(-) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/repo_nonexistent/metadata_main_repo_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/repo_nonexistent/metadata_normalization_repo_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/repo_nonexistent/metadata_oss_repo_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/tag_nonexistent/metadata_breaking_change_image_tag_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/tag_nonexistent/metadata_normalization_image_tag_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/tag_nonexistent/metadata_oss_repo_does_not_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/valid_overrides_but_image_nonexistent/metadata_main_image_tag_does_not_exist_but_is_overrode.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/{ => referenced_image_not_in_dockerhub}/valid_overrides_but_image_nonexistent/metadata_main_repo_does_not_exist_but_is_overrode.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/{ => referenced_image_in_dockerhub}/metadata_all_images_exist.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/{ => referenced_image_in_dockerhub}/metadata_all_images_exist_no_overrides.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/{ => referenced_image_in_dockerhub}/metadata_all_images_exist_no_overrides_with_normalization.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/{ => referenced_image_in_dockerhub}/metadata_base_image_exists.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{base_image_nonexistent => optional_top_level_property_invalid/connector_build_options_invalid}/metadata_base_image_digest_does_not_exists.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{base_image_nonexistent => optional_top_level_property_invalid/connector_build_options_invalid}/metadata_base_image_name_does_not_exists.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{base_image_nonexistent => optional_top_level_property_invalid/connector_build_options_invalid}/metadata_base_image_tag_does_not_exists.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/connector_build_options_invalid}/metadata_build_base_image_wrong_type.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/connector_build_options_invalid}/metadata_invalid_base_image_no_sha.yml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid}/metadata_invalid_internal_fields.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid}/metadata_unknown_support_level.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/overrides_invalid}/metadata_registry_no_id_override.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/overrides_invalid}/metadata_registry_no_type_override.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/overrides_invalid}/metadata_registry_unknown_override.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_breaking_change_versions_under_releases.yml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_breaking_changes_not_under_releases.yml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_invalid_breaking_change_additional_property.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_invalid_breaking_change_invalid_deadline.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_invalid_breaking_change_no_deadline.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_invalid_breaking_change_no_message.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_invalid_breaking_change_version.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_major_version_no_breaking_change_entry_for_version.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => optional_top_level_property_invalid/releases_invalid}/metadata_major_version_no_releases.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_invalid/tags_invalid}/metadata_empty_tags.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_invalid/tags_invalid}/metadata_invalid_tag_format.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_invalid/tags_invalid}/metadata_no_lang_tag.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_missing}/metadata_missing_connector_type.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_missing}/metadata_missing_definition_id.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_missing}/metadata_missing_docker_image_tag.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_missing}/metadata_missing_docker_repo.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{metadata_no_tags.yaml => required_top_level_property_missing/metadata_missing_tags.yaml} (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/{ => required_top_level_property_missing}/metadata_missing_version.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field}/metadata_build_base_image.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field}/metadata_internal_fields.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field}/metadata_registry_allowed_hosts.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field}/metadata_registry_required_resources.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field}/metadata_support_level.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_overrides}/metadata_registry_complex_override.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_overrides}/metadata_registry_enabled.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_releases}/metadata_breaking_change_prerelease.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_releases}/metadata_breaking_changes.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_releases}/metadata_breaking_changes_with_migration_doc_url.yaml (100%) rename airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/{ => with_optional_field/with_releases}/metadata_major_version_with_breaking_change_for_version.yaml (100%) diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_cloud_repo_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_main_repo_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_main_repo_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_main_repo_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_main_repo_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_normalization_repo_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_normalization_repo_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_normalization_repo_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_normalization_repo_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_oss_repo_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_oss_repo_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/repo_nonexistent/metadata_oss_repo_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/repo_nonexistent/metadata_oss_repo_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_breaking_change_image_tag_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_breaking_change_image_tag_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_breaking_change_image_tag_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_breaking_change_image_tag_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_cloud_image_tag_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_main_image_tag_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_normalization_image_tag_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_normalization_image_tag_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_normalization_image_tag_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_normalization_image_tag_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_oss_repo_does_not_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_oss_repo_does_not_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/tag_nonexistent/metadata_oss_repo_does_not_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/tag_nonexistent/metadata_oss_repo_does_not_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/valid_overrides_but_image_nonexistent/metadata_main_image_tag_does_not_exist_but_is_overrode.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/valid_overrides_but_image_nonexistent/metadata_main_image_tag_does_not_exist_but_is_overrode.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/valid_overrides_but_image_nonexistent/metadata_main_image_tag_does_not_exist_but_is_overrode.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/valid_overrides_but_image_nonexistent/metadata_main_image_tag_does_not_exist_but_is_overrode.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/valid_overrides_but_image_nonexistent/metadata_main_repo_does_not_exist_but_is_overrode.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/valid_overrides_but_image_nonexistent/metadata_main_repo_does_not_exist_but_is_overrode.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/valid_overrides_but_image_nonexistent/metadata_main_repo_does_not_exist_but_is_overrode.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/invalid/referenced_image_not_in_dockerhub/valid_overrides_but_image_nonexistent/metadata_main_repo_does_not_exist_but_is_overrode.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist_no_overrides.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist_no_overrides.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist_no_overrides.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist_no_overrides.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist_no_overrides_with_normalization.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist_no_overrides_with_normalization.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_all_images_exist_no_overrides_with_normalization.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_all_images_exist_no_overrides_with_normalization.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_base_image_exists.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_base_image_exists.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/metadata_base_image_exists.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_upload/valid/referenced_image_in_dockerhub/metadata_base_image_exists.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_digest_does_not_exists.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_digest_does_not_exists.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_digest_does_not_exists.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_digest_does_not_exists.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_name_does_not_exists.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_name_does_not_exists.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_name_does_not_exists.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_name_does_not_exists.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_tag_does_not_exists.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_tag_does_not_exists.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/base_image_nonexistent/metadata_base_image_tag_does_not_exists.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_base_image_tag_does_not_exists.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_build_base_image_wrong_type.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_build_base_image_wrong_type.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_build_base_image_wrong_type.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_build_base_image_wrong_type.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_base_image_no_sha.yml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_invalid_base_image_no_sha.yml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_base_image_no_sha.yml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/connector_build_options_invalid/metadata_invalid_base_image_no_sha.yml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_internal_fields.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/metadata_invalid_internal_fields.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_internal_fields.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/metadata_invalid_internal_fields.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_unknown_support_level.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/metadata_unknown_support_level.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_unknown_support_level.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/metadata_unknown_support_level.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_no_id_override.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_no_id_override.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_no_id_override.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_no_id_override.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_no_type_override.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_no_type_override.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_no_type_override.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_no_type_override.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_unknown_override.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_unknown_override.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_registry_unknown_override.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/overrides_invalid/metadata_registry_unknown_override.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_breaking_change_versions_under_releases.yml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_breaking_change_versions_under_releases.yml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_breaking_change_versions_under_releases.yml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_breaking_change_versions_under_releases.yml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_breaking_changes_not_under_releases.yml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_breaking_changes_not_under_releases.yml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_breaking_changes_not_under_releases.yml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_breaking_changes_not_under_releases.yml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_additional_property.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_additional_property.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_additional_property.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_additional_property.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_invalid_deadline.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_invalid_deadline.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_invalid_deadline.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_invalid_deadline.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_no_deadline.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_no_deadline.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_no_deadline.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_no_deadline.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_no_message.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_no_message.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_no_message.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_no_message.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_version.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_version.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_breaking_change_version.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_invalid_breaking_change_version.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_major_version_no_breaking_change_entry_for_version.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_major_version_no_breaking_change_entry_for_version.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_major_version_no_breaking_change_entry_for_version.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_major_version_no_breaking_change_entry_for_version.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_major_version_no_releases.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_major_version_no_releases.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_major_version_no_releases.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/optional_top_level_property_invalid/releases_invalid/metadata_major_version_no_releases.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_empty_tags.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_empty_tags.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_empty_tags.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_empty_tags.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_tag_format.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_invalid_tag_format.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_invalid_tag_format.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_invalid_tag_format.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_no_lang_tag.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_no_lang_tag.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_no_lang_tag.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_invalid/tags_invalid/metadata_no_lang_tag.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_connector_type.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_connector_type.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_connector_type.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_connector_type.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_definition_id.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_definition_id.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_definition_id.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_definition_id.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_docker_image_tag.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_docker_image_tag.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_docker_image_tag.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_docker_image_tag.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_docker_repo.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_docker_repo.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_docker_repo.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_docker_repo.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_no_tags.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_tags.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_no_tags.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_tags.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_version.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_version.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/metadata_missing_version.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/invalid/required_top_level_property_missing/metadata_missing_version.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_build_base_image.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_build_base_image.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_build_base_image.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_build_base_image.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_internal_fields.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_internal_fields.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_internal_fields.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_internal_fields.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_allowed_hosts.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_registry_allowed_hosts.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_allowed_hosts.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_registry_allowed_hosts.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_required_resources.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_registry_required_resources.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_required_resources.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_registry_required_resources.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_support_level.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_support_level.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_support_level.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/metadata_support_level.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_complex_override.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_overrides/metadata_registry_complex_override.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_complex_override.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_overrides/metadata_registry_complex_override.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_enabled.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_overrides/metadata_registry_enabled.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_registry_enabled.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_overrides/metadata_registry_enabled.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_change_prerelease.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_change_prerelease.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_change_prerelease.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_change_prerelease.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_changes.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_changes.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_changes.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_changes.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_changes_with_migration_doc_url.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_changes_with_migration_doc_url.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_breaking_changes_with_migration_doc_url.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_breaking_changes_with_migration_doc_url.yaml diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_major_version_with_breaking_change_for_version.yaml b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_major_version_with_breaking_change_for_version.yaml similarity index 100% rename from airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/metadata_major_version_with_breaking_change_for_version.yaml rename to airbyte-ci/connectors/metadata_service/lib/tests/fixtures/metadata_validate/valid/with_optional_field/with_releases/metadata_major_version_with_breaking_change_for_version.yaml From ec88953eeff14c47f278d2aaf690f3036ed6f9fe Mon Sep 17 00:00:00 2001 From: Marcos Marx Date: Fri, 8 Dec 2023 15:31:24 -0300 Subject: [PATCH 06/22] ISSUE_TEMPLATE: Update config.yml (#33258) --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 738bc46967958..12a69ca2c40ea 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,5 +2,5 @@ blank_issues_enabled: false contact_links: - name: Ask a question, get community support or request new features/connectors - url: https://github.com/apache/airflow/discussions/ + url: https://github.com/airbytehq/airbyte/discussions/ about: Use Github Discussion to request features/connectors or discuss ideas or issues. From eb35d92f804db3d7283de9c3fe91ab817464dc01 Mon Sep 17 00:00:00 2001 From: "Roman Yermilov [GL]" <86300758+roman-yermilov-gl@users.noreply.github.com> Date: Fri, 8 Dec 2023 20:03:35 +0100 Subject: [PATCH 07/22] Source Hubspot: fix the FieldAnchor closing tag (#33257) --- docs/integrations/sources/hubspot.md | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/integrations/sources/hubspot.md b/docs/integrations/sources/hubspot.md index 0441e79ec260a..504d3cec64c54 100644 --- a/docs/integrations/sources/hubspot.md +++ b/docs/integrations/sources/hubspot.md @@ -114,6 +114,29 @@ Next, you need to configure the appropriate scopes for the following streams. Pl `yyyy-mm-ddThh:mm:ssZ`. The data added on and after this date will be replicated. 6. Click **Set up source** and wait for the tests to complete. + + +### Experimental streams + +[Web Analytics](https://developers.hubspot.com/docs/api/events/web-analytics) streams may be enabled as an experimental feature but please note that they are based on API which is currently in beta and may change at some point of time or be unstable. + + + +### Custom CRM Objects + +Custom CRM Objects and Custom Web Analytics will appear as streams available for sync, alongside the standard objects listed above. + +If you set up your connections before April 15th, 2023 (on Airbyte Cloud) or before 0.8.0 (OSS) then you'll need to do some additional work to sync custom CRM objects. + +First you need to give the connector some additional permissions: + + +- **If you are using OAuth on Airbyte Cloud** go to the Hubspot source settings page in the Airbyte UI and re-authenticate via OAuth to allow Airbyte the permissions to access custom objects. + +- **If you are using OAuth on OSS or Private App auth** go into the Hubspot UI where you created your Private App or OAuth application and add the `crm.objects.custom.read` scope to your app's scopes. See HubSpot's instructions [here](https://developers.hubspot.com/docs/api/working-with-oauth#scopes). + +Then, go to the replication settings of your connection and click **refresh source schema** to pull in those new streams for syncing. + ## Supported sync modes @@ -176,29 +199,6 @@ The HubSpot source connector supports the following streams: - [LineItemsWebAnalytics](https://developers.hubspot.com/docs/api/events/web-analytics) \(Incremental\) - [ProductsWebAnalytics](https://developers.hubspot.com/docs/api/events/web-analytics) \(Incremental\) -### Custom CRM Objects - -Custom CRM Objects and Custom Web Analytics will appear as streams available for sync, alongside the standard objects listed above. - -If you set up your connections before April 15th, 2023 (on Airbyte Cloud) or before 0.8.0 (OSS) then you'll need to do some additional work to sync custom CRM objects. - -First you need to give the connector some additional permissions: - - -- **If you are using OAuth on Airbyte Cloud** go to the Hubspot source settings page in the Airbyte UI and re-authenticate via OAuth to allow Airbyte the permissions to access custom objects. - -- **If you are using OAuth on OSS or Private App auth** go into the Hubspot UI where you created your Private App or OAuth application and add the `crm.objects.custom.read` scope to your app's scopes. See HubSpot's instructions [here](https://developers.hubspot.com/docs/api/working-with-oauth#scopes). - -Then, go to the replication settings of your connection and click **refresh source schema** to pull in those new streams for syncing. - - - -### Experimental streams - -[Web Analytics](https://developers.hubspot.com/docs/api/events/web-analytics) streams may be enabled as an experimental feature but please note that they are based on API which is currently in beta and may change at some point of time or be unstable. - - - ### Notes on the `engagements` stream 1. Objects in the `engagements` stream can have one of the following types: `note`, `email`, `task`, `meeting`, `call`. Depending on the type of engagement, different properties are set for that object in the `engagements_metadata` table in the destination: From 8c592fec4dc63c7978ae09d98ff24a452b058414 Mon Sep 17 00:00:00 2001 From: Cynthia Yin Date: Fri, 8 Dec 2023 11:49:03 -0800 Subject: [PATCH 08/22] Destination BigQuery: bump version (follow-up) (#33259) --- .../connectors/destination-bigquery/metadata.yaml | 2 +- docs/integrations/destinations/bigquery.md | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/airbyte-integrations/connectors/destination-bigquery/metadata.yaml b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml index 27c00987db486..dd98de5f160a6 100644 --- a/airbyte-integrations/connectors/destination-bigquery/metadata.yaml +++ b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml @@ -5,7 +5,7 @@ data: connectorSubtype: database connectorType: destination definitionId: 22f6c74f-5699-40ff-833c-4a879ea40133 - dockerImageTag: 2.3.18 + dockerImageTag: 2.3.19 dockerRepository: airbyte/destination-bigquery documentationUrl: https://docs.airbyte.com/integrations/destinations/bigquery githubIssueLabel: destination-bigquery diff --git a/docs/integrations/destinations/bigquery.md b/docs/integrations/destinations/bigquery.md index f424b64afdc04..b693cd3317b3a 100644 --- a/docs/integrations/destinations/bigquery.md +++ b/docs/integrations/destinations/bigquery.md @@ -139,11 +139,12 @@ Now that you have set up the BigQuery destination connector, check out the follo ## Changelog | Version | Date | Pull Request | Subject | -| :------ | :--------- | :--------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 2.3.18 | 2023-12-04 | [33084](https://github.com/airbytehq/airbyte/pull/33084) | T&D SQL statements moved to debug log level | -| 2.3.17 | 2023-12-04 | [33078](https://github.com/airbytehq/airbyte/pull/33078) | Further increase gcs COPY timeout | +|:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 2.3.19 | 2023-12-07 | [\#32326](https://github.com/airbytehq/airbyte/pull/32326) | Update common T&D interfaces | +| 2.3.18 | 2023-12-04 | [\#33084](https://github.com/airbytehq/airbyte/pull/33084) | T&D SQL statements moved to debug log level | +| 2.3.17 | 2023-12-04 | [\#33078](https://github.com/airbytehq/airbyte/pull/33078) | Further increase gcs COPY timeout | | 2.3.16 | 2023-11-14 | [\#32526](https://github.com/airbytehq/airbyte/pull/32526) | Clean up memory manager logs. | -| 2.3.15 | 2023-11-13 | [\#32468](https://github.com/airbytehq/airbyte/pull/32468) | Further error grouping enhancments | +| 2.3.15 | 2023-11-13 | [\#32468](https://github.com/airbytehq/airbyte/pull/32468) | Further error grouping enhancements | | 2.3.14 | 2023-11-06 | [\#32234](https://github.com/airbytehq/airbyte/pull/32234) | Remove unused config option. | | 2.3.13 | 2023-11-08 | [\#32125](https://github.com/airbytehq/airbyte/pull/32125) | fix compiler warnings | | 2.3.12 | 2023-11-08 | [\#32309](https://github.com/airbytehq/airbyte/pull/32309) | Revert: Use Typed object for connection config | From 7a021a08706bc20c202831656a3e58af0aaf984a Mon Sep 17 00:00:00 2001 From: Evan Tahler Date: Fri, 8 Dec 2023 12:01:27 -0800 Subject: [PATCH 09/22] destination-s3: update configs with common defaults (#33264) --- .../connectors/destination-s3/metadata.yaml | 2 +- .../src/main/resources/spec.json | 194 +++++++++--------- docs/integrations/destinations/s3.md | 13 +- 3 files changed, 106 insertions(+), 103 deletions(-) diff --git a/airbyte-integrations/connectors/destination-s3/metadata.yaml b/airbyte-integrations/connectors/destination-s3/metadata.yaml index 869e5999920a5..c2e5ec3fd0225 100644 --- a/airbyte-integrations/connectors/destination-s3/metadata.yaml +++ b/airbyte-integrations/connectors/destination-s3/metadata.yaml @@ -2,7 +2,7 @@ data: connectorSubtype: file connectorType: destination definitionId: 4816b78f-1489-44c1-9060-4b19d5fa9362 - dockerImageTag: 0.5.4 + dockerImageTag: 0.5.5 dockerRepository: airbyte/destination-s3 githubIssueLabel: destination-s3 icon: s3.svg diff --git a/airbyte-integrations/connectors/destination-s3/src/main/resources/spec.json b/airbyte-integrations/connectors/destination-s3/src/main/resources/spec.json index b8c2ce2b5e255..a13b2d49bb84d 100644 --- a/airbyte-integrations/connectors/destination-s3/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/destination-s3/src/main/resources/spec.json @@ -20,6 +20,7 @@ "description": "The access key ID to access the S3 bucket. Airbyte requires Read and Write permissions to the given bucket. Read more here.", "title": "S3 Key ID", "airbyte_secret": true, + "always_show": true, "examples": ["A012345678910EXAMPLE"], "order": 0 }, @@ -28,6 +29,7 @@ "description": "The corresponding secret to the access key ID. Read more here", "title": "S3 Access Key", "airbyte_secret": true, + "always_show": true, "examples": ["a012345678910ABCDEFGH/AbCdEfGhEXAMPLEKEY"], "order": 1 }, @@ -85,6 +87,102 @@ "type": "object", "description": "Format of the data output. See here for more details", "oneOf": [ + { + "title": "CSV: Comma-Separated Values", + "required": ["format_type", "flattening"], + "properties": { + "format_type": { + "title": "Format Type", + "type": "string", + "enum": ["CSV"], + "default": "CSV" + }, + "flattening": { + "type": "string", + "title": "Flattening", + "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.", + "default": "No flattening", + "enum": ["No flattening", "Root level flattening"] + }, + "compression": { + "title": "Compression", + "type": "object", + "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").", + "oneOf": [ + { + "title": "No Compression", + "requires": ["compression_type"], + "properties": { + "compression_type": { + "type": "string", + "enum": ["No Compression"], + "default": "No Compression" + } + } + }, + { + "title": "GZIP", + "requires": ["compression_type"], + "properties": { + "compression_type": { + "type": "string", + "enum": ["GZIP"], + "default": "GZIP" + } + } + } + ] + } + } + }, + { + "title": "JSON Lines: Newline-delimited JSON", + "required": ["format_type"], + "properties": { + "format_type": { + "title": "Format Type", + "type": "string", + "enum": ["JSONL"], + "default": "JSONL" + }, + "flattening": { + "type": "string", + "title": "Flattening", + "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.", + "default": "No flattening", + "enum": ["No flattening", "Root level flattening"] + }, + "compression": { + "title": "Compression", + "type": "object", + "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").", + "oneOf": [ + { + "title": "No Compression", + "requires": "compression_type", + "properties": { + "compression_type": { + "type": "string", + "enum": ["No Compression"], + "default": "No Compression" + } + } + }, + { + "title": "GZIP", + "requires": "compression_type", + "properties": { + "compression_type": { + "type": "string", + "enum": ["GZIP"], + "default": "GZIP" + } + } + } + ] + } + } + }, { "title": "Avro: Apache Avro", "required": ["format_type", "compression_codec"], @@ -202,102 +300,6 @@ } } }, - { - "title": "CSV: Comma-Separated Values", - "required": ["format_type", "flattening"], - "properties": { - "format_type": { - "title": "Format Type", - "type": "string", - "enum": ["CSV"], - "default": "CSV" - }, - "flattening": { - "type": "string", - "title": "Flattening", - "description": "Whether the input json data should be normalized (flattened) in the output CSV. Please refer to docs for details.", - "default": "No flattening", - "enum": ["No flattening", "Root level flattening"] - }, - "compression": { - "title": "Compression", - "type": "object", - "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".csv.gz\").", - "oneOf": [ - { - "title": "No Compression", - "requires": ["compression_type"], - "properties": { - "compression_type": { - "type": "string", - "enum": ["No Compression"], - "default": "No Compression" - } - } - }, - { - "title": "GZIP", - "requires": ["compression_type"], - "properties": { - "compression_type": { - "type": "string", - "enum": ["GZIP"], - "default": "GZIP" - } - } - } - ] - } - } - }, - { - "title": "JSON Lines: Newline-delimited JSON", - "required": ["format_type"], - "properties": { - "format_type": { - "title": "Format Type", - "type": "string", - "enum": ["JSONL"], - "default": "JSONL" - }, - "flattening": { - "type": "string", - "title": "Flattening", - "description": "Whether the input json data should be normalized (flattened) in the output JSON Lines. Please refer to docs for details.", - "default": "No flattening", - "enum": ["No flattening", "Root level flattening"] - }, - "compression": { - "title": "Compression", - "type": "object", - "description": "Whether the output files should be compressed. If compression is selected, the output filename will have an extra extension (GZIP: \".jsonl.gz\").", - "oneOf": [ - { - "title": "No Compression", - "requires": "compression_type", - "properties": { - "compression_type": { - "type": "string", - "enum": ["No Compression"], - "default": "No Compression" - } - } - }, - { - "title": "GZIP", - "requires": "compression_type", - "properties": { - "compression_type": { - "type": "string", - "enum": ["GZIP"], - "default": "GZIP" - } - } - } - ] - } - } - }, { "title": "Parquet: Columnar Storage", "required": ["format_type"], diff --git a/docs/integrations/destinations/s3.md b/docs/integrations/destinations/s3.md index 81f796cae8833..240d5dc674b95 100644 --- a/docs/integrations/destinations/s3.md +++ b/docs/integrations/destinations/s3.md @@ -171,12 +171,12 @@ A data sync may create multiple files as the output files can be partitioned by ## Supported sync modes -| Feature | Support | Notes | -| :----------------------------- | :-----: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Full Refresh Sync | ✅ | Warning: this mode deletes all previously synced data in the configured bucket path. | +| Feature | Support | Notes | +| :----------------------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Full Refresh Sync | ✅ | Warning: this mode deletes all previously synced data in the configured bucket path. | | Incremental - Append Sync | ✅ | Warning: Airbyte provides at-least-once delivery. Depending on your source, you may see duplicated data. Learn more [here](/using-airbyte/core-concepts/sync-modes/incremental-append#inclusive-cursors) | -| Incremental - Append + Deduped | ❌ | | -| Namespaces | ❌ | Setting a specific bucket path is equivalent to having separate namespaces. | +| Incremental - Append + Deduped | ❌ | | +| Namespaces | ❌ | Setting a specific bucket path is equivalent to having separate namespaces. | The Airbyte S3 destination allows you to sync data to AWS S3 or Minio S3. Each stream is written to its own directory under the bucket. @@ -346,8 +346,9 @@ In order for everything to work correctly, it is also necessary that the user wh | Version | Date | Pull Request | Subject | | :------ | :--------- | :--------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.5.5 | 2023-12-08 | [#33264](https://github.com/airbytehq/airbyte/pull/33264) | Update UI options with common defaults. | | 0.5.4 | 2023-11-06 | [#32193](https://github.com/airbytehq/airbyte/pull/32193) | (incorrect filename format, do not use) Adopt java CDK version 0.4.1. | -| 0.5.3 | 2023-11-03 | [#32050](https://github.com/airbytehq/airbyte/pull/32050) | (incorrect filename format, do not use) Adopt java CDK version 0.4.0. This updates filenames to include a UUID. | +| 0.5.3 | 2023-11-03 | [#32050](https://github.com/airbytehq/airbyte/pull/32050) | (incorrect filename format, do not use) Adopt java CDK version 0.4.0. This updates filenames to include a UUID. | | 0.5.1 | 2023-06-26 | [#27786](https://github.com/airbytehq/airbyte/pull/27786) | Fix build | | 0.5.0 | 2023-06-26 | [#27725](https://github.com/airbytehq/airbyte/pull/27725) | License Update: Elv2 | | 0.4.2 | 2023-06-21 | [#27555](https://github.com/airbytehq/airbyte/pull/27555) | Reduce image size | From d4c1c00b80e84cffb68d91a6d7aa75e1851385a0 Mon Sep 17 00:00:00 2001 From: Evan Tahler Date: Fri, 8 Dec 2023 13:16:03 -0800 Subject: [PATCH 10/22] Update upgrading_to_destinations_v2.md (#31719) --- docs/release_notes/upgrading_to_destinations_v2.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/release_notes/upgrading_to_destinations_v2.md b/docs/release_notes/upgrading_to_destinations_v2.md index 08cd208002dcf..15d9d173d2d26 100644 --- a/docs/release_notes/upgrading_to_destinations_v2.md +++ b/docs/release_notes/upgrading_to_destinations_v2.md @@ -43,13 +43,14 @@ Whenever possible, we've taken this opportunity to use the best data type for st ## Quick Start to Upgrading +**The quickest path to upgrading is to click upgrade on any out-of-date connection in the UI**. The advanced options later in this document will allow you to test out the upgrade in more detail if you choose. + :::caution **[Airbyte Open Source Only]** You should upgrade to 0.50.24+ of the Airbyte Platform _before_ updating to Destinations V2. Failure to do so may cause upgraded connections to fail. ::: -The quickest path to upgrading is to click upgrade on any out-of-date connection in the UI: ![Upgrade Path](./assets/airbyte_destinations_v2_upgrade_prompt.png) From a9b1e8d483037e7fed1dc35127de22fc2ec78e86 Mon Sep 17 00:00:00 2001 From: Edward Gao Date: Fri, 8 Dec 2023 14:24:18 -0800 Subject: [PATCH 11/22] Destinations bigquery+snowflake+s3: Chore: upgrade CDK version (#33263) Co-authored-by: edgao --- .../connectors/destination-bigquery/build.gradle | 2 +- .../connectors/destination-bigquery/metadata.yaml | 2 +- .../connectors/destination-s3/build.gradle | 2 +- .../connectors/destination-s3/metadata.yaml | 2 +- .../connectors/destination-snowflake/build.gradle | 2 +- .../connectors/destination-snowflake/metadata.yaml | 2 +- .../SnowflakeInternalStagingDestination.java | 8 +++++++- .../SnowflakeInternalStagingSqlOperations.java | 6 +++++- .../destination/snowflake/SnowflakeSqlOperations.java | 11 +++++++++-- .../snowflake/SnowflakeSqlOperationsTest.java | 4 ++-- docs/integrations/destinations/bigquery.md | 1 + docs/integrations/destinations/s3.md | 1 + docs/integrations/destinations/snowflake.md | 3 ++- 13 files changed, 33 insertions(+), 13 deletions(-) diff --git a/airbyte-integrations/connectors/destination-bigquery/build.gradle b/airbyte-integrations/connectors/destination-bigquery/build.gradle index 78277e3e53f9d..d52bd144f6f12 100644 --- a/airbyte-integrations/connectors/destination-bigquery/build.gradle +++ b/airbyte-integrations/connectors/destination-bigquery/build.gradle @@ -4,7 +4,7 @@ plugins { } airbyteJavaConnector { - cdkVersionRequired = '0.4.11' + cdkVersionRequired = '0.7.0' features = ['db-destinations', 's3-destinations'] useLocalCdk = false } diff --git a/airbyte-integrations/connectors/destination-bigquery/metadata.yaml b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml index dd98de5f160a6..8ad18978bfda3 100644 --- a/airbyte-integrations/connectors/destination-bigquery/metadata.yaml +++ b/airbyte-integrations/connectors/destination-bigquery/metadata.yaml @@ -5,7 +5,7 @@ data: connectorSubtype: database connectorType: destination definitionId: 22f6c74f-5699-40ff-833c-4a879ea40133 - dockerImageTag: 2.3.19 + dockerImageTag: 2.3.20 dockerRepository: airbyte/destination-bigquery documentationUrl: https://docs.airbyte.com/integrations/destinations/bigquery githubIssueLabel: destination-bigquery diff --git a/airbyte-integrations/connectors/destination-s3/build.gradle b/airbyte-integrations/connectors/destination-s3/build.gradle index 40595a5969d92..7547dd1c77acb 100644 --- a/airbyte-integrations/connectors/destination-s3/build.gradle +++ b/airbyte-integrations/connectors/destination-s3/build.gradle @@ -4,7 +4,7 @@ plugins { } airbyteJavaConnector { - cdkVersionRequired = '0.4.1' + cdkVersionRequired = '0.7.0' features = ['db-destinations', 's3-destinations'] useLocalCdk = false } diff --git a/airbyte-integrations/connectors/destination-s3/metadata.yaml b/airbyte-integrations/connectors/destination-s3/metadata.yaml index c2e5ec3fd0225..773835ea9bc3a 100644 --- a/airbyte-integrations/connectors/destination-s3/metadata.yaml +++ b/airbyte-integrations/connectors/destination-s3/metadata.yaml @@ -2,7 +2,7 @@ data: connectorSubtype: file connectorType: destination definitionId: 4816b78f-1489-44c1-9060-4b19d5fa9362 - dockerImageTag: 0.5.5 + dockerImageTag: 0.5.6 dockerRepository: airbyte/destination-s3 githubIssueLabel: destination-s3 icon: s3.svg diff --git a/airbyte-integrations/connectors/destination-snowflake/build.gradle b/airbyte-integrations/connectors/destination-snowflake/build.gradle index 0ac5603a6f8ae..9d625fcd6dbf5 100644 --- a/airbyte-integrations/connectors/destination-snowflake/build.gradle +++ b/airbyte-integrations/connectors/destination-snowflake/build.gradle @@ -4,7 +4,7 @@ plugins { } airbyteJavaConnector { - cdkVersionRequired = '0.4.11' + cdkVersionRequired = '0.7.0' features = ['db-destinations', 's3-destinations'] useLocalCdk = false } diff --git a/airbyte-integrations/connectors/destination-snowflake/metadata.yaml b/airbyte-integrations/connectors/destination-snowflake/metadata.yaml index 5c20253a4f035..165c9515924b5 100644 --- a/airbyte-integrations/connectors/destination-snowflake/metadata.yaml +++ b/airbyte-integrations/connectors/destination-snowflake/metadata.yaml @@ -5,7 +5,7 @@ data: connectorSubtype: database connectorType: destination definitionId: 424892c4-daac-4491-b35d-c6688ba547ba - dockerImageTag: 3.4.13 + dockerImageTag: 3.4.14 dockerRepository: airbyte/destination-snowflake documentationUrl: https://docs.airbyte.com/integrations/destinations/snowflake githubIssueLabel: destination-snowflake diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingDestination.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingDestination.java index 9b0692ef48408..50e8ad2c46851 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingDestination.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingDestination.java @@ -13,6 +13,7 @@ import io.airbyte.cdk.integrations.base.TypingAndDedupingFlag; import io.airbyte.cdk.integrations.destination.NamingConventionTransformer; import io.airbyte.cdk.integrations.destination.jdbc.AbstractJdbcDestination; +import io.airbyte.cdk.integrations.destination.jdbc.typing_deduping.JdbcSqlGenerator; import io.airbyte.cdk.integrations.destination.staging.StagingConsumerFactory; import io.airbyte.commons.json.Jsons; import io.airbyte.integrations.base.destination.typing_deduping.CatalogParser; @@ -123,6 +124,11 @@ public JsonNode toJdbcConfig(final JsonNode config) { return Jsons.emptyObject(); } + @Override + protected JdbcSqlGenerator getSqlGenerator() { + throw new UnsupportedOperationException("Snowflake does not yet use the native JDBC DV2 interface"); + } + @Override public SerializedAirbyteMessageConsumer getSerializedMessageConsumer(final JsonNode config, final ConfiguredAirbyteCatalog catalog, @@ -149,7 +155,7 @@ public SerializedAirbyteMessageConsumer getSerializedMessageConsumer(final JsonN parsedCatalog = catalogParser.parseCatalog(catalog); final SnowflakeV1V2Migrator migrator = new SnowflakeV1V2Migrator(getNamingResolver(), database, databaseName); final SnowflakeV2TableMigrator v2TableMigrator = new SnowflakeV2TableMigrator(database, databaseName, sqlGenerator, snowflakeDestinationHandler); - boolean disableTypeDedupe = config.has(DISABLE_TYPE_DEDUPE) && config.get(DISABLE_TYPE_DEDUPE).asBoolean(false); + final boolean disableTypeDedupe = config.has(DISABLE_TYPE_DEDUPE) && config.get(DISABLE_TYPE_DEDUPE).asBoolean(false); final int defaultThreadCount = 8; if (disableTypeDedupe) { typerDeduper = new NoOpTyperDeduperWithV1V2Migrations<>(sqlGenerator, snowflakeDestinationHandler, parsedCatalog, migrator, v2TableMigrator, diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingSqlOperations.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingSqlOperations.java index b8e8fc2909d7e..d789fe7e5c26a 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingSqlOperations.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeInternalStagingSqlOperations.java @@ -58,7 +58,11 @@ public String getStageName(final String namespace, final String streamName) { } @Override - public String getStagingPath(final UUID connectionId, final String namespace, final String streamName, final DateTime writeDatetime) { + public String getStagingPath(final UUID connectionId, + final String namespace, + final String streamName, + final String outputTableName, + final DateTime writeDatetime) { // see https://docs.snowflake.com/en/user-guide/data-load-considerations-stage.html return nameTransformer.applyDefaultCase(String.format("%s/%02d/%02d/%02d/%s/", writeDatetime.year().get(), diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperations.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperations.java index 4f5ae765ecf31..6be94ea5032fe 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperations.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperations.java @@ -10,8 +10,8 @@ import io.airbyte.cdk.integrations.destination.jdbc.JdbcSqlOperations; import io.airbyte.cdk.integrations.destination.jdbc.SqlOperations; import io.airbyte.cdk.integrations.destination.jdbc.SqlOperationsUtils; +import io.airbyte.cdk.integrations.destination_async.partial_messages.PartialAirbyteMessage; import io.airbyte.commons.exceptions.ConfigErrorException; -import io.airbyte.protocol.models.v0.AirbyteRecordMessage; import java.sql.SQLException; import java.util.List; import java.util.Optional; @@ -83,7 +83,7 @@ public String dropTableIfExistsQuery(final String schemaName, final String table @Override public void insertRecordsInternal(final JdbcDatabase database, - final List records, + final List records, final String schemaName, final String tableName) throws SQLException { @@ -106,6 +106,13 @@ public void insertRecordsInternal(final JdbcDatabase database, SqlOperationsUtils.insertRawRecordsInSingleQuery(insertQuery, recordQuery, database, records); } + @Override + protected void insertRecordsInternalV2(final JdbcDatabase jdbcDatabase, final List list, final String s, final String s1) + throws Exception { + // Snowflake doesn't have standard inserts... so we probably never want to do this + throw new UnsupportedOperationException("Snowflake does not use the native JDBC DV2 interface"); + } + protected String generateFilesList(final List files) { if (0 < files.size() && files.size() < MAX_FILES_IN_LOADING_QUERY_LIMIT) { // see https://docs.snowflake.com/en/user-guide/data-load-considerations-load.html#lists-of-files diff --git a/airbyte-integrations/connectors/destination-snowflake/src/test/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperationsTest.java b/airbyte-integrations/connectors/destination-snowflake/src/test/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperationsTest.java index e0d2c2a5f8a6a..66fa8866f2337 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/test/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperationsTest.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/test/java/io/airbyte/integrations/destination/snowflake/SnowflakeSqlOperationsTest.java @@ -14,9 +14,9 @@ import io.airbyte.cdk.db.jdbc.JdbcDatabase; import io.airbyte.cdk.integrations.base.DestinationConfig; import io.airbyte.cdk.integrations.base.JavaBaseConstants; +import io.airbyte.cdk.integrations.destination_async.partial_messages.PartialAirbyteMessage; import io.airbyte.commons.functional.CheckedConsumer; import io.airbyte.commons.json.Jsons; -import io.airbyte.protocol.models.v0.AirbyteRecordMessage; import java.sql.SQLException; import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -63,7 +63,7 @@ void isSchemaExists() throws Exception { @Test void insertRecordsInternal() throws SQLException { - snowflakeSqlOperations.insertRecordsInternal(db, List.of(new AirbyteRecordMessage()), SCHEMA_NAME, TABLE_NAME); + snowflakeSqlOperations.insertRecordsInternal(db, List.of(new PartialAirbyteMessage()), SCHEMA_NAME, TABLE_NAME); verify(db, times(1)).execute(any(CheckedConsumer.class)); } diff --git a/docs/integrations/destinations/bigquery.md b/docs/integrations/destinations/bigquery.md index b693cd3317b3a..32470ef4502cc 100644 --- a/docs/integrations/destinations/bigquery.md +++ b/docs/integrations/destinations/bigquery.md @@ -140,6 +140,7 @@ Now that you have set up the BigQuery destination connector, check out the follo | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 2.3.20 | 2023-12-08 | [\#33263](https://github.com/airbytehq/airbyte/pull/33263) | Adopt java CDK version 0.7.0 | | 2.3.19 | 2023-12-07 | [\#32326](https://github.com/airbytehq/airbyte/pull/32326) | Update common T&D interfaces | | 2.3.18 | 2023-12-04 | [\#33084](https://github.com/airbytehq/airbyte/pull/33084) | T&D SQL statements moved to debug log level | | 2.3.17 | 2023-12-04 | [\#33078](https://github.com/airbytehq/airbyte/pull/33078) | Further increase gcs COPY timeout | diff --git a/docs/integrations/destinations/s3.md b/docs/integrations/destinations/s3.md index 240d5dc674b95..0bd85bac6f34a 100644 --- a/docs/integrations/destinations/s3.md +++ b/docs/integrations/destinations/s3.md @@ -346,6 +346,7 @@ In order for everything to work correctly, it is also necessary that the user wh | Version | Date | Pull Request | Subject | | :------ | :--------- | :--------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.5.6 | 2023-12-08 | [#33263](https://github.com/airbytehq/airbyte/pull/33263) | (incorrect filename format, do not use) Adopt java CDK version 0.7.0. | | 0.5.5 | 2023-12-08 | [#33264](https://github.com/airbytehq/airbyte/pull/33264) | Update UI options with common defaults. | | 0.5.4 | 2023-11-06 | [#32193](https://github.com/airbytehq/airbyte/pull/32193) | (incorrect filename format, do not use) Adopt java CDK version 0.4.1. | | 0.5.3 | 2023-11-03 | [#32050](https://github.com/airbytehq/airbyte/pull/32050) | (incorrect filename format, do not use) Adopt java CDK version 0.4.0. This updates filenames to include a UUID. | diff --git a/docs/integrations/destinations/snowflake.md b/docs/integrations/destinations/snowflake.md index 94b02f382894a..764d8b7a4c207 100644 --- a/docs/integrations/destinations/snowflake.md +++ b/docs/integrations/destinations/snowflake.md @@ -223,6 +223,7 @@ Otherwise, make sure to grant the role the required permissions in the desired n | Version | Date | Pull Request | Subject | |:----------------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 3.4.14 | 2023-12-08 | [33263](https://github.com/airbytehq/airbyte/pull/33263) | Adopt java CDK version 0.7.0 | | 3.4.13 | 2023-12-05 | [32326](https://github.com/airbytehq/airbyte/pull/32326) | Use jdbc metadata for table existence check | | 3.4.12 | 2023-12-04 | [33084](https://github.com/airbytehq/airbyte/pull/33084) | T&D SQL statements moved to debug log level | | 3.4.11 | 2023-11-14 | [\#32526](https://github.com/airbytehq/airbyte/pull/32526) | Clean up memory manager logs. | @@ -371,4 +372,4 @@ Otherwise, make sure to grant the role the required permissions in the desired n | 0.3.13 | 2021-09-01 | [\#5784](https://github.com/airbytehq/airbyte/pull/5784) | Updated query timeout from 30 minutes to 3 hours | | 0.3.12 | 2021-07-30 | [\#5125](https://github.com/airbytehq/airbyte/pull/5125) | Enable `additionalPropertities` in spec.json | | 0.3.11 | 2021-07-21 | [\#3555](https://github.com/airbytehq/airbyte/pull/3555) | Partial Success in BufferedStreamConsumer | -| 0.3.10 | 2021-07-12 | [\#4713](https://github.com/airbytehq/airbyte/pull/4713) | Tag traffic with `airbyte` label to enable optimization opportunities from Snowflake | \ No newline at end of file +| 0.3.10 | 2021-07-12 | [\#4713](https://github.com/airbytehq/airbyte/pull/4713) | Tag traffic with `airbyte` label to enable optimization opportunities from Snowflake | From 5e2401e6ef0d70eb1d0c5b9842e7d73dacb768af Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 09:54:43 +0100 Subject: [PATCH 12/22] airbyte-ci format: remove verbose mode on pre-commit (#33245) --- .pre-commit-config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fb685d50b7d0c..8c41a749100cb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,4 +8,3 @@ repos: name: Run airbyte-ci format fix on git push (~30s) pass_filenames: false stages: [push] - verbose: true From 4b8919399c4b55e892a3b7e9986c49c53b0a5b98 Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 10:05:39 +0100 Subject: [PATCH 13/22] doc: add code-formatting to sidebar.js (#33252) --- docs/contributing-to-airbyte/resources/gradle.md | 2 +- .../resources/python-gradle-setup.md | 16 +--------------- docusaurus/sidebars.js | 3 +-- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/docs/contributing-to-airbyte/resources/gradle.md b/docs/contributing-to-airbyte/resources/gradle.md index f496e2240d5b8..a819cc4662886 100644 --- a/docs/contributing-to-airbyte/resources/gradle.md +++ b/docs/contributing-to-airbyte/resources/gradle.md @@ -1,4 +1,4 @@ -# Gradle Cheatsheet +# (DEPRECATED) Gradle Cheatsheet ## Overview diff --git a/docs/contributing-to-airbyte/resources/python-gradle-setup.md b/docs/contributing-to-airbyte/resources/python-gradle-setup.md index 37740a3765bb0..34ef885a9f64e 100644 --- a/docs/contributing-to-airbyte/resources/python-gradle-setup.md +++ b/docs/contributing-to-airbyte/resources/python-gradle-setup.md @@ -1,4 +1,4 @@ -# Monorepo Python Development +# (DEPRECATED) Monorepo Python Development This guide contains instructions on how to setup Python with Gradle within the Airbyte Monorepo. If you are a contributor working on one or two connectors, this page is most likely not relevant to you. Instead, you should use your standard Python development flow. @@ -30,21 +30,7 @@ python tools/bin/update_intellij_venv.py --all-modules --install-venv This will create a `virtualenv` and install dependencies for the connector you want to work on as well as any internal Airbyte python packages it depends on. -When iterating on a single connector, you will often iterate by running -```text -./gradlew :airbyte-integrations:connectors:your-connector-dir:build -``` - -This command will: - -1. Install a virtual environment at `airbyte-integrations/connectors//.venv` -2. Install local development dependencies specified in `airbyte-integrations/connectors/your-connector-dir/requirements.txt` -3. Runs the following pip modules: - 1. [Black](https://pypi.org/project/black/) to lint the code - 2. [isort](https://pypi.org/project/isort/) to sort imports - 3. [Flake8](https://pypi.org/project/flake8/) to check formatting - 4. [MyPy](https://pypi.org/project/mypy/) to check type usage ## Formatting/linting diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index e42c14f554921..d6a5a7811bd39 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -310,10 +310,9 @@ const contributeToAirbyte = { items: [ "contributing-to-airbyte/resources/pull-requests-handbook", "contributing-to-airbyte/resources/code-style", + "contributing-to-airbyte/resources/code-formatting", "contributing-to-airbyte/resources/developing-locally", "contributing-to-airbyte/resources/developing-on-docker", - "contributing-to-airbyte/resources/gradle", - "contributing-to-airbyte/resources/python-gradle-setup", ], }, ], From 60c1cc01adc491916879effd448ea924ff29df02 Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 10:15:18 +0100 Subject: [PATCH 14/22] [skip ci] formatting: add missing license headers (#33250) --- airbyte-cdk/python/airbyte_cdk/models/__init__.py | 2 ++ .../python/airbyte_cdk/sources/declarative/models/__init__.py | 2 ++ .../declarative/models/declarative_component_schema.py | 2 ++ airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py | 1 + airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py | 1 + .../sources/file_based/availability_strategy/__init__.py | 2 ++ .../python/airbyte_cdk/sources/file_based/config/__init__.py | 1 + .../sources/file_based/discovery_policy/__init__.py | 2 ++ .../airbyte_cdk/sources/file_based/file_types/__init__.py | 2 ++ .../sources/file_based/schema_validation_policies/__init__.py | 2 ++ .../python/airbyte_cdk/sources/file_based/stream/__init__.py | 2 ++ .../airbyte_cdk/sources/file_based/stream/cursor/__init__.py | 2 ++ airbyte-cdk/python/airbyte_cdk/test/http/__init__.py | 4 +++- airbyte-cdk/python/source_declarative_manifest/__init__.py | 1 + airbyte-cdk/python/unit_tests/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/destinations/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/singer/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/sources/__init__.py | 2 ++ .../unit_tests/sources/declarative/decoders/__init__.py | 2 ++ .../unit_tests/sources/declarative/incremental/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/sources/file_based/__init__.py | 2 ++ .../sources/file_based/availability_strategy/__init__.py | 2 ++ .../python/unit_tests/sources/file_based/config/__init__.py | 2 ++ .../sources/file_based/discovery_policy/__init__.py | 2 ++ .../unit_tests/sources/file_based/file_types/__init__.py | 2 ++ .../unit_tests/sources/file_based/scenarios/__init__.py | 2 ++ .../python/unit_tests/sources/file_based/stream/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/sources/message/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/sources/streams/__init__.py | 2 ++ .../python/unit_tests/sources/streams/http/__init__.py | 2 ++ .../python/unit_tests/sources/streams/http/auth/__init__.py | 2 ++ .../sources/streams/http/requests_native_auth/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/test/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/test/http/__init__.py | 2 ++ airbyte-cdk/python/unit_tests/utils/__init__.py | 2 ++ .../bases/base-normalization/integration_tests/__init__.py | 2 ++ .../bases/base-normalization/normalization/__init__.py | 2 ++ .../normalization/transform_catalog/__init__.py | 2 ++ .../normalization/transform_config/__init__.py | 2 ++ .../destination-aws-datalake/unit_tests/__init__.py | 2 ++ .../connectors/destination-chroma/unit_tests/__init__.py | 2 ++ .../connectors/destination-qdrant/unit_tests/__init__.py | 2 ++ .../connectors/source-alpha-vantage/unit_tests/__init__.py | 2 ++ .../integration_tests/__init__.py | 2 ++ .../connectors/source-amplitude/integration_tests/__init__.py | 2 ++ .../connectors/source-appsflyer/integration_tests/__init__.py | 2 ++ .../source-appsflyer/source_appsflyer/fields/__init__.py | 2 ++ .../source-appstore-singer/source_appstore_singer/__init__.py | 2 ++ .../connectors/source-asana/integration_tests/__init__.py | 2 ++ .../source-aws-cloudtrail/integration_tests/__init__.py | 2 ++ .../connectors/source-bamboo-hr/integration_tests/__init__.py | 2 ++ .../connectors/source-bing-ads/integration_tests/__init__.py | 2 ++ .../connectors/source-braze/unit_tests/__init__.py | 2 ++ .../connectors/source-cart/integration_tests/__init__.py | 2 ++ .../connectors/source-chargebee/integration_tests/__init__.py | 2 ++ .../connectors/source-close-com/integration_tests/__init__.py | 2 ++ .../connectors/source-delighted/integration_tests/__init__.py | 2 ++ .../source-facebook-pages/integration_tests/__init__.py | 2 ++ .../connectors/source-file/source_file/__init__.py | 2 ++ .../connectors/source-file/unit_tests/__init__.py | 2 ++ .../connectors/source-freshdesk/source_freshdesk/__init__.py | 2 ++ .../connectors/source-github/integration_tests/__init__.py | 2 ++ .../connectors/source-gitlab/integration_tests/__init__.py | 2 ++ .../source-google-drive/integration_tests/__init__.py | 2 ++ .../integration_tests/__init__.py | 2 ++ .../source-google-sheets/integration_tests/__init__.py | 2 ++ .../source-google-sheets/source_google_sheets/__init__.py | 2 ++ .../source_google_sheets/models/__init__.py | 2 ++ .../integration_tests/__init__.py | 2 ++ .../source_google_workspace_admin_reports/__init__.py | 2 ++ .../connectors/source-harvest/integration_tests/__init__.py | 2 ++ .../connectors/source-instagram/integration_tests/__init__.py | 2 ++ .../connectors/source-instagram/source_instagram/__init__.py | 2 ++ .../connectors/source-intercom/integration_tests/__init__.py | 2 ++ .../connectors/source-iterable/integration_tests/__init__.py | 2 ++ .../connectors/source-iterable/source_iterable/__init__.py | 2 ++ .../connectors/source-jira/integration_tests/__init__.py | 2 ++ .../connectors/source-jira/source_jira/__init__.py | 2 ++ .../source-kustomer-singer/integration_tests/__init__.py | 2 ++ .../source-linkedin-ads/integration_tests/__init__.py | 2 ++ .../connectors/source-looker/source_looker/__init__.py | 2 ++ .../connectors/source-mailchimp/integration_tests/__init__.py | 2 ++ .../connectors/source-mailchimp/source_mailchimp/__init__.py | 2 ++ .../connectors/source-marketo/integration_tests/__init__.py | 2 ++ .../connectors/source-metabase/integration_tests/__init__.py | 2 ++ .../connectors/source-metabase/source_metabase/__init__.py | 2 ++ .../source-microsoft-teams/source_microsoft_teams/__init__.py | 2 ++ .../connectors/source-mixpanel/integration_tests/__init__.py | 2 ++ .../source-mixpanel/source_mixpanel/streams/__init__.py | 2 ++ .../connectors/source-recurly/source_recurly/__init__.py | 2 ++ .../connectors/source-recurly/unit_tests/__init__.py | 2 ++ .../connectors/source-sendgrid/integration_tests/__init__.py | 2 ++ .../connectors/source-sendgrid/source_sendgrid/__init__.py | 2 ++ .../connectors/source-shopify/integration_tests/__init__.py | 2 ++ .../connectors/source-slack/integration_tests/__init__.py | 2 ++ .../connectors/source-slack/source_slack/__init__.py | 2 ++ .../connectors/source-slack/unit_tests/__init__.py | 2 ++ .../source-smartsheets/source_smartsheets/__init__.py | 2 ++ .../connectors/source-smartsheets/unit_tests/__init__.py | 2 ++ .../source-snapchat-marketing/integration_tests/__init__.py | 2 ++ .../connectors/source-square/integration_tests/__init__.py | 2 ++ .../source-surveymonkey/integration_tests/__init__.py | 2 ++ .../connectors/source-tempo/source_tempo/__init__.py | 2 ++ .../source-tiktok-marketing/integration_tests/__init__.py | 2 ++ .../source-tplcentral/integration_tests/__init__.py | 2 ++ .../connectors/source-twilio/integration_tests/__init__.py | 2 ++ .../connectors/source-us-census/integration_tests/__init__.py | 2 ++ .../source-zendesk-chat/integration_tests/__init__.py | 2 ++ airbyte-integrations/connectors/source-zoho-crm/__init__.py | 1 + .../connectors/source-zuora/integration_tests/__init__.py | 2 ++ tools/schema_generator/__init__.py | 1 + tools/schema_generator/schema_generator/__init__.py | 1 + 112 files changed, 218 insertions(+), 1 deletion(-) diff --git a/airbyte-cdk/python/airbyte_cdk/models/__init__.py b/airbyte-cdk/python/airbyte_cdk/models/__init__.py index 89b5cff1cb47b..bb79ce4fee024 100644 --- a/airbyte-cdk/python/airbyte_cdk/models/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/models/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + # The earlier versions of airbyte-cdk (0.28.0<=) had the airbyte_protocol python classes # declared inline in the airbyte-cdk code. However, somewhere around Feb 2023 the # Airbyte Protocol moved to its own repo/PyPi package, called airbyte-protocol-models. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py index de07af17cd150..9c94f41b3d9d9 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py @@ -1,2 +1,4 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + # generated by generate-component-manifest-files from .declarative_component_schema import * diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py index 9981f26169e8d..c7f71f333f00a 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + # generated by datamodel-codegen: # filename: declarative_component_schema.yaml diff --git a/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py index 983f4eeb8bf7b..4c0b2e9ddfb5e 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .abstract_file_based_availability_strategy import AbstractFileBasedAvailabilityStrategy from .default_file_based_availability_strategy import DefaultFileBasedAvailabilityStrategy diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py index c50aa1a4e70f6..ab83a4e6fb7a5 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from airbyte_cdk.sources.file_based.discovery_policy.abstract_discovery_policy import AbstractDiscoveryPolicy from airbyte_cdk.sources.file_based.discovery_policy.default_discovery_policy import DefaultDiscoveryPolicy diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py index 77265c05473c0..d0029b5de0600 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from typing import Any, Mapping, Type from airbyte_cdk.sources.file_based.config.avro_format import AvroFormat diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py index d2cc0e63b214c..34722873beafa 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from airbyte_cdk.sources.file_based.schema_validation_policies.abstract_schema_validation_policy import AbstractSchemaValidationPolicy from airbyte_cdk.sources.file_based.schema_validation_policies.default_schema_validation_policies import ( DEFAULT_SCHEMA_VALIDATION_POLICIES, diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py index 4b5c4bc2edd5a..4e90ca073e22d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from airbyte_cdk.sources.file_based.stream.abstract_file_based_stream import AbstractFileBasedStream from airbyte_cdk.sources.file_based.stream.default_file_based_stream import DefaultFileBasedStream diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py index c1bf15a5d01f9..7c2b1ffbdd606 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .abstract_file_based_cursor import AbstractFileBasedCursor from .default_file_based_cursor import DefaultFileBasedCursor diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py b/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py index 5e971b3145950..57efdf85593be 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py @@ -1,6 +1,8 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from airbyte_cdk.test.http.matcher import HttpRequestMatcher +from airbyte_cdk.test.http.mocker import HttpMocker from airbyte_cdk.test.http.request import HttpRequest from airbyte_cdk.test.http.response import HttpResponse -from airbyte_cdk.test.http.mocker import HttpMocker __all__ = ["HttpMocker", "HttpRequest", "HttpRequestMatcher", "HttpResponse"] diff --git a/airbyte-cdk/python/source_declarative_manifest/__init__.py b/airbyte-cdk/python/source_declarative_manifest/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-cdk/python/source_declarative_manifest/__init__.py +++ b/airbyte-cdk/python/source_declarative_manifest/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/unit_tests/__init__.py b/airbyte-cdk/python/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/__init__.py +++ b/airbyte-cdk/python/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/destinations/__init__.py b/airbyte-cdk/python/unit_tests/destinations/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/destinations/__init__.py +++ b/airbyte-cdk/python/unit_tests/destinations/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/singer/__init__.py b/airbyte-cdk/python/unit_tests/singer/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/singer/__init__.py +++ b/airbyte-cdk/python/unit_tests/singer/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/__init__.py b/airbyte-cdk/python/unit_tests/sources/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py b/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py b/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/message/__init__.py b/airbyte-cdk/python/unit_tests/sources/message/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/message/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/message/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/streams/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/test/__init__.py b/airbyte-cdk/python/unit_tests/test/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/test/__init__.py +++ b/airbyte-cdk/python/unit_tests/test/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/test/http/__init__.py b/airbyte-cdk/python/unit_tests/test/http/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/test/http/__init__.py +++ b/airbyte-cdk/python/unit_tests/test/http/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-cdk/python/unit_tests/utils/__init__.py b/airbyte-cdk/python/unit_tests/utils/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-cdk/python/unit_tests/utils/__init__.py +++ b/airbyte-cdk/python/unit_tests/utils/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py b/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py +++ b/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/bases/base-normalization/normalization/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/__init__.py index 142fa6695aca7..b9915a745516b 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from normalization.destination_type import DestinationType from normalization.transform_catalog.transform import TransformCatalog from normalization.transform_config.transform import TransformConfig diff --git a/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py index fc34c615f84a4..e29a5174b3a0f 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from normalization.transform_catalog.transform import TransformCatalog __all__ = ["TransformCatalog"] diff --git a/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py index 94c00f0d6dd56..6b0c1b4e98904 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from normalization.transform_config.transform import TransformConfig __all__ = ["TransformConfig"] diff --git a/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py b/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py b/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py b/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py b/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py b/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py index c5f7c5e03356d..f28a99477577e 100644 --- a/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py +++ b/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from . import ( daily_report, geo_report, diff --git a/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py b/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py index ad0c7b94e8824..d256a5739ad8d 100644 --- a/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py +++ b/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceAppstoreSinger __all__ = ["SourceAppstoreSinger"] diff --git a/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py b/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py b/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py b/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py b/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py b/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py b/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py b/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py b/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py b/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py b/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-file/source_file/__init__.py b/airbyte-integrations/connectors/source-file/source_file/__init__.py index 42034a3d75d12..ddd1314ec3f19 100644 --- a/airbyte-integrations/connectors/source-file/source_file/__init__.py +++ b/airbyte-integrations/connectors/source-file/source_file/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceFile __all__ = ["SourceFile"] diff --git a/airbyte-integrations/connectors/source-file/unit_tests/__init__.py b/airbyte-integrations/connectors/source-file/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-file/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-file/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py b/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py index f695f09b985c7..3ed7b9af36209 100644 --- a/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py +++ b/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceFreshdesk __all__ = ["SourceFreshdesk"] diff --git a/airbyte-integrations/connectors/source-github/integration_tests/__init__.py b/airbyte-integrations/connectors/source-github/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-github/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-github/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py b/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100755 --- a/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py index 2ee5d20195578..9e914b654fc47 100644 --- a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceGoogleSheets __all__ = ["SourceGoogleSheets"] diff --git a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py index bfec7baecfd13..65de3ac0f5b0f 100644 --- a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py @@ -1,2 +1,4 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .spreadsheet import * from .spreadsheet_values import * diff --git a/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100755 --- a/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py b/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py index 61310a7b08beb..6aa68add47f96 100644 --- a/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py +++ b/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceGoogleWorkspaceAdminReports __all__ = ["SourceGoogleWorkspaceAdminReports"] diff --git a/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py b/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py b/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py b/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py index 1ec56744f95e8..6b6bba068f4a9 100644 --- a/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py +++ b/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceInstagram __all__ = ["SourceInstagram"] diff --git a/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py b/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py b/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py b/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py index 3de3823ca043f..474001245a2b2 100644 --- a/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py +++ b/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceIterable __all__ = ["SourceIterable"] diff --git a/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py b/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-jira/source_jira/__init__.py b/airbyte-integrations/connectors/source-jira/source_jira/__init__.py index 3ff1fcc83f888..af16081697e8f 100644 --- a/airbyte-integrations/connectors/source-jira/source_jira/__init__.py +++ b/airbyte-integrations/connectors/source-jira/source_jira/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceJira __all__ = ["SourceJira"] diff --git a/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py b/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-looker/source_looker/__init__.py b/airbyte-integrations/connectors/source-looker/source_looker/__init__.py index e20b609320518..17f8701dd9a19 100644 --- a/airbyte-integrations/connectors/source-looker/source_looker/__init__.py +++ b/airbyte-integrations/connectors/source-looker/source_looker/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceLooker __all__ = ["SourceLooker"] diff --git a/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py b/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py b/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py index 5087fc54c758e..b6b2a2a0bdd3c 100644 --- a/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py +++ b/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceMailchimp __all__ = ["SourceMailchimp"] diff --git a/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py b/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py b/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py b/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py index dedee206ecba2..43308983bd2d2 100644 --- a/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py +++ b/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceMetabase __all__ = ["SourceMetabase"] diff --git a/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py b/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py index 4f8ee32f96042..f17ee7f2f0e77 100644 --- a/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py +++ b/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceMicrosoftTeams __all__ = ["SourceMicrosoftTeams"] diff --git a/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py b/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py b/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py index 931b85e2a9a7a..5d8d6cd03fa3c 100644 --- a/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py +++ b/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .annotations import Annotations from .base import DateSlicesMixin, IncrementalMixpanelStream, MixpanelStream from .cohort_members import CohortMembers diff --git a/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py b/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py index 48116a0807b8e..46c48744dce3d 100644 --- a/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py +++ b/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceRecurly __all__ = ["SourceRecurly"] diff --git a/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py b/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py b/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py b/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py index 98fe20e25515c..42815c6d24be4 100644 --- a/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py +++ b/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceSendgrid __all__ = ["SourceSendgrid"] diff --git a/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py b/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py b/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-slack/source_slack/__init__.py b/airbyte-integrations/connectors/source-slack/source_slack/__init__.py index edc2d612ce94e..620fa79783615 100644 --- a/airbyte-integrations/connectors/source-slack/source_slack/__init__.py +++ b/airbyte-integrations/connectors/source-slack/source_slack/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceSlack __all__ = ["SourceSlack"] diff --git a/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py b/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py b/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py index a7efbeae0499e..59e7460347694 100644 --- a/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py +++ b/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceSmartsheets __all__ = ["SourceSmartsheets"] diff --git a/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py b/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py b/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-square/integration_tests/__init__.py b/airbyte-integrations/connectors/source-square/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-square/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-square/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py b/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py index 46ea9332ff05f..ec7146c532334 100644 --- a/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py +++ b/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .source import SourceTempo __all__ = ["SourceTempo"] diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py b/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py b/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py b/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py b/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/airbyte-integrations/connectors/source-zoho-crm/__init__.py b/airbyte-integrations/connectors/source-zoho-crm/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-integrations/connectors/source-zoho-crm/__init__.py +++ b/airbyte-integrations/connectors/source-zoho-crm/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py b/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py index e69de29bb2d1d..51502a263eae0 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + diff --git a/tools/schema_generator/__init__.py b/tools/schema_generator/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/tools/schema_generator/__init__.py +++ b/tools/schema_generator/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/tools/schema_generator/schema_generator/__init__.py b/tools/schema_generator/schema_generator/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/tools/schema_generator/schema_generator/__init__.py +++ b/tools/schema_generator/schema_generator/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. From 2c065b6e3ecab41f2cc458292019f19070444cc4 Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 10:59:16 +0100 Subject: [PATCH 15/22] [skip ci] formatting: add license headers to airbyte-ci/**/__init__.py (#33286) --- airbyte-ci/connectors/ci_credentials/tests/__init__.py | 1 + airbyte-ci/connectors/common_utils/common_utils/__init__.py | 2 ++ airbyte-ci/connectors/common_utils/tests/__init__.py | 1 + .../connectors/metadata_service/lib/tests/fixtures/__init__.py | 2 ++ .../metadata_service/orchestrator/tests/fixtures/__init__.py | 2 ++ 5 files changed, 8 insertions(+) diff --git a/airbyte-ci/connectors/ci_credentials/tests/__init__.py b/airbyte-ci/connectors/ci_credentials/tests/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-ci/connectors/ci_credentials/tests/__init__.py +++ b/airbyte-ci/connectors/ci_credentials/tests/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-ci/connectors/common_utils/common_utils/__init__.py b/airbyte-ci/connectors/common_utils/common_utils/__init__.py index 0078efdb784a6..dc90ae912c831 100644 --- a/airbyte-ci/connectors/common_utils/common_utils/__init__.py +++ b/airbyte-ci/connectors/common_utils/common_utils/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + from .google_api import GoogleApi from .logger import Logger diff --git a/airbyte-ci/connectors/common_utils/tests/__init__.py b/airbyte-ci/connectors/common_utils/tests/__init__.py index e69de29bb2d1d..f70ecfc3a89e7 100644 --- a/airbyte-ci/connectors/common_utils/tests/__init__.py +++ b/airbyte-ci/connectors/common_utils/tests/__init__.py @@ -0,0 +1 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/__init__.py b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/__init__.py index 685f9639ac5a5..71d7203499ae9 100644 --- a/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/__init__.py +++ b/airbyte-ci/connectors/metadata_service/lib/tests/fixtures/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + import os from typing import Callable, List diff --git a/airbyte-ci/connectors/metadata_service/orchestrator/tests/fixtures/__init__.py b/airbyte-ci/connectors/metadata_service/orchestrator/tests/fixtures/__init__.py index 57104ac0b2e6c..9ca33c3955c2c 100644 --- a/airbyte-ci/connectors/metadata_service/orchestrator/tests/fixtures/__init__.py +++ b/airbyte-ci/connectors/metadata_service/orchestrator/tests/fixtures/__init__.py @@ -1,3 +1,5 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + import json import os From 0b33caecdad5d701eb38a9d3b7a82e46c76d1cff Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 11:38:37 +0100 Subject: [PATCH 16/22] Revert "[skip ci] formatting: add missing license headers (#33250)" (#33289) --- airbyte-cdk/python/airbyte_cdk/models/__init__.py | 2 -- .../python/airbyte_cdk/sources/declarative/models/__init__.py | 2 -- .../declarative/models/declarative_component_schema.py | 2 -- airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py | 1 - airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py | 1 - .../sources/file_based/availability_strategy/__init__.py | 2 -- .../python/airbyte_cdk/sources/file_based/config/__init__.py | 1 - .../sources/file_based/discovery_policy/__init__.py | 2 -- .../airbyte_cdk/sources/file_based/file_types/__init__.py | 2 -- .../sources/file_based/schema_validation_policies/__init__.py | 2 -- .../python/airbyte_cdk/sources/file_based/stream/__init__.py | 2 -- .../airbyte_cdk/sources/file_based/stream/cursor/__init__.py | 2 -- airbyte-cdk/python/airbyte_cdk/test/http/__init__.py | 4 +--- airbyte-cdk/python/source_declarative_manifest/__init__.py | 1 - airbyte-cdk/python/unit_tests/__init__.py | 2 -- airbyte-cdk/python/unit_tests/destinations/__init__.py | 2 -- airbyte-cdk/python/unit_tests/singer/__init__.py | 2 -- airbyte-cdk/python/unit_tests/sources/__init__.py | 2 -- .../unit_tests/sources/declarative/decoders/__init__.py | 2 -- .../unit_tests/sources/declarative/incremental/__init__.py | 2 -- airbyte-cdk/python/unit_tests/sources/file_based/__init__.py | 2 -- .../sources/file_based/availability_strategy/__init__.py | 2 -- .../python/unit_tests/sources/file_based/config/__init__.py | 2 -- .../sources/file_based/discovery_policy/__init__.py | 2 -- .../unit_tests/sources/file_based/file_types/__init__.py | 2 -- .../unit_tests/sources/file_based/scenarios/__init__.py | 2 -- .../python/unit_tests/sources/file_based/stream/__init__.py | 2 -- airbyte-cdk/python/unit_tests/sources/message/__init__.py | 2 -- airbyte-cdk/python/unit_tests/sources/streams/__init__.py | 2 -- .../python/unit_tests/sources/streams/http/__init__.py | 2 -- .../python/unit_tests/sources/streams/http/auth/__init__.py | 2 -- .../sources/streams/http/requests_native_auth/__init__.py | 2 -- airbyte-cdk/python/unit_tests/test/__init__.py | 2 -- airbyte-cdk/python/unit_tests/test/http/__init__.py | 2 -- airbyte-cdk/python/unit_tests/utils/__init__.py | 2 -- .../bases/base-normalization/integration_tests/__init__.py | 2 -- .../bases/base-normalization/normalization/__init__.py | 2 -- .../normalization/transform_catalog/__init__.py | 2 -- .../normalization/transform_config/__init__.py | 2 -- .../destination-aws-datalake/unit_tests/__init__.py | 2 -- .../connectors/destination-chroma/unit_tests/__init__.py | 2 -- .../connectors/destination-qdrant/unit_tests/__init__.py | 2 -- .../connectors/source-alpha-vantage/unit_tests/__init__.py | 2 -- .../integration_tests/__init__.py | 2 -- .../connectors/source-amplitude/integration_tests/__init__.py | 2 -- .../connectors/source-appsflyer/integration_tests/__init__.py | 2 -- .../source-appsflyer/source_appsflyer/fields/__init__.py | 2 -- .../source-appstore-singer/source_appstore_singer/__init__.py | 2 -- .../connectors/source-asana/integration_tests/__init__.py | 2 -- .../source-aws-cloudtrail/integration_tests/__init__.py | 2 -- .../connectors/source-bamboo-hr/integration_tests/__init__.py | 2 -- .../connectors/source-bing-ads/integration_tests/__init__.py | 2 -- .../connectors/source-braze/unit_tests/__init__.py | 2 -- .../connectors/source-cart/integration_tests/__init__.py | 2 -- .../connectors/source-chargebee/integration_tests/__init__.py | 2 -- .../connectors/source-close-com/integration_tests/__init__.py | 2 -- .../connectors/source-delighted/integration_tests/__init__.py | 2 -- .../source-facebook-pages/integration_tests/__init__.py | 2 -- .../connectors/source-file/source_file/__init__.py | 2 -- .../connectors/source-file/unit_tests/__init__.py | 2 -- .../connectors/source-freshdesk/source_freshdesk/__init__.py | 2 -- .../connectors/source-github/integration_tests/__init__.py | 2 -- .../connectors/source-gitlab/integration_tests/__init__.py | 2 -- .../source-google-drive/integration_tests/__init__.py | 2 -- .../integration_tests/__init__.py | 2 -- .../source-google-sheets/integration_tests/__init__.py | 2 -- .../source-google-sheets/source_google_sheets/__init__.py | 2 -- .../source_google_sheets/models/__init__.py | 2 -- .../integration_tests/__init__.py | 2 -- .../source_google_workspace_admin_reports/__init__.py | 2 -- .../connectors/source-harvest/integration_tests/__init__.py | 2 -- .../connectors/source-instagram/integration_tests/__init__.py | 2 -- .../connectors/source-instagram/source_instagram/__init__.py | 2 -- .../connectors/source-intercom/integration_tests/__init__.py | 2 -- .../connectors/source-iterable/integration_tests/__init__.py | 2 -- .../connectors/source-iterable/source_iterable/__init__.py | 2 -- .../connectors/source-jira/integration_tests/__init__.py | 2 -- .../connectors/source-jira/source_jira/__init__.py | 2 -- .../source-kustomer-singer/integration_tests/__init__.py | 2 -- .../source-linkedin-ads/integration_tests/__init__.py | 2 -- .../connectors/source-looker/source_looker/__init__.py | 2 -- .../connectors/source-mailchimp/integration_tests/__init__.py | 2 -- .../connectors/source-mailchimp/source_mailchimp/__init__.py | 2 -- .../connectors/source-marketo/integration_tests/__init__.py | 2 -- .../connectors/source-metabase/integration_tests/__init__.py | 2 -- .../connectors/source-metabase/source_metabase/__init__.py | 2 -- .../source-microsoft-teams/source_microsoft_teams/__init__.py | 2 -- .../connectors/source-mixpanel/integration_tests/__init__.py | 2 -- .../source-mixpanel/source_mixpanel/streams/__init__.py | 2 -- .../connectors/source-recurly/source_recurly/__init__.py | 2 -- .../connectors/source-recurly/unit_tests/__init__.py | 2 -- .../connectors/source-sendgrid/integration_tests/__init__.py | 2 -- .../connectors/source-sendgrid/source_sendgrid/__init__.py | 2 -- .../connectors/source-shopify/integration_tests/__init__.py | 2 -- .../connectors/source-slack/integration_tests/__init__.py | 2 -- .../connectors/source-slack/source_slack/__init__.py | 2 -- .../connectors/source-slack/unit_tests/__init__.py | 2 -- .../source-smartsheets/source_smartsheets/__init__.py | 2 -- .../connectors/source-smartsheets/unit_tests/__init__.py | 2 -- .../source-snapchat-marketing/integration_tests/__init__.py | 2 -- .../connectors/source-square/integration_tests/__init__.py | 2 -- .../source-surveymonkey/integration_tests/__init__.py | 2 -- .../connectors/source-tempo/source_tempo/__init__.py | 2 -- .../source-tiktok-marketing/integration_tests/__init__.py | 2 -- .../source-tplcentral/integration_tests/__init__.py | 2 -- .../connectors/source-twilio/integration_tests/__init__.py | 2 -- .../connectors/source-us-census/integration_tests/__init__.py | 2 -- .../source-zendesk-chat/integration_tests/__init__.py | 2 -- airbyte-integrations/connectors/source-zoho-crm/__init__.py | 1 - .../connectors/source-zuora/integration_tests/__init__.py | 2 -- tools/schema_generator/__init__.py | 1 - tools/schema_generator/schema_generator/__init__.py | 1 - 112 files changed, 1 insertion(+), 218 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/models/__init__.py b/airbyte-cdk/python/airbyte_cdk/models/__init__.py index bb79ce4fee024..89b5cff1cb47b 100644 --- a/airbyte-cdk/python/airbyte_cdk/models/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/models/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - # The earlier versions of airbyte-cdk (0.28.0<=) had the airbyte_protocol python classes # declared inline in the airbyte-cdk code. However, somewhere around Feb 2023 the # Airbyte Protocol moved to its own repo/PyPi package, called airbyte-protocol-models. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py index 9c94f41b3d9d9..de07af17cd150 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/__init__.py @@ -1,4 +1,2 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - # generated by generate-component-manifest-files from .declarative_component_schema import * diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py index c7f71f333f00a..9981f26169e8d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/models/declarative_component_schema.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - # generated by datamodel-codegen: # filename: declarative_component_schema.yaml diff --git a/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/deprecated/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py index 4c0b2e9ddfb5e..983f4eeb8bf7b 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/availability_strategy/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .abstract_file_based_availability_strategy import AbstractFileBasedAvailabilityStrategy from .default_file_based_availability_strategy import DefaultFileBasedAvailabilityStrategy diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/config/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py index ab83a4e6fb7a5..c50aa1a4e70f6 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/discovery_policy/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from airbyte_cdk.sources.file_based.discovery_policy.abstract_discovery_policy import AbstractDiscoveryPolicy from airbyte_cdk.sources.file_based.discovery_policy.default_discovery_policy import DefaultDiscoveryPolicy diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py index d0029b5de0600..77265c05473c0 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/file_types/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from typing import Any, Mapping, Type from airbyte_cdk.sources.file_based.config.avro_format import AvroFormat diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py index 34722873beafa..d2cc0e63b214c 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from airbyte_cdk.sources.file_based.schema_validation_policies.abstract_schema_validation_policy import AbstractSchemaValidationPolicy from airbyte_cdk.sources.file_based.schema_validation_policies.default_schema_validation_policies import ( DEFAULT_SCHEMA_VALIDATION_POLICIES, diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py index 4e90ca073e22d..4b5c4bc2edd5a 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from airbyte_cdk.sources.file_based.stream.abstract_file_based_stream import AbstractFileBasedStream from airbyte_cdk.sources.file_based.stream.default_file_based_stream import DefaultFileBasedStream diff --git a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py index 7c2b1ffbdd606..c1bf15a5d01f9 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/file_based/stream/cursor/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .abstract_file_based_cursor import AbstractFileBasedCursor from .default_file_based_cursor import DefaultFileBasedCursor diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py b/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py index 57efdf85593be..5e971b3145950 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py +++ b/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py @@ -1,8 +1,6 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from airbyte_cdk.test.http.matcher import HttpRequestMatcher -from airbyte_cdk.test.http.mocker import HttpMocker from airbyte_cdk.test.http.request import HttpRequest from airbyte_cdk.test.http.response import HttpResponse +from airbyte_cdk.test.http.mocker import HttpMocker __all__ = ["HttpMocker", "HttpRequest", "HttpRequestMatcher", "HttpResponse"] diff --git a/airbyte-cdk/python/source_declarative_manifest/__init__.py b/airbyte-cdk/python/source_declarative_manifest/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/source_declarative_manifest/__init__.py +++ b/airbyte-cdk/python/source_declarative_manifest/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-cdk/python/unit_tests/__init__.py b/airbyte-cdk/python/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/__init__.py +++ b/airbyte-cdk/python/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/destinations/__init__.py b/airbyte-cdk/python/unit_tests/destinations/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/destinations/__init__.py +++ b/airbyte-cdk/python/unit_tests/destinations/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/singer/__init__.py b/airbyte-cdk/python/unit_tests/singer/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/singer/__init__.py +++ b/airbyte-cdk/python/unit_tests/singer/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/__init__.py b/airbyte-cdk/python/unit_tests/sources/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py b/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/decoders/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py b/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/incremental/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/availability_strategy/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/config/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/discovery_policy/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/file_types/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py b/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/stream/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/message/__init__.py b/airbyte-cdk/python/unit_tests/sources/message/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/message/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/message/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/streams/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/auth/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py b/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py +++ b/airbyte-cdk/python/unit_tests/sources/streams/http/requests_native_auth/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/test/__init__.py b/airbyte-cdk/python/unit_tests/test/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/test/__init__.py +++ b/airbyte-cdk/python/unit_tests/test/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/test/http/__init__.py b/airbyte-cdk/python/unit_tests/test/http/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/test/http/__init__.py +++ b/airbyte-cdk/python/unit_tests/test/http/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-cdk/python/unit_tests/utils/__init__.py b/airbyte-cdk/python/unit_tests/utils/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-cdk/python/unit_tests/utils/__init__.py +++ b/airbyte-cdk/python/unit_tests/utils/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py b/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py +++ b/airbyte-integrations/bases/base-normalization/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/bases/base-normalization/normalization/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/__init__.py index b9915a745516b..142fa6695aca7 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from normalization.destination_type import DestinationType from normalization.transform_catalog.transform import TransformCatalog from normalization.transform_config.transform import TransformConfig diff --git a/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py index e29a5174b3a0f..fc34c615f84a4 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/transform_catalog/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from normalization.transform_catalog.transform import TransformCatalog __all__ = ["TransformCatalog"] diff --git a/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py b/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py index 6b0c1b4e98904..94c00f0d6dd56 100644 --- a/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py +++ b/airbyte-integrations/bases/base-normalization/normalization/transform_config/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from normalization.transform_config.transform import TransformConfig __all__ = ["TransformConfig"] diff --git a/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-aws-datalake/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-chroma/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py b/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/destination-qdrant/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py b/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-alpha-vantage/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py b/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-amazon-seller-partner/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py b/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-amplitude/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py b/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-appsflyer/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py b/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py index f28a99477577e..c5f7c5e03356d 100644 --- a/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py +++ b/airbyte-integrations/connectors/source-appsflyer/source_appsflyer/fields/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from . import ( daily_report, geo_report, diff --git a/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py b/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py index d256a5739ad8d..ad0c7b94e8824 100644 --- a/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py +++ b/airbyte-integrations/connectors/source-appstore-singer/source_appstore_singer/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceAppstoreSinger __all__ = ["SourceAppstoreSinger"] diff --git a/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py b/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-asana/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py b/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-aws-cloudtrail/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py b/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-bamboo-hr/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py b/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-bing-ads/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py b/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-braze/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py b/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-cart/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py b/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-chargebee/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py b/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-close-com/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py b/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-delighted/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py b/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-facebook-pages/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-file/source_file/__init__.py b/airbyte-integrations/connectors/source-file/source_file/__init__.py index ddd1314ec3f19..42034a3d75d12 100644 --- a/airbyte-integrations/connectors/source-file/source_file/__init__.py +++ b/airbyte-integrations/connectors/source-file/source_file/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceFile __all__ = ["SourceFile"] diff --git a/airbyte-integrations/connectors/source-file/unit_tests/__init__.py b/airbyte-integrations/connectors/source-file/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-file/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-file/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py b/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py index 3ed7b9af36209..f695f09b985c7 100644 --- a/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py +++ b/airbyte-integrations/connectors/source-freshdesk/source_freshdesk/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceFreshdesk __all__ = ["SourceFreshdesk"] diff --git a/airbyte-integrations/connectors/source-github/integration_tests/__init__.py b/airbyte-integrations/connectors/source-github/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-github/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-github/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py b/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-gitlab/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-drive/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100755 --- a/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-search-console/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py index 9e914b654fc47..2ee5d20195578 100644 --- a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceGoogleSheets __all__ = ["SourceGoogleSheets"] diff --git a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py index 65de3ac0f5b0f..bfec7baecfd13 100644 --- a/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py +++ b/airbyte-integrations/connectors/source-google-sheets/source_google_sheets/models/__init__.py @@ -1,4 +1,2 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .spreadsheet import * from .spreadsheet_values import * diff --git a/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py b/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100755 --- a/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-google-workspace-admin-reports/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py b/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py index 6aa68add47f96..61310a7b08beb 100644 --- a/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py +++ b/airbyte-integrations/connectors/source-google-workspace-admin-reports/source_google_workspace_admin_reports/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceGoogleWorkspaceAdminReports __all__ = ["SourceGoogleWorkspaceAdminReports"] diff --git a/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py b/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-harvest/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py b/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-instagram/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py b/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py index 6b6bba068f4a9..1ec56744f95e8 100644 --- a/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py +++ b/airbyte-integrations/connectors/source-instagram/source_instagram/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceInstagram __all__ = ["SourceInstagram"] diff --git a/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py b/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-intercom/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py b/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-iterable/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py b/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py index 474001245a2b2..3de3823ca043f 100644 --- a/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py +++ b/airbyte-integrations/connectors/source-iterable/source_iterable/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceIterable __all__ = ["SourceIterable"] diff --git a/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py b/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-jira/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-jira/source_jira/__init__.py b/airbyte-integrations/connectors/source-jira/source_jira/__init__.py index af16081697e8f..3ff1fcc83f888 100644 --- a/airbyte-integrations/connectors/source-jira/source_jira/__init__.py +++ b/airbyte-integrations/connectors/source-jira/source_jira/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceJira __all__ = ["SourceJira"] diff --git a/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py b/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-kustomer-singer/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-linkedin-ads/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-looker/source_looker/__init__.py b/airbyte-integrations/connectors/source-looker/source_looker/__init__.py index 17f8701dd9a19..e20b609320518 100644 --- a/airbyte-integrations/connectors/source-looker/source_looker/__init__.py +++ b/airbyte-integrations/connectors/source-looker/source_looker/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceLooker __all__ = ["SourceLooker"] diff --git a/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py b/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-mailchimp/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py b/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py index b6b2a2a0bdd3c..5087fc54c758e 100644 --- a/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py +++ b/airbyte-integrations/connectors/source-mailchimp/source_mailchimp/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceMailchimp __all__ = ["SourceMailchimp"] diff --git a/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py b/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-marketo/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py b/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-metabase/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py b/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py index 43308983bd2d2..dedee206ecba2 100644 --- a/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py +++ b/airbyte-integrations/connectors/source-metabase/source_metabase/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceMetabase __all__ = ["SourceMetabase"] diff --git a/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py b/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py index f17ee7f2f0e77..4f8ee32f96042 100644 --- a/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py +++ b/airbyte-integrations/connectors/source-microsoft-teams/source_microsoft_teams/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceMicrosoftTeams __all__ = ["SourceMicrosoftTeams"] diff --git a/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py b/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-mixpanel/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py b/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py index 5d8d6cd03fa3c..931b85e2a9a7a 100644 --- a/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py +++ b/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/streams/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .annotations import Annotations from .base import DateSlicesMixin, IncrementalMixpanelStream, MixpanelStream from .cohort_members import CohortMembers diff --git a/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py b/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py index 46c48744dce3d..48116a0807b8e 100644 --- a/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py +++ b/airbyte-integrations/connectors/source-recurly/source_recurly/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceRecurly __all__ = ["SourceRecurly"] diff --git a/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py b/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-recurly/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py b/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-sendgrid/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py b/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py index 42815c6d24be4..98fe20e25515c 100644 --- a/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py +++ b/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceSendgrid __all__ = ["SourceSendgrid"] diff --git a/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py b/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-shopify/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py b/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-slack/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-slack/source_slack/__init__.py b/airbyte-integrations/connectors/source-slack/source_slack/__init__.py index 620fa79783615..edc2d612ce94e 100644 --- a/airbyte-integrations/connectors/source-slack/source_slack/__init__.py +++ b/airbyte-integrations/connectors/source-slack/source_slack/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceSlack __all__ = ["SourceSlack"] diff --git a/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py b/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-slack/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py b/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py index 59e7460347694..a7efbeae0499e 100644 --- a/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py +++ b/airbyte-integrations/connectors/source-smartsheets/source_smartsheets/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceSmartsheets __all__ = ["SourceSmartsheets"] diff --git a/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py b/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py +++ b/airbyte-integrations/connectors/source-smartsheets/unit_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py b/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-snapchat-marketing/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-square/integration_tests/__init__.py b/airbyte-integrations/connectors/source-square/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-square/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-square/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py b/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py index ec7146c532334..46ea9332ff05f 100644 --- a/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py +++ b/airbyte-integrations/connectors/source-tempo/source_tempo/__init__.py @@ -1,5 +1,3 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - from .source import SourceTempo __all__ = ["SourceTempo"] diff --git a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-tiktok-marketing/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py b/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-tplcentral/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py b/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-twilio/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py b/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-us-census/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py b/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-zendesk-chat/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/airbyte-integrations/connectors/source-zoho-crm/__init__.py b/airbyte-integrations/connectors/source-zoho-crm/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-zoho-crm/__init__.py +++ b/airbyte-integrations/connectors/source-zoho-crm/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py b/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py index 51502a263eae0..e69de29bb2d1d 100644 --- a/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py +++ b/airbyte-integrations/connectors/source-zuora/integration_tests/__init__.py @@ -1,2 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. - diff --git a/tools/schema_generator/__init__.py b/tools/schema_generator/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/tools/schema_generator/__init__.py +++ b/tools/schema_generator/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. diff --git a/tools/schema_generator/schema_generator/__init__.py b/tools/schema_generator/schema_generator/__init__.py index f70ecfc3a89e7..e69de29bb2d1d 100644 --- a/tools/schema_generator/schema_generator/__init__.py +++ b/tools/schema_generator/schema_generator/__init__.py @@ -1 +0,0 @@ -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. From d3f2aa548a1ff87f2aedf3e25faf6c53feb0de78 Mon Sep 17 00:00:00 2001 From: Maxime Carbonneau-Leclerc Date: Mon, 11 Dec 2023 08:57:41 -0500 Subject: [PATCH 17/22] [ISSUE #33202] allow for loose query params validation (#33226) --- .../python/airbyte_cdk/test/http/request.py | 8 +++++++- .../python/unit_tests/test/http/test_request.py | 14 +++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/request.py b/airbyte-cdk/python/airbyte_cdk/test/http/request.py index 3ace386daf0bb..243701280de0f 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/request.py +++ b/airbyte-cdk/python/airbyte_cdk/test/http/request.py @@ -3,6 +3,8 @@ from typing import Any, List, Mapping, Optional, Union from urllib.parse import parse_qs, urlencode, urlparse +ANY_QUERY_PARAMS = "any query_parameters" + def _is_subdict(small: Mapping[str, str], big: Mapping[str, str]) -> bool: return dict(big, **small) == big @@ -16,6 +18,7 @@ def __init__( headers: Optional[Mapping[str, str]] = None, ) -> None: self._parsed_url = urlparse(url) + self._query_params = query_params if not self._parsed_url.query and query_params: self._parsed_url = urlparse(f"{url}?{self._encode_qs(query_params)}") elif self._parsed_url.query and query_params: @@ -37,7 +40,10 @@ def matches(self, other: Any) -> bool: self._parsed_url.scheme == other._parsed_url.scheme and self._parsed_url.hostname == other._parsed_url.hostname and self._parsed_url.path == other._parsed_url.path - and parse_qs(self._parsed_url.query) == parse_qs(other._parsed_url.query) + and ( + ANY_QUERY_PARAMS in [self._query_params, other._query_params] + or parse_qs(self._parsed_url.query) == parse_qs(other._parsed_url.query) + ) and _is_subdict(other._headers, self._headers) ) return False diff --git a/airbyte-cdk/python/unit_tests/test/http/test_request.py b/airbyte-cdk/python/unit_tests/test/http/test_request.py index 283d568c68369..9fd20e099eb29 100644 --- a/airbyte-cdk/python/unit_tests/test/http/test_request.py +++ b/airbyte-cdk/python/unit_tests/test/http/test_request.py @@ -3,7 +3,7 @@ from unittest import TestCase import pytest -from airbyte_cdk.test.http.request import HttpRequest +from airbyte_cdk.test.http.request import ANY_QUERY_PARAMS, HttpRequest class HttpRequestMatcherTest(TestCase): @@ -43,3 +43,15 @@ def test_given_headers_value_does_not_match_differs_when_matches_then_return_fal request_to_match = HttpRequest("mock://test.com/path", headers={"first_header": "h1"}) request_received = HttpRequest("mock://test.com/path", headers={"first_header": "value does not match"}) assert not request_received.matches(request_to_match) + + def test_given_any_matcher_for_query_param_when_matches_then_return_true(self): + request_to_match = HttpRequest("mock://test.com/path", {"a_query_param": "q1"}) + request_received = HttpRequest("mock://test.com/path", ANY_QUERY_PARAMS) + + assert request_received.matches(request_to_match) + assert request_to_match.matches(request_received) + + def test_given_any_matcher_for_both_when_matches_then_return_true(self): + request_to_match = HttpRequest("mock://test.com/path", ANY_QUERY_PARAMS) + request_received = HttpRequest("mock://test.com/path", ANY_QUERY_PARAMS) + assert request_received.matches(request_to_match) From 0c2d43fdf999894934cd57c34de532d9e695af3a Mon Sep 17 00:00:00 2001 From: Maxime Carbonneau-Leclerc Date: Mon, 11 Dec 2023 09:20:45 -0500 Subject: [PATCH 18/22] Issue 32871/extract trace message creation (#33227) --- .../python/airbyte_cdk/exception_handler.py | 16 +- .../airbyte_cdk/test/catalog_builder.py | 29 +++ .../airbyte_cdk/test/entrypoint_wrapper.py | 54 ++++- .../python/airbyte_cdk/test/http/__init__.py | 6 - .../airbyte_cdk/test/mock_http/__init__.py | 6 + .../test/{http => mock_http}/matcher.py | 2 +- .../test/{http => mock_http}/mocker.py | 4 +- .../test/{http => mock_http}/request.py | 0 .../test/{http => mock_http}/response.py | 0 .../{http => mock_http}/response_builder.py | 2 +- .../airbyte_cdk/utils/traced_exception.py | 13 +- .../file_based/scenarios/csv_scenarios.py | 4 + .../file_based/scenarios/scenario_builder.py | 24 +- .../scenarios/user_input_schema_scenarios.py | 4 + .../sources/file_based/test_scenarios.py | 16 +- .../test/{http => mock_http}/__init__.py | 0 .../test/{http => mock_http}/test_matcher.py | 4 +- .../test/{http => mock_http}/test_mocker.py | 2 +- .../test/{http => mock_http}/test_request.py | 2 +- .../test_response_builder.py | 4 +- .../test/test_entrypoint_wrapper.py | 227 ++++++++++++++++++ .../unit_tests/test_exception_handler.py | 14 ++ 22 files changed, 384 insertions(+), 49 deletions(-) create mode 100644 airbyte-cdk/python/airbyte_cdk/test/catalog_builder.py delete mode 100644 airbyte-cdk/python/airbyte_cdk/test/http/__init__.py create mode 100644 airbyte-cdk/python/airbyte_cdk/test/mock_http/__init__.py rename airbyte-cdk/python/airbyte_cdk/test/{http => mock_http}/matcher.py (94%) rename airbyte-cdk/python/airbyte_cdk/test/{http => mock_http}/mocker.py (95%) rename airbyte-cdk/python/airbyte_cdk/test/{http => mock_http}/request.py (100%) rename airbyte-cdk/python/airbyte_cdk/test/{http => mock_http}/response.py (100%) rename airbyte-cdk/python/airbyte_cdk/test/{http => mock_http}/response_builder.py (99%) rename airbyte-cdk/python/unit_tests/test/{http => mock_http}/__init__.py (100%) rename airbyte-cdk/python/unit_tests/test/{http => mock_http}/test_matcher.py (94%) rename airbyte-cdk/python/unit_tests/test/{http => mock_http}/test_mocker.py (98%) rename airbyte-cdk/python/unit_tests/test/{http => mock_http}/test_request.py (97%) rename airbyte-cdk/python/unit_tests/test/{http => mock_http}/test_response_builder.py (98%) create mode 100644 airbyte-cdk/python/unit_tests/test/test_entrypoint_wrapper.py diff --git a/airbyte-cdk/python/airbyte_cdk/exception_handler.py b/airbyte-cdk/python/airbyte_cdk/exception_handler.py index 8ef7ed0ed55ce..f8d3e2603e877 100644 --- a/airbyte-cdk/python/airbyte_cdk/exception_handler.py +++ b/airbyte-cdk/python/airbyte_cdk/exception_handler.py @@ -4,17 +4,25 @@ import logging import sys +from types import TracebackType +from typing import Any, Optional from airbyte_cdk.utils.traced_exception import AirbyteTracedException +def assemble_uncaught_exception(exception_type: type[BaseException], exception_value: BaseException) -> AirbyteTracedException: + if issubclass(exception_type, AirbyteTracedException): + return exception_value # type: ignore # validated as part of the previous line + return AirbyteTracedException.from_exception(exception_value) + + def init_uncaught_exception_handler(logger: logging.Logger) -> None: """ Handles uncaught exceptions by emitting an AirbyteTraceMessage and making sure they are not printed to the console without having secrets removed. """ - def hook_fn(exception_type, exception_value, traceback_): + def hook_fn(exception_type: type[BaseException], exception_value: BaseException, traceback_: Optional[TracebackType]) -> Any: # For developer ergonomics, we want to see the stack trace in the logs when we do a ctrl-c if issubclass(exception_type, KeyboardInterrupt): sys.__excepthook__(exception_type, exception_value, traceback_) @@ -23,11 +31,7 @@ def hook_fn(exception_type, exception_value, traceback_): logger.fatal(exception_value, exc_info=exception_value) # emit an AirbyteTraceMessage for any exception that gets to this spot - traced_exc = ( - exception_value - if issubclass(exception_type, AirbyteTracedException) - else AirbyteTracedException.from_exception(exception_value) - ) + traced_exc = assemble_uncaught_exception(exception_type, exception_value) traced_exc.emit_message() diff --git a/airbyte-cdk/python/airbyte_cdk/test/catalog_builder.py b/airbyte-cdk/python/airbyte_cdk/test/catalog_builder.py new file mode 100644 index 0000000000000..522e3dd68ab28 --- /dev/null +++ b/airbyte-cdk/python/airbyte_cdk/test/catalog_builder.py @@ -0,0 +1,29 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + +from typing import Any, Dict, List + +from airbyte_protocol.models import ConfiguredAirbyteCatalog, SyncMode + + +class CatalogBuilder: + def __init__(self) -> None: + self._streams: List[Dict[str, Any]] = [] + + def with_stream(self, name: str, sync_mode: SyncMode) -> "CatalogBuilder": + self._streams.append( + { + "stream": { + "name": name, + "json_schema": {}, + "supported_sync_modes": ["full_refresh", "incremental"], + "source_defined_primary_key": [["id"]], + }, + "primary_key": [["id"]], + "sync_mode": sync_mode.name, + "destination_sync_mode": "overwrite", + } + ) + return self + + def build(self) -> ConfiguredAirbyteCatalog: + return ConfiguredAirbyteCatalog.parse_obj({"streams": self._streams}) diff --git a/airbyte-cdk/python/airbyte_cdk/test/entrypoint_wrapper.py b/airbyte-cdk/python/airbyte_cdk/test/entrypoint_wrapper.py index fd05288577528..6d7def3915ea3 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/entrypoint_wrapper.py +++ b/airbyte-cdk/python/airbyte_cdk/test/entrypoint_wrapper.py @@ -17,24 +17,29 @@ import json import logging import tempfile +import traceback from io import StringIO from pathlib import Path from typing import Any, List, Mapping, Optional, Union from airbyte_cdk.entrypoint import AirbyteEntrypoint +from airbyte_cdk.exception_handler import assemble_uncaught_exception from airbyte_cdk.logger import AirbyteLogFormatter from airbyte_cdk.sources import Source -from airbyte_protocol.models import AirbyteLogMessage, AirbyteMessage, ConfiguredAirbyteCatalog, Level, TraceType, Type +from airbyte_protocol.models import AirbyteLogMessage, AirbyteMessage, AirbyteStreamStatus, ConfiguredAirbyteCatalog, Level, TraceType, Type from pydantic.error_wrappers import ValidationError class EntrypointOutput: - def __init__(self, messages: List[str]): + def __init__(self, messages: List[str], uncaught_exception: Optional[BaseException] = None): try: self._messages = [self._parse_message(message) for message in messages] except ValidationError as exception: raise ValueError("All messages are expected to be AirbyteMessage") from exception + if uncaught_exception: + self._messages.append(assemble_uncaught_exception(type(uncaught_exception), uncaught_exception).as_airbyte_message()) + @staticmethod def _parse_message(message: str) -> AirbyteMessage: try: @@ -65,15 +70,41 @@ def trace_messages(self) -> List[AirbyteMessage]: @property def analytics_messages(self) -> List[AirbyteMessage]: - return [message for message in self._get_message_by_types([Type.TRACE]) if message.trace.type == TraceType.ANALYTICS] + return self._get_trace_message_by_trace_type(TraceType.ANALYTICS) + + @property + def errors(self) -> List[AirbyteMessage]: + return self._get_trace_message_by_trace_type(TraceType.ERROR) + + def get_stream_statuses(self, stream_name: str) -> List[AirbyteStreamStatus]: + status_messages = map( + lambda message: message.trace.stream_status.status, + filter( + lambda message: message.trace.stream_status.stream_descriptor.name == stream_name, + self._get_trace_message_by_trace_type(TraceType.STREAM_STATUS), + ), + ) + return list(status_messages) def _get_message_by_types(self, message_types: List[Type]) -> List[AirbyteMessage]: return [message for message in self._messages if message.type in message_types] + def _get_trace_message_by_trace_type(self, trace_type: TraceType) -> List[AirbyteMessage]: + return [message for message in self._get_message_by_types([Type.TRACE]) if message.trace.type == trace_type] + -def read(source: Source, config: Mapping[str, Any], catalog: ConfiguredAirbyteCatalog, state: Optional[Any] = None) -> EntrypointOutput: +def read( + source: Source, + config: Mapping[str, Any], + catalog: ConfiguredAirbyteCatalog, + state: Optional[Any] = None, + expecting_exception: bool = False, +) -> EntrypointOutput: """ config and state must be json serializable + + :param expecting_exception: By default if there is an uncaught exception, the exception will be printed out. If this is expected, please + provide expecting_exception=True so that the test output logs are cleaner """ log_capture_buffer = StringIO() stream_handler = logging.StreamHandler(log_capture_buffer) @@ -100,12 +131,23 @@ def read(source: Source, config: Mapping[str, Any], catalog: ConfiguredAirbyteCa ) source_entrypoint = AirbyteEntrypoint(source) parsed_args = source_entrypoint.parse_args(args) - messages = list(source_entrypoint.run(parsed_args)) + + messages = [] + uncaught_exception = None + try: + for message in source_entrypoint.run(parsed_args): + messages.append(message) + except Exception as exception: + if not expecting_exception: + print("Printing unexpected error from entrypoint_wrapper") + print("".join(traceback.format_exception(None, exception, exception.__traceback__))) + uncaught_exception = exception + captured_logs = log_capture_buffer.getvalue().split("\n")[:-1] parent_logger.removeHandler(stream_handler) - return EntrypointOutput(messages + captured_logs) + return EntrypointOutput(messages + captured_logs, uncaught_exception) def make_file(path: Path, file_contents: Optional[Union[str, Mapping[str, Any], List[Mapping[str, Any]]]]) -> str: diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py b/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py deleted file mode 100644 index 5e971b3145950..0000000000000 --- a/airbyte-cdk/python/airbyte_cdk/test/http/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from airbyte_cdk.test.http.matcher import HttpRequestMatcher -from airbyte_cdk.test.http.request import HttpRequest -from airbyte_cdk.test.http.response import HttpResponse -from airbyte_cdk.test.http.mocker import HttpMocker - -__all__ = ["HttpMocker", "HttpRequest", "HttpRequestMatcher", "HttpResponse"] diff --git a/airbyte-cdk/python/airbyte_cdk/test/mock_http/__init__.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/__init__.py new file mode 100644 index 0000000000000..88b28b0225e86 --- /dev/null +++ b/airbyte-cdk/python/airbyte_cdk/test/mock_http/__init__.py @@ -0,0 +1,6 @@ +from airbyte_cdk.test.mock_http.matcher import HttpRequestMatcher +from airbyte_cdk.test.mock_http.request import HttpRequest +from airbyte_cdk.test.mock_http.response import HttpResponse +from airbyte_cdk.test.mock_http.mocker import HttpMocker + +__all__ = ["HttpMocker", "HttpRequest", "HttpRequestMatcher", "HttpResponse"] diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/matcher.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/matcher.py similarity index 94% rename from airbyte-cdk/python/airbyte_cdk/test/http/matcher.py rename to airbyte-cdk/python/airbyte_cdk/test/mock_http/matcher.py index f967899f98714..d6af705369b6e 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/matcher.py +++ b/airbyte-cdk/python/airbyte_cdk/test/mock_http/matcher.py @@ -1,6 +1,6 @@ # Copyright (c) 2023 Airbyte, Inc., all rights reserved. -from airbyte_cdk.test.http.request import HttpRequest +from airbyte_cdk.test.mock_http.request import HttpRequest class HttpRequestMatcher: diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/mocker.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/mocker.py similarity index 95% rename from airbyte-cdk/python/airbyte_cdk/test/http/mocker.py rename to airbyte-cdk/python/airbyte_cdk/test/mock_http/mocker.py index 863ab1c6f763d..8ed58119c1f6a 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/mocker.py +++ b/airbyte-cdk/python/airbyte_cdk/test/mock_http/mocker.py @@ -6,7 +6,7 @@ from typing import Callable, List, Optional, Union import requests_mock -from airbyte_cdk.test.http import HttpRequest, HttpRequestMatcher, HttpResponse +from airbyte_cdk.test.mock_http import HttpRequest, HttpRequestMatcher, HttpResponse class HttpMocker(contextlib.ContextDecorator): @@ -75,7 +75,7 @@ def wrapper(*args, **kwargs): # type: ignore # this is a very generic wrapper except requests_mock.NoMockAddress as no_mock_exception: matchers_as_string = "\n\t".join(map(lambda matcher: str(matcher.request), self._matchers)) raise ValueError( - f"No matcher matches {no_mock_exception.args[0]}. Matchers currently configured are:\n\t{matchers_as_string}" + f"No matcher matches {no_mock_exception.args[0]} with headers `{no_mock_exception.request.headers}`. Matchers currently configured are:\n\t{matchers_as_string}" ) from no_mock_exception except AssertionError as test_assertion: assertion_error = test_assertion diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/request.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/request.py similarity index 100% rename from airbyte-cdk/python/airbyte_cdk/test/http/request.py rename to airbyte-cdk/python/airbyte_cdk/test/mock_http/request.py diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/response.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/response.py similarity index 100% rename from airbyte-cdk/python/airbyte_cdk/test/http/response.py rename to airbyte-cdk/python/airbyte_cdk/test/mock_http/response.py diff --git a/airbyte-cdk/python/airbyte_cdk/test/http/response_builder.py b/airbyte-cdk/python/airbyte_cdk/test/mock_http/response_builder.py similarity index 99% rename from airbyte-cdk/python/airbyte_cdk/test/http/response_builder.py rename to airbyte-cdk/python/airbyte_cdk/test/mock_http/response_builder.py index 71acee1b5504e..1fcefb7793bb9 100644 --- a/airbyte-cdk/python/airbyte_cdk/test/http/response_builder.py +++ b/airbyte-cdk/python/airbyte_cdk/test/mock_http/response_builder.py @@ -6,7 +6,7 @@ from pathlib import Path as FilePath from typing import Any, Dict, List, Optional, Tuple, Union -from airbyte_cdk.test.http import HttpResponse +from airbyte_cdk.test.mock_http import HttpResponse def _extract(path: List[str], response_template: Dict[str, Any]) -> Any: diff --git a/airbyte-cdk/python/airbyte_cdk/utils/traced_exception.py b/airbyte-cdk/python/airbyte_cdk/utils/traced_exception.py index ad6d7a3e02b98..dec09fcf19290 100644 --- a/airbyte-cdk/python/airbyte_cdk/utils/traced_exception.py +++ b/airbyte-cdk/python/airbyte_cdk/utils/traced_exception.py @@ -4,6 +4,7 @@ import traceback from datetime import datetime +from typing import Optional from airbyte_cdk.models import ( AirbyteConnectionStatus, @@ -25,10 +26,10 @@ class AirbyteTracedException(Exception): def __init__( self, - internal_message: str = None, - message: str = None, + internal_message: Optional[str] = None, + message: Optional[str] = None, failure_type: FailureType = FailureType.system_error, - exception: BaseException = None, + exception: Optional[BaseException] = None, ): """ :param internal_message: the internal error that caused the failure @@ -71,7 +72,7 @@ def as_connection_status_message(self) -> AirbyteMessage: ) return output_message - def emit_message(self): + def emit_message(self) -> None: """ Prints the exception as an AirbyteTraceMessage. Note that this will be called automatically on uncaught exceptions when using the airbyte_cdk entrypoint. @@ -81,9 +82,9 @@ def emit_message(self): print(filtered_message) @classmethod - def from_exception(cls, exc: Exception, *args, **kwargs) -> "AirbyteTracedException": + def from_exception(cls, exc: BaseException, *args, **kwargs) -> "AirbyteTracedException": # type: ignore # ignoring because of args and kwargs """ Helper to create an AirbyteTracedException from an existing exception :param exc: the exception that caused the error """ - return cls(internal_message=str(exc), exception=exc, *args, **kwargs) + return cls(internal_message=str(exc), exception=exc, *args, **kwargs) # type: ignore # ignoring because of args and kwargs diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/csv_scenarios.py b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/csv_scenarios.py index bab5dde889218..e6c5824b4e195 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/csv_scenarios.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/csv_scenarios.py @@ -5,7 +5,9 @@ from airbyte_cdk.models import AirbyteAnalyticsTraceMessage from airbyte_cdk.sources.file_based.config.csv_format import CsvFormat from airbyte_cdk.sources.file_based.exceptions import ConfigValidationError, FileBasedSourceError +from airbyte_cdk.test.catalog_builder import CatalogBuilder from airbyte_cdk.utils.traced_exception import AirbyteTracedException +from airbyte_protocol.models import SyncMode from unit_tests.sources.file_based.helpers import EmptySchemaParser, LowInferenceLimitDiscoveryPolicy from unit_tests.sources.file_based.in_memory_files_source import InMemoryFilesSource from unit_tests.sources.file_based.scenarios.file_based_source_builder import FileBasedSourceBuilder @@ -1639,6 +1641,7 @@ ) .set_file_type("csv") ) + .set_catalog(CatalogBuilder().with_stream("stream1", SyncMode.full_refresh).build()) .set_expected_catalog( { "streams": [ @@ -1712,6 +1715,7 @@ ) .set_file_type("csv") ) + .set_catalog(CatalogBuilder().with_stream("stream1", SyncMode.full_refresh).with_stream("stream2", SyncMode.full_refresh).build()) .set_expected_catalog( { "streams": [ diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/scenario_builder.py b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/scenario_builder.py index 53431b35fa32b..75feaf3605958 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/scenario_builder.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/scenario_builder.py @@ -8,6 +8,7 @@ from airbyte_cdk.models import AirbyteAnalyticsTraceMessage, SyncMode from airbyte_cdk.sources import AbstractSource +from airbyte_protocol.models import ConfiguredAirbyteCatalog @dataclass @@ -46,11 +47,13 @@ def __init__( incremental_scenario_config: Optional[IncrementalScenarioConfig], expected_analytics: Optional[List[AirbyteAnalyticsTraceMessage]] = None, log_levels: Optional[Set[str]] = None, + catalog: Optional[ConfiguredAirbyteCatalog] = None, ): if log_levels is None: log_levels = {"ERROR", "WARN", "WARNING"} self.name = name self.config = config + self.catalog = catalog self.source = source self.expected_spec = expected_spec self.expected_check_status = expected_check_status @@ -67,16 +70,15 @@ def __init__( def validate(self) -> None: assert self.name - if not self.expected_catalog: - return - if self.expected_read_error or self.expected_check_error: - return - # Only verify the streams if no errors are expected - streams = set([s.name for s in self.source.streams(self.config)]) - expected_streams = {s["name"] for s in self.expected_catalog["streams"]} - assert expected_streams <= streams def configured_catalog(self, sync_mode: SyncMode) -> Optional[Mapping[str, Any]]: + # The preferred way of returning the catalog for the TestScenario is by providing it at the initialization. The previous solution + # relied on `self.source.streams` which might raise an exception hence screwing the tests results as the user might expect the + # exception to be raised as part of the actual check/discover/read commands + # Note that to avoid a breaking change, we still attempt to automatically generate the catalog based on the streams + if self.catalog: + return self.catalog.dict() # type: ignore # dict() is not typed + catalog: Mapping[str, Any] = {"streams": []} for stream in self.source.streams(self.config): catalog["streams"].append( @@ -108,6 +110,7 @@ class TestScenarioBuilder(Generic[SourceType]): def __init__(self) -> None: self._name = "" self._config: Mapping[str, Any] = {} + self._catalog: Optional[ConfiguredAirbyteCatalog] = None self._expected_spec: Optional[Mapping[str, Any]] = None self._expected_check_status: Optional[str] = None self._expected_catalog: Mapping[str, Any] = {} @@ -133,6 +136,10 @@ def set_expected_spec(self, expected_spec: Mapping[str, Any]) -> "TestScenarioBu self._expected_spec = expected_spec return self + def set_catalog(self, catalog: ConfiguredAirbyteCatalog) -> "TestScenarioBuilder[SourceType]": + self._catalog = catalog + return self + def set_expected_check_status(self, expected_check_status: str) -> "TestScenarioBuilder[SourceType]": self._expected_check_status = expected_check_status return self @@ -201,6 +208,7 @@ def build(self) -> "TestScenario[SourceType]": self._incremental_scenario_config, self._expected_analytics, self._log_levels, + self._catalog, ) def _configured_catalog(self, sync_mode: SyncMode) -> Optional[Mapping[str, Any]]: diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/user_input_schema_scenarios.py b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/user_input_schema_scenarios.py index 7fcb75e61f2be..58d528cb7caf8 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/user_input_schema_scenarios.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/scenarios/user_input_schema_scenarios.py @@ -4,6 +4,8 @@ from airbyte_cdk.sources.file_based.exceptions import ConfigValidationError, FileBasedSourceError +from airbyte_cdk.test.catalog_builder import CatalogBuilder +from airbyte_protocol.models import SyncMode from unit_tests.sources.file_based.scenarios.file_based_source_builder import FileBasedSourceBuilder from unit_tests.sources.file_based.scenarios.scenario_builder import TestScenarioBuilder @@ -116,6 +118,7 @@ ] } ) + .set_catalog(CatalogBuilder().with_stream("stream1", SyncMode.full_refresh).build()) .set_expected_check_status("FAILED") .set_expected_check_error(None, FileBasedSourceError.ERROR_PARSING_USER_PROVIDED_SCHEMA.value) .set_expected_discover_error(ConfigValidationError, FileBasedSourceError.ERROR_PARSING_USER_PROVIDED_SCHEMA.value) @@ -439,6 +442,7 @@ ] } ) + .set_catalog(CatalogBuilder().with_stream("stream1", SyncMode.full_refresh).with_stream("stream2", SyncMode.full_refresh).with_stream("stream3", SyncMode.full_refresh).build()) .set_expected_check_status("FAILED") .set_expected_check_error(None, FileBasedSourceError.ERROR_PARSING_USER_PROVIDED_SCHEMA.value) .set_expected_discover_error(ConfigValidationError, FileBasedSourceError.ERROR_PARSING_USER_PROVIDED_SCHEMA.value) diff --git a/airbyte-cdk/python/unit_tests/sources/file_based/test_scenarios.py b/airbyte-cdk/python/unit_tests/sources/file_based/test_scenarios.py index 44b4eedfd32eb..747d22a31a1fe 100644 --- a/airbyte-cdk/python/unit_tests/sources/file_based/test_scenarios.py +++ b/airbyte-cdk/python/unit_tests/sources/file_based/test_scenarios.py @@ -47,26 +47,28 @@ def verify_read(scenario: TestScenario[AbstractSource]) -> None: def run_test_read_full_refresh(scenario: TestScenario[AbstractSource]) -> None: expected_exc, expected_msg = scenario.expected_read_error + output = read(scenario) if expected_exc: - with pytest.raises(expected_exc) as exc: # noqa - read(scenario) + assert_exception(expected_exc, output) if expected_msg: - assert expected_msg in get_error_message_from_exc(exc) + assert expected_msg in output.errors[-1].trace.error.internal_message else: - output = read(scenario) _verify_read_output(output, scenario) def run_test_read_incremental(scenario: TestScenario[AbstractSource]) -> None: expected_exc, expected_msg = scenario.expected_read_error + output = read_with_state(scenario) if expected_exc: - with pytest.raises(expected_exc): - read_with_state(scenario) + assert_exception(expected_exc, output) else: - output = read_with_state(scenario) _verify_read_output(output, scenario) +def assert_exception(expected_exception: type[BaseException], output: EntrypointOutput) -> None: + assert expected_exception.__name__ in output.errors[-1].trace.error.stack_trace + + def _verify_read_output(output: EntrypointOutput, scenario: TestScenario[AbstractSource]) -> None: records, log_messages = output.records_and_state_messages, output.logs logs = [message.log for message in log_messages if message.log.level.value in scenario.log_levels] diff --git a/airbyte-cdk/python/unit_tests/test/http/__init__.py b/airbyte-cdk/python/unit_tests/test/mock_http/__init__.py similarity index 100% rename from airbyte-cdk/python/unit_tests/test/http/__init__.py rename to airbyte-cdk/python/unit_tests/test/mock_http/__init__.py diff --git a/airbyte-cdk/python/unit_tests/test/http/test_matcher.py b/airbyte-cdk/python/unit_tests/test/mock_http/test_matcher.py similarity index 94% rename from airbyte-cdk/python/unit_tests/test/http/test_matcher.py rename to airbyte-cdk/python/unit_tests/test/mock_http/test_matcher.py index 948b9f7326f50..5987dfe695447 100644 --- a/airbyte-cdk/python/unit_tests/test/http/test_matcher.py +++ b/airbyte-cdk/python/unit_tests/test/mock_http/test_matcher.py @@ -3,8 +3,8 @@ from unittest import TestCase from unittest.mock import Mock -from airbyte_cdk.test.http.matcher import HttpRequestMatcher -from airbyte_cdk.test.http.request import HttpRequest +from airbyte_cdk.test.mock_http.matcher import HttpRequestMatcher +from airbyte_cdk.test.mock_http.request import HttpRequest class HttpRequestMatcherTest(TestCase): diff --git a/airbyte-cdk/python/unit_tests/test/http/test_mocker.py b/airbyte-cdk/python/unit_tests/test/mock_http/test_mocker.py similarity index 98% rename from airbyte-cdk/python/unit_tests/test/http/test_mocker.py rename to airbyte-cdk/python/unit_tests/test/mock_http/test_mocker.py index 9b5ec4c6c46f5..06a50c75106dd 100644 --- a/airbyte-cdk/python/unit_tests/test/http/test_mocker.py +++ b/airbyte-cdk/python/unit_tests/test/mock_http/test_mocker.py @@ -4,7 +4,7 @@ import pytest import requests -from airbyte_cdk.test.http import HttpMocker, HttpRequest, HttpResponse +from airbyte_cdk.test.mock_http import HttpMocker, HttpRequest, HttpResponse # Ensure that the scheme is HTTP as requests only partially supports other schemes # see https://github.com/psf/requests/blob/0b4d494192de489701d3a2e32acef8fb5d3f042e/src/requests/models.py#L424-L429 diff --git a/airbyte-cdk/python/unit_tests/test/http/test_request.py b/airbyte-cdk/python/unit_tests/test/mock_http/test_request.py similarity index 97% rename from airbyte-cdk/python/unit_tests/test/http/test_request.py rename to airbyte-cdk/python/unit_tests/test/mock_http/test_request.py index 9fd20e099eb29..e724894b40023 100644 --- a/airbyte-cdk/python/unit_tests/test/http/test_request.py +++ b/airbyte-cdk/python/unit_tests/test/mock_http/test_request.py @@ -3,7 +3,7 @@ from unittest import TestCase import pytest -from airbyte_cdk.test.http.request import ANY_QUERY_PARAMS, HttpRequest +from airbyte_cdk.test.mock_http.request import ANY_QUERY_PARAMS, HttpRequest class HttpRequestMatcherTest(TestCase): diff --git a/airbyte-cdk/python/unit_tests/test/http/test_response_builder.py b/airbyte-cdk/python/unit_tests/test/mock_http/test_response_builder.py similarity index 98% rename from airbyte-cdk/python/unit_tests/test/http/test_response_builder.py rename to airbyte-cdk/python/unit_tests/test/mock_http/test_response_builder.py index 651a6961ea85c..b06d1423f1bd2 100644 --- a/airbyte-cdk/python/unit_tests/test/http/test_response_builder.py +++ b/airbyte-cdk/python/unit_tests/test/mock_http/test_response_builder.py @@ -7,8 +7,8 @@ from unittest.mock import Mock import pytest -from airbyte_cdk.test.http.response import HttpResponse -from airbyte_cdk.test.http.response_builder import ( +from airbyte_cdk.test.mock_http.response import HttpResponse +from airbyte_cdk.test.mock_http.response_builder import ( FieldPath, FieldUpdatePaginationStrategy, HttpResponseBuilder, diff --git a/airbyte-cdk/python/unit_tests/test/test_entrypoint_wrapper.py b/airbyte-cdk/python/unit_tests/test/test_entrypoint_wrapper.py new file mode 100644 index 0000000000000..b62dd5478f950 --- /dev/null +++ b/airbyte-cdk/python/unit_tests/test/test_entrypoint_wrapper.py @@ -0,0 +1,227 @@ +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. + +import json +import logging +import os +from typing import Iterator, List +from unittest import TestCase +from unittest.mock import Mock, patch + +from airbyte_cdk.sources.abstract_source import AbstractSource +from airbyte_cdk.test.entrypoint_wrapper import read +from airbyte_protocol.models import ( + AirbyteAnalyticsTraceMessage, + AirbyteErrorTraceMessage, + AirbyteLogMessage, + AirbyteMessage, + AirbyteRecordMessage, + AirbyteStateMessage, + AirbyteStreamStatus, + AirbyteStreamStatusTraceMessage, + AirbyteTraceMessage, + ConfiguredAirbyteCatalog, + Level, + StreamDescriptor, + TraceType, + Type, +) + +_A_RECORD = AirbyteMessage( + type=Type.RECORD, + record=AirbyteRecordMessage(stream="stream", data={"record key": "record value"}, emitted_at=0) +) +_A_STATE_MESSAGE = AirbyteMessage( + type=Type.STATE, + state=AirbyteStateMessage(data={"state key": "state value"},) +) +_A_LOG = AirbyteMessage( + type=Type.LOG, + log=AirbyteLogMessage(level=Level.INFO, message="This is an Airbyte log message") +) +_AN_ERROR_MESSAGE = AirbyteMessage( + type=Type.TRACE, + trace=AirbyteTraceMessage( + type=TraceType.ERROR, + emitted_at=0, + error=AirbyteErrorTraceMessage(message="AirbyteErrorTraceMessage message"), + ), +) +_AN_ANALYTIC_MESSAGE = AirbyteMessage( + type=Type.TRACE, + trace=AirbyteTraceMessage( + type=TraceType.ANALYTICS, + emitted_at=0, + analytics=AirbyteAnalyticsTraceMessage(type="an analytic type", value="an analytic value"), + ), +) + +_A_STREAM_NAME = "a stream name" +_A_CONFIG = {"config_key": "config_value"} +_A_CATALOG = ConfiguredAirbyteCatalog.parse_obj( + { + "streams": [ + { + "stream": { + "name": "a_stream_name", + "json_schema": {}, + "supported_sync_modes": ["full_refresh"], + }, + "sync_mode": "full_refresh", + "destination_sync_mode": "append", + } + ] + } +) +_A_STATE = {"state_key": "state_value"} +_A_LOG_MESSAGE = "a log message" + + +def _a_status_message(stream_name: str, status: AirbyteStreamStatus) -> AirbyteMessage: + return AirbyteMessage( + type=Type.TRACE, + trace=AirbyteTraceMessage( + type=TraceType.STREAM_STATUS, + emitted_at=0, + stream_status=AirbyteStreamStatusTraceMessage( + stream_descriptor=StreamDescriptor(name=stream_name), + status=status, + ), + ), + ) + + +def _to_entrypoint_output(messages: List[AirbyteMessage]) -> Iterator[str]: + return (message.json(exclude_unset=True) for message in messages) + + +def _a_mocked_source() -> AbstractSource: + source = Mock(spec=AbstractSource) + source.message_repository = None + return source + + +def _validate_tmp_json_file(expected, file_path) -> None: + with open(file_path) as file: + assert json.load(file) == expected + + +def _validate_tmp_catalog(expected, file_path) -> None: + assert ConfiguredAirbyteCatalog.parse_file(file_path) == expected + + +def _create_tmp_file_validation(entrypoint, expected_config, expected_catalog, expected_state): + def _validate_tmp_files(self): + _validate_tmp_json_file(expected_config, entrypoint.return_value.parse_args.call_args.args[0][2]) + _validate_tmp_catalog(expected_catalog, entrypoint.return_value.parse_args.call_args.args[0][4]) + _validate_tmp_json_file(expected_state, entrypoint.return_value.parse_args.call_args.args[0][6]) + return entrypoint.return_value.run.return_value + return _validate_tmp_files + + +class EntrypointWrapperTest(TestCase): + def setUp(self) -> None: + self._a_source = _a_mocked_source() + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_when_read_then_ensure_parameters(self, entrypoint): + entrypoint.return_value.run.side_effect = _create_tmp_file_validation(entrypoint, _A_CONFIG, _A_CATALOG, _A_STATE) + + read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + + entrypoint.assert_called_once_with(self._a_source) + entrypoint.return_value.run.assert_called_once_with(entrypoint.return_value.parse_args.return_value) + assert entrypoint.return_value.parse_args.call_count == 1 + assert entrypoint.return_value.parse_args.call_args.args[0][0] == "read" + assert entrypoint.return_value.parse_args.call_args.args[0][1] == "--config" + assert entrypoint.return_value.parse_args.call_args.args[0][3] == "--catalog" + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_when_read_then_ensure_files_are_temporary(self, entrypoint): + read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + + assert not os.path.exists(entrypoint.return_value.parse_args.call_args.args[0][2]) + assert not os.path.exists(entrypoint.return_value.parse_args.call_args.args[0][4]) + assert not os.path.exists(entrypoint.return_value.parse_args.call_args.args[0][6]) + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_logging_during_run_when_read_then_output_has_logs(self, entrypoint): + def _do_some_logging(self): + logging.getLogger("any logger").info(_A_LOG_MESSAGE) + return entrypoint.return_value.run.return_value + entrypoint.return_value.run.side_effect = _do_some_logging + + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + + assert len(output.logs) == 1 + assert output.logs[0].log.message == _A_LOG_MESSAGE + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_record_when_read_then_output_has_record(self, entrypoint): + entrypoint.return_value.run.return_value = _to_entrypoint_output([_A_RECORD]) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.records == [_A_RECORD] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_state_message_when_read_then_output_has_state_message(self, entrypoint): + entrypoint.return_value.run.return_value = _to_entrypoint_output([_A_STATE_MESSAGE]) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.state_messages == [_A_STATE_MESSAGE] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_state_message_and_records_when_read_then_output_has_records_and_state_message(self, entrypoint): + entrypoint.return_value.run.return_value = _to_entrypoint_output([_A_RECORD, _A_STATE_MESSAGE]) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.records_and_state_messages == [_A_RECORD, _A_STATE_MESSAGE] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_log_when_read_then_output_has_log(self, entrypoint): + entrypoint.return_value.run.return_value = _to_entrypoint_output([_A_LOG]) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.logs == [_A_LOG] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_trace_message_when_read_then_output_has_trace_messages(self, entrypoint): + entrypoint.return_value.run.return_value = _to_entrypoint_output([_AN_ANALYTIC_MESSAGE]) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.analytics_messages == [_AN_ANALYTIC_MESSAGE] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_stream_statuses_when_read_then_return_statuses(self, entrypoint): + status_messages = [ + _a_status_message(_A_STREAM_NAME, AirbyteStreamStatus.STARTED), + _a_status_message(_A_STREAM_NAME, AirbyteStreamStatus.COMPLETE) + ] + entrypoint.return_value.run.return_value = _to_entrypoint_output(status_messages) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.get_stream_statuses(_A_STREAM_NAME) == [AirbyteStreamStatus.STARTED, AirbyteStreamStatus.COMPLETE] + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_stream_statuses_for_many_streams_when_read_then_filter_other_streams(self, entrypoint): + status_messages = [ + _a_status_message(_A_STREAM_NAME, AirbyteStreamStatus.STARTED), + _a_status_message("another stream name", AirbyteStreamStatus.INCOMPLETE), + _a_status_message(_A_STREAM_NAME, AirbyteStreamStatus.COMPLETE) + ] + entrypoint.return_value.run.return_value = _to_entrypoint_output(status_messages) + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert len(output.get_stream_statuses(_A_STREAM_NAME)) == 2 + + @patch('airbyte_cdk.test.entrypoint_wrapper.print', create=True) + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_unexpected_exception_when_read_then_print(self, entrypoint, print_mock): + entrypoint.return_value.run.side_effect = ValueError("This error should be printed") + read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert print_mock.call_count > 0 + + @patch('airbyte_cdk.test.entrypoint_wrapper.print', create=True) + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_expected_exception_when_read_then_do_not_print(self, entrypoint, print_mock): + entrypoint.return_value.run.side_effect = ValueError("This error should be printed") + read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE, expecting_exception=True) + assert print_mock.call_count == 0 + + @patch("airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypoint") + def test_given_uncaught_exception_when_read_then_output_has_error(self, entrypoint): + entrypoint.return_value.run.side_effect = ValueError("This error should be printed") + output = read(self._a_source, _A_CONFIG, _A_CATALOG, _A_STATE) + assert output.errors diff --git a/airbyte-cdk/python/unit_tests/test_exception_handler.py b/airbyte-cdk/python/unit_tests/test_exception_handler.py index 73981848e9732..3c6466dd46c74 100644 --- a/airbyte-cdk/python/unit_tests/test_exception_handler.py +++ b/airbyte-cdk/python/unit_tests/test_exception_handler.py @@ -8,7 +8,21 @@ import sys import pytest +from airbyte_cdk.exception_handler import assemble_uncaught_exception from airbyte_cdk.models import AirbyteErrorTraceMessage, AirbyteLogMessage, AirbyteMessage, AirbyteTraceMessage +from airbyte_cdk.utils.traced_exception import AirbyteTracedException + + +def test_given_exception_is_traced_exception_when_assemble_uncaught_exception_then_return_same_exception(): + exception = AirbyteTracedException() + assembled_exception = assemble_uncaught_exception(type(exception), exception) + assert exception == assembled_exception + + +def test_given_exception_not_traced_exception_when_assemble_uncaught_exception_then_return_traced_exception(): + exception = ValueError("any error") + assembled_exception = assemble_uncaught_exception(type(exception), exception) + assert isinstance(assembled_exception, AirbyteTracedException) def test_uncaught_exception_handler(): From 5b099830befd675a26e7c24e7a9378624379ea62 Mon Sep 17 00:00:00 2001 From: maxi297 Date: Mon, 11 Dec 2023 14:27:21 +0000 Subject: [PATCH 19/22] =?UTF-8?q?=F0=9F=A4=96=20Bump=20patch=20version=20o?= =?UTF-8?q?f=20Python=20CDK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- airbyte-cdk/python/.bumpversion.cfg | 2 +- airbyte-cdk/python/CHANGELOG.md | 3 +++ airbyte-cdk/python/Dockerfile | 4 ++-- airbyte-cdk/python/setup.py | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg index f7dabb14b15e5..c7a22d936a825 100644 --- a/airbyte-cdk/python/.bumpversion.cfg +++ b/airbyte-cdk/python/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.57.0 +current_version = 0.57.1 commit = False [bumpversion:file:setup.py] diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md index 73e3f6213e6df..c606bb468b22a 100644 --- a/airbyte-cdk/python/CHANGELOG.md +++ b/airbyte-cdk/python/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.57.1 +Improve integration tests tooling + ## 0.57.0 low-code: cache requests sent for parent streams diff --git a/airbyte-cdk/python/Dockerfile b/airbyte-cdk/python/Dockerfile index 1fdab7b90e0f7..55f1eb6d46fcd 100644 --- a/airbyte-cdk/python/Dockerfile +++ b/airbyte-cdk/python/Dockerfile @@ -10,7 +10,7 @@ RUN apk --no-cache upgrade \ && apk --no-cache add tzdata build-base # install airbyte-cdk -RUN pip install --prefix=/install airbyte-cdk==0.57.0 +RUN pip install --prefix=/install airbyte-cdk==0.57.1 # build a clean environment FROM base @@ -32,5 +32,5 @@ ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] # needs to be the same as CDK -LABEL io.airbyte.version=0.57.0 +LABEL io.airbyte.version=0.57.1 LABEL io.airbyte.name=airbyte/source-declarative-manifest diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py index 0d84508f00d32..b9e74684aa86c 100644 --- a/airbyte-cdk/python/setup.py +++ b/airbyte-cdk/python/setup.py @@ -36,7 +36,7 @@ name="airbyte-cdk", # The version of the airbyte-cdk package is used at runtime to validate manifests. That validation must be # updated if our semver format changes such as using release candidate versions. - version="0.57.0", + version="0.57.1", description="A framework for writing Airbyte Connectors.", long_description=README, long_description_content_type="text/markdown", From c3cd37cea0f0059531f192bac6bea604603d9600 Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 11 Dec 2023 15:34:34 +0100 Subject: [PATCH 20/22] airbyte-ci: disable automatted fix on PRs (#33186) Co-authored-by: alafanechere --- .github/workflows/format_check.yml | 58 ++++++++++++++++++++++-------- .github/workflows/format_fix.yml | 51 +++++--------------------- 2 files changed, 52 insertions(+), 57 deletions(-) diff --git a/.github/workflows/format_check.yml b/.github/workflows/format_check.yml index ccf55bb1fa783..7e6be7dc972dc 100644 --- a/.github/workflows/format_check.yml +++ b/.github/workflows/format_check.yml @@ -1,18 +1,17 @@ -name: Check for formatting errors on head ref - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - +name: Check for formatting errors +run-name: Check for formatting errors on ${{ github.ref }} on: workflow_dispatch: push: branches: - master + pull_request: + jobs: format-check: runs-on: "ci-runner-connector-format-medium-dagger-0-6-4" - name: "Check for formatting errors on ${{ github.head_ref }}" - timeout-minutes: 40 + # IMPORTANT: This name must match the require check name on the branch protection settings + name: "Check for formatting errors" steps: - name: Checkout Airbyte uses: actions/checkout@v3 @@ -20,8 +19,9 @@ jobs: ref: ${{ github.head_ref }} token: ${{ secrets.GH_PAT_APPROVINGTON_OCTAVIA }} - - name: Run airbyte-ci format check - id: airbyte_ci_format_check_all + - name: Run airbyte-ci format check [MASTER] + id: airbyte_ci_format_check_all_master + if: github.ref == 'refs/heads/master' uses: ./.github/actions/run-dagger-pipeline continue-on-error: true with: @@ -34,18 +34,46 @@ jobs: tailscale_auth_key: ${{ secrets.TAILSCALE_AUTH_KEY }} subcommand: "format check all" - # This is helpful in the case that we change a previously committed generated file to be ignored by git. - - name: Remove any files that have been gitignored - run: git ls-files -i -c --exclude-from=.gitignore | xargs -r git rm --cached + - name: Run airbyte-ci format check [PULL REQUEST] + id: airbyte_ci_format_check_all_pr + if: github.event_name == 'pull_request' + uses: ./.github/actions/run-dagger-pipeline + continue-on-error: false + with: + context: "pull_request" + docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }} + docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }} + gcs_credentials: ${{ secrets.METADATA_SERVICE_PROD_GCS_CREDENTIALS }} + sentry_dsn: ${{ secrets.SENTRY_AIRBYTE_CI_DSN }} + github_token: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} + tailscale_auth_key: ${{ secrets.TAILSCALE_AUTH_KEY }} + subcommand: "format check all" - - name: Match GitHub User to Slack User + - name: Run airbyte-ci format check [WORKFLOW DISPATCH] + id: airbyte_ci_format_check_all_manual + if: github.event_name == 'workflow_dispatch' + uses: ./.github/actions/run-dagger-pipeline + continue-on-error: false + with: + context: "manual" + docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }} + docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }} + gcs_credentials: ${{ secrets.METADATA_SERVICE_PROD_GCS_CREDENTIALS }} + sentry_dsn: ${{ secrets.SENTRY_AIRBYTE_CI_DSN }} + github_token: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} + tailscale_auth_key: ${{ secrets.TAILSCALE_AUTH_KEY }} + subcommand: "format check all" + + - name: Match GitHub User to Slack User [MASTER] + if: github.ref == 'refs/heads/master' id: match-github-to-slack-user uses: ./.github/actions/match-github-to-slack-user env: AIRBYTE_TEAM_BOT_SLACK_TOKEN: ${{ secrets.SLACK_AIRBYTE_TEAM_READ_USERS }} GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Format Failure on Master Slack Channel - if: steps.airbyte_ci_format_check_all.outcome == 'failure' + + - name: Format Failure on Master Slack Channel [MASTER] + if: steps.airbyte_ci_format_check_all.outcome == 'failure' && github.ref == 'refs/heads/master' uses: abinoda/slack-action@master env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN_AIRBYTE_TEAM }} diff --git a/.github/workflows/format_fix.yml b/.github/workflows/format_fix.yml index 03748976f9cce..22e39d345c885 100644 --- a/.github/workflows/format_fix.yml +++ b/.github/workflows/format_fix.yml @@ -1,4 +1,5 @@ -name: Automatic Formatting on PRs +name: Fix formatting on a branch +run-name: Fix formatting on ${{ github.ref }} concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -7,44 +8,24 @@ concurrency: on: workflow_dispatch: - pull_request: jobs: format-fix: runs-on: "ci-runner-connector-format-medium-dagger-0-6-4" - name: "Apply All Formatting Rules" - timeout-minutes: 40 + name: "Run airbyte-ci format fix all" steps: - name: Checkout Airbyte uses: actions/checkout@v3 with: - ref: ${{ github.head_ref }} + ref: ${{ github.ref }} # Important that this is set so that CI checks are triggered again # Without this we would be forever waiting on required checks to pass token: ${{ secrets.GH_PAT_APPROVINGTON_OCTAVIA }} - # IMPORTANT! This is necessary to make sure that a status is reported on the PR - # even if the workflow is skipped. If we used GitHub Actions filters, the workflow - # would not be reported as skipped, but instead would be forever pending. - # - # I KNOW THIS SOUNDS CRAZY, BUT IT IS TRUE. - # - # Also, it gets worse - # - # IMPORTANT! DO NOT CHANGE THE QUOTES AROUND THE GLOBS. THEY ARE REQUIRED. - # MAKE SURE TO TEST ANY SYNTAX CHANGES BEFORE MERGING. - - name: Get changed files - uses: tj-actions/changed-files@v39 - id: changes - with: - files_yaml: | - format: - - '**/*' - - '!**/*.md' - - name: Run airbyte-ci format fix all uses: ./.github/actions/run-dagger-pipeline + continue-on-error: true with: - context: "pull_request" + context: "manual" docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }} docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }} gcs_credentials: ${{ secrets.METADATA_SERVICE_PROD_GCS_CREDENTIALS }} @@ -55,27 +36,13 @@ jobs: # This is helpful in the case that we change a previously committed generated file to be ignored by git. - name: Remove any files that have been gitignored - if: always() run: git ls-files -i -c --exclude-from=.gitignore | xargs -r git rm --cached - name: Commit Formatting Changes (PR) uses: stefanzweifel/git-auto-commit-action@v5 - # do not commit if master branch - if: github.ref != 'refs/heads/master' && always() + # Don't commit if we're on master + if: github.ref != 'refs/heads/master' with: - commit_message: Automated Commit - Formatting Changes + commit_message: "chore: format code" commit_user_name: Octavia Squidington III commit_user_email: octavia-squidington-iii@users.noreply.github.com - - - name: Run airbyte-ci format check all - if: always() - uses: ./.github/actions/run-dagger-pipeline - with: - context: "pull_request" - docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }} - docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }} - gcs_credentials: ${{ secrets.METADATA_SERVICE_PROD_GCS_CREDENTIALS }} - sentry_dsn: ${{ secrets.SENTRY_AIRBYTE_CI_DSN }} - github_token: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} - tailscale_auth_key: ${{ secrets.TAILSCALE_AUTH_KEY }} - subcommand: "format check all" From e2789b4f03168e34f6307ca71c0c0708152a3bc5 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Mon, 11 Dec 2023 17:03:18 +0100 Subject: [PATCH 21/22] Update docusaurus to 3 (#33041) --- .../config-based/advanced-topics.md | 2 +- .../authentication.md | 4 +- .../resources/gradle.md | 122 +- docs/integrations/destinations/databricks.md | 4 +- docs/integrations/destinations/r2.md | 4 +- docs/integrations/destinations/redshift.md | 2 +- docs/integrations/destinations/s3-glue.md | 4 +- docs/integrations/destinations/s3.md | 6 +- docs/integrations/destinations/snowflake.md | 10 +- .../sources/azure-blob-storage.md | 4 +- docs/integrations/sources/azure-table.md | 6 +- docs/integrations/sources/datadog.md | 4 +- docs/integrations/sources/file.md | 10 +- docs/integrations/sources/google-drive.md | 4 +- docs/integrations/sources/gutendex.md | 14 +- docs/integrations/sources/s3.md | 4 +- .../sources/snapchat-marketing.md | 2 +- docs/integrations/sources/snowflake.md | 8 +- .../integrations/sources/twilio-taskrouter.md | 2 +- docs/integrations/sources/twilio.md | 2 +- docs/integrations/sources/yandex-metrica.md | 2 +- .../using-airbyte/core-concepts/namespaces.md | 4 +- .../core-concepts/typing-deduping.md | 10 +- docusaurus/docusaurus.config.js | 7 +- docusaurus/package.json | 32 +- .../src/components/HeaderDecoration.jsx | 52 + .../components/HeaderDecoration.module.css | 56 + docusaurus/src/css/custom.css | 57 - docusaurus/src/remark/docsHeaderDecoration.js | 82 +- docusaurus/src/theme/MDXComponents/index.js | 2 + docusaurus/yarn.lock | 4568 +++++++++++------ 31 files changed, 3276 insertions(+), 1814 deletions(-) create mode 100644 docusaurus/src/components/HeaderDecoration.jsx create mode 100644 docusaurus/src/components/HeaderDecoration.module.css diff --git a/docs/connector-development/config-based/advanced-topics.md b/docs/connector-development/config-based/advanced-topics.md index 8914a12605407..cd9b70f4549a3 100644 --- a/docs/connector-development/config-based/advanced-topics.md +++ b/docs/connector-development/config-based/advanced-topics.md @@ -105,7 +105,7 @@ In this example, outer.inner.k2 will evaluate to "MyKey is MyValue" Strings can contain references to previously defined values. The parser will dereference these values to produce a complete object definition. -References can be defined using a "#/{arg}" string. +References can be defined using a `#/{arg}` string. ```yaml key: 1234 diff --git a/docs/connector-development/config-based/understanding-the-yaml-file/authentication.md b/docs/connector-development/config-based/understanding-the-yaml-file/authentication.md index 477d8ea3e782e..1fdb87165beda 100644 --- a/docs/connector-development/config-based/understanding-the-yaml-file/authentication.md +++ b/docs/connector-development/config-based/understanding-the-yaml-file/authentication.md @@ -51,7 +51,7 @@ authenticator: ### BearerAuthenticator -The `BearerAuthenticator` is a specialized `ApiKeyAuthenticator` that always sets the header "Authorization" with the value "Bearer {token}". +The `BearerAuthenticator` is a specialized `ApiKeyAuthenticator` that always sets the header "Authorization" with the value `Bearer {token}`. The following definition will set the header "Authorization" with a value "Bearer hello" Schema: @@ -82,7 +82,7 @@ More information on bearer authentication can be found [here](https://swagger.io ### BasicHttpAuthenticator The `BasicHttpAuthenticator` set the "Authorization" header with a (USER ID/password) pair, encoded using base64 as per [RFC 7617](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#basic_authentication_scheme). -The following definition will set the header "Authorization" with a value "Basic {encoded credentials}" +The following definition will set the header "Authorization" with a value `Basic {encoded credentials}` Schema: diff --git a/docs/contributing-to-airbyte/resources/gradle.md b/docs/contributing-to-airbyte/resources/gradle.md index a819cc4662886..84adf04695da7 100644 --- a/docs/contributing-to-airbyte/resources/gradle.md +++ b/docs/contributing-to-airbyte/resources/gradle.md @@ -223,22 +223,23 @@ The TOML file consists of 4 major sections: - the [bundles] section is used to declare dependency bundles - the [plugins] section is used to declare plugins -> TOML file Example: -> ```gradle -> [versions] -> groovy = "3.0.5" -> -> [libraries] -> groovy-core = { module = "org.codehaus.groovy:groovy", version.ref = "groovy" } -> -> [bundles] -> groovy = ["groovy-core", "groovy-json", "groovy-nio"] -> -> [plugins] -> jmh = { id = "me.champeau.jmh", version = "0.6.5" } -> ``` -> NOTE: for more information please follow [this](https://docs.gradle.org/current/userguide/platforms.html#:~:text=The%20version%20catalog%20TOML%20file%20format -) link. +TOML file Example: + +```gradle +[versions] +groovy = "3.0.5" + +[libraries] +groovy-core = { module = "org.codehaus.groovy:groovy", version.ref = "groovy" } + +[bundles] +groovy = ["groovy-core", "groovy-json", "groovy-nio"] + +[plugins] +jmh = { id = "me.champeau.jmh", version = "0.6.5" } +``` + +NOTE: for more information please follow [this](https://docs.gradle.org/current/userguide/platforms.html#:~:text=The%20version%20catalog%20TOML%20file%20format) link. As described above this project contains TOML file `deps.toml` which is fully fulfilled with respect to [official](https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format) documentation. In case when new versions should be used please update `deps.toml` accordingly. @@ -246,6 +247,7 @@ In case when new versions should be used please update `deps.toml` accordingly.
deps.toml +``` [versions] fasterxml_version = "2.13.0" glassfish_version = "2.31" @@ -293,37 +295,41 @@ apache = ["apache-commons", "apache-commons-lang"] log4j = ["log4j-api", "log4j-core", "log4j-impl", "log4j-web"] slf4j = ["jul-to-slf4j", "jcl-over-slf4j", "log4j-over-slf4j"] junit = ["junit-jupiter-api", "junit-jupiter-params", "mockito-junit-jupiter"] +```
#### Declaring a version catalog Version catalogs can be declared in the settings.gradle file. There should be specified section `dependencyResolutionManagement` which uses `deps.toml` file as a declared catalog. -> Example: -> ```gradle -> dependencyResolutionManagement { -> repositories { -> maven { -> url 'https://airbyte.mycloudrepo.io/public/repositories/airbyte-public-jars/' -> } -> } -> versionCatalogs { -> libs { -> from(files("deps.toml")) -> } -> } -> } -> ``` +Example: + +```gradle +dependencyResolutionManagement { + repositories { + maven { + url 'https://airbyte.mycloudrepo.io/public/repositories/airbyte-public-jars/' + } + } + versionCatalogs { + libs { + from(files("deps.toml")) + } + } +} +``` #### Sharing Catalogs To share this catalog for further usage by other Projects, we do the following 2 steps: - Define `version-catalog` plugin in `build.gradle` file (ignore if this record exists) + ```gradle plugins { id '...' id 'version-catalog' ``` - Prepare Catalog for Publishing + ```gradle catalog { versionCatalog { @@ -334,6 +340,7 @@ To share this catalog for further usage by other Projects, we do the following 2 #### Configure the Plugin Publishing Plugin To **Publishing**, first define the `maven-publish` plugin in `build.gradle` file (ignore if this already exists): + ```gradle plugins { id '...' @@ -341,29 +348,30 @@ plugins { } ``` After that, describe the publishing section. Please use [this](https://docs.gradle.org/current/userguide/publishing_gradle_plugins.html) official documentation for more details. -> Example: -> ```gradle -> publishing { -> publications { -> maven(MavenPublication) { -> groupId = 'io.airbyte' -> artifactId = 'oss-catalog' -> -> from components.versionCatalog -> } -> } -> -> repositories { -> maven { -> url 'https://airbyte.mycloudrepo.io/repositories/airbyte-public-jars' -> credentials { -> name 'cloudrepo' -> username System.getenv('CLOUDREPO_USER') -> password System.getenv('CLOUDREPO_PASSWORD') -> } -> } -> -> mavenLocal() -> } -> } -> ``` +Example: + +```gradle +publishing { + publications { + maven(MavenPublication) { + groupId = 'io.airbyte' + artifactId = 'oss-catalog' + + from components.versionCatalog + } + } + + repositories { + maven { + url 'https://airbyte.mycloudrepo.io/repositories/airbyte-public-jars' + credentials { + name 'cloudrepo' + username System.getenv('CLOUDREPO_USER') + password System.getenv('CLOUDREPO_PASSWORD') + } + } + + mavenLocal() + } +} +``` diff --git a/docs/integrations/destinations/databricks.md b/docs/integrations/destinations/databricks.md index 1d342ef8ada20..e5bcd6e8cdc0f 100644 --- a/docs/integrations/destinations/databricks.md +++ b/docs/integrations/destinations/databricks.md @@ -174,7 +174,7 @@ Provide your Amazon S3 data: - `S3 Secret Access Key` - - See [this](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) on how to generate an access key. - We recommend creating an Airbyte-specific user. This user will require [read and write permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket.html) to objects in the bucket. -- `S3 Filename pattern` - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't be recognized +- `S3 Filename pattern` - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't be recognized #### Azure Blob Storage data source type (External storage) @@ -206,7 +206,7 @@ Provide your Amazon S3 data: | | Region | string | See [documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) for all region codes. | | | Access Key ID | string | AWS/Minio credential. | | | Secret Access Key | string | AWS/Minio credential. | -| | S3 Filename pattern | string | The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. | +| | S3 Filename pattern | string | The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. | | Data Source - Azure | Account Name | string | Name of the account to sync data into. | | | Container Name | string | Container under the above account to sync the data into. | | | SAS token | string | Shared-access signature token for the above account. | diff --git a/docs/integrations/destinations/r2.md b/docs/integrations/destinations/r2.md index 6ed9c67deebc4..287e7c5de23e8 100644 --- a/docs/integrations/destinations/r2.md +++ b/docs/integrations/destinations/r2.md @@ -46,7 +46,7 @@ to create an S3 bucket, or you can create bucket via R2 module of [dashboard](ht _${EPOCH}_`. - **R2 Filename pattern** - The pattern allows you to set the file-name format for the R2 staging file(s), next placeholders combinations are currently supported: - {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. 5. Click `Set up destination`. **For Airbyte OSS:** @@ -73,7 +73,7 @@ _${EPOCH}_`. _${EPOCH}_`. - **R2 Filename pattern** - The pattern allows you to set the file-name format for the R2 staging file(s), next placeholders combinations are currently supported: - {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. 5. Click `Set up destination`. diff --git a/docs/integrations/destinations/redshift.md b/docs/integrations/destinations/redshift.md index f18c1d1a0625a..340f03b66352d 100644 --- a/docs/integrations/destinations/redshift.md +++ b/docs/integrations/destinations/redshift.md @@ -39,7 +39,7 @@ For COPY strategy: - **Part Size** - Affects the size limit of an individual Redshift table. Optional. Increase this if syncing tables larger than 100GB. Files are streamed to S3 in parts. This determines the size of each part, in MBs. As S3 has a limit of 10,000 parts per file, part size affects the table size. This is 10MB by default, resulting in a default table limit of 100GB. Note, a larger part size will result in larger memory requirements. A rule of thumb is to multiply the part size by 10 to get the memory requirement. Modify this with care. - **S3 Filename pattern** - - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. Optional parameters: diff --git a/docs/integrations/destinations/s3-glue.md b/docs/integrations/destinations/s3-glue.md index f588bc1b424b9..56dbf42c2bbda 100644 --- a/docs/integrations/destinations/s3-glue.md +++ b/docs/integrations/destinations/s3-glue.md @@ -59,7 +59,7 @@ Prepare the Glue database that will be used as destination, see [this](https://d - **S3 Endpoint** - Leave empty if using AWS S3, fill in S3 URL if using Minio S3. - **S3 Filename pattern** - - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. - **Glue database** - The Glue database name that was previously created through the management console or the cli. - **Glue serialization library** @@ -96,7 +96,7 @@ Prepare the Glue database that will be used as destination, see [this](https://d - **S3 Endpoint** - Leave empty if using AWS S3, fill in S3 URL if using Minio S3. - **S3 Filename pattern** - - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. - **Glue database** - The Glue database name that was previously created through the management console or the cli. - **Glue serialization library** diff --git a/docs/integrations/destinations/s3.md b/docs/integrations/destinations/s3.md index 0bd85bac6f34a..2b0e902b7eaa9 100644 --- a/docs/integrations/destinations/s3.md +++ b/docs/integrations/destinations/s3.md @@ -46,14 +46,14 @@ NOTE: If the S3 cluster is not configured to use TLS, the connection to Amazon S - See [this](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) to create an S3 bucket. - **S3 Bucket Path** - Subdirectory under the above bucket to sync the data into. - - **S3 Bucket Region** + - **S3 Bucket Region**: - See [here](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) for all region codes. - **S3 Path Format** - Additional string format on how to store data under S3 Bucket Path. Default value is `${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_`. - **S3 Endpoint** - Leave empty if using AWS S3, fill in S3 URL if using Minio S3. - **S3 Filename pattern** - - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't be recognized. + - The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't be recognized. 5. Click `Set up destination`. @@ -88,7 +88,7 @@ NOTE: If the S3 cluster is not configured to use TLS, the connection to Amazon S _ **S3 Endpoint** _ Leave empty if using AWS S3, fill in S3 URL if using Minio S3. - - **S3 Filename pattern** \* The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: {date}, {date:yyyy_MM}, {timestamp}, {timestamp:millis}, {timestamp:micros}, {part_number}, {sync_id}, {format_extension}. Please, don't use empty space and not supportable placeholders, as they won't recognized. + - **S3 Filename pattern** \* The pattern allows you to set the file-name format for the S3 staging file(s), next placeholders combinations are currently supported: `{date}`, `{date:yyyy_MM}`, `{timestamp}`, `{timestamp:millis}`, `{timestamp:micros}`, `{part_number}`, `{sync_id}`, `{format_extension}`. Please, don't use empty space and not supportable placeholders, as they won't recognized. 5. Click `Set up destination`. diff --git a/docs/integrations/destinations/snowflake.md b/docs/integrations/destinations/snowflake.md index 764d8b7a4c207..da563ad4105d6 100644 --- a/docs/integrations/destinations/snowflake.md +++ b/docs/integrations/destinations/snowflake.md @@ -19,11 +19,15 @@ To determine whether a network policy is set on your account or for a specific u **Account** - SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT; +``` +SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT; +``` **User** - SHOW PARAMETERS LIKE 'network_policy' IN USER ; +``` +SHOW PARAMETERS LIKE 'network_policy' IN USER ; +``` To read more please check official [Snowflake documentation](https://docs.snowflake.com/en/user-guide/network-policies.html#) @@ -170,7 +174,7 @@ Navigate to the Airbyte UI to set up Snowflake as a destination. You can authent `alter user set rsa_public_key=;` - and replace with your user name and with your public key. + and replace `` with your user name and `` with your public key. ## Output schema diff --git a/docs/integrations/sources/azure-blob-storage.md b/docs/integrations/sources/azure-blob-storage.md index a7ecb278e4b2e..0bb5243fc5a04 100644 --- a/docs/integrations/sources/azure-blob-storage.md +++ b/docs/integrations/sources/azure-blob-storage.md @@ -126,8 +126,8 @@ Or any other reason! The schema must be provided as valid JSON as a map of `{"co For example: -- {"id": "integer", "location": "string", "longitude": "number", "latitude": "number"} -- {"username": "string", "friends": "array", "information": "object"} +- `{"id": "integer", "location": "string", "longitude": "number", "latitude": "number"}` +- `{"username": "string", "friends": "array", "information": "object"}` ## File Format Settings diff --git a/docs/integrations/sources/azure-table.md b/docs/integrations/sources/azure-table.md index 108b90361c946..5ad07bb670afd 100644 --- a/docs/integrations/sources/azure-table.md +++ b/docs/integrations/sources/azure-table.md @@ -12,8 +12,8 @@ Azure Table storage is a service that stores non-relational structured data (als - data - This property contain all values - additionalProperties - This property denotes that all the values are in `data` property. -` - { +``` +{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { @@ -25,7 +25,7 @@ Azure Table storage is a service that stores non-relational structured data (als } } } -` +``` ### Data type mapping diff --git a/docs/integrations/sources/datadog.md b/docs/integrations/sources/datadog.md index 5cba11290494b..be4deee99bcfc 100644 --- a/docs/integrations/sources/datadog.md +++ b/docs/integrations/sources/datadog.md @@ -24,7 +24,7 @@ An API key is required as well as an API application key. See the [Datadog API a 10. Enter your `queries` - Optional. Multiple queries resulting in multiple streams. 1. Enter the `name`- Optional. Query Name. 2. Select the `data_source` from dropdown - Optional. Supported data sources - metrics, cloud_cost, logs, rum. - 3. Enter the `query`- Optional. A classic query string. Example - _"kubernetes_state.node.count{*}"_, _"@type:resource @resource.status_code:>=400 @resource.type:(xhr OR fetch)"_ + 3. Enter the `query`- Optional. A classic query string. Example - `"kubernetes_state.node.count{*}"`, `"@type:resource @resource.status_code:>=400 @resource.type:(xhr OR fetch)"` 11. Click **Set up source**. ### For Airbyte OSS: @@ -40,7 +40,7 @@ An API key is required as well as an API application key. See the [Datadog API a 10. Enter your `queries` - Optional. Multiple queries resulting in multiple streams. 1. Enter the `name`- Required. Query Name. 2. Select the `data_source` - Required. Supported data sources - metrics, cloud_cost, logs, rum. - 3. Enter the `query`- Required. A classic query string. Example - _"kubernetes_state.node.count{*}"_, _"@type:resource @resource.status_code:>=400 @resource.type:(xhr OR fetch)"_ + 3. Enter the `query`- Required. A classic query string. Example - `"kubernetes_state.node.count{*}"`, `"@type:resource @resource.status_code:>=400 @resource.type:(xhr OR fetch)"` 10. Click **Set up source**. ## Supported sync modes diff --git a/docs/integrations/sources/file.md b/docs/integrations/sources/file.md index b87f40881d200..8afdbf2c912fb 100644 --- a/docs/integrations/sources/file.md +++ b/docs/integrations/sources/file.md @@ -185,22 +185,22 @@ Here are a list of examples of possible file inputs: | Dataset Name | Storage | URL | Reader Impl | Service Account | Description | | ----------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | epidemiology | HTTPS | [https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv](https://storage.googleapis.com/covid19-open-data/v2/latest/epidemiology.csv) | | | [COVID-19 Public dataset](https://console.cloud.google.com/marketplace/product/bigquery-public-datasets/covid19-public-data-program?filter=solution-type:dataset&id=7d6cc408-53c8-4485-a187-b8cb9a5c0b56) on BigQuery | -| hr_and_financials | GCS | gs://airbyte-vault/financial.csv | smart_open or gcfs | {"type": "service_account", "private_key_id": "XXXXXXXX", ...} | data from a private bucket, a service account is necessary | +| hr_and_financials | GCS | gs://airbyte-vault/financial.csv | smart_open or gcfs | `{"type": "service_account", "private_key_id": "XXXXXXXX", ...}` | data from a private bucket, a service account is necessary | | landsat_index | GCS | gcp-public-data-landsat/index.csv.gz | smart_open | | Using smart_open, we don't need to specify the compression (note the gs:// is optional too, same for other providers) | Examples with reader options: | Dataset Name | Storage | URL | Reader Impl | Reader Options | Description | | ------------- | ------- | ----------------------------------------------- | ----------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| landsat_index | GCS | gs://gcp-public-data-landsat/index.csv.gz | GCFS | {"compression": "gzip"} | Additional reader options to specify a compression option to `read_csv` | -| GDELT | S3 | s3://gdelt-open-data/events/20190914.export.csv | | {"sep": "\t", "header": null} | Here is TSV data separated by tabs without header row from [AWS Open Data](https://registry.opendata.aws/gdelt/) | -| server_logs | local | /local/logs.log | | {"sep": ";"} | After making sure a local text file exists at `/tmp/airbyte_local/logs.log` with logs file from some server that are delimited by ';' delimiters | +| landsat_index | GCS | gs://gcp-public-data-landsat/index.csv.gz | GCFS | `{"compression": "gzip"}` | Additional reader options to specify a compression option to `read_csv` | +| GDELT | S3 | s3://gdelt-open-data/events/20190914.export.csv | | `{"sep": "\t", "header": null}` | Here is TSV data separated by tabs without header row from [AWS Open Data](https://registry.opendata.aws/gdelt/) | +| server_logs | local | /local/logs.log | | `{"sep": ";"}` | After making sure a local text file exists at `/tmp/airbyte_local/logs.log` with logs file from some server that are delimited by ';' delimiters | Example for SFTP: | Dataset Name | Storage | User | Password | Host | URL | Reader Options | Description | | ------------ | ------- | ---- | -------- | --------------- | ----------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| Test Rebext | SFTP | demo | password | test.rebext.net | /pub/example/readme.txt | {"sep": "\r\n", "header": null, "names": \["text"], "engine": "python"} | We use `python` engine for `read_csv` in order to handle delimiter of more than 1 character while providing our own column names. | +| Test Rebext | SFTP | demo | password | test.rebext.net | /pub/example/readme.txt | `{"sep": "\r\n", "header": null, "names": \["text"], "engine": "python"}` | We use `python` engine for `read_csv` in order to handle delimiter of more than 1 character while providing our own column names. | Please see (or add) more at `airbyte-integrations/connectors/source-file/integration_tests/integration_source_test.py` for further usages examples. diff --git a/docs/integrations/sources/google-drive.md b/docs/integrations/sources/google-drive.md index c3367d692de95..6edf09e745c7c 100644 --- a/docs/integrations/sources/google-drive.md +++ b/docs/integrations/sources/google-drive.md @@ -183,8 +183,8 @@ Or any other reason! The schema must be provided as valid JSON as a map of `{"co For example: -- {"id": "integer", "location": "string", "longitude": "number", "latitude": "number"} -- {"username": "string", "friends": "array", "information": "object"} +- `{"id": "integer", "location": "string", "longitude": "number", "latitude": "number"}` +- `{"username": "string", "friends": "array", "information": "object"}` ## File Format Settings diff --git a/docs/integrations/sources/gutendex.md b/docs/integrations/sources/gutendex.md index fa026dd5da4b8..434276e2db2c5 100644 --- a/docs/integrations/sources/gutendex.md +++ b/docs/integrations/sources/gutendex.md @@ -34,12 +34,14 @@ ___ Lists of book information in the Project Gutenberg database are queried using the API at /books (e.g. gutendex.com/books). Book data will be returned in the format:- - { - "count": , - "next": , - "previous": , - "results": - } +``` +{ + "count": , + "next": , + "previous": , + "results": +} +``` where `results` is an array of 0-32 book objects, next and previous are URLs to the next and previous pages of results, and count in the total number of books for the query on all pages combined. diff --git a/docs/integrations/sources/s3.md b/docs/integrations/sources/s3.md index d4d6e79d33cf1..2437d6f496be8 100644 --- a/docs/integrations/sources/s3.md +++ b/docs/integrations/sources/s3.md @@ -168,8 +168,8 @@ Or any other reason! The schema must be provided as valid JSON as a map of `{"co For example: -- {"id": "integer", "location": "string", "longitude": "number", "latitude": "number"} -- {"username": "string", "friends": "array", "information": "object"} +- `{"id": "integer", "location": "string", "longitude": "number", "latitude": "number"}` +- `{"username": "string", "friends": "array", "information": "object"}` :::note diff --git a/docs/integrations/sources/snapchat-marketing.md b/docs/integrations/sources/snapchat-marketing.md index 73c07998cbe1a..5f12ba912116c 100644 --- a/docs/integrations/sources/snapchat-marketing.md +++ b/docs/integrations/sources/snapchat-marketing.md @@ -35,7 +35,7 @@ This page guides you through the process of setting up the Snapchat Marketing so - If not - just use some valid url. Here's the discussion about it: [Snapchat Redirect URL - Clarity in documentation please](https://github.com/Snap-Kit/bitmoji-sample/issues/3) * save **Client ID** and **Client Secret** 4. Get refresh token using OAuth2 authentication workflow: - * Open the authorize link in a browser: [https://accounts.snapchat.com/login/oauth2/authorize?response\_type=code&client\_id={client\_id}&redirect\_uri={redirect\_uri}&scope=snapchat-marketing-api&state=wmKkg0TWgppW8PTBZ20sldUmF7hwvU](https://accounts.snapchat.com/login/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope=snapchat-marketing-api&state=wmKkg0TWgppW8PTBZ20sldUmF7hwvU) + * Open the authorize link in a browser: [https://accounts.snapchat.com/login/oauth2/authorize?response\_type=code&client\_id=CLIENT\_ID&redirect\_uri=REDIRECT\_URI&scope=snapchat-marketing-api&state=wmKkg0TWgppW8PTBZ20sldUmF7hwvU](https://accounts.snapchat.com/login/oauth2/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=snapchat-marketing-api&state=wmKkg0TWgppW8PTBZ20sldUmF7hwvU) * Login & Authorize via UI * Locate "code" query parameter in the redirect * Exchange code for access token + refresh token diff --git a/docs/integrations/sources/snowflake.md b/docs/integrations/sources/snowflake.md index b803348816b68..5556fad94bc2f 100644 --- a/docs/integrations/sources/snowflake.md +++ b/docs/integrations/sources/snowflake.md @@ -111,11 +111,15 @@ To determine whether a network policy is set on your account or for a specific u **Account** - SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT; +``` +SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT; +``` **User** - SHOW PARAMETERS LIKE 'network_policy' IN USER ; +``` +SHOW PARAMETERS LIKE 'network_policy' IN USER ; +``` To read more please check official [Snowflake documentation](https://docs.snowflake.com/en/user-guide/network-policies.html#) diff --git a/docs/integrations/sources/twilio-taskrouter.md b/docs/integrations/sources/twilio-taskrouter.md index 5bcaca48b0c0b..20611e93f565e 100644 --- a/docs/integrations/sources/twilio-taskrouter.md +++ b/docs/integrations/sources/twilio-taskrouter.md @@ -19,7 +19,7 @@ See [docs](https://www.twilio.com/docs/taskrouter/api) for more details. 1. [Log into your Airbyte Cloud](https://cloud.airbyte.com/workspaces) account. 2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**. -3. On the Set up the source page, enter the name for the Twilio connector and select **Twilio Taskrouter** from the type dropdown. +3. On the Set up the source page, enter the name for the Twilio connector and select **Twilio Taskrouter** from the Source/Destination type dropdown. 4. Enter your `account_sid`. 5. Enter your `auth_token`. 6. Click **Set up source**. diff --git a/docs/integrations/sources/twilio.md b/docs/integrations/sources/twilio.md index 0120263a283ea..5b7a7679cb920 100644 --- a/docs/integrations/sources/twilio.md +++ b/docs/integrations/sources/twilio.md @@ -17,7 +17,7 @@ See [docs](https://www.twilio.com/docs/iam/api) for more details. 1. [Log into your Airbyte Cloud](https://cloud.airbyte.com/workspaces) account. 2. In the left navigation bar, click **Sources**. In the top-right corner, click **+new source**. -3. On the Set up the source page, enter the name for the Twilio connector and select **Twilio** from the type dropdown. +3. On the Set up the source page, enter the name for the Twilio connector and select **Twilio** from the Source/Destination type dropdown. 4. Enter your `account_sid`. 5. Enter your `auth_token`. 6. Enter your `start_date`. diff --git a/docs/integrations/sources/yandex-metrica.md b/docs/integrations/sources/yandex-metrica.md index e38e7c8404b0a..5f958e16cf740 100644 --- a/docs/integrations/sources/yandex-metrica.md +++ b/docs/integrations/sources/yandex-metrica.md @@ -20,7 +20,7 @@ This page contains the setup guide and reference information for the Yandex Metr - What data do you need?: **Yandex.Metrica**. Read permission will suffice. 5. Choose your app from [the list](https://oauth.yandex.com/). - To create your API key you will need to grab your **ClientID**, - - Now to get the API key craft a GET request to an endpoint *https://oauth.yandex.com/authorizE?response_type=token&client_id=\* + - Now to get the API key craft a GET request to an endpoint *https://oauth.yandex.com/authorizE?response_type=token&client_id=YOUR_CLIENT_ID* - You will receive a response with your **API key**. Save it. ### Step 2: Set up the Yandex Metrica connector in Airbyte diff --git a/docs/using-airbyte/core-concepts/namespaces.md b/docs/using-airbyte/core-concepts/namespaces.md index 31e092e0d8620..fb1e2b895bd74 100644 --- a/docs/using-airbyte/core-concepts/namespaces.md +++ b/docs/using-airbyte/core-concepts/namespaces.md @@ -70,8 +70,8 @@ The following table summarises how this works. In this example, we're looking at | Mirror source structure | public | my\_table | public | my\_table | | Mirror source structure | | my\_table | my\_schema | my\_table | | Custom format = "custom" | public | my\_table | custom | my\_table | -| Custom format = "${SOURCE\_NAMESPACE}" | public | my\_table | public | my\_table | -| Custom format = "my\_${SOURCE\_NAMESPACE}\_schema" | public | my\_table | my\_public\_schema | my\_table | +| Custom format = `"${SOURCE\_NAMESPACE}"` | public | my\_table | public | my\_table | +| Custom format = `"my\_${SOURCE\_NAMESPACE}\_schema"` | public | my\_table | my\_public\_schema | my\_table | | Custom format = " " | public | my\_table | my\_schema | my\_table | ## Syncing Details diff --git a/docs/using-airbyte/core-concepts/typing-deduping.md b/docs/using-airbyte/core-concepts/typing-deduping.md index 1494981a44401..b63bb2f738606 100644 --- a/docs/using-airbyte/core-concepts/typing-deduping.md +++ b/docs/using-airbyte/core-concepts/typing-deduping.md @@ -60,8 +60,8 @@ The data from one stream will now be mapped to one table in your schema as below | _(note, not in actual table)_ | \_airbyte_raw_id | \_airbyte_extracted_at | \_airbyte_meta | id | first_name | age | address | | -------------------------------------------- | ---------------- | ---------------------- | ------------------------------------------------------------ | --- | ---------- | ---- | --------------------------------------- | -| Successful typing and de-duping ⟶ | xxx-xxx-xxx | 2022-01-01 12:00:00 | {} | 1 | sarah | 39 | { city: “San Francisco”, zip: “94131” } | -| Failed typing that didn’t break other rows ⟶ | yyy-yyy-yyy | 2022-01-01 12:00:00 | { errors: {[“fish” is not a valid integer for column “age”]} | 2 | evan | NULL | { city: “Menlo Park”, zip: “94002” } | +| Successful typing and de-duping ⟶ | xxx-xxx-xxx | 2022-01-01 12:00:00 | `{}` | 1 | sarah | 39 | `{ city: “San Francisco”, zip: “94131” }` | +| Failed typing that didn’t break other rows ⟶ | yyy-yyy-yyy | 2022-01-01 12:00:00 | `{ errors: {[“fish” is not a valid integer for column “age”]}` | 2 | evan | NULL | `{ city: “Menlo Park”, zip: “94002” }` | | Not-yet-typed ⟶ | | | | | | | | In legacy normalization, columns of [Airbyte type](/understanding-airbyte/supported-data-types/#the-types) `Object` in the Destination were "unnested" into separate tables. In this example, with Destinations V2, the previously unnested `public.users_address` table with columns `city` and `zip` will no longer be generated. @@ -70,9 +70,9 @@ In legacy normalization, columns of [Airbyte type](/understanding-airbyte/suppor | _(note, not in actual table)_ | \_airbyte_raw_id | \_airbyte_data | \_airbyte_loaded_at | \_airbyte_extracted_at | | -------------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------- | -------------------- | ---------------------- | -| Successful typing and de-duping ⟶ | xxx-xxx-xxx | { id: 1, first_name: “sarah”, age: 39, address: { city: “San Francisco”, zip: “94131” } } | 2022-01-01 12:00:001 | 2022-01-01 12:00:00 | -| Failed typing that didn’t break other rows ⟶ | yyy-yyy-yyy | { id: 2, first_name: “evan”, age: “fish”, address: { city: “Menlo Park”, zip: “94002” } } | 2022-01-01 12:00:001 | 2022-01-01 12:00:00 | -| Not-yet-typed ⟶ | zzz-zzz-zzz | { id: 3, first_name: “edward”, age: 35, address: { city: “Sunnyvale”, zip: “94003” } } | NULL | 2022-01-01 13:00:00 | +| Successful typing and de-duping ⟶ | xxx-xxx-xxx | `{ id: 1, first_name: “sarah”, age: 39, address: { city: “San Francisco”, zip: “94131” } }` | 2022-01-01 12:00:001 | 2022-01-01 12:00:00 | +| Failed typing that didn’t break other rows ⟶ | yyy-yyy-yyy | `{ id: 2, first_name: “evan”, age: “fish”, address: { city: “Menlo Park”, zip: “94002” } }` | 2022-01-01 12:00:001 | 2022-01-01 12:00:00 | +| Not-yet-typed ⟶ | zzz-zzz-zzz | `{ id: 3, first_name: “edward”, age: 35, address: { city: “Sunnyvale”, zip: “94003” } }` | NULL | 2022-01-01 13:00:00 | You also now see the following changes in Airbyte-provided columns: diff --git a/docusaurus/docusaurus.config.js b/docusaurus/docusaurus.config.js index f9081daf735d6..825a388820b37 100644 --- a/docusaurus/docusaurus.config.js +++ b/docusaurus/docusaurus.config.js @@ -5,8 +5,11 @@ const yaml = require("js-yaml"); const fs = require("node:fs"); const path = require("node:path"); -const lightCodeTheme = require("prism-react-renderer/themes/github"); -const darkCodeTheme = require("prism-react-renderer/themes/dracula"); +const { themes } = require('prism-react-renderer'); +const lightCodeTheme = themes.github; +const darkCodeTheme = themes.dracula; + + const docsHeaderDecoration = require("./src/remark/docsHeaderDecoration"); diff --git a/docusaurus/package.json b/docusaurus/package.json index 0b6f9d3aa61ed..1c2b0988aa40f 100644 --- a/docusaurus/package.json +++ b/docusaurus/package.json @@ -73,23 +73,23 @@ "@babel/preset-react": "7.18.6", "@babel/preset-typescript": "7.18.6", "@babel/runtime-corejs3": "7.18.6", - "@cmfcmf/docusaurus-search-local": "^0.10.0", + "@cmfcmf/docusaurus-search-local": "^1.1.0", "@docsearch/react": "3.1.0", - "@docusaurus/core": "^2.4.3", - "@docusaurus/cssnano-preset": "^2.4.3", - "@docusaurus/module-type-aliases": "^2.4.3", - "@docusaurus/plugin-client-redirects": "^2.4.3", - "@docusaurus/plugin-debug": "^2.4.3", - "@docusaurus/plugin-sitemap": "^2.4.3", - "@docusaurus/preset-classic": "^2.4.3", - "@docusaurus/theme-classic": "^2.4.3", - "@docusaurus/theme-search-algolia": "^2.4.3", - "@docusaurus/types": "^2.4.3", + "@docusaurus/core": "^3.0.1", + "@docusaurus/cssnano-preset": "^3.0.1", + "@docusaurus/module-type-aliases": "^3.0.1", + "@docusaurus/plugin-client-redirects": "^3.0.1", + "@docusaurus/plugin-debug": "^3.0.1", + "@docusaurus/plugin-sitemap": "^3.0.1", + "@docusaurus/preset-classic": "^3.0.1", + "@docusaurus/theme-classic": "^3.0.1", + "@docusaurus/theme-search-algolia": "^3.0.1", + "@docusaurus/types": "^3.0.1", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@mdx-js/react": "^1.6.21", + "@mdx-js/react": "^3.0.0", "async": "2.6.4", "autoprefixer": "10.4.7", "clsx": "^1.1.1", @@ -103,6 +103,7 @@ "docusaurus-plugin-hubspot": "^1.0.0", "docusaurus-plugin-segment": "^1.0.3", "js-yaml": "^4.1.0", + "node-fetch": "^3.3.2", "nth-check": "2.0.1", "postcss-convert-values": "5.1.2", "postcss-discard-comments": "5.1.2", @@ -113,13 +114,14 @@ "postcss-normalize-positions": "5.1.1", "postcss-normalize-repeat-style": "5.1.1", "postcss-ordered-values": "5.1.3", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "prism-react-renderer": "^2.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-markdown": "^8.0.7", "react-router": "5.3.3", "sockjs": "0.3.24", "trim": "0.0.3", + "unist-util-visit": "^5.0.0", "webpack-dev-server": "4.9.2", "yaml-loader": "^0.8.0" }, diff --git a/docusaurus/src/components/HeaderDecoration.jsx b/docusaurus/src/components/HeaderDecoration.jsx new file mode 100644 index 0000000000000..af22a291a80ec --- /dev/null +++ b/docusaurus/src/components/HeaderDecoration.jsx @@ -0,0 +1,52 @@ +import React from "react"; +import styles from "./HeaderDecoration.module.css"; + +const capitalizeFirstLetter = (string) => { + return string.charAt(0).toUpperCase() + string.slice(1); +}; + +const CHECK_ICON = Available; +const CROSS_ICON = Not available; + +export const HeaderDecoration = ({ + isOss, + isCloud, + dockerImageTag, + supportLevel, + iconUrl, + originalTitle, + originalId +}) => { + return <> +
+
+
Availability
+
+ { + isCloud ? CHECK_ICON : CROSS_ICON + } Airbyte Cloud + { + isOss ? CHECK_ICON : CROSS_ICON + } Airbyte OSS +
+
+
+
Support Level
+
+ {capitalizeFirstLetter(supportLevel)} +
+
+
+
Latest Version
+
{dockerImageTag}
+
+
+ +
+ +

{originalTitle}

+
+ ; +}; \ No newline at end of file diff --git a/docusaurus/src/components/HeaderDecoration.module.css b/docusaurus/src/components/HeaderDecoration.module.css new file mode 100644 index 0000000000000..191f95ca96c7a --- /dev/null +++ b/docusaurus/src/components/HeaderDecoration.module.css @@ -0,0 +1,56 @@ +.connectorIcon { + max-height: 40px; + max-width: 40px; + float: left; + margin-right: 10px; +} + +.connectorMetadata { + background: var(--ifm-color-info-contrast-background); + border-radius: 2px; + width: 100%; + font-size: smaller; + margin: 0; + padding: 5px; + margin-bottom: 15px; +} + +.connectorMetadata > div { + display: flex; + align-items: center; + gap: 0.2em; +} + +.connectorMetadata dt { + display: inline; + font-weight: bold; +} + +.connectorMetadata dd { + display: inline; + margin: 0; +} + +.connectorMetadata dt::after { + content: ": "; +} + +.connectorMetadata .availability { + display: inline-flex; + gap: 8px; + margin-left: 2px; +} + +.connectorMetadata .availability > span { + display: inline-flex; + align-items: center; + gap: 2px; +} + +.connectorMetadata .availability .unavailable { + color: var(--ifm-color-emphasis-600); +} + +[data-theme="dark"] .connectorMetadata .availability .unavailable { + color: var(--ifm-color-emphasis-400); +} diff --git a/docusaurus/src/css/custom.css b/docusaurus/src/css/custom.css index ba56dadcae021..d2b7ab6d5707e 100644 --- a/docusaurus/src/css/custom.css +++ b/docusaurus/src/css/custom.css @@ -201,60 +201,3 @@ The variables for them have been added to :root at the top of this file */ background: var(--color-active-nav-item-background); color: var(--color-active-nav-item-text); } - -.connectorIcon { - max-height: 40px; - max-width: 40px; - float: left; - margin-right: 10px; -} - -.connectorMetadata { - background: var(--ifm-color-info-contrast-background); - border-radius: 2px; - width: 100%; - font-size: smaller; - margin: 0; - padding: 5px; - margin-bottom: 15px; -} - -.connectorMetadata > div { - display: flex; - align-items: center; - gap: 0.2em; -} - -.connectorMetadata dt { - display: inline; - font-weight: bold; -} - -.connectorMetadata dd { - display: inline; - margin: 0; -} - -.connectorMetadata dt::after { - content: ": "; -} - -.connectorMetadata .availability { - display: inline-flex; - gap: 8px; - margin-left: 2px; -} - -.connectorMetadata .availability > span { - display: inline-flex; - align-items: center; - gap: 2px; -} - -.connectorMetadata .availability .unavailable { - color: var(--ifm-color-emphasis-600); -} - -[data-theme="dark"] .connectorMetadata .availability .unavailable { - color: var(--ifm-color-emphasis-400); -} diff --git a/docusaurus/src/remark/docsHeaderDecoration.js b/docusaurus/src/remark/docsHeaderDecoration.js index d627da204bf4e..f79d6c20383e1 100644 --- a/docusaurus/src/remark/docsHeaderDecoration.js +++ b/docusaurus/src/remark/docsHeaderDecoration.js @@ -1,8 +1,5 @@ const fetch = require("node-fetch"); -const visit = require("unist-util-visit"); - -const CHECK_ICON = `Available`; -const CROSS_ICON = `Not available`; +const visit = require("unist-util-visit").visit; const REGISTRY_URL = "https://connectors.airbyte.com/files/generated_reports/connector_registry_report.json"; @@ -16,6 +13,12 @@ const fetchCatalog = async () => { const catalog = fetchCatalog(); +const toAttributes = (props) => Object.entries(props).map(([key, value]) => ({ + type: "mdxJsxAttribute", + name: key, + value: value + })); + const plugin = () => { const transformer = async (ast, vfile) => { if (!isDocsPage(vfile)) return; @@ -41,63 +44,24 @@ const plugin = () => { const originalTitle = node.children[0].value; const originalId = node.data.hProperties.id; - node.type = "html"; - node.children = undefined; - node.value = buildConnectorHTMLContent( - registryEntry, + node.children = []; + node.type = "mdxJsxFlowElement"; + node.name = "HeaderDecoration"; + node.attributes = toAttributes({ + isOss: registryEntry.is_oss, + isCloud: registryEntry.is_cloud, + supportLevel: registryEntry.supportLevel_oss, + dockerImageTag: registryEntry.dockerImageTag_oss, + iconUrl: registryEntry.iconUrl_oss, originalTitle, originalId - ); + }); } }); }; return transformer; }; -const buildConnectorHTMLContent = ( - registryEntry, - originalTitle, - originalId -) => { - // note - you can't have any leading whitespace here - const htmlContent = `
- - -
- -

${originalTitle}

-
-
`; - - return htmlContent; -}; - const isDocsPage = (vfile) => { if ( !vfile.path.includes("integrations/sources") && @@ -113,16 +77,4 @@ const isDocsPage = (vfile) => { return true; }; -const escape = (string) => { - return string - .replace(/&/g, "&") - .replace(/"/g, """) - .replace(//g, ">"); -}; - -const capitalizeFirstLetter = (string) => { - return string.charAt(0).toUpperCase() + string.slice(1); -}; - module.exports = plugin; diff --git a/docusaurus/src/theme/MDXComponents/index.js b/docusaurus/src/theme/MDXComponents/index.js index 68de5af5a47ba..efbcb1cd056db 100644 --- a/docusaurus/src/theme/MDXComponents/index.js +++ b/docusaurus/src/theme/MDXComponents/index.js @@ -4,6 +4,7 @@ import MDXComponents from "@theme-original/MDXComponents"; import { AppliesTo } from "@site/src/components/AppliesTo"; import { FieldAnchor } from "@site/src/components/FieldAnchor"; import { HideInUI } from "@site/src/components/HideInUI"; +import { HeaderDecoration } from "@site/src/components/HeaderDecoration"; export default { // Re-use the default mapping @@ -11,4 +12,5 @@ export default { AppliesTo, FieldAnchor, HideInUI, + HeaderDecoration, }; diff --git a/docusaurus/yarn.lock b/docusaurus/yarn.lock index 241f979acc7a2..acbc765234a73 100644 --- a/docusaurus/yarn.lock +++ b/docusaurus/yarn.lock @@ -2,13 +2,13 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.11.0.tgz#9db68f2aa38fe3149507d214082a1926b6b91fac" - integrity sha512-kFtn8XPMdE1QGDxyMTObGgaUpq5lcG2fLVsda6E88MoZZsfYkC8Oua6dwa0b06/GpgEWaliby/7AksUqz05uzw== +"@algolia/autocomplete-core@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.12.1.tgz#c36ce91f10c978341d89a2dc738b3fae7044e3b2" + integrity sha512-Paf1MEdsU8EA5eApJlp6yNJGn6IfWec6UoJyv6fzI+T2v9nU4ynH4nkq07hzOilImVy33vFlzh1+D7jcU2lMFg== dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.11.0" - "@algolia/autocomplete-shared" "1.11.0" + "@algolia/autocomplete-plugin-algolia-insights" "1.12.1" + "@algolia/autocomplete-shared" "1.12.1" "@algolia/autocomplete-core@1.6.3": version "1.6.3" @@ -25,23 +25,23 @@ "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" "@algolia/autocomplete-shared" "1.9.3" -"@algolia/autocomplete-js@^1.5.1": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-js/-/autocomplete-js-1.11.0.tgz#1e05480dd14a4068791013a7587884ca962d93db" - integrity sha512-+INNaRwwztxUboAoTnDSAm7INPcyLOu4SANYTZihyQiVRr6ZeJd7/AlifMnonJxrEH7j5RgX7WhjUm5xMN+r8A== +"@algolia/autocomplete-js@^1.8.2": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-js/-/autocomplete-js-1.12.1.tgz#30c8e0ae474125d411539c01de0c4a1f136bf121" + integrity sha512-o8OVeyTSCJ1n5xnULBqlJ3gcimlyevUeNUmGXuHgd6K2TeHmZ8EgaxHWuyzOdgWNjcJpCpjDh4Q/hEvQq3svDQ== dependencies: - "@algolia/autocomplete-core" "1.11.0" - "@algolia/autocomplete-preset-algolia" "1.11.0" - "@algolia/autocomplete-shared" "1.11.0" + "@algolia/autocomplete-core" "1.12.1" + "@algolia/autocomplete-preset-algolia" "1.12.1" + "@algolia/autocomplete-shared" "1.12.1" htm "^3.1.1" preact "^10.13.2" -"@algolia/autocomplete-plugin-algolia-insights@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.11.0.tgz#edae2ebe5d88afe62ce3efa1723289e5ae376ce3" - integrity sha512-TsJ5vs1jR9IbYDRWnd0tHLF/y54quoSAV7fDbyDdfUdkuI9bVP0bzulxT+POezPT5+6Ya5IJNCrg4DViA3Dm0Q== +"@algolia/autocomplete-plugin-algolia-insights@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.12.1.tgz#9bafc4f0aa24ba9bcb8abc92a2057ba8132a69dc" + integrity sha512-wZnfgmJA+g+WWkyXRZqv9NvRtOrZCnsZMpSvGe4QdQatEWRTAn2hry1cHMj8+sxwpqQQE7Kt/GAZhElrmErPkw== dependencies: - "@algolia/autocomplete-shared" "1.11.0" + "@algolia/autocomplete-shared" "1.12.1" "@algolia/autocomplete-plugin-algolia-insights@1.9.3": version "1.9.3" @@ -50,12 +50,12 @@ dependencies: "@algolia/autocomplete-shared" "1.9.3" -"@algolia/autocomplete-preset-algolia@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.11.0.tgz#4a90d130c6667643809f8c20cba46f6d21dad579" - integrity sha512-a2Tg6TOXN75xIzcx9P7srTNIH8kFjap6IEDHiMYWwa3V4qWNZjbE3e07HxwD3Pme8zp700y3EiYTQMBaYETe6g== +"@algolia/autocomplete-preset-algolia@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.12.1.tgz#6438e195aea1eb537b436a2e4369af0444a0bd0e" + integrity sha512-fbciiuDZ6WsQOhf3Rdm4ctZpOGngg8hNtss4FCJz4FGnGSUxs+H0n38k+FbQ3vcfzQ0nsdAjXWwM4G0OLJE3Mw== dependencies: - "@algolia/autocomplete-shared" "1.11.0" + "@algolia/autocomplete-shared" "1.12.1" "@algolia/autocomplete-preset-algolia@1.9.3": version "1.9.3" @@ -64,10 +64,10 @@ dependencies: "@algolia/autocomplete-shared" "1.9.3" -"@algolia/autocomplete-shared@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.11.0.tgz#2ba14b056e695ad2bbd0eb04f5d6dcbd3584c751" - integrity sha512-ug1HYGQfe8+bvGuVJ3Fbdxn+YvR6MHPD36vQ5kv+5WWnBiW+QTyGk5yiluS9+i81l9wxH34Zl3XN/6MQ68MAgw== +"@algolia/autocomplete-shared@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.12.1.tgz#9609d4beccd56c4e7fa68cf376aff74d995bba77" + integrity sha512-Q2NQ9pxSpwi0WsLlGtrnE+nMo4ERgB4YlYi7eW7EIUtD0LSixLQeOqlNNYIhFUYbNYpfG5s9L3W8PMfS2M4qOg== "@algolia/autocomplete-shared@1.6.3": version "1.6.3" @@ -79,10 +79,10 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== -"@algolia/autocomplete-theme-classic@^1.5.1": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.11.0.tgz#3523744fc244f1979850560a898f5c562664ee08" - integrity sha512-R6k8D/6rwI5EQliVweK+JvX6JAF2cnzJvWhfgwOkdkVHYX3RT9yXR8aE7m6Rxv8wtQpivGsCKeTEJl2jD5goEw== +"@algolia/autocomplete-theme-classic@^1.8.2": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.12.1.tgz#eb679bc82221bc287eaa4e6180bd9717c8c015ff" + integrity sha512-oKmMEWAtASUizKc73RKS5vzu0iURM+joVdlAkOVuCpjajUJ98ejMnk43ht4FKPBXDBAVSlM4SmS05lHIpYVLIg== "@algolia/cache-browser-local-storage@4.20.0": version "4.20.0" @@ -201,7 +201,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.8.3": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -209,32 +209,23 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.6", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" +"@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@7.18.6": version "7.18.6" @@ -257,7 +248,7 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.18.6", "@babel/core@^7.19.6": +"@babel/core@^7.19.6": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.20.tgz#e3d0eed84c049e2a2ae0a64d27b6a37edec385b7" integrity sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA== @@ -278,7 +269,28 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.12.5", "@babel/generator@^7.18.6", "@babel/generator@^7.18.7", "@babel/generator@^7.22.15": +"@babel/core@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.18.6", "@babel/generator@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== @@ -288,6 +300,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.3", "@babel/generator@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== + dependencies: + "@babel/types" "^7.23.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -303,7 +325,7 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6", "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6", "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15", "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== @@ -336,7 +358,22 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": +"@babel/helper-create-class-features-plugin@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" + integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== @@ -368,6 +405,17 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.18.6", "@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" @@ -388,6 +436,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.18.6", "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -402,6 +458,13 @@ dependencies: "@babel/types" "^7.22.15" +"@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" @@ -409,7 +472,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.20", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.20", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz#da9edc14794babbe7386df438f3768067132f59e" integrity sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A== @@ -420,6 +483,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.18.6", "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -427,17 +501,12 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== @@ -446,7 +515,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -481,6 +550,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -491,6 +565,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -500,7 +579,7 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.18.6", "@babel/helpers@^7.22.15": +"@babel/helpers@^7.18.6", "@babel/helpers@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== @@ -509,6 +588,15 @@ "@babel/traverse" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + "@babel/highlight@^7.22.13": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" @@ -518,11 +606,25 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.12.7", "@babel/parser@^7.18.6", "@babel/parser@^7.18.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16": +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.18.6", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16": version "7.22.16" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== +"@babel/parser@^7.22.7", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -537,6 +639,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz#b4e4dbc2cd1acd0133479918f7c6412961c9adb8" @@ -555,6 +664,23 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.15" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-proposal-async-generator-functions@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" @@ -665,15 +791,6 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz#ec93bba06bfb3e15ebd7da73e953d84b094d5daf" @@ -803,6 +920,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-import-attributes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" @@ -810,6 +934,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -824,13 +955,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" @@ -838,6 +962,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -859,7 +990,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -908,6 +1039,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -930,6 +1068,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-async-generator-functions@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" @@ -940,6 +1085,16 @@ "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" @@ -958,6 +1113,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-transform-block-scoped-functions@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" @@ -972,6 +1136,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-block-scoping@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz#b5f78318914615397d86a731ef2cc668796a726c" @@ -986,6 +1157,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-class-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" @@ -994,6 +1172,14 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-class-static-block@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" @@ -1003,6 +1189,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-transform-classes@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz#3501a8f3f4c7d5697c27a3eedbee71d68312669f" @@ -1032,6 +1227,21 @@ "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz#5d15eb90e22e69604f3348344c91165c5395d032" @@ -1047,6 +1257,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/plugin-transform-destructuring@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz#a98b0e42c7ffbf5eefcbcf33280430f230895c6f" @@ -1061,6 +1279,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" @@ -1069,6 +1294,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-duplicate-keys@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz#e6c94e8cd3c9dd8a88144f7b78ae22975a7ff473" @@ -1083,6 +1316,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-dynamic-import@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" @@ -1091,6 +1331,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" @@ -1107,6 +1355,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-export-namespace-from@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" @@ -1115,6 +1371,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-for-of@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz#e0fdb813be908e91ccc9ec87b30cc2eabf046f7c" @@ -1129,6 +1393,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-for-of@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-function-name@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz#6a7e4ae2893d336fd1b8f64c9f92276391d0f1b4" @@ -1147,6 +1418,15 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-json-strings@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" @@ -1155,6 +1435,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-transform-literals@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz#9d6af353b5209df72960baf4492722d56f39a205" @@ -1169,6 +1457,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" @@ -1177,6 +1472,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-member-expression-literals@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" @@ -1191,6 +1494,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-amd@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" @@ -1208,6 +1518,14 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-commonjs@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" @@ -1227,6 +1545,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-systemjs@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz#026511b7657d63bf5d4cf2fd4aeb963139914a54" @@ -1248,6 +1575,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" +"@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/plugin-transform-modules-umd@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" @@ -1264,6 +1601,14 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" @@ -1294,6 +1639,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" @@ -1302,6 +1654,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-transform-numeric-separator@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" @@ -1310,6 +1670,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-transform-object-rest-spread@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" @@ -1321,6 +1689,17 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.15" +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== + dependencies: + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-object-super@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" @@ -1337,6 +1716,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/plugin-transform-optional-catch-binding@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" @@ -1345,6 +1732,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-transform-optional-chaining@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba" @@ -1354,13 +1749,29 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.18.6", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.15": +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.18.6", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-private-methods@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" @@ -1369,6 +1780,14 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-private-property-in-object@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" @@ -1379,6 +1798,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-transform-property-literals@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" @@ -1393,6 +1822,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-constant-elements@^7.18.12": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" @@ -1414,6 +1850,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-jsx-development@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" @@ -1455,6 +1898,14 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-regenerator@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" @@ -1471,6 +1922,14 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + "@babel/plugin-transform-reserved-words@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" @@ -1485,6 +1944,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-runtime@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz#77b14416015ea93367ca06979710f5000ff34ccb" @@ -1497,16 +1963,16 @@ babel-plugin-polyfill-regenerator "^0.3.1" semver "^6.3.0" -"@babel/plugin-transform-runtime@^7.18.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" - integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== +"@babel/plugin-transform-runtime@^7.22.9": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" + integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@7.18.6": @@ -1523,6 +1989,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-spread@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz#82b080241965f1689f0a60ecc6f1f6575dbdb9d6" @@ -1539,6 +2012,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-sticky-regex@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" @@ -1553,8 +2034,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@7.18.6": - version "7.18.6" +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@7.18.6": + version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz#b763f4dc9d11a7cce58cf9a490d82e80547db9c2" integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== dependencies: @@ -1567,6 +2055,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typeof-symbol@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz#486bb39d5a18047358e0d04dc0d2f322f0b92e92" @@ -1581,6 +2076,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typescript@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" @@ -1600,6 +2102,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" + integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + "@babel/plugin-transform-unicode-escapes@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" @@ -1614,6 +2126,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" @@ -1622,6 +2141,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-regex@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" @@ -1638,6 +2165,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" @@ -1646,6 +2181,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/preset-env@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.6.tgz#953422e98a5f66bc56cd0b9074eaea127ec86ace" @@ -1727,7 +2270,7 @@ core-js-compat "^3.22.1" semver "^6.3.0" -"@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4": +"@babel/preset-env@^7.19.4": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== @@ -1813,6 +2356,92 @@ core-js-compat "^3.31.0" semver "^6.3.1" +"@babel/preset-env@^7.22.9": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" + integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + core-js-compat "^3.31.0" + semver "^6.3.1" + "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" @@ -1857,6 +2486,18 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" +"@babel/preset-react@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.23.3" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" + "@babel/preset-typescript@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" @@ -1877,6 +2518,17 @@ "@babel/plugin-transform-modules-commonjs" "^7.22.15" "@babel/plugin-transform-typescript" "^7.22.15" +"@babel/preset-typescript@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" @@ -1890,22 +2542,29 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime-corejs3@^7.18.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.22.15.tgz#7aeb9460598a997b0fe74982a5b02fb9e5d264d9" - integrity sha512-SAj8oKi8UogVi6eXQXKNPu8qZ78Yzy7zawrlTr0M+IuW/g8Qe9gVDhGcF9h1S69OyACpYoLxEzpjs1M15sI5wQ== +"@babel/runtime-corejs3@^7.22.6": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.5.tgz#818778beea4f23d40b77b5ad213894404c14f3f3" + integrity sha512-7+ziVclejQTLYhXl+Oi1f6gTGD1XDCeLa4R472TNGQxb08zbEJ0OdNoh5Piz+57Ltmui6xR88BXR4gS3/Toslw== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.12.7", "@babel/template@^7.18.6", "@babel/template@^7.22.15", "@babel/template@^7.22.5": +"@babel/runtime@^7.22.6": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.18.6", "@babel/template@^7.22.15", "@babel/template@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1914,7 +2573,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.12.9", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.20": +"@babel/traverse@^7.18.6", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.20.tgz#db572d9cb5c79e02d83e5618b82f6991c07584c9" integrity sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw== @@ -1930,7 +2589,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.7", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.4.4": +"@babel/traverse@^7.22.8", "@babel/traverse@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.4.4": version "7.22.19" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== @@ -1939,13 +2614,22 @@ "@babel/helper-validator-identifier" "^7.22.19" to-fast-properties "^2.0.0" -"@cmfcmf/docusaurus-search-local@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@cmfcmf/docusaurus-search-local/-/docusaurus-search-local-0.10.0.tgz#0a77847641ec490f4663666e5eee07416f5a0c63" - integrity sha512-X6xabJvvbbgrqgkYUUHSER5kswonKRZatNDJmZTsNiCxFKCephbDL1Kui6QLN6jmorPNWSupj7aMSP3HObHnUg== +"@babel/types@^7.23.0", "@babel/types@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@cmfcmf/docusaurus-search-local@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@cmfcmf/docusaurus-search-local/-/docusaurus-search-local-1.1.0.tgz#3db5d7d6e05985cc3b06cec10436385c53033c69" + integrity sha512-0IVb/aA0IK8ZlktuxmgXmluXfcSpo6Vdd2nG21y1aOH9nVYnPP231Dn0H8Ng9Qf9ronQQCDWHnuWpYOr9rUrEQ== dependencies: - "@algolia/autocomplete-js" "^1.5.1" - "@algolia/autocomplete-theme-classic" "^1.5.1" + "@algolia/autocomplete-js" "^1.8.2" + "@algolia/autocomplete-theme-classic" "^1.8.2" "@algolia/client-search" "^4.12.0" algoliasearch "^4.12.0" cheerio "^1.0.0-rc.9" @@ -1982,7 +2666,7 @@ "@docsearch/css" "3.1.0" algoliasearch "^4.0.0" -"@docsearch/react@^3.1.1": +"@docsearch/react@^3.5.2": version "3.5.2" resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.5.2.tgz#2e6bbee00eb67333b64906352734da6aef1232b9" integrity sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng== @@ -1992,131 +2676,138 @@ "@docsearch/css" "3.5.2" algoliasearch "^4.19.1" -"@docusaurus/core@2.4.3", "@docusaurus/core@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.4.3.tgz#d86624901386fd8164ce4bff9cc7f16fde57f523" - integrity sha512-dWH5P7cgeNSIg9ufReX6gaCl/TmrGKD38Orbwuz05WPhAQtFXHd5B8Qym1TiXfvUNvwoYKkAJOJuGe8ou0Z7PA== +"@docusaurus/core@3.0.1", "@docusaurus/core@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.0.1.tgz#ad9a66b20802ea81b25e65db75d4ca952eda7e01" + integrity sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ== dependencies: - "@babel/core" "^7.18.6" - "@babel/generator" "^7.18.7" + "@babel/core" "^7.23.3" + "@babel/generator" "^7.23.3" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.18.6" - "@babel/preset-env" "^7.18.6" - "@babel/preset-react" "^7.18.6" - "@babel/preset-typescript" "^7.18.6" - "@babel/runtime" "^7.18.6" - "@babel/runtime-corejs3" "^7.18.6" - "@babel/traverse" "^7.18.8" - "@docusaurus/cssnano-preset" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/mdx-loader" "2.4.3" + "@babel/plugin-transform-runtime" "^7.22.9" + "@babel/preset-env" "^7.22.9" + "@babel/preset-react" "^7.22.5" + "@babel/preset-typescript" "^7.22.5" + "@babel/runtime" "^7.22.6" + "@babel/runtime-corejs3" "^7.22.6" + "@babel/traverse" "^7.22.8" + "@docusaurus/cssnano-preset" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/mdx-loader" "3.0.1" "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" "@slorber/static-site-generator-webpack-plugin" "^4.0.7" - "@svgr/webpack" "^6.2.1" - autoprefixer "^10.4.7" - babel-loader "^8.2.5" + "@svgr/webpack" "^6.5.1" + autoprefixer "^10.4.14" + babel-loader "^9.1.3" babel-plugin-dynamic-import-node "^2.3.3" boxen "^6.2.1" chalk "^4.1.2" chokidar "^3.5.3" - clean-css "^5.3.0" - cli-table3 "^0.6.2" + clean-css "^5.3.2" + cli-table3 "^0.6.3" combine-promises "^1.1.0" commander "^5.1.0" copy-webpack-plugin "^11.0.0" - core-js "^3.23.3" - css-loader "^6.7.1" - css-minimizer-webpack-plugin "^4.0.0" - cssnano "^5.1.12" + core-js "^3.31.1" + css-loader "^6.8.1" + css-minimizer-webpack-plugin "^4.2.2" + cssnano "^5.1.15" del "^6.1.1" - detect-port "^1.3.0" + detect-port "^1.5.1" escape-html "^1.0.3" - eta "^2.0.0" + eta "^2.2.0" file-loader "^6.2.0" - fs-extra "^10.1.0" - html-minifier-terser "^6.1.0" - html-tags "^3.2.0" - html-webpack-plugin "^5.5.0" - import-fresh "^3.3.0" + fs-extra "^11.1.1" + html-minifier-terser "^7.2.0" + html-tags "^3.3.1" + html-webpack-plugin "^5.5.3" leven "^3.1.0" lodash "^4.17.21" - mini-css-extract-plugin "^2.6.1" - postcss "^8.4.14" - postcss-loader "^7.0.0" + mini-css-extract-plugin "^2.7.6" + postcss "^8.4.26" + postcss-loader "^7.3.3" prompts "^2.4.2" react-dev-utils "^12.0.1" react-helmet-async "^1.3.0" react-loadable "npm:@docusaurus/react-loadable@5.5.2" react-loadable-ssr-addon-v5-slorber "^1.0.1" - react-router "^5.3.3" + react-router "^5.3.4" react-router-config "^5.1.1" - react-router-dom "^5.3.3" + react-router-dom "^5.3.4" rtl-detect "^1.0.4" - semver "^7.3.7" - serve-handler "^6.1.3" + semver "^7.5.4" + serve-handler "^6.1.5" shelljs "^0.8.5" - terser-webpack-plugin "^5.3.3" - tslib "^2.4.0" - update-notifier "^5.1.0" + terser-webpack-plugin "^5.3.9" + tslib "^2.6.0" + update-notifier "^6.0.2" url-loader "^4.1.1" - wait-on "^6.0.1" - webpack "^5.73.0" - webpack-bundle-analyzer "^4.5.0" - webpack-dev-server "^4.9.3" - webpack-merge "^5.8.0" + webpack "^5.88.1" + webpack-bundle-analyzer "^4.9.0" + webpack-dev-server "^4.15.1" + webpack-merge "^5.9.0" webpackbar "^5.0.2" -"@docusaurus/cssnano-preset@2.4.3", "@docusaurus/cssnano-preset@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.3.tgz#1d7e833c41ce240fcc2812a2ac27f7b862f32de0" - integrity sha512-ZvGSRCi7z9wLnZrXNPG6DmVPHdKGd8dIn9pYbEOFiYihfv4uDR3UtxogmKf+rT8ZlKFf5Lqne8E8nt08zNM8CA== +"@docusaurus/cssnano-preset@3.0.1", "@docusaurus/cssnano-preset@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz#22fbf2e97389e338747864baf011743846e8fd26" + integrity sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ== dependencies: - cssnano-preset-advanced "^5.3.8" - postcss "^8.4.14" - postcss-sort-media-queries "^4.2.1" - tslib "^2.4.0" + cssnano-preset-advanced "^5.3.10" + postcss "^8.4.26" + postcss-sort-media-queries "^4.4.1" + tslib "^2.6.0" -"@docusaurus/logger@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.4.3.tgz#518bbc965fb4ebe8f1d0b14e5f4161607552d34c" - integrity sha512-Zxws7r3yLufk9xM1zq9ged0YHs65mlRmtsobnFkdZTxWXdTYlWWLWdKyNKAsVC+D7zg+pv2fGbyabdOnyZOM3w== +"@docusaurus/logger@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.0.1.tgz#06f512eef6c6ae4e2da63064257e01b1cdc41a82" + integrity sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ== dependencies: chalk "^4.1.2" - tslib "^2.4.0" - -"@docusaurus/mdx-loader@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz#e8ff37f30a060eaa97b8121c135f74cb531a4a3e" - integrity sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw== - dependencies: - "@babel/parser" "^7.18.8" - "@babel/traverse" "^7.18.8" - "@docusaurus/logger" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@mdx-js/mdx" "^1.6.22" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz#89f221e5bcc570983fd61d7ab56d6fbe36810b59" + integrity sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ== + dependencies: + "@babel/parser" "^7.22.7" + "@babel/traverse" "^7.22.8" + "@docusaurus/logger" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + "@mdx-js/mdx" "^3.0.0" + "@slorber/remark-comment" "^1.0.0" escape-html "^1.0.3" + estree-util-value-to-estree "^3.0.1" file-loader "^6.2.0" - fs-extra "^10.1.0" - image-size "^1.0.1" - mdast-util-to-string "^2.0.0" - remark-emoji "^2.2.0" + fs-extra "^11.1.1" + image-size "^1.0.2" + mdast-util-mdx "^3.0.0" + mdast-util-to-string "^4.0.0" + rehype-raw "^7.0.0" + remark-directive "^3.0.0" + remark-emoji "^4.0.0" + remark-frontmatter "^5.0.0" + remark-gfm "^4.0.0" stringify-object "^3.3.0" - tslib "^2.4.0" - unified "^9.2.2" - unist-util-visit "^2.0.3" + tslib "^2.6.0" + unified "^11.0.3" + unist-util-visit "^5.0.0" url-loader "^4.1.1" - webpack "^5.73.0" + vfile "^6.0.1" + webpack "^5.88.1" -"@docusaurus/module-type-aliases@2.4.3", "@docusaurus/module-type-aliases@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.3.tgz#d08ef67e4151e02f352a2836bcf9ecde3b9c56ac" - integrity sha512-cwkBkt1UCiduuvEAo7XZY01dJfRn7UR/75mBgOdb1hKknhrabJZ8YH+7savd/y9kLExPyrhe0QwdS9GuzsRRIA== +"@docusaurus/module-type-aliases@3.0.1", "@docusaurus/module-type-aliases@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz#d45990fe377d7ffaa68841cf89401188a5d65293" + integrity sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag== dependencies: "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/types" "2.4.3" + "@docusaurus/types" "3.0.1" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -2124,154 +2815,155 @@ react-helmet-async "*" react-loadable "npm:@docusaurus/react-loadable@5.5.2" -"@docusaurus/plugin-client-redirects@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.4.3.tgz#0da7e6facadbca3bd7cb8d0453f21bea7f4f1721" - integrity sha512-iCwc/zH8X6eNtLYdyUJFY6+GbsbRgMgvAC/TmSmCYTmwnoN5Y1Bc5OwUkdtoch0XKizotJMRAmGIAhP8sAetdQ== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - eta "^2.0.0" - fs-extra "^10.1.0" +"@docusaurus/plugin-client-redirects@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.0.1.tgz#9a54479e1276c49903bf6c765c801fa810f4bd18" + integrity sha512-CoZapnHbV3j5jsHCa/zmKaa8+H+oagHBgg91dN5I8/3kFit/xtZPfRaznvDX49cHg2nSoV74B3VMAT+bvCmzFQ== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + eta "^2.2.0" + fs-extra "^11.1.1" lodash "^4.17.21" - tslib "^2.4.0" - -"@docusaurus/plugin-content-blog@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.3.tgz#6473b974acab98e967414d8bbb0d37e0cedcea14" - integrity sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/mdx-loader" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" + tslib "^2.6.0" + +"@docusaurus/plugin-content-blog@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz#dee6147187c2d8b634252444d60312d12c9571a6" + integrity sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/mdx-loader" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" cheerio "^1.0.0-rc.12" feed "^4.2.2" - fs-extra "^10.1.0" + fs-extra "^11.1.1" lodash "^4.17.21" reading-time "^1.5.0" - tslib "^2.4.0" - unist-util-visit "^2.0.3" + srcset "^4.0.0" + tslib "^2.6.0" + unist-util-visit "^5.0.0" utility-types "^3.10.0" - webpack "^5.73.0" - -"@docusaurus/plugin-content-docs@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.3.tgz#aa224c0512351e81807adf778ca59fd9cd136973" - integrity sha512-N7Po2LSH6UejQhzTCsvuX5NOzlC+HiXOVvofnEPj0WhMu1etpLEXE6a4aTxrtg95lQ5kf0xUIdjX9sh3d3G76A== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/mdx-loader" "2.4.3" - "@docusaurus/module-type-aliases" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - "@types/react-router-config" "^5.0.6" + webpack "^5.88.1" + +"@docusaurus/plugin-content-docs@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz#d9b1884562186573d5c4521ac3546b68512c1126" + integrity sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/mdx-loader" "3.0.1" + "@docusaurus/module-type-aliases" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + "@types/react-router-config" "^5.0.7" combine-promises "^1.1.0" - fs-extra "^10.1.0" - import-fresh "^3.3.0" + fs-extra "^11.1.1" js-yaml "^4.1.0" lodash "^4.17.21" - tslib "^2.4.0" + tslib "^2.6.0" utility-types "^3.10.0" - webpack "^5.73.0" - -"@docusaurus/plugin-content-pages@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.3.tgz#7f285e718b53da8c8d0101e70840c75b9c0a1ac0" - integrity sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/mdx-loader" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - fs-extra "^10.1.0" - tslib "^2.4.0" - webpack "^5.73.0" - -"@docusaurus/plugin-debug@2.4.3", "@docusaurus/plugin-debug@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.4.3.tgz#2f90eb0c9286a9f225444e3a88315676fe02c245" - integrity sha512-LkUbuq3zCmINlFb+gAd4ZvYr+bPAzMC0hwND4F7V9bZ852dCX8YoWyovVUBKq4er1XsOwSQaHmNGtObtn8Av8Q== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - fs-extra "^10.1.0" - react-json-view "^1.21.3" - tslib "^2.4.0" - -"@docusaurus/plugin-google-analytics@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.3.tgz#0d19993136ade6f7a7741251b4f617400d92ab45" - integrity sha512-KzBV3k8lDkWOhg/oYGxlK5o9bOwX7KpPc/FTWoB+SfKhlHfhq7qcQdMi1elAaVEIop8tgK6gD1E58Q+XC6otSQ== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - tslib "^2.4.0" - -"@docusaurus/plugin-google-gtag@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.3.tgz#e1a80b0696771b488562e5b60eff21c9932d9e1c" - integrity sha512-5FMg0rT7sDy4i9AGsvJC71MQrqQZwgLNdDetLEGDHLfSHLvJhQbTCUGbGXknUgWXQJckcV/AILYeJy+HhxeIFA== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - tslib "^2.4.0" - -"@docusaurus/plugin-google-tag-manager@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.3.tgz#e41fbf79b0ffc2de1cc4013eb77798cff0ad98e3" - integrity sha512-1jTzp71yDGuQiX9Bi0pVp3alArV0LSnHXempvQTxwCGAEzUWWaBg4d8pocAlTpbP9aULQQqhgzrs8hgTRPOM0A== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - tslib "^2.4.0" - -"@docusaurus/plugin-sitemap@2.4.3", "@docusaurus/plugin-sitemap@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.3.tgz#1b3930900a8f89670ce7e8f83fb4730cd3298c32" - integrity sha512-LRQYrK1oH1rNfr4YvWBmRzTL0LN9UAPxBbghgeFRBm5yloF6P+zv1tm2pe2hQTX/QP5bSKdnajCvfnScgKXMZQ== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - fs-extra "^10.1.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-pages@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz#27e6424c77173f867760efe53f848bbab8849ea6" + integrity sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/mdx-loader" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + fs-extra "^11.1.1" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-debug@3.0.1", "@docusaurus/plugin-debug@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz#886b5dd03c066e970484ca251c1b79613df90700" + integrity sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + fs-extra "^11.1.1" + react-json-view-lite "^1.2.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-analytics@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz#ec69902131ea3aad8b062eeb1d17bf0962986f80" + integrity sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + tslib "^2.6.0" + +"@docusaurus/plugin-google-gtag@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz#bb5526377d3a324ebec235127846fda386562b05" + integrity sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + "@types/gtag.js" "^0.0.12" + tslib "^2.6.0" + +"@docusaurus/plugin-google-tag-manager@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz#4e36d13279cf90c2614b62438aa1109dd4696ec8" + integrity sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + tslib "^2.6.0" + +"@docusaurus/plugin-sitemap@3.0.1", "@docusaurus/plugin-sitemap@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz#ab55857e90d4500f892e110b30e4bc3289202bd4" + integrity sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + fs-extra "^11.1.1" sitemap "^7.1.1" - tslib "^2.4.0" - -"@docusaurus/preset-classic@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.4.3.tgz#074c57ebf29fa43d23bd1c8ce691226f542bc262" - integrity sha512-tRyMliepY11Ym6hB1rAFSNGwQDpmszvWYJvlK1E+md4SW8i6ylNHtpZjaYFff9Mdk3i/Pg8ItQq9P0daOJAvQw== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/plugin-content-blog" "2.4.3" - "@docusaurus/plugin-content-docs" "2.4.3" - "@docusaurus/plugin-content-pages" "2.4.3" - "@docusaurus/plugin-debug" "2.4.3" - "@docusaurus/plugin-google-analytics" "2.4.3" - "@docusaurus/plugin-google-gtag" "2.4.3" - "@docusaurus/plugin-google-tag-manager" "2.4.3" - "@docusaurus/plugin-sitemap" "2.4.3" - "@docusaurus/theme-classic" "2.4.3" - "@docusaurus/theme-common" "2.4.3" - "@docusaurus/theme-search-algolia" "2.4.3" - "@docusaurus/types" "2.4.3" + tslib "^2.6.0" + +"@docusaurus/preset-classic@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz#d363ac837bba967095ed2a896d13c54f3717d6b5" + integrity sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/plugin-content-blog" "3.0.1" + "@docusaurus/plugin-content-docs" "3.0.1" + "@docusaurus/plugin-content-pages" "3.0.1" + "@docusaurus/plugin-debug" "3.0.1" + "@docusaurus/plugin-google-analytics" "3.0.1" + "@docusaurus/plugin-google-gtag" "3.0.1" + "@docusaurus/plugin-google-tag-manager" "3.0.1" + "@docusaurus/plugin-sitemap" "3.0.1" + "@docusaurus/theme-classic" "3.0.1" + "@docusaurus/theme-common" "3.0.1" + "@docusaurus/theme-search-algolia" "3.0.1" + "@docusaurus/types" "3.0.1" "@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" @@ -2281,142 +2973,142 @@ "@types/react" "*" prop-types "^15.6.2" -"@docusaurus/theme-classic@2.4.3", "@docusaurus/theme-classic@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.4.3.tgz#29360f2eb03a0e1686eb19668633ef313970ee8f" - integrity sha512-QKRAJPSGPfDY2yCiPMIVyr+MqwZCIV2lxNzqbyUW0YkrlmdzzP3WuQJPMGLCjWgQp/5c9kpWMvMxjhpZx1R32Q== - dependencies: - "@docusaurus/core" "2.4.3" - "@docusaurus/mdx-loader" "2.4.3" - "@docusaurus/module-type-aliases" "2.4.3" - "@docusaurus/plugin-content-blog" "2.4.3" - "@docusaurus/plugin-content-docs" "2.4.3" - "@docusaurus/plugin-content-pages" "2.4.3" - "@docusaurus/theme-common" "2.4.3" - "@docusaurus/theme-translations" "2.4.3" - "@docusaurus/types" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - "@mdx-js/react" "^1.6.22" - clsx "^1.2.1" - copy-text-to-clipboard "^3.0.1" +"@docusaurus/theme-classic@3.0.1", "@docusaurus/theme-classic@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz#3ba4dc77553d2c1608e433c0d01bed7c6db14eb9" + integrity sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q== + dependencies: + "@docusaurus/core" "3.0.1" + "@docusaurus/mdx-loader" "3.0.1" + "@docusaurus/module-type-aliases" "3.0.1" + "@docusaurus/plugin-content-blog" "3.0.1" + "@docusaurus/plugin-content-docs" "3.0.1" + "@docusaurus/plugin-content-pages" "3.0.1" + "@docusaurus/theme-common" "3.0.1" + "@docusaurus/theme-translations" "3.0.1" + "@docusaurus/types" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + "@mdx-js/react" "^3.0.0" + clsx "^2.0.0" + copy-text-to-clipboard "^3.2.0" infima "0.2.0-alpha.43" lodash "^4.17.21" nprogress "^0.2.0" - postcss "^8.4.14" - prism-react-renderer "^1.3.5" - prismjs "^1.28.0" - react-router-dom "^5.3.3" - rtlcss "^3.5.0" - tslib "^2.4.0" + postcss "^8.4.26" + prism-react-renderer "^2.3.0" + prismjs "^1.29.0" + react-router-dom "^5.3.4" + rtlcss "^4.1.0" + tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.4.3.tgz#bb31d70b6b67d0bdef9baa343192dcec49946a2e" - integrity sha512-7KaDJBXKBVGXw5WOVt84FtN8czGWhM0lbyWEZXGp8AFfL6sZQfRTluFp4QriR97qwzSyOfQb+nzcDZZU4tezUw== - dependencies: - "@docusaurus/mdx-loader" "2.4.3" - "@docusaurus/module-type-aliases" "2.4.3" - "@docusaurus/plugin-content-blog" "2.4.3" - "@docusaurus/plugin-content-docs" "2.4.3" - "@docusaurus/plugin-content-pages" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-common" "2.4.3" +"@docusaurus/theme-common@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.0.1.tgz#29a5bcb286296a52bc10afa5308e360cbed6b49c" + integrity sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag== + dependencies: + "@docusaurus/mdx-loader" "3.0.1" + "@docusaurus/module-type-aliases" "3.0.1" + "@docusaurus/plugin-content-blog" "3.0.1" + "@docusaurus/plugin-content-docs" "3.0.1" + "@docusaurus/plugin-content-pages" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-common" "3.0.1" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" - clsx "^1.2.1" + clsx "^2.0.0" parse-numeric-range "^1.3.0" - prism-react-renderer "^1.3.5" - tslib "^2.4.0" - use-sync-external-store "^1.2.0" + prism-react-renderer "^2.3.0" + tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@2.4.3", "@docusaurus/theme-search-algolia@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.3.tgz#32d4cbefc3deba4112068fbdb0bde11ac51ece53" - integrity sha512-jziq4f6YVUB5hZOB85ELATwnxBz/RmSLD3ksGQOLDPKVzat4pmI8tddNWtriPpxR04BNT+ZfpPUMFkNFetSW1Q== - dependencies: - "@docsearch/react" "^3.1.1" - "@docusaurus/core" "2.4.3" - "@docusaurus/logger" "2.4.3" - "@docusaurus/plugin-content-docs" "2.4.3" - "@docusaurus/theme-common" "2.4.3" - "@docusaurus/theme-translations" "2.4.3" - "@docusaurus/utils" "2.4.3" - "@docusaurus/utils-validation" "2.4.3" - algoliasearch "^4.13.1" - algoliasearch-helper "^3.10.0" - clsx "^1.2.1" - eta "^2.0.0" - fs-extra "^10.1.0" +"@docusaurus/theme-search-algolia@3.0.1", "@docusaurus/theme-search-algolia@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz#d8fb6bddca8d8355e4706c4c7d30d3b800217cf4" + integrity sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA== + dependencies: + "@docsearch/react" "^3.5.2" + "@docusaurus/core" "3.0.1" + "@docusaurus/logger" "3.0.1" + "@docusaurus/plugin-content-docs" "3.0.1" + "@docusaurus/theme-common" "3.0.1" + "@docusaurus/theme-translations" "3.0.1" + "@docusaurus/utils" "3.0.1" + "@docusaurus/utils-validation" "3.0.1" + algoliasearch "^4.18.0" + algoliasearch-helper "^3.13.3" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" lodash "^4.17.21" - tslib "^2.4.0" + tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.4.3.tgz#91ac73fc49b8c652b7a54e88b679af57d6ac6102" - integrity sha512-H4D+lbZbjbKNS/Zw1Lel64PioUAIT3cLYYJLUf3KkuO/oc9e0QCVhIYVtUI2SfBCF2NNdlyhBDQEEMygsCedIg== +"@docusaurus/theme-translations@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz#837a01a166ccd698a3eceaed0c2f798555bc024b" + integrity sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg== dependencies: - fs-extra "^10.1.0" - tslib "^2.4.0" + fs-extra "^11.1.1" + tslib "^2.6.0" -"@docusaurus/types@2.4.3", "@docusaurus/types@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.4.3.tgz#4aead281ca09f721b3c0a9b926818450cfa3db31" - integrity sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw== +"@docusaurus/types@3.0.1", "@docusaurus/types@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.0.1.tgz#4fe306aa10ef7c97dbc07588864f6676a40f3b6f" + integrity sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg== dependencies: "@types/history" "^4.7.11" "@types/react" "*" commander "^5.1.0" - joi "^17.6.0" + joi "^17.9.2" react-helmet-async "^1.3.0" utility-types "^3.10.0" - webpack "^5.73.0" - webpack-merge "^5.8.0" + webpack "^5.88.1" + webpack-merge "^5.9.0" -"@docusaurus/utils-common@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.4.3.tgz#30656c39ef1ce7e002af7ba39ea08330f58efcfb" - integrity sha512-/jascp4GbLQCPVmcGkPzEQjNaAk3ADVfMtudk49Ggb+131B1WDD6HqlSmDf8MxGdy7Dja2gc+StHf01kiWoTDQ== +"@docusaurus/utils-common@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.0.1.tgz#111f450089d5f0a290c0c25f8a574a270d08436f" + integrity sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg== dependencies: - tslib "^2.4.0" + tslib "^2.6.0" -"@docusaurus/utils-validation@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.4.3.tgz#8122c394feef3e96c73f6433987837ec206a63fb" - integrity sha512-G2+Vt3WR5E/9drAobP+hhZQMaswRwDlp6qOMi7o7ZypB+VO7N//DZWhZEwhcRGepMDJGQEwtPv7UxtYwPL9PBw== +"@docusaurus/utils-validation@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz#3c5f12941b328a19fc9acb34d070219f3e865ec6" + integrity sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg== dependencies: - "@docusaurus/logger" "2.4.3" - "@docusaurus/utils" "2.4.3" - joi "^17.6.0" + "@docusaurus/logger" "3.0.1" + "@docusaurus/utils" "3.0.1" + joi "^17.9.2" js-yaml "^4.1.0" - tslib "^2.4.0" + tslib "^2.6.0" -"@docusaurus/utils@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.4.3.tgz#52b000d989380a2125831b84e3a7327bef471e89" - integrity sha512-fKcXsjrD86Smxv8Pt0TBFqYieZZCPh4cbf9oszUq/AMhZn3ujwpKaVYZACPX8mmjtYx0JOgNx52CREBfiGQB4A== +"@docusaurus/utils@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.0.1.tgz#c64f68980a90c5bc6d53a5b8f32deb9026b1e303" + integrity sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g== dependencies: - "@docusaurus/logger" "2.4.3" - "@svgr/webpack" "^6.2.1" + "@docusaurus/logger" "3.0.1" + "@svgr/webpack" "^6.5.1" escape-string-regexp "^4.0.0" file-loader "^6.2.0" - fs-extra "^10.1.0" - github-slugger "^1.4.0" + fs-extra "^11.1.1" + github-slugger "^1.5.0" globby "^11.1.0" gray-matter "^4.0.3" + jiti "^1.20.0" js-yaml "^4.1.0" lodash "^4.17.21" micromatch "^4.0.5" resolve-pathname "^3.0.0" shelljs "^0.8.5" - tslib "^2.4.0" + tslib "^2.6.0" url-loader "^4.1.1" - webpack "^5.73.0" + webpack "^5.88.1" "@fortawesome/fontawesome-common-types@6.4.2": version "6.4.2" @@ -2527,40 +3219,41 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mdx-js/mdx@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== - dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" - "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" - camelcase-css "2.0.1" - detab "2.0.4" - hast-util-raw "6.0.1" - lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" - remark-footnotes "2.0.0" - remark-mdx "1.6.22" - remark-parse "8.0.3" - remark-squeeze-paragraphs "4.0.0" - style-to-object "0.3.0" - unified "9.2.0" - unist-builder "2.0.3" - unist-util-visit "2.0.3" - -"@mdx-js/react@^1.6.21", "@mdx-js/react@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== - -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== +"@mdx-js/mdx@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.0.0.tgz#37ef87685143fafedf1165f0a79e9fe95fbe5154" + integrity sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-build-jsx "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-to-js "^2.0.0" + estree-walker "^3.0.0" + hast-util-to-estree "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + periscopic "^3.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +"@mdx-js/react@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.0.0.tgz#eaccaa8d6a7736b19080aff5a70448a7ba692271" + integrity sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ== + dependencies: + "@types/mdx" "^2.0.0" "@ndhoule/each@^2.0.1": version "2.0.1" @@ -2602,6 +3295,27 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + "@polka/url@^1.0.0-next.20": version "1.0.0-next.23" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" @@ -2636,10 +3350,24 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@slorber/remark-comment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz#2a020b3f4579c89dec0361673206c28d67e08f5a" + integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.1.0" + micromark-util-symbol "^1.0.1" "@slorber/static-site-generator-webpack-plugin@^4.0.7": version "4.0.7" @@ -2742,7 +3470,7 @@ deepmerge "^4.2.2" svgo "^2.8.0" -"@svgr/webpack@^6.2.1": +"@svgr/webpack@^6.5.1": version "6.5.1" resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== @@ -2756,18 +3484,25 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: - defer-to-connect "^1.0.1" + defer-to-connect "^2.0.1" "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + "@types/body-parser@*": version "1.19.3" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.3.tgz#fb558014374f7d9e56c8f34bab2042a3a07d25cd" @@ -2821,6 +3556,13 @@ "@types/estree" "*" "@types/json-schema" "*" +"@types/estree-jsx@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.3.tgz#f8aa833ec986d82b8271a294a92ed1565bf2c66a" + integrity sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w== + dependencies: + "@types/estree" "*" + "@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" @@ -2846,6 +3588,11 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/gtag.js@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" + integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== + "@types/hast@^2.0.0": version "2.3.6" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.6.tgz#bb8b05602112a26d22868acb70c4b20984ec7086" @@ -2853,6 +3600,13 @@ dependencies: "@types/unist" "^2" +"@types/hast@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.3.tgz#7f75e6b43bc3f90316046a287d9ad3888309f7e1" + integrity sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ== + dependencies: + "@types/unist" "*" + "@types/history@^4.7.11": version "4.7.11" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" @@ -2863,6 +3617,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + "@types/http-errors@*": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" @@ -2906,6 +3665,18 @@ dependencies: "@types/unist" "^2" +"@types/mdast@^4.0.0", "@types/mdast@^4.0.2": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.3.tgz#1e011ff013566e919a4232d1701ad30d70cab333" + integrity sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.10.tgz#0d7b57fb1d83e27656156e4ee0dfba96532930e4" + integrity sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg== + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -2936,10 +3707,10 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== +"@types/prismjs@^1.26.0": + version "1.26.3" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.3.tgz#47fe8e784c2dee24fe636cab82e090d3da9b7dec" + integrity sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw== "@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.6" @@ -2956,7 +3727,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-router-config@*", "@types/react-router-config@^5.0.6": +"@types/react-router-config@*": version "5.0.7" resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.7.tgz#36207a3fe08b271abee62b26993ee932d13cbb02" integrity sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w== @@ -2965,6 +3736,15 @@ "@types/react" "*" "@types/react-router" "^5.1.0" +"@types/react-router-config@^5.0.7": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.10.tgz#1f7537b8d23ad6bb8e7609268fdd89b8b2de1eaf" + integrity sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "^5.1.0" + "@types/react-router-dom@*": version "5.3.3" resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" @@ -3039,7 +3819,12 @@ dependencies: "@types/node" "*" -"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== + +"@types/unist@^2", "@types/unist@^2.0.0": version "2.0.8" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.8.tgz#bb197b9639aa1a04cf464a617fe800cccd92ad5c" integrity sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw== @@ -3063,6 +3848,11 @@ dependencies: "@types/yargs-parser" "*" +"@ungap/structured-clone@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -3207,11 +3997,21 @@ acorn-import-assertions@^1.9.0: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^8.0.0: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn@^8.0.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" @@ -3249,7 +4049,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3269,14 +4069,14 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch-helper@^3.10.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.14.1.tgz#90b505b7baf3c96500d25ab6ecb237a0b1331bea" - integrity sha512-TZihm6eisSqgLWOXpISAUFXAolJvEpa1gkTjUUEDmVl+TTiQuNvzLQ/osOiqIXzx6QSS4Pd6Ry+SKKOwiqJ17g== +algoliasearch-helper@^3.13.3: + version "3.15.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.15.0.tgz#d680783329920a3619a74504dccb97a4fb943443" + integrity sha512-DGUnK3TGtDQsaUE4ayF/LjSN0DGsuYThB8WBgnnDY0Wq04K6lNVruO3LfqJOgSfDiezp+Iyt8Tj4YKHi+/ivSA== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^4.0.0, algoliasearch@^4.12.0, algoliasearch@^4.13.1, algoliasearch@^4.19.1: +algoliasearch@^4.0.0, algoliasearch@^4.12.0, algoliasearch@^4.18.0, algoliasearch@^4.19.1: version "4.20.0" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.20.0.tgz#700c2cb66e14f8a288460036c7b2a554d0d93cf4" integrity sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g== @@ -3296,7 +4096,7 @@ algoliasearch@^4.0.0, algoliasearch@^4.12.0, algoliasearch@^4.13.1, algoliasearc "@algolia/requester-node-http" "4.20.0" "@algolia/transporter" "4.20.0" -ansi-align@^3.0.0, ansi-align@^3.0.1: +ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== @@ -3325,7 +4125,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -3377,10 +4177,10 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== async@2.6.4: version "2.6.4" @@ -3406,7 +4206,7 @@ autoprefixer@10.4.7: picocolors "^1.0.0" postcss-value-parser "^4.2.0" -autoprefixer@^10.3.7, autoprefixer@^10.4.12, autoprefixer@^10.4.7: +autoprefixer@^10.3.7, autoprefixer@^10.4.12: version "10.4.15" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== @@ -3418,30 +4218,25 @@ autoprefixer@^10.3.7, autoprefixer@^10.4.12, autoprefixer@^10.4.7: picocolors "^1.0.0" postcss-value-parser "^4.2.0" -axios@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" - integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g== - dependencies: - follow-redirects "^1.14.7" - -babel-loader@^8.2.5: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== +autoprefixer@^10.4.14: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== +babel-loader@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== dependencies: - "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" @@ -3450,13 +4245,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - babel-plugin-polyfill-corejs2@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" @@ -3475,6 +4263,15 @@ babel-plugin-polyfill-corejs2@^0.4.5: "@babel/helper-define-polyfill-provider" "^0.4.2" semver "^6.3.1" +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.3" + semver "^6.3.1" + babel-plugin-polyfill-corejs3@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" @@ -3491,6 +4288,14 @@ babel-plugin-polyfill-corejs3@^0.8.3: "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" + integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.3" + core-js-compat "^3.33.1" + babel-plugin-polyfill-regenerator@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" @@ -3505,10 +4310,12 @@ babel-plugin-polyfill-regenerator@^0.5.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.3" bail@^2.0.0: version "2.0.2" @@ -3520,11 +4327,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base16@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" - integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -3573,20 +4375,6 @@ boolbase@^1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - boxen@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" @@ -3601,6 +4389,20 @@ boxen@^6.2.1: widest-line "^4.0.1" wrap-ansi "^8.0.1" +boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3626,6 +4428,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4 node-releases "^2.0.13" update-browserslist-db "^1.0.11" +browserslist@^4.22.1: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -3641,18 +4453,23 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -3675,16 +4492,16 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-css@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -3700,10 +4517,15 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001517, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz#9dbc6b9af1ff06b5eb12350c2012b3af56744f3f" integrity sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw== -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== +caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: + version "1.0.30001566" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" + integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chalk@^2.4.2: version "2.4.2" @@ -3722,25 +4544,35 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +chalk@^5.0.1, chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== cheerio-select@^2.1.0: version "2.1.0" @@ -3787,39 +4619,36 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - ci-info@^3.2.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== -clean-css@^5.2.2, clean-css@^5.3.0: +clean-css@^5.2.2: version "5.3.2" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== dependencies: source-map "~0.6.0" +clean-css@^5.3.2, clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - cli-boxes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== -cli-table3@^0.6.2: +cli-table3@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== @@ -3837,22 +4666,20 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -clsx@^1.1.1, clsx@^1.2.1: +clsx@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== +clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== color-convert@^1.9.0: version "1.9.3" @@ -3893,16 +4720,16 @@ combine-promises@^1.1.0: resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - comma-separated-tokens@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3923,10 +4750,10 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== compressible@~2.0.16: version "2.0.18" @@ -3953,17 +4780,24 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" connect-history-api-fallback@^1.6.0: version "1.6.0" @@ -4002,6 +4836,11 @@ convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -4012,7 +4851,7 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-text-to-clipboard@^3.0.1: +copy-text-to-clipboard@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== @@ -4036,6 +4875,13 @@ core-js-compat@^3.21.0, core-js-compat@^3.22.1, core-js-compat@^3.31.0: dependencies: browserslist "^4.21.10" +core-js-compat@^3.33.1: + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" + integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== + dependencies: + browserslist "^4.22.1" + core-js-pure@^3.20.2, core-js-pure@^3.30.2: version "3.32.2" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.2.tgz#b7dbdac528625cf87eb0523b532eb61551b9a6d1" @@ -4046,10 +4892,10 @@ core-js@3.23.3: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112" integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q== -core-js@^3.23.3: - version "3.32.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.2.tgz#172fb5949ef468f93b4be7841af6ab1f21992db7" - integrity sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ== +core-js@^3.31.1: + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.3.tgz#3c644a323f0f533a0d360e9191e37f7fc059088d" + integrity sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw== core-util-is@~1.0.0: version "1.0.3" @@ -4088,13 +4934,6 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" -cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4104,10 +4943,12 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" css-declaration-sorter@6.3.0: version "6.3.0" @@ -4119,7 +4960,7 @@ css-declaration-sorter@^6.3.1: resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== -css-loader@^6.7.1: +css-loader@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== @@ -4145,7 +4986,7 @@ css-minimizer-webpack-plugin@4.0.0: serialize-javascript "^6.0.0" source-map "^0.6.1" -css-minimizer-webpack-plugin@^4.0.0: +css-minimizer-webpack-plugin@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz#79f6199eb5adf1ff7ba57f105e3752d15211eb35" integrity sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA== @@ -4209,7 +5050,7 @@ cssnano-preset-advanced@5.3.8: postcss-reduce-idents "^5.2.0" postcss-zindex "^5.1.0" -cssnano-preset-advanced@^5.3.8: +cssnano-preset-advanced@^5.3.10: version "5.3.10" resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz#25558a1fbf3a871fb6429ce71e41be7f5aca6eef" integrity sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ== @@ -4270,7 +5111,7 @@ cssnano@5.1.12: lilconfig "^2.0.3" yaml "^1.10.2" -cssnano@^5.1.12, cssnano@^5.1.8: +cssnano@^5.1.15, cssnano@^5.1.8: version "5.1.15" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== @@ -4291,6 +5132,16 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -4312,12 +5163,12 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: - mimic-response "^1.0.0" + mimic-response "^3.1.0" deep-extend@^0.6.0: version "0.6.0" @@ -4336,10 +5187,10 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-data-property@^1.0.1: version "1.1.0" @@ -4398,13 +5249,6 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detab@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - detect-node@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" @@ -4418,7 +5262,7 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detect-port@^1.3.0: +detect-port@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== @@ -4426,6 +5270,13 @@ detect-port@^1.3.0: address "^1.0.1" debug "4" +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + diff@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -4532,18 +5383,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== dependencies: is-obj "^2.0.0" -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -4564,6 +5410,11 @@ electron-to-chromium@^1.4.477: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.524.tgz#ef9733e044ef99d00ae1c810846f73ef4374e0b8" integrity sha512-iTmhuiGXYo29QoFXwwXbxhAKiDRZQzme6wYVaZNoitg9h1iRaMGu3vNvDyk+gqu5ETK1D6ug9PC5GVS7kSURuw== +electron-to-chromium@^1.4.601: + version "1.4.601" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.601.tgz#cac69868548aee89961ffe63ff5a7716f0685b75" + integrity sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -4574,28 +5425,26 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -emoticon@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" - integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== +emoticon@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.0.1.tgz#2d2bbbf231ce3a5909e185bbb64a9da703a1e749" + integrity sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -4631,10 +5480,10 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" @@ -4651,6 +5500,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -4681,12 +5535,66 @@ estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.0.1.tgz#0b7b5d6b6a4aaad5c60999ffbc265a985df98ac5" + integrity sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA== + dependencies: + "@types/estree" "^1.0.0" + is-plain-obj "^4.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eta@^2.0.0: +eta@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== @@ -4813,6 +5721,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" @@ -4820,31 +5735,6 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" -fbemitter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" - integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== - dependencies: - fbjs "^3.0.0" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0, fbjs@^3.0.1: - version "3.0.5" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" - integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== - dependencies: - cross-fetch "^3.1.5" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^1.0.35" - feed@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" @@ -4852,6 +5742,14 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -4885,14 +5783,13 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" find-up@^3.0.0: version "3.0.0" @@ -4901,14 +5798,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -4917,15 +5806,20 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flux@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" - integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: - fbemitter "^3.0.0" - fbjs "^3.0.1" + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.7: +follow-redirects@^1.0.0: version "1.15.3" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== @@ -4949,6 +5843,23 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -4959,15 +5870,20 @@ fraction.js@^4.2.0: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-extra@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -5003,7 +5919,7 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -5023,26 +5939,12 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -github-slugger@^1.4.0: +github-slugger@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== @@ -5136,22 +6038,27 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" @@ -5207,10 +6114,10 @@ has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== has@^1.0.3: version "1.0.3" @@ -5219,78 +6126,124 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hast-to-hyperscript@^9.0.0: +hast-util-from-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" + integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^8.0.0" + property-information "^6.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-raw@^9.0.0: version "9.0.1" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== - dependencies: - "@types/unist" "^2.0.3" - comma-separated-tokens "^1.0.0" - property-information "^5.3.0" - space-separated-tokens "^1.0.0" - style-to-object "^0.3.0" - unist-util-is "^4.0.0" - web-namespaces "^1.0.0" - -hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== - dependencies: - "@types/parse5" "^5.0.0" - hastscript "^6.0.0" - property-information "^5.0.0" - vfile "^4.0.0" - vfile-location "^3.2.0" - web-namespaces "^1.0.0" - -hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" - integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.0.1.tgz#2ba8510e4ed2a1e541cde2a4ebb5c38ab4c82c2d" + integrity sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" + integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== dependencies: - "@types/hast" "^2.0.0" - hast-util-from-parse5 "^6.0.0" - hast-util-to-parse5 "^6.0.0" - html-void-elements "^1.0.0" - parse5 "^6.0.0" - unist-util-position "^3.0.0" - vfile "^4.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hast-util-to-parse5@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz#3ed27caf8dc175080117706bf7269404a0aa4f7c" + integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" + integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" hast-util-whitespace@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" + "@types/hast" "^3.0.0" + +hastscript@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-8.0.0.tgz#4ef795ec8dee867101b9f23cc830d4baf4fd781a" + integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" he@^1.2.0: version "1.2.0" @@ -5336,7 +6289,12 @@ html-entities@^2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== -html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== @@ -5349,17 +6307,30 @@ html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: relateurl "^0.2.7" terser "^5.10.0" -html-tags@^3.2.0: +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== -html-webpack-plugin@^5.5.0: +html-webpack-plugin@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== @@ -5390,7 +6361,7 @@ htmlparser2@^8.0.1: domutils "^3.0.1" entities "^4.4.0" -http-cache-semantics@^4.0.0: +http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -5446,6 +6417,14 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -5468,7 +6447,7 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -image-size@^1.0.1: +image-size@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== @@ -5488,10 +6467,10 @@ import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== imurmurhash@^0.1.4: version "0.1.4" @@ -5516,7 +6495,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5531,7 +6510,7 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -5541,6 +6520,11 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== +inline-style-parser@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.2.tgz#d498b4e6de0373458fc610ff793f6b14ebf45633" + integrity sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ== + interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -5563,18 +6547,18 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -5593,12 +6577,12 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: - ci-info "^2.0.0" + ci-info "^3.2.0" is-core-module@^2.13.0: version "2.13.0" @@ -5607,10 +6591,10 @@ is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" @@ -5639,10 +6623,10 @@ is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== is-installed-globally@^0.4.0: version "0.4.0" @@ -5652,10 +6636,10 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== is-number@^7.0.0: version "7.0.0" @@ -5682,11 +6666,6 @@ is-path-inside@^3.0.2: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -5709,6 +6688,13 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-reference@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -5729,16 +6715,6 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -5746,10 +6722,10 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== isarray@0.0.1: version "0.0.1" @@ -5812,10 +6788,15 @@ jiti@^1.18.2: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== -joi@^17.6.0: - version "17.10.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.10.2.tgz#4ecc348aa89ede0b48335aad172e0f5591e55b29" - integrity sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA== +jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +joi@^17.9.2: + version "17.11.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" + integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -5853,10 +6834,10 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" @@ -5887,12 +6868,12 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: - json-buffer "3.0.0" + json-buffer "3.0.1" kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" @@ -5914,12 +6895,12 @@ klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: - package-json "^6.3.0" + package-json "^8.1.0" launch-editor@^2.6.0: version "2.6.0" @@ -5971,13 +6952,6 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -5985,61 +6959,38 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.curry@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw== - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== - -lodash.flow@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" - integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== - -lodash.invokemap@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz#1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62" - integrity sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w== - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.pullall@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.pullall/-/lodash.pullall-4.2.0.tgz#9d98b8518b7c965b0fae4099bd9fb7df8bbf38ba" - integrity sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg== - -lodash.uniq@4.5.0, lodash.uniq@^4.5.0: +lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== - -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -6054,15 +7005,10 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== lru-cache@^5.1.1: version "5.1.1" @@ -6083,36 +7029,20 @@ lunr-languages@^1.4.0: resolved "https://registry.yarnpkg.com/lunr-languages/-/lunr-languages-1.13.0.tgz#81840f0e2abe2e4cbc5aeb793477b7616dca2bdf" integrity sha512-qgTOarcnAtVFKr0aJ2GuiqbBdhKF61jpF8OgFbnlSAb1t6kOiQW67q0hv0UQzzB+5+OwPpnZyFT/L0L9SQG1/A== -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - mark.js@^8.11.1: version "8.11.1" resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" - integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== - dependencies: - unist-util-remove "^2.0.0" +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== mdast-util-definitions@^5.0.0: version "5.1.2" @@ -6123,6 +7053,30 @@ mdast-util-definitions@^5.0.0: "@types/unist" "^2.0.0" unist-util-visit "^4.0.0" +mdast-util-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" + integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" + integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + mdast-util-from-markdown@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" @@ -6141,19 +7095,162 @@ mdast-util-from-markdown@^1.0.0: unist-util-stringify-position "^3.0.0" uvu "^0.5.0" -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== +mdast-util-from-markdown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz#52f14815ec291ed061f2922fd14d6689c810cb88" + integrity sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA== dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz#5baf35407421310a08e68c15e5d8821e8898ba2a" + integrity sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz#25a1753c7d16db8bfd53cd84fe50562bd1e6d6a9" + integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz#3f2aecc879785c3cb6a81ff3a243dc11eca61095" + integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz#4968b73724d320a379110d853e943a501bfd9d87" + integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.0.0.tgz#f73631fa5bb7a36712ff1e9cedec0cafed03401c" + integrity sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^5.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz#468cbbb277375523de807248b8ad969feb02a5c7" + integrity sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" mdast-util-to-hast@^12.1.0: version "12.3.0" @@ -6169,10 +7266,33 @@ mdast-util-to-hast@^12.1.0: unist-util-position "^4.0.0" unist-util-visit "^4.0.0" -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== +mdast-util-to-hast@^13.0.0: + version "13.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz#74c0a9f014bb2340cae6118f6fccd75467792be7" + integrity sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz#9813f1d6e0cdaac7c244ec8c6dabfdb2102ea2b4" + integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" mdast-util-to-string@^3.1.0: version "3.2.0" @@ -6181,16 +7301,18 @@ mdast-util-to-string@^3.1.0: dependencies: "@types/mdast" "^3.0.0" +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -6245,6 +7367,196 @@ micromark-core-commonmark@^1.0.1: micromark-util-types "^1.0.1" uvu "^0.5.0" +micromark-core-commonmark@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz#50740201f0ee78c12a675bf3e68ffebc0bf931a3" + integrity sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz#527869de497a6de9024138479091bc885dae076b" + integrity sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz#f1e50b42e67d441528f39a67133eddde2bbabfd9" + integrity sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz#91afad310065a94b636ab1e9dab2c60d1aab953c" + integrity sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz#6917db8e320da70e39ffbf97abdbff83e6783e61" + integrity sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz#2cf3fe352d9e089b7ef5fff003bdfe0da29649b7" + integrity sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz#ee8b208f1ced1eb9fb11c19a23666e59d86d4838" + integrity sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" + integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz#4aba0797c25efb2366a3fd2d367c6b1c1159f4f5" + integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + micromark-factory-destination@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" @@ -6254,6 +7566,15 @@ micromark-factory-destination@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" +micromark-factory-destination@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" + integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromark-factory-label@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" @@ -6264,6 +7585,30 @@ micromark-factory-label@^1.0.0: micromark-util-types "^1.0.0" uvu "^0.5.0" +micromark-factory-label@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" + integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz#f2a9724ce174f1751173beb2c1f88062d3373b1b" + integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + micromark-factory-space@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" @@ -6272,6 +7617,14 @@ micromark-factory-space@^1.0.0: micromark-util-character "^1.0.0" micromark-util-types "^1.0.0" +micromark-factory-space@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" + integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + micromark-factory-title@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" @@ -6282,6 +7635,16 @@ micromark-factory-title@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" +micromark-factory-title@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" + integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromark-factory-whitespace@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" @@ -6292,7 +7655,17 @@ micromark-factory-whitespace@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" -micromark-util-character@^1.0.0: +micromark-factory-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" + integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== @@ -6300,6 +7673,14 @@ micromark-util-character@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" +micromark-util-character@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.0.1.tgz#52b824c2e2633b6fb33399d2ec78ee2a90d6b298" + integrity sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromark-util-chunked@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" @@ -6307,6 +7688,13 @@ micromark-util-chunked@^1.0.0: dependencies: micromark-util-symbol "^1.0.0" +micromark-util-chunked@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" + integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-classify-character@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" @@ -6316,6 +7704,15 @@ micromark-util-classify-character@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" +micromark-util-classify-character@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" + integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromark-util-combine-extensions@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" @@ -6324,6 +7721,14 @@ micromark-util-combine-extensions@^1.0.0: micromark-util-chunked "^1.0.0" micromark-util-types "^1.0.0" +micromark-util-combine-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" + integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + micromark-util-decode-numeric-character-reference@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" @@ -6331,6 +7736,13 @@ micromark-util-decode-numeric-character-reference@^1.0.0: dependencies: micromark-util-symbol "^1.0.0" +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" + integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-decode-string@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" @@ -6341,16 +7753,50 @@ micromark-util-decode-string@^1.0.0: micromark-util-decode-numeric-character-reference "^1.0.0" micromark-util-symbol "^1.0.0" +micromark-util-decode-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" + integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" + integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + micromark-util-html-tag-name@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== +micromark-util-html-tag-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" + integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + micromark-util-normalize-identifier@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" @@ -6358,6 +7804,13 @@ micromark-util-normalize-identifier@^1.0.0: dependencies: micromark-util-symbol "^1.0.0" +micromark-util-normalize-identifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" + integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-resolve-all@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" @@ -6365,6 +7818,13 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" +micromark-util-resolve-all@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" + integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + dependencies: + micromark-util-types "^2.0.0" + micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" @@ -6374,6 +7834,15 @@ micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: micromark-util-encode "^1.0.0" micromark-util-symbol "^1.0.0" +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-subtokenize@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" @@ -6384,16 +7853,36 @@ micromark-util-subtokenize@^1.0.0: micromark-util-types "^1.0.0" uvu "^0.5.0" -micromark-util-symbol@^1.0.0: +micromark-util-subtokenize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz#9f412442d77e0c5789ffdf42377fa8a2bcbdf581" + integrity sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + micromark@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" @@ -6417,6 +7906,29 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" +micromark@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" + integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -6459,10 +7971,15 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== mini-create-react-context@^0.4.0: version "0.4.1" @@ -6472,7 +7989,7 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -mini-css-extract-plugin@^2.6.1: +mini-css-extract-plugin@^2.7.6: version "2.7.6" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== @@ -6491,7 +8008,7 @@ minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -6534,6 +8051,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -6552,19 +8074,29 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-emoji@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.1.3.tgz#93cfabb5cc7c3653aa52f29d6ffb7927d8047c06" + integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA== dependencies: - lodash "^4.17.21" + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== dependencies: - whatwg-url "^5.0.0" + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" node-forge@^1: version "1.3.1" @@ -6576,6 +8108,11 @@ node-releases@^2.0.13: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -6586,16 +8123,16 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -6622,7 +8159,7 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -6664,7 +8201,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -6692,12 +8229,12 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -6711,6 +8248,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6718,13 +8262,6 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -6732,6 +8269,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -6752,15 +8296,15 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" param-case@^3.0.4: version "3.0.4" @@ -6777,17 +8321,19 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" @@ -6812,11 +8358,6 @@ parse5-htmlparser2-tree-adapter@^7.0.0: domhandler "^5.0.2" parse5 "^7.0.0" -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parse5@^7.0.0: version "7.1.2" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" @@ -6847,6 +8388,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6889,6 +8435,15 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -6899,12 +8454,12 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== dependencies: - find-up "^4.0.0" + find-up "^6.3.0" pkg-up@^3.1.0: version "3.1.0" @@ -6983,7 +8538,7 @@ postcss-loader@7.0.0: klona "^2.0.5" semver "^7.3.7" -postcss-loader@^7.0.0: +postcss-loader@^7.3.3: version "7.3.3" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== @@ -7197,7 +8752,7 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-sort-media-queries@^4.2.1: +postcss-sort-media-queries@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz#04a5a78db3921eb78f28a1a781a2e68e65258128" integrity sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw== @@ -7229,7 +8784,7 @@ postcss-zindex@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== -postcss@^8.3.11, postcss@^8.4.13, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.21: +postcss@^8.4.13, postcss@^8.4.17, postcss@^8.4.21: version "8.4.30" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7" integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g== @@ -7238,16 +8793,20 @@ postcss@^8.3.11, postcss@^8.4.13, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4 picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.26: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + preact@^10.13.2: version "10.17.1" resolved "https://registry.yarnpkg.com/preact/-/preact-10.17.1.tgz#0a1b3c658c019e759326b9648c62912cf5c2dde1" integrity sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -7261,12 +8820,15 @@ pretty-time@^1.1.0: resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== -prism-react-renderer@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz#786bb69aa6f73c32ba1ee813fbe17a0115435085" - integrity sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg== +prism-react-renderer@^2.1.0, prism-react-renderer@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.3.0.tgz#5f8f615af6af8201a0b734bd8c946df3d818ea54" + integrity sha512-UYRg2TkVIaI6tRVHC5OJ4/BxqPUxJkJvq/odLT/ykpt1zGYXooNperUxQcCvi87LyRnR4nCh81ceOA+e7nrydg== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" -prismjs@^1.28.0: +prismjs@^1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== @@ -7276,13 +8838,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - prompts@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -7300,18 +8855,16 @@ prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" - property-information@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.3.0.tgz#ba4a06ec6b4e1e90577df9931286953cdf4282c3" integrity sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg== +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -7320,14 +8873,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -7338,17 +8883,12 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== dependencies: - escape-goat "^2.0.0" - -pure-color@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" - integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + escape-goat "^4.0.0" qs@6.11.0: version "6.11.0" @@ -7369,6 +8909,11 @@ queue@6.0.2: dependencies: inherits "~2.0.3" +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7396,7 +8941,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@1.2.8, rc@^1.2.8: +rc@1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -7406,16 +8951,6 @@ rc@1.2.8, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-base16-styling@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" - integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== - dependencies: - base16 "^1.0.0" - lodash.curry "^4.0.1" - lodash.flow "^3.3.0" - pure-color "^1.2.0" - react-dev-utils@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" @@ -7446,14 +8981,13 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.0" react-error-overlay@^6.0.11: version "6.0.11" @@ -7486,20 +9020,10 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-json-view@^1.21.3: - version "1.21.3" - resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" - integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== - dependencies: - flux "^4.0.1" - react-base16-styling "^0.6.0" - react-lifecycles-compat "^3.0.4" - react-textarea-autosize "^8.3.2" - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-json-view-lite@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-1.2.1.tgz#c59a0bea4ede394db331d482ee02e293d38f8218" + integrity sha512-Itc0g86fytOmKZoIoJyGgvNqohWSbh3NXIKNgH6W6FT9PC1ck4xas1tT3Rr/b3UlFXyA9Jjaw9QSXdZy2JwGMQ== react-loadable-ssr-addon-v5-slorber@^1.0.1: version "1.0.1" @@ -7536,7 +9060,7 @@ react-router-config@^5.1.1: dependencies: "@babel/runtime" "^7.1.2" -react-router-dom@^5.3.3: +react-router-dom@^5.3.4: version "5.3.4" resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== @@ -7565,7 +9089,7 @@ react-router@5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.3.4, react-router@^5.3.3: +react-router@5.3.4, react-router@^5.3.4: version "5.3.4" resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== @@ -7580,22 +9104,12 @@ react-router@5.3.4, react-router@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-textarea-autosize@^8.3.2: - version "8.5.3" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" - integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== - dependencies: - "@babel/runtime" "^7.20.13" - use-composed-ref "^1.3.0" - use-latest "^1.2.1" - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" readable-stream@^2.0.1: version "2.3.8" @@ -7686,19 +9200,19 @@ regexpu-core@^5.3.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" -registry-auth-token@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" - integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== dependencies: - rc "1.2.8" + "@pnpm/npm-conf" "^2.1.0" -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== dependencies: - rc "^1.2.8" + rc "1.2.8" regjsparser@^0.9.1: version "0.9.1" @@ -7707,60 +9221,70 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== -remark-emoji@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" - integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== +remark-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.0.tgz#34452d951b37e6207d2e2a4f830dc33442923268" + integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== dependencies: - emoticon "^3.2.0" - node-emoji "^1.10.0" - unist-util-visit "^2.0.3" + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" -remark-footnotes@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" - integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== - -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== - dependencies: - "@babel/core" "7.12.9" - "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" - is-alphabetical "1.0.4" - remark-parse "8.0.3" - unified "9.2.0" - -remark-parse@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== - dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.0.tgz#aea777f0744701aa288b67d28c43565c7e8c35de" + integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.0.0.tgz#146905a3925b078970e05fc89b0e16b9cc3bfddd" + integrity sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" remark-parse@^10.0.0: version "10.0.2" @@ -7771,6 +9295,16 @@ remark-parse@^10.0.0: mdast-util-from-markdown "^1.0.0" unified "^10.0.0" +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + remark-rehype@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" @@ -7781,12 +9315,25 @@ remark-rehype@^10.0.0: mdast-util-to-hast "^12.1.0" unified "^10.0.0" -remark-squeeze-paragraphs@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" - integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== +remark-rehype@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.0.0.tgz#7f21c08738bde024be5f16e4a8b13e5d7a04cf6b" + integrity sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== dependencies: - mdast-squeeze-paragraphs "^4.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" renderkid@^3.0.0: version "3.0.0" @@ -7799,11 +9346,6 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -repeat-string@^1.5.4: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -7819,6 +9361,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -7829,7 +9376,7 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve@^1.1.6, resolve@^1.14.2, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.14.2: version "1.22.6" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== @@ -7838,12 +9385,12 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.3.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: - lowercase-keys "^1.0.0" + lowercase-keys "^3.0.0" retry@^0.13.1: version "0.13.1" @@ -7867,14 +9414,14 @@ rtl-detect@^1.0.4: resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== -rtlcss@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" - integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== +rtlcss@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.1.1.tgz#f20409fcc197e47d1925996372be196fee900c0c" + integrity sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ== dependencies: - find-up "^5.0.0" + escalade "^3.1.1" picocolors "^1.0.0" - postcss "^8.3.11" + postcss "^8.4.21" strip-json-comments "^3.1.1" run-parallel@^1.1.9: @@ -7884,13 +9431,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.4: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - sade@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" @@ -7918,13 +9458,12 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@2.7.0: version "2.7.0" @@ -7935,15 +9474,6 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -7983,24 +9513,19 @@ selfsigned@^2.0.1, selfsigned@^2.1.1: dependencies: node-forge "^1" -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== dependencies: - semver "^6.3.0" - -semver@^5.4.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + semver "^7.3.5" -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8: +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -8033,7 +9558,7 @@ serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" -serve-handler@^6.1.3: +serve-handler@^6.1.5: version "6.1.5" resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== @@ -8070,11 +9595,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -8161,6 +9681,13 @@ sitemap@^7.1.1: arg "^5.0.0" sax "^1.2.4" +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -8198,20 +9725,15 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +source-map@^0.7.0: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== space-separated-tokens@^2.0.0: version "2.0.2" @@ -8246,16 +9768,16 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -8271,7 +9793,7 @@ std-env@^3.0.1: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.4.3.tgz#326f11db518db751c83fd58574f449b7c3060910" integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8280,7 +9802,7 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1: +string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -8303,6 +9825,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -8312,7 +9842,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -8346,13 +9876,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -style-to-object@0.3.0, style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== - dependencies: - inline-style-parser "0.1.1" - style-to-object@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.2.tgz#a8247057111dea8bd3b8a1a66d2d0c9cf9218a54" @@ -8360,6 +9883,13 @@ style-to-object@^0.4.0: dependencies: inline-style-parser "0.1.1" +style-to-object@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.5.tgz#5e918349bc3a39eee3a804497d97fcbbf2f0d7c0" + integrity sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ== + dependencies: + inline-style-parser "0.2.2" + stylehacks@^5.1.0, stylehacks@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" @@ -8422,7 +9952,7 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: +terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9: version "5.3.9" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== @@ -8443,6 +9973,16 @@ terser@^5.10.0, terser@^5.16.8: commander "^2.20.0" source-map-support "~0.5.20" +terser@^5.15.1: + version "5.24.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" + integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -8468,11 +10008,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -8490,52 +10025,32 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== - trim@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.3.tgz#05243a47a3a4113e6b49367880a9cca59697a20b" integrity sha512-h82ywcYhHK7veeelXrCScdH7HkWfbIT1D/CgYO+nmDarz3SGNssVBMws6jU16Ga60AJCRAvPV6w6RLuNerQqjg== -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - trough@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: +tslib@^2.0.3, tslib@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.5.0: +type-fest@^2.13.0, type-fest@^2.5.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== @@ -8555,24 +10070,16 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -ua-parser-js@^1.0.35: - version "1.0.36" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.36.tgz#a9ab6b9bd3a8efb90bb0816674b412717b7c428c" - integrity sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw== - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + unicode-match-property-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" @@ -8591,18 +10098,6 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unified@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - unified@^10.0.0: version "10.1.2" resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" @@ -8616,45 +10111,31 @@ unified@^10.0.0: trough "^2.0.0" vfile "^5.0.0" -unified@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.4.tgz#f4be0ac0fe4c88cb873687c07c64c49ed5969015" + integrity sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ== dependencies: - bail "^1.0.0" + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== dependencies: - crypto-random-string "^2.0.0" - -unist-builder@2.0.3, unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + crypto-random-string "^4.0.0" unist-util-generated@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - unist-util-is@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" @@ -8662,10 +10143,19 @@ unist-util-is@^5.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" unist-util-position@^4.0.0: version "4.0.4" @@ -8674,26 +10164,20 @@ unist-util-position@^4.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" - -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" - integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: - unist-util-is "^4.0.0" + "@types/unist" "^3.0.0" -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== dependencies: - "@types/unist" "^2.0.2" + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" unist-util-stringify-position@^3.0.0: version "3.0.3" @@ -8702,13 +10186,12 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" + "@types/unist" "^3.0.0" unist-util-visit-parents@^5.1.1: version "5.1.3" @@ -8718,14 +10201,13 @@ unist-util-visit-parents@^5.1.1: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" unist-util-visit@^4.0.0: version "4.1.2" @@ -8736,6 +10218,15 @@ unist-util-visit@^4.0.0: unist-util-is "^5.0.0" unist-util-visit-parents "^5.1.1" +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -8754,25 +10245,33 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" -update-notifier@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" + escalade "^3.1.1" + picocolors "^1.0.0" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" uri-js@^4.2.2: version "4.4.1" @@ -8790,35 +10289,6 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -use-composed-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" - integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== - -use-isomorphic-layout-effect@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" - integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== - -use-latest@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" - integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== - dependencies: - use-isomorphic-layout-effect "^1.1.1" - -use-sync-external-store@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -8864,18 +10334,13 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== +vfile-location@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.2.tgz#220d9ca1ab6f8b2504a4db398f7ebc149f9cb464" + integrity sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg== dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" + "@types/unist" "^3.0.0" + vfile "^6.0.0" vfile-message@^3.0.0: version "3.1.4" @@ -8885,15 +10350,13 @@ vfile-message@^3.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" vfile@^5.0.0: version "5.3.7" @@ -8905,16 +10368,14 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -wait-on@^6.0.1: +vfile@^6.0.0, vfile@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" - integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.1.tgz#1e8327f41eac91947d4fe9d237a2dd9209762536" + integrity sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw== dependencies: - axios "^0.25.0" - joi "^17.6.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.5.4" + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" watchpack@^2.4.0: version "2.4.0" @@ -8931,34 +10392,30 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-namespaces@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== -webpack-bundle-analyzer@^4.5.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz#d00bbf3f17500c10985084f22f1a2bf45cb2f09d" - integrity sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w== +webpack-bundle-analyzer@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454" + integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ== dependencies: "@discoveryjs/json-ext" "0.5.7" acorn "^8.0.4" acorn-walk "^8.0.0" commander "^7.2.0" + debounce "^1.2.1" escape-string-regexp "^4.0.0" gzip-size "^6.0.0" + html-escaper "^2.0.2" is-plain-object "^5.0.0" - lodash.debounce "^4.0.8" - lodash.escape "^4.0.1" - lodash.flatten "^4.4.0" - lodash.invokemap "^4.6.0" - lodash.pullall "^4.2.0" - lodash.uniqby "^4.7.0" opener "^1.5.2" picocolors "^1.0.0" sirv "^2.0.3" @@ -9010,7 +10467,7 @@ webpack-dev-server@4.9.2: webpack-dev-middleware "^5.3.1" ws "^8.4.2" -webpack-dev-server@^4.9.3: +webpack-dev-server@^4.15.1: version "4.15.1" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== @@ -9046,12 +10503,13 @@ webpack-dev-server@^4.9.3: webpack-dev-middleware "^5.3.1" ws "^8.13.0" -webpack-merge@^5.8.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" + flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^3.2.2, webpack-sources@^3.2.3: @@ -9059,10 +10517,10 @@ webpack-sources@^3.2.2, webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.73.0: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== +webpack@^5.88.1: + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -9113,14 +10571,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -9135,13 +10585,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - widest-line@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" @@ -9154,16 +10597,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.0.1: +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== @@ -9177,7 +10611,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0: +write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -9197,10 +10631,10 @@ ws@^8.13.0, ws@^8.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== xml-js@^1.6.11: version "1.6.11" @@ -9209,11 +10643,6 @@ xml-js@^1.6.11: dependencies: sax "^1.2.4" -xtend@^4.0.0, xtend@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -9248,7 +10677,12 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 5a4d64af8bdada5b2ca56c33a7c2b5df956904db Mon Sep 17 00:00:00 2001 From: Brian Lai <51336873+brianjlai@users.noreply.github.com> Date: Mon, 11 Dec 2023 12:45:36 -0500 Subject: [PATCH 22/22] =?UTF-8?q?=E2=9C=A8=20[source-klaviyo]=20Use=20late?= =?UTF-8?q?st=20CDK=20and=20continue=20syncing=20even=20if=20a=20stream=20?= =?UTF-8?q?fails=20(#33237)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- airbyte-integrations/connectors/source-klaviyo/metadata.yaml | 2 +- .../connectors/source-klaviyo/source_klaviyo/source.py | 3 +++ docs/integrations/sources/klaviyo.md | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-klaviyo/metadata.yaml b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml index 8bb2b30f5c490..71bcca6adeb01 100644 --- a/airbyte-integrations/connectors/source-klaviyo/metadata.yaml +++ b/airbyte-integrations/connectors/source-klaviyo/metadata.yaml @@ -8,7 +8,7 @@ data: definitionId: 95e8cffd-b8c4-4039-968e-d32fb4a69bde connectorBuildOptions: baseImage: docker.io/airbyte/python-connector-base:1.1.0@sha256:bd98f6505c6764b1b5f99d3aedc23dfc9e9af631a62533f60eb32b1d3dbab20c - dockerImageTag: 2.0.2 + dockerImageTag: 2.1.0 dockerRepository: airbyte/source-klaviyo githubIssueLabel: source-klaviyo icon: klaviyo.svg diff --git a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/source.py b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/source.py index a097843de2433..5647ca33ea676 100644 --- a/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/source.py +++ b/airbyte-integrations/connectors/source-klaviyo/source_klaviyo/source.py @@ -58,3 +58,6 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]: EmailTemplates(api_key=api_key, start_date=start_date), Profiles(api_key=api_key, start_date=start_date), ] + + def continue_sync_on_stream_failure(self) -> bool: + return True diff --git a/docs/integrations/sources/klaviyo.md b/docs/integrations/sources/klaviyo.md index ebe1fdd5e7530..56aefb605150f 100644 --- a/docs/integrations/sources/klaviyo.md +++ b/docs/integrations/sources/klaviyo.md @@ -63,6 +63,7 @@ The Klaviyo connector should not run into Klaviyo API limitations under normal u | Version | Date | Pull Request | Subject | |:---------|:-----------|:-----------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| +| `2.1.0` | 2023-12-07 | [33237](https://github.com/airbytehq/airbyte/pull/33237) | Continue syncing streams even when one of the stream fails | | `2.0.2` | 2023-12-05 | [33099](https://github.com/airbytehq/airbyte/pull/33099) | Fix filtering for archived records stream | | `2.0.1` | 2023-11-08 | [32291](https://github.com/airbytehq/airbyte/pull/32291) | Add logic to have regular checkpointing schedule | | `2.0.0` | 2023-11-03 | [32128](https://github.com/airbytehq/airbyte/pull/32128) | Use the latest API for streams `campaigns`, `email_templates`, `events`, `flows`, `global_exclusions`, `lists`, and `metrics` |