From de91191259311e85ddb881f0ddbc4eeb0b29f519 Mon Sep 17 00:00:00 2001 From: Catherine Noll Date: Fri, 20 Jan 2023 07:05:57 -0500 Subject: [PATCH 01/56] [Low Code CDK] Pass DeclarativeStream's `name` into DefaultSchemaLoader (#21516) Also handles the case where `DeclarativeStream.options` is `None`. --- .../parsers/model_to_component_factory.py | 2 +- .../schema/default_schema_loader.py | 6 +++- .../test_model_to_component_factory.py | 34 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py index b8a307ce799c0..3210c4f5a35c0 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py @@ -359,7 +359,7 @@ def create_declarative_stream(model: DeclarativeStreamModel, config: Config, **k if model.schema_loader: schema_loader = _create_component_from_model(model=model.schema_loader, config=config) else: - schema_loader = DefaultSchemaLoader(config=config, options=model.options) + schema_loader = DefaultSchemaLoader(config=config, name=model.name, options=model.options) transformations = [] if model.transformations: diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py index 9344ffeed684b..a394f7516cdd7 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py @@ -23,9 +23,13 @@ class DefaultSchemaLoader(SchemaLoader, JsonSchemaMixin): """ config: Config + name: InitVar[str] options: InitVar[Mapping[str, Any]] - def __post_init__(self, options: Mapping[str, Any]): + def __post_init__(self, name: str, options: Mapping[str, Any]): + options = options or {} + if "name" not in options: + options["name"] = name self._options = options self.default_loader = JsonFileSchemaLoader(options=options, config=self.config) diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py index ab01d46692b38..5720ce7c769b6 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py @@ -1011,3 +1011,37 @@ def test_add_fields(self): ) ] assert stream.transformations == expected + + def test_default_schema_loader(self): + component_definition = { + "type": "DeclarativeStream", + "name": "test", + "primary_key": [], + "retriever": { + "type": "SimpleRetriever", + "name": "test", + "primary_key": [], + "requester": { + "type": "HttpRequester", + "name": "test", + "url_base": "http://localhost:6767/", + "path": "items/", + "request_options_provider": { + "request_parameters": {}, + "request_headers": {}, + "request_body_json": {}, + "type": "InterpolatedRequestOptionsProvider", + }, + "authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config['api_key'] }}"}, + }, + "record_selector": {"type": "RecordSelector", "extractor": {"type": "DpathExtractor", "field_pointer": ["items"]}}, + "paginator": {"type": "NoPagination"}, + }, + } + resolved_manifest = resolver.preprocess_manifest(component_definition) + propagated_source_config = ManifestComponentTransformer().propagate_types_and_options("", resolved_manifest, {}) + stream = factory.create_component( + model_type=DeclarativeStreamModel, component_definition=propagated_source_config, config=input_config + ) + schema_loader = stream.schema_loader + assert schema_loader.default_loader._get_json_filepath() == f"./{stream.name}.json" From df1c20acb61758c4d114b650a2523274a8f52c4c Mon Sep 17 00:00:00 2001 From: Catherine Noll Date: Fri, 20 Jan 2023 08:43:59 -0500 Subject: [PATCH 02/56] Revert "[Low Code CDK] Pass DeclarativeStream's `name` into DefaultSchemaLoader (#21516)" (#21649) This reverts commit de91191259311e85ddb881f0ddbc4eeb0b29f519. --- .../parsers/model_to_component_factory.py | 2 +- .../schema/default_schema_loader.py | 6 +--- .../test_model_to_component_factory.py | 34 ------------------- 3 files changed, 2 insertions(+), 40 deletions(-) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py index 3210c4f5a35c0..b8a307ce799c0 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py @@ -359,7 +359,7 @@ def create_declarative_stream(model: DeclarativeStreamModel, config: Config, **k if model.schema_loader: schema_loader = _create_component_from_model(model=model.schema_loader, config=config) else: - schema_loader = DefaultSchemaLoader(config=config, name=model.name, options=model.options) + schema_loader = DefaultSchemaLoader(config=config, options=model.options) transformations = [] if model.transformations: diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py index a394f7516cdd7..9344ffeed684b 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/schema/default_schema_loader.py @@ -23,13 +23,9 @@ class DefaultSchemaLoader(SchemaLoader, JsonSchemaMixin): """ config: Config - name: InitVar[str] options: InitVar[Mapping[str, Any]] - def __post_init__(self, name: str, options: Mapping[str, Any]): - options = options or {} - if "name" not in options: - options["name"] = name + def __post_init__(self, options: Mapping[str, Any]): self._options = options self.default_loader = JsonFileSchemaLoader(options=options, config=self.config) diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py index 5720ce7c769b6..ab01d46692b38 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py @@ -1011,37 +1011,3 @@ def test_add_fields(self): ) ] assert stream.transformations == expected - - def test_default_schema_loader(self): - component_definition = { - "type": "DeclarativeStream", - "name": "test", - "primary_key": [], - "retriever": { - "type": "SimpleRetriever", - "name": "test", - "primary_key": [], - "requester": { - "type": "HttpRequester", - "name": "test", - "url_base": "http://localhost:6767/", - "path": "items/", - "request_options_provider": { - "request_parameters": {}, - "request_headers": {}, - "request_body_json": {}, - "type": "InterpolatedRequestOptionsProvider", - }, - "authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config['api_key'] }}"}, - }, - "record_selector": {"type": "RecordSelector", "extractor": {"type": "DpathExtractor", "field_pointer": ["items"]}}, - "paginator": {"type": "NoPagination"}, - }, - } - resolved_manifest = resolver.preprocess_manifest(component_definition) - propagated_source_config = ManifestComponentTransformer().propagate_types_and_options("", resolved_manifest, {}) - stream = factory.create_component( - model_type=DeclarativeStreamModel, component_definition=propagated_source_config, config=input_config - ) - schema_loader = stream.schema_loader - assert schema_loader.default_loader._get_json_filepath() == f"./{stream.name}.json" From 5aaf0cb6706920082d7b9cb10cd6ec4a4366c19f Mon Sep 17 00:00:00 2001 From: darynaishchenko <80129833+darynaishchenko@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:34:49 +0200 Subject: [PATCH 03/56] changed abnormal_state (#21644) --- .../integration_tests/abnormal_state.json | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json index 6f48fdeb56b94..93204c4f0c708 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json @@ -2,7 +2,7 @@ { "type": "STREAM", "stream": { - "stream_state": { "date_modified": "2022-06-10T11:02:01" }, + "stream_state": { "date_modified": "2050-06-10T11:02:01" }, "stream_descriptor": { "name": "surveys" } } }, @@ -10,19 +10,19 @@ "type": "STREAM", "stream": { "stream_state": { - "306079584": { "date_modified": "2022-06-08T18:17:18+00:00" }, - "307785429": { "date_modified": "2022-06-10T10:59:43+00:00" }, - "307785444": { "date_modified": "2022-06-10T11:00:19+00:00" }, - "307785394": { "date_modified": "2022-06-10T11:00:59+00:00" }, - "307785402": { "date_modified": "2022-06-10T11:01:31+00:00" }, - "307785408": { "date_modified": "2022-06-10T11:02:08+00:00" }, - "307785448": { "date_modified": "2022-06-10T11:02:49+00:00" }, - "307784834": { "date_modified": "2022-06-10T11:03:45+00:00" }, - "307784863": { "date_modified": "2022-06-10T11:04:29+00:00" }, - "307784846": { "date_modified": "2022-06-10T11:05:05+00:00" }, - "307784856": { "date_modified": "2022-06-10T11:05:44+00:00" }, - "307785388": { "date_modified": "2022-06-10T11:06:20+00:00" }, - "307785415": { "date_modified": "2022-06-10T11:06:43+00:00" } + "306079584": { "date_modified": "2050-06-08T18:17:18+00:00" }, + "307785429": { "date_modified": "2050-06-10T10:59:43+00:00" }, + "307785444": { "date_modified": "2050-06-10T11:00:19+00:00" }, + "307785394": { "date_modified": "2050-06-10T11:00:59+00:00" }, + "307785402": { "date_modified": "2050-06-10T11:01:31+00:00" }, + "307785408": { "date_modified": "2050-06-10T11:02:08+00:00" }, + "307785448": { "date_modified": "2050-06-10T11:02:49+00:00" }, + "307784834": { "date_modified": "2050-06-10T11:03:45+00:00" }, + "307784863": { "date_modified": "2050-06-10T11:04:29+00:00" }, + "307784846": { "date_modified": "2050-06-10T11:05:05+00:00" }, + "307784856": { "date_modified": "2050-06-10T11:05:44+00:00" }, + "307785388": { "date_modified": "2050-06-10T11:06:20+00:00" }, + "307785415": { "date_modified": "2050-06-10T11:06:43+00:00" } }, "stream_descriptor": { "name": "survey_responses" } } From 360e630b79ecaf099410a1ac3467621531cfe79c Mon Sep 17 00:00:00 2001 From: darynaishchenko <80129833+darynaishchenko@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:35:08 +0200 Subject: [PATCH 04/56] fixed expected records for stream forms (#21641) --- .../integration_tests/expected_records.jsonl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/airbyte-integrations/connectors/source-typeform/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-typeform/integration_tests/expected_records.jsonl index 771ff67b76f0d..68c6f5e1d7942 100644 --- a/airbyte-integrations/connectors/source-typeform/integration_tests/expected_records.jsonl +++ b/airbyte-integrations/connectors/source-typeform/integration_tests/expected_records.jsonl @@ -1,7 +1,7 @@ -{"stream":"forms","data":{"id":"VWO7mLtl","type":"quiz","title":"Connector Extensibility meetup","workspace":{"href":"https://api.typeform.com/workspaces/sDaAqs"},"theme":{"href":"https://api.typeform.com/themes/qHWOQ7"},"settings":{"language":"en","progress_bar":"proportion","meta":{"allow_indexing":false},"hide_navigation":false,"is_public":true,"is_trial":false,"show_progress_bar":true,"show_typeform_branding":true,"are_uploads_public":false,"show_time_to_complete":true,"show_number_of_submissions":false,"show_cookie_consent":false,"show_question_number":true,"pro_subdomain_enabled":false,"capabilities":{"e2e_encryption":{"enabled":false,"modifiable":false}}},"thankyou_screens":[{"id":"qvDqCNAHuIC8","ref":"01GHC6KQ5Y0M8VN6XHVAG75J0G","title":"","type":"thankyou_screen","properties":{"show_button":true,"share_icons":true,"button_mode":"default_redirect","button_text":"Create a typeform"}},{"id":"DefaultTyScreen","ref":"default_tys","title":"Thanks for completing this typeform\nNow *create your own* — it's free, easy, & beautiful","type":"thankyou_screen","properties":{"show_button":true,"share_icons":false,"button_mode":"default_redirect","button_text":"Create a *typeform*"},"attachment":{"type":"image","href":"https://images.typeform.com/images/2dpnUBBkz2VN"}}],"fields":[{"id":"ZdzF0rrvsVdB","title":"What times work for you to visit San Francisco to work with the team?","ref":"01GHC6KQ5Y6S9ZQH5CHKZPT1RM","properties":{"randomize":false,"allow_multiple_selection":true,"allow_other_choice":true,"vertical_alignment":true,"choices":[{"id":"nLpt4rvNjFB3","ref":"01GHC6KQ5Y155J0F550BGYYS1A","label":"Dec 12-16"},{"id":"4xpK9sqA06eL","ref":"01GHC6KQ5YBATX0CFENVVB5BYG","label":"Dec 19-23"},{"id":"jQHb3mqslOsZ","ref":"1c392fa3-e693-49fe-b334-3a5cddc1db6f","label":"Jan 9-14"},{"id":"wS5FKMUnMgqR","ref":"2ac396a3-1b8e-4e56-b36d-d1f27c1b834d","label":"Jan 16-20"},{"id":"uvmLX80Loava","ref":"8fffd3a8-1e96-421d-a605-a7029bd55e97","label":"Jan 22-26"},{"id":"7ubtgCrW2meb","ref":"17403cc9-74cd-49d1-856a-be6662b3b497","label":"Jan30 - Feb3"},{"id":"51q0g4fTFtYc","ref":"3a1295b4-97b9-4986-9c37-f1af1d72501d","label":"Feb 6 - 11"},{"id":"vi3iwtpETqlb","ref":"54edf52a-c9c7-4bc4-a5a6-bd86115f5adb","label":"Feb 13-17"},{"id":"iI0hDpta14Kk","ref":"e149c19f-8b61-4ff0-a17a-e9e65c3a8fee","label":"Feb 19-24"}]},"validations":{"required":false},"type":"multiple_choice","attachment":{"type":"image","href":"https://images.typeform.com/images/WMALzu59xbXQ"},"layout":{"type":"split","attachment":{"type":"image","href":"https://images.typeform.com/images/WMALzu59xbXQ"}}}],"created_at":"2022-11-08T18:04:03+00:00","last_updated_at":"2022-11-08T21:10:54+00:00","published_at":"2022-11-08T21:10:54+00:00","_links":{"display":"https://xe03v5buli4.typeform.com/to/VWO7mLtl"}},"emitted_at":1673035157921} -{"stream":"forms","data":{"id":"SdMKQYkv","type":"quiz","title":"Event Registration (copy)","workspace":{"href":"https://api.typeform.com/workspaces/sDaAqs"},"theme":{"href":"https://api.typeform.com/themes/JPnxbU"},"settings":{"language":"en","progress_bar":"proportion","meta":{"allow_indexing":true},"hide_navigation":false,"is_public":true,"is_trial":false,"show_progress_bar":true,"show_typeform_branding":true,"are_uploads_public":false,"show_time_to_complete":true,"show_number_of_submissions":false,"show_cookie_consent":false,"show_question_number":true,"pro_subdomain_enabled":false,"capabilities":{"e2e_encryption":{"enabled":false,"modifiable":false}}},"thankyou_screens":[{"id":"DefaultTyScreen","ref":"default_tys","title":"Thanks for completing this typeform\nNow *create your own* — it's free, easy, & beautiful","type":"thankyou_screen","properties":{"show_button":true,"share_icons":false,"button_mode":"default_redirect","button_text":"Create a *typeform*"},"attachment":{"type":"image","href":"https://images.typeform.com/images/2dpnUBBkz2VN"}}],"welcome_screens":[{"id":"3rc53L8DmKJ5","ref":"70d54ea2e68f27ae","title":"The annual FormConf is almost here.\n\nWant to come?","properties":{"show_button":true,"button_text":"Count me in"},"attachment":{"type":"image","href":"https://images.typeform.com/images/UD82iitWn5XY"}}],"fields":[{"id":"63WvXUnvSCa9","title":"Great, can we get your full name?","ref":"ef34b985c51e4131","properties":{"description":"We'll print this on your event pass."},"validations":{"required":true},"type":"short_text"},{"id":"kwpFrd2lI3ok","title":"And what's your email address?","ref":"0c3cabd70157cf16","properties":{"description":"We'll only use it to send you a confirmation."},"validations":{"required":true},"type":"email"},{"id":"1Ua3d1mzhJwj","title":"Are you planning on staying for the afterparty?","ref":"7207397713e2b5e3","properties":{"description":"We have a surprise guest lined up...","randomize":false,"allow_multiple_selection":false,"allow_other_choice":false,"supersized":false,"show_labels":true,"choices":[{"id":"z5hxxjpJl07L","ref":"bfcc3fbf608583f7","label":"Yes","attachment":{"type":"image","href":"https://images.typeform.com/images/xDriVAzzHfVq"}},{"id":"37iaitPaS03r","ref":"5bf390ce5210d38b","label":"No","attachment":{"type":"image","href":"https://images.typeform.com/images/Rn4AmMgzPrYg"}}]},"validations":{"required":false},"type":"picture_choice"},{"id":"MmrPLXSaCF5B","title":"And do you have any food allergies we should know about?","ref":"9aaaeeebe70858c4","properties":{},"validations":{"required":false},"type":"short_text"},{"id":"gurSOcuvNnvb","title":"Any questions about the event?","ref":"18842abd9aa9ded4","properties":{"description":"Write them here and we'll get back to you via email."},"validations":{"required":false},"type":"long_text"},{"id":"fCaCvjCJ57cO","title":"And finally, would you mind telling us how you heard about the FormConf?","ref":"261d0775b1f029cb","properties":{"randomize":false,"allow_multiple_selection":false,"allow_other_choice":true,"vertical_alignment":false,"choices":[{"id":"IhbdgAo2LHXJ","ref":"51c76f5fa66c6725","label":"Social media"},{"id":"h6Ss8i8gQdOw","ref":"87408191d53179ee","label":"Google"},{"id":"45jv6vFn2nrz","ref":"8bc14882d0521d6a","label":"Local advertising"},{"id":"Iahtxl1jeQwh","ref":"fce1c86f-fb00-4c33-8085-6e4a4f12ea35","label":"From a friend"}]},"validations":{"required":false},"type":"multiple_choice"},{"id":"i8rReP3KV7c0","title":"That's everything. We'll send you an email confirmation with some details a few minutes after you submit this form.\n\nWe hope you're excited as we are :)","ref":"c6d179ae9c4794e0","properties":{"button_text":"See you there!","hide_marks":true},"type":"statement"}],"created_at":"2021-06-26T14:39:53+00:00","last_updated_at":"2021-06-27T15:15:56+00:00","published_at":"2021-06-27T15:15:56+00:00","_links":{"display":"https://xe03v5buli4.typeform.com/to/SdMKQYkv"}},"emitted_at":1673035158049} -{"stream":"forms","data":{"id":"kRt99jlK","type":"quiz","title":"Political Poll [DEMO 2] (copy)","workspace":{"href":"https://api.typeform.com/workspaces/sDaAqs"},"theme":{"href":"https://api.typeform.com/themes/wvWlco"},"settings":{"language":"en","progress_bar":"percentage","meta":{"allow_indexing":true},"hide_navigation":false,"is_public":true,"is_trial":false,"show_progress_bar":true,"show_typeform_branding":true,"are_uploads_public":false,"show_time_to_complete":true,"show_number_of_submissions":false,"show_cookie_consent":false,"show_question_number":true,"pro_subdomain_enabled":false,"capabilities":{"e2e_encryption":{"enabled":false,"modifiable":false}}},"thankyou_screens":[{"id":"DefaultTyScreen","ref":"default_tys","title":"Thanks for completing this typeform\nNow *create your own* — it's free, easy, & beautiful","type":"thankyou_screen","properties":{"show_button":true,"share_icons":false,"button_mode":"default_redirect","button_text":"Create a *typeform*"},"attachment":{"type":"image","href":"https://images.typeform.com/images/2dpnUBBkz2VN"}}],"welcome_screens":[{"id":"4jguOatzh4QX","ref":"e8ee8d1500fec6d9","title":"*National Voting Intentions*","properties":{"show_button":true,"button_text":"Take Poll","description":"If you're ok with it, we'd like to know about how you might vote in a general election"},"attachment":{"type":"image","href":"https://images.typeform.com/images/ty98jF8FppfC"}}],"fields":[{"id":"qthblBc7InVU","title":"Let's get right to the point:\nIf there was a general election tomorrow, which party would you vote for?","ref":"8267768033031e53","properties":{"randomize":false,"allow_multiple_selection":false,"allow_other_choice":true,"vertical_alignment":true,"choices":[{"id":"3XbsOhLiGFkv","ref":"fc3c3f5dbe75a01e","label":"Center-right party"},{"id":"FesJYxqJ0SNX","ref":"61f5e8b36fcdbd91","label":"Center-left party"},{"id":"prJzwOH23zsc","ref":"495e234f7c65d582","label":"Green party"},{"id":"6IXNu85c5dOl","ref":"566c959b6ef92437","label":"Don't know"}]},"validations":{"required":true},"type":"multiple_choice"},{"id":"rB7FJUThFlu4","title":"OK, how do you feel about the general direction of our country at the moment?","ref":"b13b02912db6f287","properties":{"randomize":false,"allow_multiple_selection":false,"allow_other_choice":false,"supersized":true,"show_labels":true,"choices":[{"id":"Jt8FTorS35Sb","ref":"b99bb45c5b8c25be","label":"Going in the wrong direction","attachment":{"type":"image","href":"https://images.typeform.com/images/evDEZYspmvjm"}},{"id":"KUJ0sF2mqG5A","ref":"2e07534517a152a2","label":"Going in the right direction","attachment":{"type":"image","href":"https://images.typeform.com/images/DgjPyuz9Aphy"}},{"id":"Dlb3UhA4keI4","ref":"50be578304fe3e92","label":"At a standstill","attachment":{"type":"image","href":"https://images.typeform.com/images/ZqbqJ6h4zGmM"}},{"id":"21TAgDkTV2zE","ref":"d9993c86773807a8","label":"Unsure","attachment":{"type":"image","href":"https://images.typeform.com/images/mNFNeMbxPQMt"}}]},"validations":{"required":true},"type":"picture_choice"},{"id":"vV7ISYSgZ94I","title":"Thanks, and how do you feel about your own situation this year?","ref":"f1939629f760be75","properties":{"start_at_one":true,"steps":5,"labels":{"left":"Much worse","center":"About the same","right":"Much better"}},"validations":{"required":true},"type":"opinion_scale"},{"id":"Mrq4qNeRInni","title":"Thanks again. Just a couple more questions to go. \nWhich of these issues is most important to you?","ref":"c52566d91c5052e2","properties":{"randomize":true,"allow_multiple_selection":false,"allow_other_choice":false,"supersized":false,"show_labels":true,"choices":[{"id":"pTMw2DVbpMyD","ref":"d9374e70c6cb2f9c","label":"Taxes & Economy","attachment":{"type":"image","href":"https://images.typeform.com/images/6eSzJ9khSfvS"}},{"id":"dymEoJ3SUDZp","ref":"d3278566f523cef0","label":"Labor & Business","attachment":{"type":"image","href":"https://images.typeform.com/images/HWfXuXCR3Ls8"}},{"id":"mOq857nilN8V","ref":"39ecf093bc5e645b","label":"Infrastructures","attachment":{"type":"image","href":"https://images.typeform.com/images/rW2P45guvd63"}},{"id":"rnul7dwtsWbg","ref":"aa1c16d517ffbea0","label":"Health","attachment":{"type":"image","href":"https://images.typeform.com/images/nVsmUESsAzCs"}},{"id":"Ii1K3mlYioOm","ref":"4b9a4b0defbf04e5","label":"Environment","attachment":{"type":"image","href":"https://images.typeform.com/images/7ZwHmRi3ZYeg"}},{"id":"TGZeXHyDgTrQ","ref":"536d99289a1f80d1","label":"Education","attachment":{"type":"image","href":"https://images.typeform.com/images/Z8qCFjGRD78P"}},{"id":"1Asa5xFxfuCi","ref":"68b9b4d37fabf862","label":"Family & Equality","attachment":{"type":"image","href":"https://images.typeform.com/images/YC4Fx6ud6bKq"}},{"id":"szBe0vqnkCUK","ref":"3f1692f85c3cd73b","label":"Military & Defense","attachment":{"type":"image","href":"https://images.typeform.com/images/YA746sDt87Xf"}}]},"validations":{"required":true},"type":"picture_choice"},{"id":"aDJXqNTyDXxD","title":"To finish up, would you mind telling us how you think the current government doing on these issues?","ref":"f684d8bc4fbca5d3","properties":{"description":"From 1, doing badly, to 5, doing great...","button_text":"Continue","show_button":false,"fields":[{"id":"x9myjwStSn9a","title":"Economy","ref":"55c2e5c15f7dccec","properties":{"shape":"star","steps":5},"validations":{"required":true},"type":"rating"},{"id":"zaP8jDAArI5x","title":"National Debt","ref":"f853e99096a32208","properties":{"shape":"up","steps":5},"validations":{"required":true},"type":"rating"},{"id":"VFmcjbHlFTzg","title":"Employment","ref":"6f0fd734177ecf27","properties":{"shape":"user","steps":5},"validations":{"required":true},"type":"rating"},{"id":"DgGh4ZkRBAyH","title":"Healthcare","ref":"b4171ed292dc3cee","properties":{"shape":"heart","steps":5},"validations":{"required":true},"type":"rating"},{"id":"yC3UrwN1LKT8","title":"Education","ref":"c8dd7d63c26777d9","properties":{"shape":"pencil","steps":5},"validations":{"required":true},"type":"rating"}]},"type":"group"}],"created_at":"2021-06-26T14:39:14+00:00","last_updated_at":"2021-07-01T10:03:13+00:00","published_at":"2021-07-01T10:03:13+00:00","_links":{"display":"https://xe03v5buli4.typeform.com/to/kRt99jlK"}},"emitted_at":1673035158319} -{"stream":"forms","data":{"id":"XtrcGoGJ","type":"quiz","title":"Basic Form","workspace":{"href":"https://api.typeform.com/workspaces/sDaAqs"},"theme":{"href":"https://api.typeform.com/themes/qHWOQ7"},"settings":{"language":"en","progress_bar":"proportion","meta":{"allow_indexing":false},"hide_navigation":false,"is_public":true,"is_trial":false,"show_progress_bar":true,"show_typeform_branding":true,"are_uploads_public":false,"show_time_to_complete":true,"show_number_of_submissions":false,"show_cookie_consent":false,"show_question_number":true,"pro_subdomain_enabled":false,"capabilities":{"e2e_encryption":{"enabled":false,"modifiable":false}}},"thankyou_screens":[{"id":"Xg85PhXqk4HR","ref":"01F8N53B82QB6T2VM7ASP16198","title":"","type":"thankyou_screen","properties":{"show_button":true,"share_icons":true,"button_mode":"reload","button_text":"reload"}},{"id":"DefaultTyScreen","ref":"default_tys","title":"Thanks for completing this typeform\nNow *create your own* — it's free, easy, & beautiful","type":"thankyou_screen","properties":{"show_button":true,"share_icons":false,"button_mode":"default_redirect","button_text":"Create a *typeform*"},"attachment":{"type":"image","href":"https://images.typeform.com/images/2dpnUBBkz2VN"}}],"fields":[{"id":"8VK4KwNd0DgB","title":"Hello, what's your name?","ref":"01F8N53B7KPZ2A1DWGZTTK9SKG","properties":{},"validations":{"required":false},"type":"short_text","attachment":{"type":"image","href":"https://images.typeform.com/images/WMALzu59xbXQ"},"layout":{"type":"split","attachment":{"type":"image","href":"https://images.typeform.com/images/WMALzu59xbXQ"}}},{"id":"HbNDNK4LLOXB","title":"Fill your email here:","ref":"b7980774-f17f-43bc-920b-586e03398f03","properties":{},"validations":{"required":false},"type":"email"},{"id":"5l7cx4NRa7aX","title":"enter site","ref":"e98312ff-df57-4de2-82ae-3617e6dd32ab","properties":{},"validations":{"required":false},"type":"website"},{"id":"6lGZzhNfrqwB","title":"Multi-Select question.","ref":"43153da3-fbbc-443e-b66f-1752770c0e0a","properties":{"randomize":false,"allow_multiple_selection":true,"allow_other_choice":false,"vertical_alignment":true,"choices":[{"id":"3HfyxDo5JoXf","ref":"f83999f6-c869-47cc-af2f-f22b628a0fdb","label":"choice 3"},{"id":"03VP9UxCwCLT","ref":"27b8dfcb-ef16-4ad7-b2be-734ec24c34ca","label":"choice 4"},{"id":"ELm7HbFr0OOq","ref":"ce51ab49-2cce-490d-b831-309337c79fa0","label":"choice2"},{"id":"acwDGU8NeO2A","ref":"74ef0411-0c8a-4c09-a6f3-7a62b0745f68","label":"choice1"}]},"validations":{"required":false},"type":"multiple_choice"},{"id":"X6dq0mumvtKq","title":"Nice to meet you, {{field:01F8N53B7KPZ2A1DWGZTTK9SKG}}, how is your day going?","ref":"01F8N53B8293QHVDDHT84RZR6K","properties":{"randomize":false,"allow_multiple_selection":false,"allow_other_choice":false,"vertical_alignment":true,"choices":[{"id":"FWQrVLFdHroI","ref":"01F8N53B82JXPXZ1B53BMJY0X2","label":"Terrific!"},{"id":"7jNEfjJ2cDAl","ref":"01F8N53B82RE3YZK7RR50KNRQ0","label":"Not so well..."}]},"validations":{"required":false},"type":"multiple_choice"}],"created_at":"2021-06-20T16:47:13+00:00","last_updated_at":"2022-06-20T10:19:58+00:00","published_at":"2021-06-20T16:47:26+00:00","_links":{"display":"https://xe03v5buli4.typeform.com/to/XtrcGoGJ"}},"emitted_at":1673035158458} +{"stream": "forms", "data": {"id": "VWO7mLtl", "type": "quiz", "title": "Connector Extensibility meetup", "workspace": {"href": "https://api.typeform.com/workspaces/sDaAqs"}, "theme": {"href": "https://api.typeform.com/themes/qHWOQ7"}, "settings": {"language": "en", "progress_bar": "proportion", "meta": {"allow_indexing": false}, "hide_navigation": false, "is_public": true, "is_trial": false, "show_progress_bar": true, "show_typeform_branding": true, "are_uploads_public": false, "show_time_to_complete": true, "show_number_of_submissions": false, "show_cookie_consent": false, "show_question_number": true, "show_key_hint_on_choices": true, "pro_subdomain_enabled": false, "capabilities": {"e2e_encryption": {"enabled": false, "modifiable": false}}}, "thankyou_screens": [{"id": "qvDqCNAHuIC8", "ref": "01GHC6KQ5Y0M8VN6XHVAG75J0G", "title": "", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": true, "button_mode": "default_redirect", "button_text": "Create a typeform"}}, {"id": "DefaultTyScreen", "ref": "default_tys", "title": "Thanks for completing this typeform\nNow *create your own* \u2014 it's free, easy, & beautiful", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": false, "button_mode": "default_redirect", "button_text": "Create a *typeform*"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/2dpnUBBkz2VN"}}], "fields": [{"id": "ZdzF0rrvsVdB", "title": "What times work for you to visit San Francisco to work with the team?", "ref": "01GHC6KQ5Y6S9ZQH5CHKZPT1RM", "properties": {"randomize": false, "allow_multiple_selection": true, "allow_other_choice": true, "vertical_alignment": true, "choices": [{"id": "nLpt4rvNjFB3", "ref": "01GHC6KQ5Y155J0F550BGYYS1A", "label": "Dec 12-16"}, {"id": "4xpK9sqA06eL", "ref": "01GHC6KQ5YBATX0CFENVVB5BYG", "label": "Dec 19-23"}, {"id": "jQHb3mqslOsZ", "ref": "1c392fa3-e693-49fe-b334-3a5cddc1db6f", "label": "Jan 9-14"}, {"id": "wS5FKMUnMgqR", "ref": "2ac396a3-1b8e-4e56-b36d-d1f27c1b834d", "label": "Jan 16-20"}, {"id": "uvmLX80Loava", "ref": "8fffd3a8-1e96-421d-a605-a7029bd55e97", "label": "Jan 22-26"}, {"id": "7ubtgCrW2meb", "ref": "17403cc9-74cd-49d1-856a-be6662b3b497", "label": "Jan30 - Feb3"}, {"id": "51q0g4fTFtYc", "ref": "3a1295b4-97b9-4986-9c37-f1af1d72501d", "label": "Feb 6 - 11"}, {"id": "vi3iwtpETqlb", "ref": "54edf52a-c9c7-4bc4-a5a6-bd86115f5adb", "label": "Feb 13-17"}, {"id": "iI0hDpta14Kk", "ref": "e149c19f-8b61-4ff0-a17a-e9e65c3a8fee", "label": "Feb 19-24"}]}, "validations": {"required": false}, "type": "multiple_choice", "attachment": {"type": "image", "href": "https://images.typeform.com/images/WMALzu59xbXQ"}, "layout": {"type": "split", "attachment": {"type": "image", "href": "https://images.typeform.com/images/WMALzu59xbXQ"}}}], "created_at": "2022-11-08T18:04:03+00:00", "last_updated_at": "2022-11-08T21:10:54+00:00", "published_at": "2022-11-08T21:10:54+00:00", "_links": {"display": "https://xe03v5buli4.typeform.com/to/VWO7mLtl"}}, "emitted_at": 1674208909563} +{"stream": "forms", "data": {"id": "SdMKQYkv", "type": "quiz", "title": "Event Registration (copy)", "workspace": {"href": "https://api.typeform.com/workspaces/sDaAqs"}, "theme": {"href": "https://api.typeform.com/themes/JPnxbU"}, "settings": {"language": "en", "progress_bar": "proportion", "meta": {"allow_indexing": true}, "hide_navigation": false, "is_public": true, "is_trial": false, "show_progress_bar": true, "show_typeform_branding": true, "are_uploads_public": false, "show_time_to_complete": true, "show_number_of_submissions": false, "show_cookie_consent": false, "show_question_number": true, "show_key_hint_on_choices": true, "pro_subdomain_enabled": false, "capabilities": {"e2e_encryption": {"enabled": false, "modifiable": false}}}, "thankyou_screens": [{"id": "DefaultTyScreen", "ref": "default_tys", "title": "Thanks for completing this typeform\nNow *create your own* \u2014 it's free, easy, & beautiful", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": false, "button_mode": "default_redirect", "button_text": "Create a *typeform*"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/2dpnUBBkz2VN"}}], "welcome_screens": [{"id": "3rc53L8DmKJ5", "ref": "70d54ea2e68f27ae", "title": "The annual FormConf is almost here.\n\nWant to come?", "properties": {"show_button": true, "button_text": "Count me in"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/UD82iitWn5XY"}}], "fields": [{"id": "63WvXUnvSCa9", "title": "Great, can we get your full name?", "ref": "ef34b985c51e4131", "properties": {"description": "We'll print this on your event pass."}, "validations": {"required": true}, "type": "short_text"}, {"id": "kwpFrd2lI3ok", "title": "And what's your email address?", "ref": "0c3cabd70157cf16", "properties": {"description": "We'll only use it to send you a confirmation."}, "validations": {"required": true}, "type": "email"}, {"id": "1Ua3d1mzhJwj", "title": "Are you planning on staying for the afterparty?", "ref": "7207397713e2b5e3", "properties": {"description": "We have a surprise guest lined up...", "randomize": false, "allow_multiple_selection": false, "allow_other_choice": false, "supersized": false, "show_labels": true, "choices": [{"id": "z5hxxjpJl07L", "ref": "bfcc3fbf608583f7", "label": "Yes", "attachment": {"type": "image", "href": "https://images.typeform.com/images/xDriVAzzHfVq"}}, {"id": "37iaitPaS03r", "ref": "5bf390ce5210d38b", "label": "No", "attachment": {"type": "image", "href": "https://images.typeform.com/images/Rn4AmMgzPrYg"}}]}, "validations": {"required": false}, "type": "picture_choice"}, {"id": "MmrPLXSaCF5B", "title": "And do you have any food allergies we should know about?", "ref": "9aaaeeebe70858c4", "properties": {}, "validations": {"required": false}, "type": "short_text"}, {"id": "gurSOcuvNnvb", "title": "Any questions about the event?", "ref": "18842abd9aa9ded4", "properties": {"description": "Write them here and we'll get back to you via email."}, "validations": {"required": false}, "type": "long_text"}, {"id": "fCaCvjCJ57cO", "title": "And finally, would you mind telling us how you heard about the FormConf?", "ref": "261d0775b1f029cb", "properties": {"randomize": false, "allow_multiple_selection": false, "allow_other_choice": true, "vertical_alignment": false, "choices": [{"id": "IhbdgAo2LHXJ", "ref": "51c76f5fa66c6725", "label": "Social media"}, {"id": "h6Ss8i8gQdOw", "ref": "87408191d53179ee", "label": "Google"}, {"id": "45jv6vFn2nrz", "ref": "8bc14882d0521d6a", "label": "Local advertising"}, {"id": "Iahtxl1jeQwh", "ref": "fce1c86f-fb00-4c33-8085-6e4a4f12ea35", "label": "From a friend"}]}, "validations": {"required": false}, "type": "multiple_choice"}, {"id": "i8rReP3KV7c0", "title": "That's everything. We'll send you an email confirmation with some details a few minutes after you submit this form.\n\nWe hope you're excited as we are :)", "ref": "c6d179ae9c4794e0", "properties": {"button_text": "See you there!", "hide_marks": true}, "type": "statement"}], "created_at": "2021-06-26T14:39:53+00:00", "last_updated_at": "2021-06-27T15:15:56+00:00", "published_at": "2021-06-27T15:15:56+00:00", "_links": {"display": "https://xe03v5buli4.typeform.com/to/SdMKQYkv"}}, "emitted_at": 1674208909865} +{"stream": "forms", "data": {"id": "kRt99jlK", "type": "quiz", "title": "Political Poll [DEMO 2] (copy)", "workspace": {"href": "https://api.typeform.com/workspaces/sDaAqs"}, "theme": {"href": "https://api.typeform.com/themes/wvWlco"}, "settings": {"language": "en", "progress_bar": "percentage", "meta": {"allow_indexing": true}, "hide_navigation": false, "is_public": true, "is_trial": false, "show_progress_bar": true, "show_typeform_branding": true, "are_uploads_public": false, "show_time_to_complete": true, "show_number_of_submissions": false, "show_cookie_consent": false, "show_question_number": true, "show_key_hint_on_choices": true, "pro_subdomain_enabled": false, "capabilities": {"e2e_encryption": {"enabled": false, "modifiable": false}}}, "thankyou_screens": [{"id": "DefaultTyScreen", "ref": "default_tys", "title": "Thanks for completing this typeform\nNow *create your own* \u2014 it's free, easy, & beautiful", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": false, "button_mode": "default_redirect", "button_text": "Create a *typeform*"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/2dpnUBBkz2VN"}}], "welcome_screens": [{"id": "4jguOatzh4QX", "ref": "e8ee8d1500fec6d9", "title": "*National Voting Intentions*", "properties": {"show_button": true, "button_text": "Take Poll", "description": "If you're ok with it, we'd like to know about how you might vote in a general election"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/ty98jF8FppfC"}}], "fields": [{"id": "qthblBc7InVU", "title": "Let's get right to the point:\nIf there was a general election tomorrow, which party would you vote for?", "ref": "8267768033031e53", "properties": {"randomize": false, "allow_multiple_selection": false, "allow_other_choice": true, "vertical_alignment": true, "choices": [{"id": "3XbsOhLiGFkv", "ref": "fc3c3f5dbe75a01e", "label": "Center-right party"}, {"id": "FesJYxqJ0SNX", "ref": "61f5e8b36fcdbd91", "label": "Center-left party"}, {"id": "prJzwOH23zsc", "ref": "495e234f7c65d582", "label": "Green party"}, {"id": "6IXNu85c5dOl", "ref": "566c959b6ef92437", "label": "Don't know"}]}, "validations": {"required": true}, "type": "multiple_choice"}, {"id": "rB7FJUThFlu4", "title": "OK, how do you feel about the general direction of our country at the moment?", "ref": "b13b02912db6f287", "properties": {"randomize": false, "allow_multiple_selection": false, "allow_other_choice": false, "supersized": true, "show_labels": true, "choices": [{"id": "Jt8FTorS35Sb", "ref": "b99bb45c5b8c25be", "label": "Going in the wrong direction", "attachment": {"type": "image", "href": "https://images.typeform.com/images/evDEZYspmvjm"}}, {"id": "KUJ0sF2mqG5A", "ref": "2e07534517a152a2", "label": "Going in the right direction", "attachment": {"type": "image", "href": "https://images.typeform.com/images/DgjPyuz9Aphy"}}, {"id": "Dlb3UhA4keI4", "ref": "50be578304fe3e92", "label": "At a standstill", "attachment": {"type": "image", "href": "https://images.typeform.com/images/ZqbqJ6h4zGmM"}}, {"id": "21TAgDkTV2zE", "ref": "d9993c86773807a8", "label": "Unsure", "attachment": {"type": "image", "href": "https://images.typeform.com/images/mNFNeMbxPQMt"}}]}, "validations": {"required": true}, "type": "picture_choice"}, {"id": "vV7ISYSgZ94I", "title": "Thanks, and how do you feel about your own situation this year?", "ref": "f1939629f760be75", "properties": {"start_at_one": true, "steps": 5, "labels": {"left": "Much worse", "center": "About the same", "right": "Much better"}}, "validations": {"required": true}, "type": "opinion_scale"}, {"id": "Mrq4qNeRInni", "title": "Thanks again. Just a couple more questions to go. \nWhich of these issues is most important to you?", "ref": "c52566d91c5052e2", "properties": {"randomize": true, "allow_multiple_selection": false, "allow_other_choice": false, "supersized": false, "show_labels": true, "choices": [{"id": "pTMw2DVbpMyD", "ref": "d9374e70c6cb2f9c", "label": "Taxes & Economy", "attachment": {"type": "image", "href": "https://images.typeform.com/images/6eSzJ9khSfvS"}}, {"id": "dymEoJ3SUDZp", "ref": "d3278566f523cef0", "label": "Labor & Business", "attachment": {"type": "image", "href": "https://images.typeform.com/images/HWfXuXCR3Ls8"}}, {"id": "mOq857nilN8V", "ref": "39ecf093bc5e645b", "label": "Infrastructures", "attachment": {"type": "image", "href": "https://images.typeform.com/images/rW2P45guvd63"}}, {"id": "rnul7dwtsWbg", "ref": "aa1c16d517ffbea0", "label": "Health", "attachment": {"type": "image", "href": "https://images.typeform.com/images/nVsmUESsAzCs"}}, {"id": "Ii1K3mlYioOm", "ref": "4b9a4b0defbf04e5", "label": "Environment", "attachment": {"type": "image", "href": "https://images.typeform.com/images/7ZwHmRi3ZYeg"}}, {"id": "TGZeXHyDgTrQ", "ref": "536d99289a1f80d1", "label": "Education", "attachment": {"type": "image", "href": "https://images.typeform.com/images/Z8qCFjGRD78P"}}, {"id": "1Asa5xFxfuCi", "ref": "68b9b4d37fabf862", "label": "Family & Equality", "attachment": {"type": "image", "href": "https://images.typeform.com/images/YC4Fx6ud6bKq"}}, {"id": "szBe0vqnkCUK", "ref": "3f1692f85c3cd73b", "label": "Military & Defense", "attachment": {"type": "image", "href": "https://images.typeform.com/images/YA746sDt87Xf"}}]}, "validations": {"required": true}, "type": "picture_choice"}, {"id": "aDJXqNTyDXxD", "title": "To finish up, would you mind telling us how you think the current government doing on these issues?", "ref": "f684d8bc4fbca5d3", "properties": {"description": "From 1, doing badly, to 5, doing great...", "button_text": "Continue", "show_button": false, "fields": [{"id": "x9myjwStSn9a", "title": "Economy", "ref": "55c2e5c15f7dccec", "properties": {"shape": "star", "steps": 5}, "validations": {"required": true}, "type": "rating"}, {"id": "zaP8jDAArI5x", "title": "National Debt", "ref": "f853e99096a32208", "properties": {"shape": "up", "steps": 5}, "validations": {"required": true}, "type": "rating"}, {"id": "VFmcjbHlFTzg", "title": "Employment", "ref": "6f0fd734177ecf27", "properties": {"shape": "user", "steps": 5}, "validations": {"required": true}, "type": "rating"}, {"id": "DgGh4ZkRBAyH", "title": "Healthcare", "ref": "b4171ed292dc3cee", "properties": {"shape": "heart", "steps": 5}, "validations": {"required": true}, "type": "rating"}, {"id": "yC3UrwN1LKT8", "title": "Education", "ref": "c8dd7d63c26777d9", "properties": {"shape": "pencil", "steps": 5}, "validations": {"required": true}, "type": "rating"}]}, "type": "group"}], "created_at": "2021-06-26T14:39:14+00:00", "last_updated_at": "2021-07-01T10:03:13+00:00", "published_at": "2021-07-01T10:03:13+00:00", "_links": {"display": "https://xe03v5buli4.typeform.com/to/kRt99jlK"}}, "emitted_at": 1674208910341} +{"stream": "forms", "data": {"id": "XtrcGoGJ", "type": "quiz", "title": "Basic Form", "workspace": {"href": "https://api.typeform.com/workspaces/sDaAqs"}, "theme": {"href": "https://api.typeform.com/themes/qHWOQ7"}, "settings": {"language": "en", "progress_bar": "proportion", "meta": {"allow_indexing": false}, "hide_navigation": false, "is_public": true, "is_trial": false, "show_progress_bar": true, "show_typeform_branding": true, "are_uploads_public": false, "show_time_to_complete": true, "show_number_of_submissions": false, "show_cookie_consent": false, "show_question_number": true, "show_key_hint_on_choices": true, "pro_subdomain_enabled": false, "capabilities": {"e2e_encryption": {"enabled": false, "modifiable": false}}}, "thankyou_screens": [{"id": "Xg85PhXqk4HR", "ref": "01F8N53B82QB6T2VM7ASP16198", "title": "", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": true, "button_mode": "reload", "button_text": "reload"}}, {"id": "DefaultTyScreen", "ref": "default_tys", "title": "Thanks for completing this typeform\nNow *create your own* \u2014 it's free, easy, & beautiful", "type": "thankyou_screen", "properties": {"show_button": true, "share_icons": false, "button_mode": "default_redirect", "button_text": "Create a *typeform*"}, "attachment": {"type": "image", "href": "https://images.typeform.com/images/2dpnUBBkz2VN"}}], "fields": [{"id": "8VK4KwNd0DgB", "title": "Hello, what's your name?", "ref": "01F8N53B7KPZ2A1DWGZTTK9SKG", "properties": {}, "validations": {"required": false}, "type": "short_text", "attachment": {"type": "image", "href": "https://images.typeform.com/images/WMALzu59xbXQ"}, "layout": {"type": "split", "attachment": {"type": "image", "href": "https://images.typeform.com/images/WMALzu59xbXQ"}}}, {"id": "HbNDNK4LLOXB", "title": "Fill your email here:", "ref": "b7980774-f17f-43bc-920b-586e03398f03", "properties": {}, "validations": {"required": false}, "type": "email"}, {"id": "5l7cx4NRa7aX", "title": "enter site", "ref": "e98312ff-df57-4de2-82ae-3617e6dd32ab", "properties": {}, "validations": {"required": false}, "type": "website"}, {"id": "6lGZzhNfrqwB", "title": "Multi-Select question.", "ref": "43153da3-fbbc-443e-b66f-1752770c0e0a", "properties": {"randomize": false, "allow_multiple_selection": true, "allow_other_choice": false, "vertical_alignment": true, "choices": [{"id": "3HfyxDo5JoXf", "ref": "f83999f6-c869-47cc-af2f-f22b628a0fdb", "label": "choice 3"}, {"id": "03VP9UxCwCLT", "ref": "27b8dfcb-ef16-4ad7-b2be-734ec24c34ca", "label": "choice 4"}, {"id": "ELm7HbFr0OOq", "ref": "ce51ab49-2cce-490d-b831-309337c79fa0", "label": "choice2"}, {"id": "acwDGU8NeO2A", "ref": "74ef0411-0c8a-4c09-a6f3-7a62b0745f68", "label": "choice1"}]}, "validations": {"required": false}, "type": "multiple_choice"}, {"id": "X6dq0mumvtKq", "title": "Nice to meet you, {{field:01F8N53B7KPZ2A1DWGZTTK9SKG}}, how is your day going?", "ref": "01F8N53B8293QHVDDHT84RZR6K", "properties": {"randomize": false, "allow_multiple_selection": false, "allow_other_choice": false, "vertical_alignment": true, "choices": [{"id": "FWQrVLFdHroI", "ref": "01F8N53B82JXPXZ1B53BMJY0X2", "label": "Terrific!"}, {"id": "7jNEfjJ2cDAl", "ref": "01F8N53B82RE3YZK7RR50KNRQ0", "label": "Not so well..."}]}, "validations": {"required": false}, "type": "multiple_choice"}], "created_at": "2021-06-20T16:47:13+00:00", "last_updated_at": "2022-06-20T10:19:58+00:00", "published_at": "2021-06-20T16:47:26+00:00", "_links": {"display": "https://xe03v5buli4.typeform.com/to/XtrcGoGJ"}}, "emitted_at": 1674208910581} {"stream":"responses","data":{"landing_id":"fr2wm964fnyxpdx9a8tfr2wmlph34hqi","token":"fr2wm964fnyxpdx9a8tfr2wmlph34hqi","response_id":"fr2wm964fnyxpdx9a8tfr2wmlph34hqi","landed_at":"2022-11-08T21:59:53Z","submitted_at":"2022-11-08T22:00:24Z","metadata":{"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36","platform":"other","referer":"https://xe03v5buli4.typeform.com/to/VWO7mLtl","network_id":"8a0111039f","browser":"default"},"hidden":{},"calculated":{"score":0},"answers":[{"field":{"id":"ZdzF0rrvsVdB","ref":"01GHC6KQ5Y6S9ZQH5CHKZPT1RM","type":"multiple_choice"},"type":"choices","choices":{"ids":["nLpt4rvNjFB3","4xpK9sqA06eL","jQHb3mqslOsZ","wS5FKMUnMgqR","uvmLX80Loava","7ubtgCrW2meb","iI0hDpta14Kk"],"refs":["01GHC6KQ5Y155J0F550BGYYS1A","01GHC6KQ5YBATX0CFENVVB5BYG","1c392fa3-e693-49fe-b334-3a5cddc1db6f","2ac396a3-1b8e-4e56-b36d-d1f27c1b834d","8fffd3a8-1e96-421d-a605-a7029bd55e97","17403cc9-74cd-49d1-856a-be6662b3b497","e149c19f-8b61-4ff0-a17a-e9e65c3a8fee"],"labels":["Dec 12-16","Dec 19-23","Jan 9-14","Jan 16-20","Jan 22-26","Jan30 - Feb3","Feb 19-24"]}}]},"emitted_at":1673035160703} {"stream":"responses","data":{"landing_id":"0dc8djmlrkmxuwu7s7mmia0dc8dj4a1r","token":"0dc8djmlrkmxuwu7s7mmia0dc8dj4a1r","response_id":"0dc8djmlrkmxuwu7s7mmia0dc8dj4a1r","landed_at":"2022-11-08T22:08:39Z","submitted_at":"2022-11-08T22:10:04Z","metadata":{"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36","platform":"other","referer":"https://xe03v5buli4.typeform.com/to/VWO7mLtl","network_id":"d4b74277d2","browser":"default"},"hidden":{},"calculated":{"score":0},"answers":[{"field":{"id":"ZdzF0rrvsVdB","ref":"01GHC6KQ5Y6S9ZQH5CHKZPT1RM","type":"multiple_choice"},"type":"choices","choices":{"ids":["nLpt4rvNjFB3","wS5FKMUnMgqR","jQHb3mqslOsZ","51q0g4fTFtYc","vi3iwtpETqlb","iI0hDpta14Kk"],"refs":["01GHC6KQ5Y155J0F550BGYYS1A","2ac396a3-1b8e-4e56-b36d-d1f27c1b834d","1c392fa3-e693-49fe-b334-3a5cddc1db6f","3a1295b4-97b9-4986-9c37-f1af1d72501d","54edf52a-c9c7-4bc4-a5a6-bd86115f5adb","e149c19f-8b61-4ff0-a17a-e9e65c3a8fee"],"labels":["Dec 12-16","Jan 16-20","Jan 9-14","Feb 6 - 11","Feb 13-17","Feb 19-24"]}}]},"emitted_at":1673035160703} {"stream":"responses","data":{"landing_id":"ng2hh3i6cy7ikeyorbnl0ng2hh3icyvq","token":"ng2hh3i6cy7ikeyorbnl0ng2hh3icyvq","response_id":"ng2hh3i6cy7ikeyorbnl0ng2hh3icyvq","landed_at":"2022-11-09T06:16:08Z","submitted_at":"2022-11-09T06:16:10Z","metadata":{"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36","platform":"other","referer":"https://xe03v5buli4.typeform.com/to/VWO7mLtl","network_id":"2be9dd4bab","browser":"default"},"hidden":{},"calculated":{"score":0},"answers":[{"field":{"id":"ZdzF0rrvsVdB","ref":"01GHC6KQ5Y6S9ZQH5CHKZPT1RM","type":"multiple_choice"},"type":"choices","choices":{"ids":["nLpt4rvNjFB3","wS5FKMUnMgqR","uvmLX80Loava","7ubtgCrW2meb","51q0g4fTFtYc","vi3iwtpETqlb","iI0hDpta14Kk"],"refs":["01GHC6KQ5Y155J0F550BGYYS1A","2ac396a3-1b8e-4e56-b36d-d1f27c1b834d","8fffd3a8-1e96-421d-a605-a7029bd55e97","17403cc9-74cd-49d1-856a-be6662b3b497","3a1295b4-97b9-4986-9c37-f1af1d72501d","54edf52a-c9c7-4bc4-a5a6-bd86115f5adb","e149c19f-8b61-4ff0-a17a-e9e65c3a8fee"],"labels":["Dec 12-16","Jan 16-20","Jan 22-26","Jan30 - Feb3","Feb 6 - 11","Feb 13-17","Feb 19-24"]}}]},"emitted_at":1673035160855} From 09592ab0a1e9ace2f352d9972b25e1a7ac4557bf Mon Sep 17 00:00:00 2001 From: darynaishchenko <80129833+darynaishchenko@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:35:25 +0200 Subject: [PATCH 05/56] fixed expected records for projects and project_detail streams (#21640) --- .../source-sentry/integration_tests/expected_records.jsonl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/airbyte-integrations/connectors/source-sentry/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-sentry/integration_tests/expected_records.jsonl index a616e5ece9766..877be28416d85 100644 --- a/airbyte-integrations/connectors/source-sentry/integration_tests/expected_records.jsonl +++ b/airbyte-integrations/connectors/source-sentry/integration_tests/expected_records.jsonl @@ -1,5 +1,5 @@ {"stream": "events", "data": {"id": "b82cb40291414a90a5b3fb9fe0b646a9", "groupID": "3879509212", "eventID": "b82cb40291414a90a5b3fb9fe0b646a9", "projectID": "5942472", "size": 8070, "entries": [{"data": {"formatted": "This is an example Python exception"}, "type": "message"}, {"data": {"frames": [{"filename": "raven/base.py", "absPath": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py", "module": "raven.base", "package": null, "platform": null, "instructionAddr": null, "symbolAddr": null, "function": "build_msg", "rawFunction": null, "symbol": null, "context": [[298, " frames = stack"], [299, ""], [300, " data.update({"], [301, " 'sentry.interfaces.Stacktrace': {"], [302, " 'frames': get_stack_info(frames,"], [303, " transformer=self.transform)"], [304, " },"], [305, " })"], [306, ""], [307, " if 'sentry.interfaces.Stacktrace' in data:"], [308, " if self.include_paths:"]], "lineNo": 303, "colNo": null, "inApp": false, "trust": null, "errors": null, "vars": {"'culprit'": null, "'data'": {"'message'": "u'This is a test message generated using ``raven test``'", "'sentry.interfaces.Message'": {"'message'": "u'This is a test message generated using ``raven test``'", "'params'": []}}, "'date'": "datetime.datetime(2013, 8, 13, 3, 8, 24, 880386)", "'event_id'": "'54a322436e1b47b88e239b78998ae742'", "'event_type'": "'raven.events.Message'", "'extra'": {"'go_deeper'": [["{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}"]], "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125], "'user'": "'dcramer'"}, "'frames'": "", "'handler'": "", "'k'": "'sentry.interfaces.Message'", "'kwargs'": {"'level'": 20, "'message'": "'This is a test message generated using ``raven test``'"}, "'public_key'": null, "'result'": {"'message'": "u'This is a test message generated using ``raven test``'", "'sentry.interfaces.Message'": {"'message'": "u'This is a test message generated using ``raven test``'", "'params'": []}}, "'self'": "", "'stack'": true, "'tags'": null, "'time_spent'": null, "'v'": {"'message'": "u'This is a test message generated using ``raven test``'", "'params'": []}}}, {"filename": "raven/base.py", "absPath": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py", "module": "raven.base", "package": null, "platform": null, "instructionAddr": null, "symbolAddr": null, "function": "capture", "rawFunction": null, "symbol": null, "context": [[454, " if not self.is_enabled():"], [455, " return"], [456, ""], [457, " data = self.build_msg("], [458, " event_type, data, date, time_spent, extra, stack, tags=tags,"], [459, " **kwargs)"], [460, ""], [461, " self.send(**data)"], [462, ""], [463, " return (data.get('event_id'),)"], [464, ""]], "lineNo": 459, "colNo": null, "inApp": false, "trust": null, "errors": null, "vars": {"'data'": null, "'date'": null, "'event_type'": "'raven.events.Message'", "'extra'": {"'go_deeper'": [["{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}"]], "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125], "'user'": "'dcramer'"}, "'kwargs'": {"'level'": 20, "'message'": "'This is a test message generated using ``raven test``'"}, "'self'": "", "'stack'": true, "'tags'": null, "'time_spent'": null}}, {"filename": "raven/base.py", "absPath": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py", "module": "raven.base", "package": null, "platform": null, "instructionAddr": null, "symbolAddr": null, "function": "captureMessage", "rawFunction": null, "symbol": null, "context": [[572, " \"\"\""], [573, " Creates an event from ``message``."], [574, ""], [575, " >>> client.captureMessage('My event just happened!')"], [576, " \"\"\""], [577, " return self.capture('raven.events.Message', message=message, **kwargs)"], [578, ""], [579, " def captureException(self, exc_info=None, **kwargs):"], [580, " \"\"\""], [581, " Creates an event from an exception."], [582, ""]], "lineNo": 577, "colNo": null, "inApp": false, "trust": null, "errors": null, "vars": {"'kwargs'": {"'data'": null, "'extra'": {"'go_deeper'": ["[{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}]"], "'loadavg'": [0.37255859375, 0.5341796875, 0.62939453125], "'user'": "'dcramer'"}, "'level'": 20, "'stack'": true, "'tags'": null}, "'message'": "'This is a test message generated using ``raven test``'", "'self'": ""}}, {"filename": "raven/scripts/runner.py", "absPath": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py", "module": "raven.scripts.runner", "package": null, "platform": null, "instructionAddr": null, "symbolAddr": null, "function": "send_test_message", "rawFunction": null, "symbol": null, "context": [[72, " level=logging.INFO,"], [73, " stack=True,"], [74, " tags=options.get('tags', {}),"], [75, " extra={"], [76, " 'user': get_uid(),"], [77, " 'loadavg': get_loadavg(),"], [78, " },"], [79, " ))"], [80, ""], [81, " if client.state.did_fail():"], [82, " print('error!')"]], "lineNo": 77, "colNo": null, "inApp": false, "trust": null, "errors": null, "vars": {"'client'": "", "'data'": null, "'k'": "'secret_key'", "'options'": {"'data'": null, "'tags'": null}}}, {"filename": "raven/scripts/runner.py", "absPath": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py", "module": "raven.scripts.runner", "package": null, "platform": null, "instructionAddr": null, "symbolAddr": null, "function": "main", "rawFunction": null, "symbol": null, "context": [[107, " print(\"Using DSN configuration:\")"], [108, " print(\" \", dsn)"], [109, " print()"], [110, ""], [111, " client = Client(dsn, include_paths=['raven'])"], [112, " send_test_message(client, opts.__dict__)"]], "lineNo": 112, "colNo": null, "inApp": false, "trust": null, "errors": null, "vars": {"'args'": ["'test'", "'https://ebc35f33e151401f9deac549978bda11:f3403f81e12e4c24942d505f086b2cad@sentry.io/1'"], "'client'": "", "'dsn'": "'https://ebc35f33e151401f9deac549978bda11:f3403f81e12e4c24942d505f086b2cad@sentry.io/1'", "'opts'": "", "'parser'": "", "'root'": ""}}], "framesOmitted": null, "registers": null, "hasSystemFrames": false}, "type": "stacktrace"}, {"data": {"method": "GET", "url": "http://example.com/foo", "query": [["foo", "bar"]], "fragment": null, "data": {"hello": "world"}, "headers": [["Content-Type", "application/json"], ["Referer", "http://example.com"], ["User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36"]], "cookies": [["foo", "bar"], ["biz", "baz"]], "env": {"ENV": "prod"}, "inferredContentType": "application/json"}, "type": "request"}], "dist": null, "message": "This is an example Python exception", "title": "This is an example Python exception", "location": null, "user": {"id": "1", "email": "sentry@example.com", "username": "sentry", "ip_address": "127.0.0.1", "name": "Sentry", "data": null}, "contexts": {"browser": {"name": "Chrome", "version": "28.0.1500", "type": "browser"}, "client_os": {"name": "Windows", "version": "8", "type": "os"}}, "sdk": null, "context": {"emptyList": [], "emptyMap": {}, "length": 10837790, "results": [1, 2, 3, 4, 5], "session": {"foo": "bar"}, "unauthorized": false, "url": "http://example.org/foo/bar/"}, "packages": {"my.package": "1.0.0"}, "type": "default", "metadata": {"title": "This is an example Python exception"}, "tags": [{"key": "browser", "value": "Chrome 28.0.1500"}, {"key": "browser.name", "value": "Chrome"}, {"key": "client_os", "value": "Windows 8"}, {"key": "client_os.name", "value": "Windows"}, {"key": "environment", "value": "prod"}, {"key": "level", "value": "error"}, {"key": "sample_event", "value": "yes"}, {"key": "server_name", "value": "web01.example.org"}, {"key": "url", "value": "http://example.com/foo"}, {"key": "user", "value": "id:1", "query": "user.id:\"1\""}], "platform": "python", "dateReceived": "2023-01-17T08:56:35.677376Z", "errors": [], "occurrence": null, "_meta": {"entries": {}, "message": null, "user": null, "contexts": null, "sdk": null, "context": null, "packages": null, "tags": {}}, "crashFile": null, "culprit": "raven.scripts.runner in main", "dateCreated": "2023-01-17T08:55:35Z", "fingerprints": ["3a2b45089d0211943e5a6645fb4cea3f"], "groupingConfig": {"id": "newstyle:2019-10-29", "enhancements": "eJybzDRxY3J-bm5-npWRgaGlroGxrpHxBABcYgcZ"}}, "emitted_at": 1673945830994} {"stream": "issues", "data": {"id": "3879509212", "shareId": null, "shortId": "AIRBYTE-09-3", "title": "This is an example Python exception", "culprit": "raven.scripts.runner in main", "permalink": "https://sentry.io/organizations/airbyte-09/issues/3879509212/", "logger": null, "level": "error", "status": "unresolved", "statusDetails": {}, "isPublic": false, "platform": "python", "project": {"id": "5942472", "name": "airbyte-09", "slug": "airbyte-09", "platform": "python"}, "type": "default", "metadata": {"title": "This is an example Python exception"}, "numComments": 0, "assignedTo": null, "isBookmarked": false, "isSubscribed": false, "subscriptionDetails": null, "hasSeen": true, "annotations": [], "issueType": "error", "issueCategory": "error", "isUnhandled": false, "count": "1", "userCount": 1, "firstSeen": "2023-01-17T08:55:35.676000Z", "lastSeen": "2023-01-17T08:55:35.676000Z"}, "emitted_at": 1673945832193} -{"stream": "project_detail", "data": {"id": "5942472", "slug": "airbyte-09", "name": "airbyte-09", "isPublic": false, "isBookmarked": false, "color": "#803fbf", "dateCreated": "2021-09-02T07:42:22.421223Z", "firstEvent": null, "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view", "releases"], "status": "active", "platform": "python", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "team": {"id": "1170523", "slug": "airbyte", "name": "Airbyte"}, "teams": [{"id": "1170523", "slug": "airbyte", "name": "Airbyte"}], "latestRelease": {"id": 289364918, "version": "checkout-app@3.2", "status": "open", "shortVersion": "checkout-app@3.2", "versionInfo": {"package": "checkout-app", "version": {"raw": "3.2", "major": 3, "minor": 2, "patch": 0, "pre": null, "buildCode": null, "components": 2}, "description": "3.2", "buildHash": null}, "ref": null, "url": null, "dateReleased": null, "dateCreated": "2021-09-02T08:10:12.826000Z", "data": {}, "newGroups": 0, "owner": null, "commitCount": 0, "lastCommit": null, "deployCount": 0, "lastDeploy": null, "authors": [], "projects": [{"id": 5942472, "slug": "airbyte-09", "name": "airbyte-09", "newGroups": 0, "platform": "python", "platforms": [], "hasHealthData": false}], "firstEvent": null, "lastEvent": null, "currentProjectMeta": {}, "userAgent": null}, "options": {"sentry:token": "5006ad000bc111ec95cd8e5fccda0a6a", "sentry:option-epoch": 7, "sentry:csp_ignored_sources_defaults": true, "sentry:csp_ignored_sources": "", "sentry:reprocessing_active": false, "sentry:performance_issue_creation_rate": null, "filters:blacklisted_ips": "", "filters:releases": "", "filters:error_messages": "", "feedback:branding": true}, "digestsMinDelay": 300, "digestsMaxDelay": 1800, "subjectPrefix": "", "allowedDomains": ["*"], "resolveAge": 0, "dataScrubber": true, "dataScrubberDefaults": true, "safeFields": [], "storeCrashReports": null, "sensitiveFields": [], "subjectTemplate": "$shortID - $title", "securityToken": "5006ad000bc111ec95cd8e5fccda0a6a", "securityTokenHeader": null, "verifySSL": false, "scrubIPAddresses": false, "scrapeJavaScript": true, "groupingConfig": "newstyle:2019-10-29", "groupingEnhancements": "", "groupingEnhancementsBase": null, "secondaryGroupingExpiry": 0, "secondaryGroupingConfig": null, "groupingAutoUpdate": true, "fingerprintingRules": "", "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["india-promotion", "metrics-extraction", "auto-start-free-trial", "dynamic-sampling", "integrations-stacktrace-link", "source-maps-cta", "new-weekly-report", "release-health-return-metrics", "alert-crash-free-metrics", "performance-onboarding-checklist", "promotion-mobperf-discount20", "dashboards-template", "discover-query-builder-as-landing-page", "custom-event-title", "shared-issues", "performance-mep-bannerless-ui", "discover-events-rate-limit", "derive-code-mappings", "promotion-mobperf-gift50kerr", "invite-members-rate-limits", "discover-quick-context", "minute-resolution-sessions", "issue-actions-v2", "event-attachments", "performance-transaction-name-only-search-indexed", "am2-billing", "profiling", "release-health-drop-sessions", "transaction-metrics-extraction", "issue-alert-incompatible-rules", "performance-span-histogram-view", "enable-zendesk-support", "track-button-click-events", "performance-new-widget-designs", "ondemand-budgets", "advanced-search", "integrations-deployment", "mep-rollout-flag", "scim-orgmember-roles", "skip-trial-ending-email", "org-subdomains", "metric-alert-chartcuterie", "issue-alert-test-notifications", "slack-overage-notifications", "monitors", "onboarding", "promotion-be-adoption-enabled", "symbol-sources", "issue-alert-preview", "performance-issues-all-events-tab", "performance-view", "open-membership", "issue-alert-fallback-targeting"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}, "plugins": [{"id": "asana", "name": "Asana", "slug": "asana", "shortName": "Asana", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tasks in Asana directly\nfrom Sentry issues. This integration also allows you to link Sentry\nissues to existing tasks in Asana.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Asana ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Asana tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "bitbucket", "name": "Bitbucket", "slug": "bitbucket", "shortName": "Bitbucket", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate Bitbucket issues by linking a repository to a project.", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Track commits and releases (learn more\n [here](https://docs.sentry.io/learn/releases/))", "featureGate": "commits"}, {"description": "Create Bitbucket issues from Sentry", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Bitbucket issues", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "github", "name": "GitHub", "slug": "github", "shortName": "GitHub", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate GitHub issues by linking a repository to a project.", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Authorize repositories to be added to your Sentry organization to augment\n sentry issues with commit data with [deployment\n tracking](https://docs.sentry.io/learn/releases/).", "featureGate": "commits"}, {"description": "Create and link Sentry issue groups directly to a GitHub issue or pull\n request in any of your repositories, providing a quick way to jump from\n Sentry bug to tracked issue or PR!", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "gitlab", "name": "GitLab", "slug": "gitlab", "shortName": "GitLab", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate GitLab issues by linking a repository to a project", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Track commits and releases (learn more\n [here](https://docs.sentry.io/learn/releases/))", "featureGate": "commits"}, {"description": "Resolve Sentry issues via GitLab commits and merge requests by\n including `Fixes PROJ-ID` in the message", "featureGate": "commits"}, {"description": "Create GitLab issues from Sentry", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing GitLab issues", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "heroku", "name": "Heroku", "slug": "heroku", "shortName": "Heroku", "type": "release-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "\n

Add Sentry as a deploy hook to automatically track new releases.

\n
heroku addons:create deployhooks:http --url=https://sentry.io/api/hooks/release/heroku/5942472/cd92fd5564e9d4a2b82dd03ad2d539a1a2b83ea13e2e205507d2f8d3c513d864/
\n ", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry"}, "isDeprecated": false, "isHidden": false, "description": "Integrate Heroku release tracking.", "features": ["deployment"], "featureDescriptions": [{"description": "Integrate Heroku release tracking.", "featureGate": "deployment"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "jira", "name": "JIRA", "slug": "jira", "shortName": "JIRA", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate JIRA issues by linking a project.", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Jira ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "opsgenie", "name": "OpsGenie", "slug": "opsgenie", "shortName": "OpsGenie", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger alerts in Opsgenie from Sentry.\n\nOpsgenie is a cloud-based service for dev & ops teams, providing reliable\nalerts, on-call schedule management and escalations. OpsGenie integrates with\nmonitoring tools & services, ensures the right people are notified. This\nplugin only supports issue alerts.\n", "features": ["alert-rule", "incident-management"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to OpsGenie.", "featureGate": "incident-management"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pagerduty", "name": "PagerDuty", "slug": "pagerduty", "shortName": "PagerDuty", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Send alerts to PagerDuty.", "features": ["alert-rule", "incident-management"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to PagerDuty.", "featureGate": "incident-management"}, {"description": "Configure rule based PagerDuty alerts to automatically be triggered in a specific\n service - or in multiple services!", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "phabricator", "name": "Phabricator", "slug": "phabricator", "shortName": "Phabricator", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tickets in Phabricator directly from Sentry issues.\nThis integration also allows you to link Sentry issues to existing tickets in Phabricator.\n\nPhabricator is a set of tools for developing software. It includes applications for\ncode review, repository hosting, bug tracking, project management, and more.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Phabricator ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Phabricator tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pivotal", "name": "Pivotal Tracker", "slug": "pivotal", "shortName": "Pivotal Tracker", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tickets in Pivotal Tracker directly from Sentry issues.\nThis integration also allows you to link Sentry issues to existing tickets in Pivotal Tracker.\n\nPivotal Tracker is a straightforward project-planning tool that helps software development\nteams form realistic expectations about when work might be completed based on the teams\nongoing performance. Tracker visualizes your projects in the form of stories\nmoving through your workflow, encouraging you to break down projects into manageable\nchunks and have important conversations about deliverables and scope.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Pivotal Tracker ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Pivotal Tracker tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pushover", "name": "Pushover", "slug": "pushover", "shortName": "Pushover", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nGet notified of Sentry alerts on any device using the Pushover integration.\n\nPushover makes it easy to get real-time notifications on your Android, iPhone, iPad, and Desktop.\n", "features": ["mobile", "alert-rule"], "featureDescriptions": [{"description": "Have Pushover notifications get sent to your mobile device with the Pushover app.", "featureGate": "mobile"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "redmine", "name": "Redmine", "slug": "redmine", "shortName": "Redmine", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nCreate issues in Redmine directly from Sentry. This integration also\nallows you to link Sentry issues to existing tickets in Redmine.\n\nRedmine is a flexible project management web application. Written using\nthe Ruby on Rails framework, it is cross-platform and cross-database.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Redmine issue in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Redmine issue.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "sessionstack", "name": "SessionStack", "slug": "sessionstack", "shortName": "SessionStack", "type": "default", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": ["sessionstack"], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "Watch SessionStack recordings in Sentry.", "features": ["session-replay"], "featureDescriptions": [{"description": "Watch the SessionStack session replay of a user in a video widget embedded in the Sentry UI for an issue.", "featureGate": "session-replay"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "slack", "name": "Slack", "slug": "slack", "shortName": "Slack", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Post notifications to a Slack channel.", "features": ["alert-rule"], "featureDescriptions": [{"description": "Configure rule based Slack notifications to automatically be posted into a\n specific channel. Want any error that's happening more than 100 times a\n minute to be posted in `#critical-errors`? Setup a rule for it!", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "trello", "name": "Trello", "slug": "trello", "shortName": "Trello", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nCreate cards in Trello directly from Sentry. This integration also allows\nyou to link Sentry issues to existing cards in Trello.\n\nTrello is the easy, free, flexible, and visual way to manage your projects\nand organize anything, trusted by millions of people from all over the world.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Trello card in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Trello cards", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Trello Setup Instructions", "url": "https://github.com/getsentry/sentry/blob/master/src/sentry_plugins/trello/Trello_Instructions.md"}, {"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "twilio", "name": "Twilio (SMS)", "slug": "twilio", "shortName": "Twilio (SMS)", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nGet notified of Sentry alerts via SMS.\n\nTwilio allows users to send and receive text messages globally with\nthe API that over a million developers depend on.\n", "features": ["mobile", "alert-rule"], "featureDescriptions": [{"description": "Set up SMS notifications to be sent to your mobile device via Twilio.", "featureGate": "mobile"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Documentation", "url": "https://github.com/getsentry/sentry/blob/master/src/sentry_plugins/twilio/Twilio_Instructions.md"}, {"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins/twilio"}, {"title": "Twilio", "url": "https://www.twilio.com/"}]}, {"id": "victorops", "name": "VictorOps", "slug": "victorops", "shortName": "VictorOps", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger alerts in VictorOps from Sentry.\n\nVictorOps is incident response software purpose-built for teams powering the\nevolution of software. With on-call basics, cross-team collaboration, and\nstreamlined visibility, we champion the engineers powering innovation and uptime.\n", "features": ["alert-rule", "incident-management"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to VictorOps.", "featureGate": "incident-management"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "webhooks", "name": "WebHooks", "slug": "webhooks", "shortName": "WebHooks", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.1.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger outgoing HTTP POST requests from Sentry.\n\nNote: To configure webhooks over multiple projects, we recommend setting up an\nInternal Integration.\n", "features": ["alert-rule"], "featureDescriptions": [{"description": "Configure rule based outgoing HTTP POST requests from Sentry.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry/plugins/sentry_webhooks"}, {"title": "Internal Integrations", "url": "https://docs.sentry.io/workflow/integrations/integration-platform/#internal-integrations"}]}], "platforms": [], "processingIssues": 0, "defaultEnvironment": null, "relayPiiConfig": null, "builtinSymbolSources": ["ios", "microsoft", "android"], "dynamicSampling": null, "dynamicSamplingBiases": [{"id": "boostEnvironments", "active": true}, {"id": "boostLatestRelease", "active": true}, {"id": "ignoreHealthChecks", "active": true}, {"id": "boostKeyTransactions", "active": true}], "performanceIssueCreationRate": 1.0, "eventProcessing": {"symbolicationDegraded": false}, "symbolSources": "[]"}, "emitted_at": 1673945833626} -{"stream": "projects", "data": {"id": "6712547", "slug": "demo-integration", "name": "demo-integration", "isPublic": false, "isBookmarked": false, "color": "#bf833f", "dateCreated": "2022-09-02T15:01:28.946777Z", "firstEvent": "2022-09-02T15:36:50.870000Z", "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view"], "status": "active", "platform": "javascript-react", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["auto-start-free-trial", "dynamic-sampling", "india-promotion", "performance-onboarding-checklist", "enable-zendesk-support", "custom-event-title", "derive-code-mappings", "performance-mep-bannerless-ui", "shared-issues", "discover-events-rate-limit", "event-attachments", "advanced-search", "org-subdomains", "release-health-drop-sessions", "metrics-extraction", "discover-query-builder-as-landing-page", "promotion-mobperf-gift50kerr", "source-maps-cta", "issue-alert-incompatible-rules", "issue-alert-fallback-targeting", "new-weekly-report", "scim-orgmember-roles", "skip-trial-ending-email", "minute-resolution-sessions", "release-health-return-metrics", "open-membership", "ondemand-budgets", "track-button-click-events", "slack-overage-notifications", "metric-alert-chartcuterie", "profiling", "performance-span-histogram-view", "onboarding", "performance-transaction-name-only-search-indexed", "alert-crash-free-metrics", "transaction-metrics-extraction", "issue-actions-v2", "issue-alert-preview", "promotion-mobperf-discount20", "am2-billing", "invite-members-rate-limits", "dashboards-template", "symbol-sources", "integrations-deployment", "integrations-stacktrace-link", "discover-quick-context", "issue-alert-test-notifications", "mep-rollout-flag", "performance-new-widget-designs", "monitors", "promotion-be-adoption-enabled", "performance-issues-all-events-tab", "performance-view"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}}, "emitted_at": 1673945834670} -{"stream": "projects", "data": {"id": "5942472", "slug": "airbyte-09", "name": "airbyte-09", "isPublic": false, "isBookmarked": false, "color": "#803fbf", "dateCreated": "2021-09-02T07:42:22.421223Z", "firstEvent": null, "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view", "releases"], "status": "active", "platform": "python", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["auto-start-free-trial", "dynamic-sampling", "india-promotion", "performance-onboarding-checklist", "enable-zendesk-support", "custom-event-title", "derive-code-mappings", "performance-mep-bannerless-ui", "shared-issues", "discover-events-rate-limit", "event-attachments", "advanced-search", "org-subdomains", "release-health-drop-sessions", "metrics-extraction", "discover-query-builder-as-landing-page", "promotion-mobperf-gift50kerr", "source-maps-cta", "issue-alert-incompatible-rules", "issue-alert-fallback-targeting", "new-weekly-report", "scim-orgmember-roles", "skip-trial-ending-email", "minute-resolution-sessions", "release-health-return-metrics", "open-membership", "ondemand-budgets", "track-button-click-events", "slack-overage-notifications", "metric-alert-chartcuterie", "profiling", "performance-span-histogram-view", "onboarding", "performance-transaction-name-only-search-indexed", "alert-crash-free-metrics", "transaction-metrics-extraction", "issue-actions-v2", "issue-alert-preview", "promotion-mobperf-discount20", "am2-billing", "invite-members-rate-limits", "dashboards-template", "symbol-sources", "integrations-deployment", "integrations-stacktrace-link", "discover-quick-context", "issue-alert-test-notifications", "mep-rollout-flag", "performance-new-widget-designs", "monitors", "promotion-be-adoption-enabled", "performance-issues-all-events-tab", "performance-view"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}}, "emitted_at": 1673945834672} \ No newline at end of file +{"stream": "project_detail", "data": {"id": "5942472", "slug": "airbyte-09", "name": "airbyte-09", "isPublic": false, "isBookmarked": false, "color": "#803fbf", "dateCreated": "2021-09-02T07:42:22.421223Z", "firstEvent": null, "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view", "releases"], "status": "active", "platform": "python", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "team": {"id": "1170523", "slug": "airbyte", "name": "Airbyte"}, "teams": [{"id": "1170523", "slug": "airbyte", "name": "Airbyte"}], "latestRelease": {"id": 289364918, "version": "checkout-app@3.2", "status": "open", "shortVersion": "checkout-app@3.2", "versionInfo": {"package": "checkout-app", "version": {"raw": "3.2", "major": 3, "minor": 2, "patch": 0, "pre": null, "buildCode": null, "components": 2}, "description": "3.2", "buildHash": null}, "ref": null, "url": null, "dateReleased": null, "dateCreated": "2021-09-02T08:10:12.826000Z", "data": {}, "newGroups": 0, "owner": null, "commitCount": 0, "lastCommit": null, "deployCount": 0, "lastDeploy": null, "authors": [], "projects": [{"id": 5942472, "slug": "airbyte-09", "name": "airbyte-09", "newGroups": 0, "platform": "python", "platforms": ["python"], "hasHealthData": false}], "firstEvent": null, "lastEvent": null, "currentProjectMeta": {}, "userAgent": null}, "options": {"sentry:token": "5006ad000bc111ec95cd8e5fccda0a6a", "sentry:option-epoch": 7, "sentry:csp_ignored_sources_defaults": true, "sentry:csp_ignored_sources": "", "sentry:reprocessing_active": false, "sentry:performance_issue_creation_rate": null, "filters:blacklisted_ips": "", "filters:releases": "", "filters:error_messages": "", "feedback:branding": true}, "digestsMinDelay": 300, "digestsMaxDelay": 1800, "subjectPrefix": "", "allowedDomains": ["*"], "resolveAge": 0, "dataScrubber": true, "dataScrubberDefaults": true, "safeFields": [], "storeCrashReports": null, "sensitiveFields": [], "subjectTemplate": "$shortID - $title", "securityToken": "5006ad000bc111ec95cd8e5fccda0a6a", "securityTokenHeader": null, "verifySSL": false, "scrubIPAddresses": false, "scrapeJavaScript": true, "groupingConfig": "newstyle:2019-10-29", "groupingEnhancements": "", "groupingEnhancementsBase": null, "secondaryGroupingExpiry": 0, "secondaryGroupingConfig": null, "groupingAutoUpdate": true, "fingerprintingRules": "", "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["issue-alert-test-notifications", "india-promotion", "metric-alert-chartcuterie", "performance-issues-all-events-tab", "alert-crash-free-metrics", "discover-query-builder-as-landing-page", "dashboards-template", "metrics-extraction", "skip-trial-ending-email", "release-health-drop-sessions", "performance-transaction-name-only-search-indexed", "promotion-be-adoption-enabled", "new-weekly-report", "derive-code-mappings", "slack-overage-notifications", "monitors", "track-button-click-events", "shared-issues", "minute-resolution-sessions", "event-attachments", "discover-events-rate-limit", "issue-alert-preview", "integrations-deployment", "session-replay-ui", "issue-actions-v2", "ondemand-budgets", "profiling", "source-maps-cta", "promotion-mobperf-discount20", "org-subdomains", "integrations-stacktrace-link", "enable-zendesk-support", "scim-orgmember-roles", "issue-alert-incompatible-rules", "mep-rollout-flag", "dynamic-sampling", "auto-start-free-trial", "issue-alert-fallback-targeting", "am2-billing", "advanced-search", "invite-members-rate-limits", "performance-new-widget-designs", "release-health-return-metrics", "performance-view", "open-membership", "discover-quick-context", "session-replay", "performance-span-histogram-view", "symbol-sources", "custom-event-title", "performance-onboarding-checklist", "performance-mep-bannerless-ui", "onboarding", "transaction-metrics-extraction", "promotion-mobperf-gift50kerr"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}, "plugins": [{"id": "asana", "name": "Asana", "slug": "asana", "shortName": "Asana", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tasks in Asana directly\nfrom Sentry issues. This integration also allows you to link Sentry\nissues to existing tasks in Asana.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Asana ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Asana tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "bitbucket", "name": "Bitbucket", "slug": "bitbucket", "shortName": "Bitbucket", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate Bitbucket issues by linking a repository to a project.", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Track commits and releases (learn more\n [here](https://docs.sentry.io/learn/releases/))", "featureGate": "commits"}, {"description": "Create Bitbucket issues from Sentry", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Bitbucket issues", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "github", "name": "GitHub", "slug": "github", "shortName": "GitHub", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate GitHub issues by linking a repository to a project.", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Authorize repositories to be added to your Sentry organization to augment\n sentry issues with commit data with [deployment\n tracking](https://docs.sentry.io/learn/releases/).", "featureGate": "commits"}, {"description": "Create and link Sentry issue groups directly to a GitHub issue or pull\n request in any of your repositories, providing a quick way to jump from\n Sentry bug to tracked issue or PR!", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "gitlab", "name": "GitLab", "slug": "gitlab", "shortName": "GitLab", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate GitLab issues by linking a repository to a project", "features": ["commits", "issue-basic"], "featureDescriptions": [{"description": "Track commits and releases (learn more\n [here](https://docs.sentry.io/learn/releases/))", "featureGate": "commits"}, {"description": "Resolve Sentry issues via GitLab commits and merge requests by\n including `Fixes PROJ-ID` in the message", "featureGate": "commits"}, {"description": "Create GitLab issues from Sentry", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing GitLab issues", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "heroku", "name": "Heroku", "slug": "heroku", "shortName": "Heroku", "type": "release-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "\n

Add Sentry as a deploy hook to automatically track new releases.

\n
heroku addons:create deployhooks:http --url=https://sentry.io/api/hooks/release/heroku/5942472/cd92fd5564e9d4a2b82dd03ad2d539a1a2b83ea13e2e205507d2f8d3c513d864/
\n ", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry"}, "isDeprecated": false, "isHidden": false, "description": "Integrate Heroku release tracking.", "features": ["deployment"], "featureDescriptions": [{"description": "Integrate Heroku release tracking.", "featureGate": "deployment"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "jira", "name": "JIRA", "slug": "jira", "shortName": "JIRA", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Integrate JIRA issues by linking a project.", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Jira ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "opsgenie", "name": "OpsGenie", "slug": "opsgenie", "shortName": "OpsGenie", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger alerts in Opsgenie from Sentry.\n\nOpsgenie is a cloud-based service for dev & ops teams, providing reliable\nalerts, on-call schedule management and escalations. OpsGenie integrates with\nmonitoring tools & services, ensures the right people are notified. This\nplugin only supports issue alerts.\n", "features": ["incident-management", "alert-rule"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to OpsGenie.", "featureGate": "incident-management"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pagerduty", "name": "PagerDuty", "slug": "pagerduty", "shortName": "PagerDuty", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Send alerts to PagerDuty.", "features": ["incident-management", "alert-rule"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to PagerDuty.", "featureGate": "incident-management"}, {"description": "Configure rule based PagerDuty alerts to automatically be triggered in a specific\n service - or in multiple services!", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "phabricator", "name": "Phabricator", "slug": "phabricator", "shortName": "Phabricator", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tickets in Phabricator directly from Sentry issues.\nThis integration also allows you to link Sentry issues to existing tickets in Phabricator.\n\nPhabricator is a set of tools for developing software. It includes applications for\ncode review, repository hosting, bug tracking, project management, and more.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Phabricator ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Phabricator tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pivotal", "name": "Pivotal Tracker", "slug": "pivotal", "shortName": "Pivotal Tracker", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nImprove your productivity by creating tickets in Pivotal Tracker directly from Sentry issues.\nThis integration also allows you to link Sentry issues to existing tickets in Pivotal Tracker.\n\nPivotal Tracker is a straightforward project-planning tool that helps software development\nteams form realistic expectations about when work might be completed based on the teams\nongoing performance. Tracker visualizes your projects in the form of stories\nmoving through your workflow, encouraging you to break down projects into manageable\nchunks and have important conversations about deliverables and scope.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to a Pivotal Tracker ticket in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Pivotal Tracker tickets.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "pushover", "name": "Pushover", "slug": "pushover", "shortName": "Pushover", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nGet notified of Sentry alerts on any device using the Pushover integration.\n\nPushover makes it easy to get real-time notifications on your Android, iPhone, iPad, and Desktop.\n", "features": ["mobile", "alert-rule"], "featureDescriptions": [{"description": "Have Pushover notifications get sent to your mobile device with the Pushover app.", "featureGate": "mobile"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "redmine", "name": "Redmine", "slug": "redmine", "shortName": "Redmine", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nCreate issues in Redmine directly from Sentry. This integration also\nallows you to link Sentry issues to existing tickets in Redmine.\n\nRedmine is a flexible project management web application. Written using\nthe Ruby on Rails framework, it is cross-platform and cross-database.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Redmine issue in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Redmine issue.", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "sessionstack", "name": "SessionStack", "slug": "sessionstack", "shortName": "SessionStack", "type": "default", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": ["sessionstack"], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "Watch SessionStack recordings in Sentry.", "features": ["session-replay"], "featureDescriptions": [{"description": "Watch the SessionStack session replay of a user in a video widget embedded in the Sentry UI for an issue.", "featureGate": "session-replay"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "slack", "name": "Slack", "slug": "slack", "shortName": "Slack", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": true, "description": "Post notifications to a Slack channel.", "features": ["alert-rule"], "featureDescriptions": [{"description": "Configure rule based Slack notifications to automatically be posted into a\n specific channel. Want any error that's happening more than 100 times a\n minute to be posted in `#critical-errors`? Setup a rule for it!", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "trello", "name": "Trello", "slug": "trello", "shortName": "Trello", "type": "issue-tracking", "canDisable": true, "isTestable": false, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nCreate cards in Trello directly from Sentry. This integration also allows\nyou to link Sentry issues to existing cards in Trello.\n\nTrello is the easy, free, flexible, and visual way to manage your projects\nand organize anything, trusted by millions of people from all over the world.\n", "features": ["issue-basic"], "featureDescriptions": [{"description": "Create and link Sentry issue groups directly to an Trello card in any of your\n projects, providing a quick way to jump from a Sentry bug to tracked ticket!", "featureGate": "issue-basic"}, {"description": "Link Sentry issues to existing Trello cards", "featureGate": "issue-basic"}], "resourceLinks": [{"title": "Trello Setup Instructions", "url": "https://github.com/getsentry/sentry/blob/master/src/sentry_plugins/trello/Trello_Instructions.md"}, {"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "twilio", "name": "Twilio (SMS)", "slug": "twilio", "shortName": "Twilio (SMS)", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nGet notified of Sentry alerts via SMS.\n\nTwilio allows users to send and receive text messages globally with\nthe API that over a million developers depend on.\n", "features": ["mobile", "alert-rule"], "featureDescriptions": [{"description": "Set up SMS notifications to be sent to your mobile device via Twilio.", "featureGate": "mobile"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Documentation", "url": "https://github.com/getsentry/sentry/blob/master/src/sentry_plugins/twilio/Twilio_Instructions.md"}, {"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins/twilio"}, {"title": "Twilio", "url": "https://www.twilio.com/"}]}, {"id": "victorops", "name": "VictorOps", "slug": "victorops", "shortName": "VictorOps", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger alerts in VictorOps from Sentry.\n\nVictorOps is incident response software purpose-built for teams powering the\nevolution of software. With on-call basics, cross-team collaboration, and\nstreamlined visibility, we champion the engineers powering innovation and uptime.\n", "features": ["incident-management", "alert-rule"], "featureDescriptions": [{"description": "Manage incidents and outages by sending Sentry notifications to VictorOps.", "featureGate": "incident-management"}, {"description": "Configure Sentry rules to trigger notifications based on conditions you set.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry_plugins"}]}, {"id": "webhooks", "name": "WebHooks", "slug": "webhooks", "shortName": "WebHooks", "type": "notification", "canDisable": true, "isTestable": true, "hasConfiguration": true, "metadata": {}, "contexts": [], "status": "unknown", "assets": [], "doc": "", "firstPartyAlternative": null, "deprecationDate": null, "altIsSentryApp": null, "enabled": false, "version": "23.2.0.dev0", "author": {"name": "Sentry Team", "url": "https://github.com/getsentry/sentry"}, "isDeprecated": false, "isHidden": false, "description": "\nTrigger outgoing HTTP POST requests from Sentry.\n\nNote: To configure webhooks over multiple projects, we recommend setting up an\nInternal Integration.\n", "features": ["alert-rule"], "featureDescriptions": [{"description": "Configure rule based outgoing HTTP POST requests from Sentry.", "featureGate": "alert-rule"}], "resourceLinks": [{"title": "Report Issue", "url": "https://github.com/getsentry/sentry/issues"}, {"title": "View Source", "url": "https://github.com/getsentry/sentry/tree/master/src/sentry/plugins/sentry_webhooks"}, {"title": "Internal Integrations", "url": "https://docs.sentry.io/workflow/integrations/integration-platform/#internal-integrations"}]}], "platforms": ["python"], "processingIssues": 0, "defaultEnvironment": null, "relayPiiConfig": null, "builtinSymbolSources": ["ios", "microsoft", "android"], "dynamicSampling": null, "dynamicSamplingBiases": [{"id": "boostEnvironments", "active": true}, {"id": "boostLatestRelease", "active": true}, {"id": "ignoreHealthChecks", "active": true}, {"id": "boostKeyTransactions", "active": true}], "performanceIssueCreationRate": 1.0, "eventProcessing": {"symbolicationDegraded": false}, "symbolSources": "[]"}, "emitted_at": 1674207986931} +{"stream": "projects", "data": {"id": "6712547", "slug": "demo-integration", "name": "demo-integration", "isPublic": false, "isBookmarked": false, "color": "#bf833f", "dateCreated": "2022-09-02T15:01:28.946777Z", "firstEvent": "2022-09-02T15:36:50.870000Z", "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view"], "status": "active", "platform": "javascript-react", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["performance-transaction-name-only-search-indexed", "symbol-sources", "alert-crash-free-metrics", "auto-start-free-trial", "dashboards-template", "track-button-click-events", "issue-actions-v2", "slack-overage-notifications", "new-weekly-report", "custom-event-title", "open-membership", "advanced-search", "monitors", "ondemand-budgets", "metric-alert-chartcuterie", "discover-query-builder-as-landing-page", "performance-view", "promotion-mobperf-discount20", "am2-billing", "promotion-be-adoption-enabled", "performance-span-histogram-view", "discover-quick-context", "org-subdomains", "profiling", "issue-alert-incompatible-rules", "event-attachments", "transaction-metrics-extraction", "onboarding", "skip-trial-ending-email", "performance-mep-bannerless-ui", "shared-issues", "enable-zendesk-support", "release-health-return-metrics", "invite-members-rate-limits", "session-replay", "integrations-deployment", "discover-events-rate-limit", "performance-issues-all-events-tab", "scim-orgmember-roles", "integrations-stacktrace-link", "promotion-mobperf-gift50kerr", "issue-alert-fallback-targeting", "mep-rollout-flag", "issue-alert-test-notifications", "performance-new-widget-designs", "source-maps-cta", "performance-onboarding-checklist", "release-health-drop-sessions", "india-promotion", "derive-code-mappings", "metrics-extraction", "session-replay-ui", "minute-resolution-sessions", "dynamic-sampling", "issue-alert-preview"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}}, "emitted_at": 1674208203145} +{"stream": "projects", "data": {"id": "5942472", "slug": "airbyte-09", "name": "airbyte-09", "isPublic": false, "isBookmarked": false, "color": "#803fbf", "dateCreated": "2021-09-02T07:42:22.421223Z", "firstEvent": null, "firstTransactionEvent": false, "hasSessions": false, "hasProfiles": false, "hasReplays": false, "hasMinifiedStackTrace": false, "features": ["alert-filters", "minidump", "race-free-group-creation", "similarity-indexing", "similarity-view", "releases"], "status": "active", "platform": "python", "isInternal": false, "isMember": true, "hasAccess": true, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "organization": {"id": "985996", "slug": "airbyte-09", "status": {"id": "active", "name": "active"}, "name": "Airbyte", "dateCreated": "2021-09-02T07:41:55.899035Z", "isEarlyAdopter": false, "require2FA": false, "requireEmailVerification": false, "avatar": {"avatarType": "letter_avatar", "avatarUuid": null}, "features": ["performance-transaction-name-only-search-indexed", "symbol-sources", "alert-crash-free-metrics", "auto-start-free-trial", "dashboards-template", "track-button-click-events", "issue-actions-v2", "slack-overage-notifications", "new-weekly-report", "custom-event-title", "open-membership", "advanced-search", "monitors", "ondemand-budgets", "metric-alert-chartcuterie", "discover-query-builder-as-landing-page", "performance-view", "promotion-mobperf-discount20", "am2-billing", "promotion-be-adoption-enabled", "performance-span-histogram-view", "discover-quick-context", "org-subdomains", "profiling", "issue-alert-incompatible-rules", "event-attachments", "transaction-metrics-extraction", "onboarding", "skip-trial-ending-email", "performance-mep-bannerless-ui", "shared-issues", "enable-zendesk-support", "release-health-return-metrics", "invite-members-rate-limits", "session-replay", "integrations-deployment", "discover-events-rate-limit", "performance-issues-all-events-tab", "scim-orgmember-roles", "integrations-stacktrace-link", "promotion-mobperf-gift50kerr", "issue-alert-fallback-targeting", "mep-rollout-flag", "issue-alert-test-notifications", "performance-new-widget-designs", "source-maps-cta", "performance-onboarding-checklist", "release-health-drop-sessions", "india-promotion", "derive-code-mappings", "metrics-extraction", "session-replay-ui", "minute-resolution-sessions", "dynamic-sampling", "issue-alert-preview"], "links": {"organizationUrl": "https://airbyte-09.sentry.io", "regionUrl": "https://us.sentry.io"}, "hasAuthProvider": false}}, "emitted_at": 1674208203145} \ No newline at end of file From 8a95c5c720b3db67369aae7f886d15e44d6db42f Mon Sep 17 00:00:00 2001 From: Gopi Krishna <34994746+bgopikrishna@users.noreply.github.com> Date: Fri, 20 Jan 2023 20:15:47 +0530 Subject: [PATCH 06/56] removed unused props clickable, wasActive from button component (#18124) Co-authored-by: Krishna (kc) Glick Co-authored-by: perangel Co-authored-by: Conor Co-authored-by: Marcos Marx --- airbyte-webapp/src/components/ui/Button/Button.tsx | 2 -- airbyte-webapp/src/components/ui/Button/types.tsx | 2 -- .../pages/ConnectorsPage/components/UpgradeAllButton.tsx | 1 - .../ConnectorForm/components/Sections/auth/GoogleAuthButton.tsx | 1 - .../Connector/RequestConnectorModal/RequestConnectorModal.tsx | 1 - 5 files changed, 7 deletions(-) diff --git a/airbyte-webapp/src/components/ui/Button/Button.tsx b/airbyte-webapp/src/components/ui/Button/Button.tsx index 10d375a0294f3..4a5aaeee536fa 100644 --- a/airbyte-webapp/src/components/ui/Button/Button.tsx +++ b/airbyte-webapp/src/components/ui/Button/Button.tsx @@ -14,10 +14,8 @@ export const Button = React.forwardRef((props, r variant = "primary", children, className, - clickable, icon, isLoading, - wasActive, width, disabled, ...buttonProps diff --git a/airbyte-webapp/src/components/ui/Button/types.tsx b/airbyte-webapp/src/components/ui/Button/types.tsx index f05e9a6d5f996..5971ab601e719 100644 --- a/airbyte-webapp/src/components/ui/Button/types.tsx +++ b/airbyte-webapp/src/components/ui/Button/types.tsx @@ -4,13 +4,11 @@ type ButtonSize = "xs" | "sm" | "lg"; export type ButtonVariant = "primary" | "secondary" | "danger" | "light" | "clear" | "dark"; export interface ButtonProps extends React.ButtonHTMLAttributes { - clickable?: boolean; full?: boolean; icon?: React.ReactElement; iconPosition?: "left" | "right"; isLoading?: boolean; size?: ButtonSize; variant?: ButtonVariant; - wasActive?: boolean; width?: number; } diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx index 3f76768c2778e..9c6e1a990917f 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/UpgradeAllButton.tsx @@ -50,7 +50,6 @@ const UpgradeAllButton: React.FC = ({ onUpdate, isLoading, className={styles.updateButton} onClick={onUpdate} isLoading={isLoading} - wasActive={hasSuccess} icon={hasSuccess ? undefined : } > {hasSuccess ? : } diff --git a/airbyte-webapp/src/views/Connector/ConnectorForm/components/Sections/auth/GoogleAuthButton.tsx b/airbyte-webapp/src/views/Connector/ConnectorForm/components/Sections/auth/GoogleAuthButton.tsx index dd85acdc12292..e10e2d51a128a 100644 --- a/airbyte-webapp/src/views/Connector/ConnectorForm/components/Sections/auth/GoogleAuthButton.tsx +++ b/airbyte-webapp/src/views/Connector/ConnectorForm/components/Sections/auth/GoogleAuthButton.tsx @@ -17,7 +17,6 @@ const StyledButton = styled.button` line-height: 15px; outline: none; padding: 0 10px 0 0; - pointer-events: ${(props) => (props.wasActive && !props.clickable ? "none" : "all")}; text-align: center; text-decoration: none; width: ${(props) => (props.full ? "100%" : "auto")}; diff --git a/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx b/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx index ce41bad367939..bce087e17bbc2 100644 --- a/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx +++ b/airbyte-webapp/src/views/Connector/RequestConnectorModal/RequestConnectorModal.tsx @@ -167,7 +167,6 @@ const RequestConnectorModal: React.FC = ({ className={styles.requestButton} // type="submit" onClick={handleSubmit} - wasActive={hasFeedback} > {hasFeedback ? : } From 1b52c30ea58d979eb120c3f50ce6d437044b0f5c Mon Sep 17 00:00:00 2001 From: Cole Snodgrass Date: Fri, 20 Jan 2023 08:53:01 -0800 Subject: [PATCH 07/56] remove dependency declared twice (#21628) * remove dependency declared twice * remove dependency declared twice --- .../bases/standard-destination-test/build.gradle | 1 - .../bases/standard-source-test/build.gradle | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/airbyte-integrations/bases/standard-destination-test/build.gradle b/airbyte-integrations/bases/standard-destination-test/build.gradle index bb98faae7b653..fc0f369fdbbf6 100644 --- a/airbyte-integrations/bases/standard-destination-test/build.gradle +++ b/airbyte-integrations/bases/standard-destination-test/build.gradle @@ -9,7 +9,6 @@ dependencies { implementation project(':airbyte-json-validation') implementation project(':airbyte-integrations:bases:base-java') implementation project(':airbyte-protocol:protocol-models') - implementation project(':airbyte-commons-worker') implementation(enforcedPlatform('org.junit:junit-bom:5.8.2')) implementation 'org.junit.jupiter:junit-jupiter-api' diff --git a/airbyte-integrations/bases/standard-source-test/build.gradle b/airbyte-integrations/bases/standard-source-test/build.gradle index a006bbc02d765..ba8fde811deb9 100644 --- a/airbyte-integrations/bases/standard-source-test/build.gradle +++ b/airbyte-integrations/bases/standard-source-test/build.gradle @@ -17,7 +17,6 @@ dependencies { implementation project(':airbyte-config:config-models') implementation project(':airbyte-config:config-persistence') implementation project(':airbyte-protocol:protocol-models') - implementation project(':airbyte-commons-worker') implementation 'org.mockito:mockito-core:4.6.1' implementation 'net.sourceforge.argparse4j:argparse4j:0.8.1' @@ -30,7 +29,7 @@ dependencies { def getFullPath(String className) { def matchingFiles = project.fileTree("src/main/java") - .filter { file -> file.getName().equals("${className}.java".toString())}.asCollection() + .filter { file -> file.getName().equals("${className}.java".toString()) }.asCollection() if (matchingFiles.size() == 0) { throw new IllegalArgumentException("Ambiguous class name ${className}: no file found.") } @@ -51,14 +50,15 @@ task generateSourceTestDocs(type: Javadoc) { destinationDir = javadocOutputDir doLast { - def className = "SourceAcceptanceTest" // this can be made into a list once we have multiple standard tests, and can also be used for destinations + def className = "SourceAcceptanceTest" + // this can be made into a list once we have multiple standard tests, and can also be used for destinations def pathInPackage = getFullPath(className) def stdSrcTest = project.file("${javadocOutputDir}/${pathInPackage}.html").readLines().join("\n") def methodList = Jsoup.parse(stdSrcTest).body().select("section.methodDetails>ul>li>section") def md = "" - for (methodInfo in methodList){ + for (methodInfo in methodList) { def annotations = methodInfo.select(".memberSignature>.annotations").text() - if (!annotations.contains("@Test")){ + if (!annotations.contains("@Test")) { continue } def methodName = methodInfo.selectFirst("div>span.memberName").text() @@ -73,7 +73,7 @@ task generateSourceTestDocs(type: Javadoc) { outputDoc.append md } - outputs.upToDateWhen {false} + outputs.upToDateWhen { false } } project.build.dependsOn(generateSourceTestDocs) From e67bb115ba645738bf5e3557f9cb81d1360351b9 Mon Sep 17 00:00:00 2001 From: Topher Lubaway Date: Fri, 20 Jan 2023 13:11:09 -0600 Subject: [PATCH 08/56] Changes AC test check to check exited ps (#21672) some docker compose changes no longer show exited processes. this broke out test this change should fix master tested in a runner that failed --- tools/bin/acceptance_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bin/acceptance_test.sh b/tools/bin/acceptance_test.sh index 628ab3e245255..95ab614f356a5 100755 --- a/tools/bin/acceptance_test.sh +++ b/tools/bin/acceptance_test.sh @@ -13,7 +13,7 @@ get_epoch_time() { } check_success() { - docker compose ps | grep "^$1" | grep -ie 'exit 0' -ie 'exited (0)' >/dev/null || (echo "$1 didn't run successfully"; exit 1) + docker compose ps --all | grep "^$1" | grep -ie 'exit 0' -ie 'exited (0)' >/dev/null || (echo "$1 didn't run successfully"; exit 1) } ## From 0562b9672c4094a8de22ac1174199eca6c8b46b0 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem <168664+edmundito@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:06:46 -0500 Subject: [PATCH 09/56] =?UTF-8?q?=F0=9F=AA=9F=20=F0=9F=8E=A8=20Fix=20strea?= =?UTF-8?q?m=20table=20heading=20design=20issues=20(#21554)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use ConnectorHeaderGroupIcon in new streams table header, align checkbox with icon * Make info icon 11px to match design --- .../next/CatalogTreeTableRow.module.scss | 2 +- .../next/StreamConnectionHeader.module.scss | 6 +--- .../next/StreamConnectionHeader.tsx | 11 ++---- .../CreateConnectionForm.test.tsx.snap | 36 +++++++++---------- .../src/components/icons/InfoIcon.tsx | 2 +- .../ConnectionReplicationPage.test.tsx.snap | 32 ++++++++--------- 6 files changed, 40 insertions(+), 49 deletions(-) diff --git a/airbyte-webapp/src/components/connection/CatalogTree/next/CatalogTreeTableRow.module.scss b/airbyte-webapp/src/components/connection/CatalogTree/next/CatalogTreeTableRow.module.scss index 328c3911b03e5..3321f25733af9 100644 --- a/airbyte-webapp/src/components/connection/CatalogTree/next/CatalogTreeTableRow.module.scss +++ b/airbyte-webapp/src/components/connection/CatalogTree/next/CatalogTreeTableRow.module.scss @@ -40,7 +40,7 @@ } %streamRowCheckboxCell, .streamRowCheckboxCell { - max-width: 43px; + max-width: 53px; text-align: center; font-size: 10px; line-height: 13px; diff --git a/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.module.scss b/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.module.scss index 51a42dc86c0b6..9187a28778ef7 100644 --- a/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.module.scss +++ b/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.module.scss @@ -35,6 +35,7 @@ $icon-size: 15px; .destinationSection { display: flex; flex: 1 1 120px; + align-items: center; } .destination { @@ -42,11 +43,6 @@ $icon-size: 15px; flex: 2 1 217px; } -.icon { - width: $icon-size; - height: $icon-size; -} - .arrowContainer { flex: 1 0 20px; } diff --git a/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.tsx b/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.tsx index dd3070f6a5678..20efe70b4eeb2 100644 --- a/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.tsx +++ b/airbyte-webapp/src/components/connection/CatalogTree/next/StreamConnectionHeader.tsx @@ -1,16 +1,13 @@ import classnames from "classnames"; -import { FormattedMessage } from "react-intl"; import { ArrowRightIcon } from "components/icons/ArrowRightIcon"; import { Heading } from "components/ui/Heading"; import { useNewTableDesignExperiment } from "hooks/connection/useNewTableDesignExperiment"; import { useConnectionFormService } from "hooks/services/ConnectionForm/ConnectionFormService"; -import { getIcon } from "utils/imageUtils"; import styles from "./StreamConnectionHeader.module.scss"; - -export const renderIcon = (icon?: string): JSX.Element =>
{getIcon(icon)}
; +import { ConnectorHeaderGroupIcon } from "./StreamDetailsPanel/StreamFieldsTable/ConnectorHeaderGroupIcon"; export const StreamConnectionHeader: React.FC = () => { const { @@ -22,9 +19,8 @@ export const StreamConnectionHeader: React.FC = () => { return (
- {renderIcon(source.icon)}{" "} - +
@@ -32,9 +28,8 @@ export const StreamConnectionHeader: React.FC = () => {
- {renderIcon(destination.icon)}{" "} - +
diff --git a/airbyte-webapp/src/components/connection/CreateConnectionForm/__snapshots__/CreateConnectionForm.test.tsx.snap b/airbyte-webapp/src/components/connection/CreateConnectionForm/__snapshots__/CreateConnectionForm.test.tsx.snap index b3ab2efbb873a..a590788738923 100644 --- a/airbyte-webapp/src/components/connection/CreateConnectionForm/__snapshots__/CreateConnectionForm.test.tsx.snap +++ b/airbyte-webapp/src/components/connection/CreateConnectionForm/__snapshots__/CreateConnectionForm.test.tsx.snap @@ -44,9 +44,9 @@ exports[`CreateConnectionForm should render 1`] = ` > ( - + Date: Fri, 20 Jan 2023 14:19:53 -0800 Subject: [PATCH 10/56] Allow all origin in cors (#21668) * Allow all origin in cors * Update cors filter --- airbyte-server/src/main/resources/application.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/airbyte-server/src/main/resources/application.yml b/airbyte-server/src/main/resources/application.yml index 3c4ebd3a862f9..53e670c2c523a 100644 --- a/airbyte-server/src/main/resources/application.yml +++ b/airbyte-server/src/main/resources/application.yml @@ -19,6 +19,10 @@ micronaut: port: 8001 cors: enabled: true + configurations: + web: + allowedOrigins: + - ^.*$ airbyte: cloud: storage: From 5257f69e043f02030c3564ed70f945a6df9e776b Mon Sep 17 00:00:00 2001 From: Michael Siega <109092231+mfsiega-airbyte@users.noreply.github.com> Date: Fri, 20 Jan 2023 23:26:31 +0100 Subject: [PATCH 11/56] fix column selection handling for syncs without cursors (#21647) --- .../handlers/helpers/CatalogConverter.java | 13 ++- .../handlers/ConnectionsHandlerTest.java | 105 +++++++++--------- 2 files changed, 62 insertions(+), 56 deletions(-) diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java index fb0bcd3dc7618..8864c1b8130fb 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java @@ -69,16 +69,21 @@ private static io.airbyte.protocol.models.AirbyteStream toProtocol(final Airbyte } } // Only include the selected fields. + // NOTE: we verified above that each selected field has at least one element in the field path. final Set selectedFieldNames = config.getSelectedFields().stream().map((field) -> field.getFieldPath().get(0)).collect(Collectors.toSet()); // TODO(mfsiega-airbyte): we only check the top level of the cursor/primary key fields because we // don't support filtering nested fields yet. - if (!selectedFieldNames.contains(config.getCursorField().get(0)) && config.getSyncMode().equals(SyncMode.INCREMENTAL)) { + if (config.getSyncMode().equals(SyncMode.INCREMENTAL) // INCREMENTAL sync mode, AND + && !config.getCursorField().isEmpty() // There is a cursor configured, AND + && !selectedFieldNames.contains(config.getCursorField().get(0))) { // The cursor isn't in the selected fields. throw new JsonValidationException("Cursor field cannot be de-selected in INCREMENTAL syncs"); } - for (final List primaryKeyComponent : config.getPrimaryKey()) { - if (!selectedFieldNames.contains(primaryKeyComponent.get(0)) && config.getDestinationSyncMode().equals(DestinationSyncMode.APPEND_DEDUP)) { - throw new JsonValidationException("Primary key field cannot be de-selected in DEDUP mode"); + if (config.getDestinationSyncMode().equals(DestinationSyncMode.APPEND_DEDUP)) { + for (final List primaryKeyComponent : config.getPrimaryKey()) { + if (!selectedFieldNames.contains(primaryKeyComponent.get(0))) { + throw new JsonValidationException("Primary key field cannot be de-selected in DEDUP mode"); + } } } for (final String selectedFieldName : selectedFieldNames) { diff --git a/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java b/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java index 8563232078599..9a2364a8cf454 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/handlers/ConnectionsHandlerTest.java @@ -221,20 +221,8 @@ void setUp() throws JsonValidationException, ConfigNotFoundException, IOExceptio @Nested class CreateConnection { - @Test - void testCreateConnection() throws JsonValidationException, ConfigNotFoundException, IOException { - - final AirbyteCatalog catalog = ConnectionHelpers.generateBasicApiCatalog(); - - // set a defaultGeography on the workspace as EU, but expect connection to be - // created AUTO because the ConnectionCreate geography takes precedence over the workspace - // defaultGeography. - final StandardWorkspace workspace = new StandardWorkspace() - .withWorkspaceId(workspaceId) - .withDefaultGeography(Geography.EU); - when(configRepository.getStandardWorkspaceNoSecrets(workspaceId, true)).thenReturn(workspace); - - final ConnectionCreate connectionCreate = new ConnectionCreate() + private ConnectionCreate buildConnectionCreateRequest(final StandardSync standardSync, final AirbyteCatalog catalog) { + return new ConnectionCreate() .sourceId(standardSync.getSourceId()) .destinationId(standardSync.getDestinationId()) .operationIds(standardSync.getOperationIds()) @@ -252,6 +240,22 @@ void testCreateConnection() throws JsonValidationException, ConfigNotFoundExcept .memoryLimit(standardSync.getResourceRequirements().getMemoryLimit())) .sourceCatalogId(standardSync.getSourceCatalogId()) .geography(ApiPojoConverters.toApiGeography(standardSync.getGeography())); + } + + @Test + void testCreateConnection() throws JsonValidationException, ConfigNotFoundException, IOException { + + final AirbyteCatalog catalog = ConnectionHelpers.generateBasicApiCatalog(); + + // set a defaultGeography on the workspace as EU, but expect connection to be + // created AUTO because the ConnectionCreate geography takes precedence over the workspace + // defaultGeography. + final StandardWorkspace workspace = new StandardWorkspace() + .withWorkspaceId(workspaceId) + .withDefaultGeography(Geography.EU); + when(configRepository.getStandardWorkspaceNoSecrets(workspaceId, true)).thenReturn(workspace); + + final ConnectionCreate connectionCreate = buildConnectionCreateRequest(standardSync, catalog); final ConnectionRead actualConnectionRead = connectionsHandler.createConnection(connectionCreate); @@ -277,23 +281,7 @@ void testCreateConnectionUsesDefaultGeographyFromWorkspace() throws JsonValidati final AirbyteCatalog catalog = ConnectionHelpers.generateBasicApiCatalog(); // don't set a geography on the ConnectionCreate to force inheritance from workspace default - final ConnectionCreate connectionCreate = new ConnectionCreate() - .sourceId(standardSync.getSourceId()) - .destinationId(standardSync.getDestinationId()) - .operationIds(standardSync.getOperationIds()) - .name(PRESTO_TO_HUDI) - .namespaceDefinition(NamespaceDefinitionType.SOURCE) - .namespaceFormat(null) - .prefix(PRESTO_TO_HUDI_PREFIX) - .status(ConnectionStatus.ACTIVE) - .schedule(ConnectionHelpers.generateBasicConnectionSchedule()) - .syncCatalog(catalog) - .resourceRequirements(new io.airbyte.api.model.generated.ResourceRequirements() - .cpuRequest(standardSync.getResourceRequirements().getCpuRequest()) - .cpuLimit(standardSync.getResourceRequirements().getCpuLimit()) - .memoryRequest(standardSync.getResourceRequirements().getMemoryRequest()) - .memoryLimit(standardSync.getResourceRequirements().getMemoryLimit())) - .sourceCatalogId(standardSync.getSourceCatalogId()); + final ConnectionCreate connectionCreate = buildConnectionCreateRequest(standardSync, catalog).geography(null); // set the workspace default to EU final StandardWorkspace workspace = new StandardWorkspace() @@ -319,29 +307,12 @@ void testCreateConnectionWithSelectedFields() throws IOException, JsonValidation .withDefaultGeography(Geography.AUTO); when(configRepository.getStandardWorkspaceNoSecrets(workspaceId, true)).thenReturn(workspace); - final AirbyteCatalog catalog = ConnectionHelpers.generateApiCatalogWithTwoFields(); + final AirbyteCatalog catalogWithSelectedFields = ConnectionHelpers.generateApiCatalogWithTwoFields(); // Only select one of the two fields. - catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true) + catalogWithSelectedFields.getStreams().get(0).getConfig().fieldSelectionEnabled(true) .selectedFields(List.of(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME))); - final ConnectionCreate connectionCreate = new ConnectionCreate() - .sourceId(standardSync.getSourceId()) - .destinationId(standardSync.getDestinationId()) - .operationIds(standardSync.getOperationIds()) - .name(PRESTO_TO_HUDI) - .namespaceDefinition(NamespaceDefinitionType.SOURCE) - .namespaceFormat(null) - .prefix(PRESTO_TO_HUDI_PREFIX) - .status(ConnectionStatus.ACTIVE) - .schedule(ConnectionHelpers.generateBasicConnectionSchedule()) - .syncCatalog(catalog) - .resourceRequirements(new io.airbyte.api.model.generated.ResourceRequirements() - .cpuRequest(standardSync.getResourceRequirements().getCpuRequest()) - .cpuLimit(standardSync.getResourceRequirements().getCpuLimit()) - .memoryRequest(standardSync.getResourceRequirements().getMemoryRequest()) - .memoryLimit(standardSync.getResourceRequirements().getMemoryLimit())) - .sourceCatalogId(standardSync.getSourceCatalogId()) - .geography(ApiPojoConverters.toApiGeography(standardSync.getGeography())); + final ConnectionCreate connectionCreate = buildConnectionCreateRequest(standardSync, catalogWithSelectedFields); final ConnectionRead actualConnectionRead = connectionsHandler.createConnection(connectionCreate); @@ -354,6 +325,35 @@ void testCreateConnectionWithSelectedFields() throws IOException, JsonValidation verify(configRepository).writeStandardSync(standardSync); } + @Test + void testCreateFullRefreshConnectionWithSelectedFields() throws IOException, JsonValidationException, ConfigNotFoundException { + final StandardWorkspace workspace = new StandardWorkspace() + .withWorkspaceId(workspaceId) + .withDefaultGeography(Geography.AUTO); + when(configRepository.getStandardWorkspaceNoSecrets(workspaceId, true)).thenReturn(workspace); + + final AirbyteCatalog fullRefreshCatalogWithSelectedFields = ConnectionHelpers.generateApiCatalogWithTwoFields(); + fullRefreshCatalogWithSelectedFields.getStreams().get(0).getConfig() + .fieldSelectionEnabled(true) + .selectedFields(List.of(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME))) + .cursorField(null) + .syncMode(SyncMode.FULL_REFRESH); + + final ConnectionCreate connectionCreate = buildConnectionCreateRequest(standardSync, fullRefreshCatalogWithSelectedFields); + + final ConnectionRead actualConnectionRead = connectionsHandler.createConnection(connectionCreate); + + final ConnectionRead expectedConnectionRead = ConnectionHelpers.generateExpectedConnectionRead(standardSync); + + assertEquals(expectedConnectionRead, actualConnectionRead); + + standardSync + .withFieldSelectionData(new FieldSelectionData().withAdditionalProperty("null/users-data0", true)) + .getCatalog().getStreams().get(0).withSyncMode(io.airbyte.protocol.models.SyncMode.FULL_REFRESH).withCursorField(null); + + verify(configRepository).writeStandardSync(standardSync); + } + @Test void testFieldSelectionRemoveCursorFails() throws JsonValidationException, ConfigNotFoundException, IOException { // Test that if we try to de-select a field that's being used for the cursor, the request will fail. @@ -365,7 +365,8 @@ void testFieldSelectionRemoveCursorFails() throws JsonValidationException, Confi catalogForUpdate.getStreams().get(0).getConfig() .fieldSelectionEnabled(true) .selectedFields(List.of(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME))) - .cursorField(List.of(SECOND_FIELD_NAME)); + .cursorField(List.of(SECOND_FIELD_NAME)) + .syncMode(SyncMode.INCREMENTAL); final ConnectionUpdate connectionUpdate = new ConnectionUpdate() .connectionId(standardSync.getConnectionId()) From 2d65d62a65e5867c10dad166ff0144275013153c Mon Sep 17 00:00:00 2001 From: Eugene Date: Sat, 21 Jan 2023 00:37:07 +0200 Subject: [PATCH 12/56] =?UTF-8?q?=F0=9F=90=9BDestination-Snowflake:=20upda?= =?UTF-8?q?ted=20check=20method=20to=20handle=20more=20possible=20s3=20and?= =?UTF-8?q?=20gcs=20stagings=20issues=20(#21450)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [18312] Destination-Snowflake: updated check method to handle more possible s3 and gcs stagings issues --- .../seed/destination_definitions.yaml | 2 +- .../resources/seed/destination_specs.yaml | 2 +- .../s3/csv/CsvSerializedBuffer.java | 6 ++--- .../jdbc/copy/CopyDestination.java | 2 +- .../destination-snowflake/Dockerfile | 2 +- .../SnowflakeGcsStagingDestination.java | 20 ++++++++++++---- ...SnowflakeInternalStagingSqlOperations.java | 11 +++++---- .../SnowflakeS3StagingDestination.java | 24 ++++++++++++++++++- ...flakeGcsCopyDestinationAcceptanceTest.java | 21 ++++++++++++++++ ...opyEncryptedDestinationAcceptanceTest.java | 20 ++++++++++++++++ .../SnowflakeTestSourceOperations.java | 21 ++++++++++++++++ docs/integrations/destinations/snowflake.md | 3 ++- 12 files changed, 115 insertions(+), 19 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml index 39285b789ebe5..d84582706ba2f 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml @@ -348,7 +348,7 @@ - name: Snowflake destinationDefinitionId: 424892c4-daac-4491-b35d-c6688ba547ba dockerRepository: airbyte/destination-snowflake - dockerImageTag: 0.4.42 + dockerImageTag: 0.4.43 documentationUrl: https://docs.airbyte.com/integrations/destinations/snowflake icon: snowflake.svg normalizationConfig: diff --git a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml index 859ec2b6d8abe..aa768b304061f 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml @@ -6109,7 +6109,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-snowflake:0.4.42" +- dockerImage: "airbyte/destination-snowflake:0.4.43" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/snowflake" connectionSpecification: diff --git a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/csv/CsvSerializedBuffer.java b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/csv/CsvSerializedBuffer.java index 0dbb695e5b017..f16b454c745e8 100644 --- a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/csv/CsvSerializedBuffer.java +++ b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/csv/CsvSerializedBuffer.java @@ -31,9 +31,9 @@ public class CsvSerializedBuffer extends BaseSerializedBuffer { private CSVPrinter csvPrinter; private CSVFormat csvFormat; - protected CsvSerializedBuffer(final BufferStorage bufferStorage, - final CsvSheetGenerator csvSheetGenerator, - final boolean compression) + public CsvSerializedBuffer(final BufferStorage bufferStorage, + final CsvSheetGenerator csvSheetGenerator, + final boolean compression) throws Exception { super(bufferStorage); this.csvSheetGenerator = csvSheetGenerator; diff --git a/airbyte-integrations/connectors/destination-jdbc/src/main/java/io/airbyte/integrations/destination/jdbc/copy/CopyDestination.java b/airbyte-integrations/connectors/destination-jdbc/src/main/java/io/airbyte/integrations/destination/jdbc/copy/CopyDestination.java index 51ba727276484..85d5c733bd675 100644 --- a/airbyte-integrations/connectors/destination-jdbc/src/main/java/io/airbyte/integrations/destination/jdbc/copy/CopyDestination.java +++ b/airbyte-integrations/connectors/destination-jdbc/src/main/java/io/airbyte/integrations/destination/jdbc/copy/CopyDestination.java @@ -97,7 +97,7 @@ protected void performCreateInsertTestOnDestination(final String outputSchema, final JdbcDatabase database, final NamingConventionTransformer nameTransformer) throws Exception { - AbstractJdbcDestination.attemptSQLCreateAndDropTableOperations(outputSchema, database, nameTransformer, getSqlOperations()); + AbstractJdbcDestination.attemptTableOperations(outputSchema, database, nameTransformer, getSqlOperations(), true); } } diff --git a/airbyte-integrations/connectors/destination-snowflake/Dockerfile b/airbyte-integrations/connectors/destination-snowflake/Dockerfile index fca0e9654d410..4b8f627b28ea2 100644 --- a/airbyte-integrations/connectors/destination-snowflake/Dockerfile +++ b/airbyte-integrations/connectors/destination-snowflake/Dockerfile @@ -20,5 +20,5 @@ RUN tar xf ${APPLICATION}.tar --strip-components=1 ENV ENABLE_SENTRY true -LABEL io.airbyte.version=0.4.42 +LABEL io.airbyte.version=0.4.43 LABEL io.airbyte.name=airbyte/destination-snowflake diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsStagingDestination.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsStagingDestination.java index d451dab54d52d..ac3fdfc832d74 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsStagingDestination.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsStagingDestination.java @@ -5,9 +5,11 @@ package io.airbyte.integrations.destination.snowflake; import static io.airbyte.integrations.destination.snowflake.SnowflakeS3StagingDestination.isPurgeStagingData; +import static java.nio.charset.StandardCharsets.UTF_8; import com.fasterxml.jackson.databind.JsonNode; import com.google.auth.oauth2.GoogleCredentials; +import com.google.cloud.WriteChannel; import com.google.cloud.storage.BlobId; import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; @@ -29,6 +31,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Map; @@ -83,12 +86,19 @@ public AirbyteConnectionStatus check(final JsonNode config) { } private static void attemptWriteAndDeleteGcsObject(final GcsConfig gcsConfig, final String outputTableName) throws IOException { - final var storage = getStorageClient(gcsConfig); - final var blobId = BlobId.of(gcsConfig.getBucketName(), "check-content/" + outputTableName); - final var blobInfo = BlobInfo.newBuilder(blobId).build(); + final Storage storageClient = getStorageClient(gcsConfig); + final BlobId blobId = BlobId.of(gcsConfig.getBucketName(), "check-content/" + outputTableName); + final BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build(); - storage.create(blobInfo, "".getBytes(StandardCharsets.UTF_8)); - storage.delete(blobId); + storageClient.create(blobInfo); + + try (WriteChannel writer = storageClient.writer(blobInfo)) { + // Try to write a dummy message to make sure user has all required permissions + final byte[] content = "Hello, World!".getBytes(UTF_8); + writer.write(ByteBuffer.wrap(content, 0, content.length)); + } finally { + storageClient.delete(blobId); + } } public static Storage getStorageClient(final GcsConfig gcsConfig) throws IOException { 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 e1765ecbd5bfc..2f917fe7d4746 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 @@ -134,7 +134,8 @@ public void createStageIfNotExists(final JdbcDatabase database, final String sta } /** - * Creates a SQL query to create a staging folder. This query will create a staging folder if one previously did not exist + * Creates a SQL query to create a staging folder. This query will create a staging folder if one + * previously did not exist * * @param stageName name of the staging folder * @return SQL query string @@ -157,8 +158,8 @@ public void copyIntoTmpTableFromStage(final JdbcDatabase database, } /** - * Creates a SQL query to bulk copy data into fully qualified destination table - * See https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html for more context + * Creates a SQL query to bulk copy data into fully qualified destination table See + * https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html for more context * * @param stageName name of staging folder * @param stagingPath path of staging folder to data files @@ -200,8 +201,8 @@ public void cleanUpStage(final JdbcDatabase database, final String stageName, fi } /** - * Creates a SQL query used to remove staging files that were just staged - * See https://docs.snowflake.com/en/sql-reference/sql/remove.html for more context + * Creates a SQL query used to remove staging files that were just staged See + * https://docs.snowflake.com/en/sql-reference/sql/remove.html for more context * * @param stageName name of staging folder * @return SQL query string diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingDestination.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingDestination.java index ead94c94ba9eb..bf1f5c220c3c1 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingDestination.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingDestination.java @@ -13,15 +13,18 @@ import io.airbyte.integrations.destination.NamingConventionTransformer; import io.airbyte.integrations.destination.jdbc.AbstractJdbcDestination; import io.airbyte.integrations.destination.record_buffer.FileBuffer; +import io.airbyte.integrations.destination.record_buffer.InMemoryBuffer; import io.airbyte.integrations.destination.s3.AesCbcEnvelopeEncryption; import io.airbyte.integrations.destination.s3.AesCbcEnvelopeEncryption.KeyType; import io.airbyte.integrations.destination.s3.EncryptionConfig; import io.airbyte.integrations.destination.s3.S3DestinationConfig; import io.airbyte.integrations.destination.s3.csv.CsvSerializedBuffer; +import io.airbyte.integrations.destination.s3.csv.StagingDatabaseCsvSheetGenerator; import io.airbyte.integrations.destination.staging.StagingConsumerFactory; import io.airbyte.protocol.models.v0.AirbyteConnectionStatus; import io.airbyte.protocol.models.v0.AirbyteConnectionStatus.Status; import io.airbyte.protocol.models.v0.AirbyteMessage; +import io.airbyte.protocol.models.v0.AirbyteRecordMessage; import io.airbyte.protocol.models.v0.ConfiguredAirbyteCatalog; import java.util.Collections; import java.util.Map; @@ -90,7 +93,26 @@ private static void attemptStageOperations(final String outputSchema, final String outputTableName = namingResolver.getIdentifier("_airbyte_connection_test_" + UUID.randomUUID()); final String stageName = sqlOperations.getStageName(outputSchema, outputTableName); sqlOperations.createStageIfNotExists(database, stageName); - sqlOperations.dropStageIfExists(database, stageName); + + // try to make test write to make sure we have required role + try { + final CsvSerializedBuffer csvSerializedBuffer = new CsvSerializedBuffer( + new InMemoryBuffer(".csv"), + new StagingDatabaseCsvSheetGenerator(), + true); + + // create a dummy stream\records that will bed used to test uploading + csvSerializedBuffer.accept(new AirbyteRecordMessage() + .withData(Jsons.jsonNode(Map.of("testKey", "testValue"))) + .withEmittedAt(System.currentTimeMillis())); + csvSerializedBuffer.flush(); + + sqlOperations.uploadRecordsToStage(database, csvSerializedBuffer, outputSchema, stageName, + stageName.endsWith("/") ? stageName : stageName + "/"); + } finally { + // drop created tmp stage + sqlOperations.dropStageIfExists(database, stageName); + } } @Override diff --git a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsCopyDestinationAcceptanceTest.java b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsCopyDestinationAcceptanceTest.java index 1e8e5863d5db1..eb85788f6c642 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsCopyDestinationAcceptanceTest.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeGcsCopyDestinationAcceptanceTest.java @@ -4,14 +4,23 @@ package io.airbyte.integrations.destination.snowflake; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; + import com.fasterxml.jackson.databind.JsonNode; import com.google.common.base.Preconditions; import io.airbyte.commons.io.IOs; import io.airbyte.commons.json.Jsons; +import io.airbyte.config.StandardCheckConnectionOutput; +import io.airbyte.config.StandardCheckConnectionOutput.Status; import java.nio.file.Path; +import org.junit.jupiter.api.Test; public class SnowflakeGcsCopyDestinationAcceptanceTest extends SnowflakeInsertDestinationAcceptanceTest { + private static final String NO_GCS_PRIVILEGES_ERR_MSG = + "Permission 'storage.objects.create' denied on resource (or it may not exist)."; + @Override public JsonNode getStaticConfig() { final JsonNode copyConfig = Jsons.deserialize(IOs.readFile(Path.of("secrets/copy_gcs_config.json"))); @@ -20,4 +29,16 @@ public JsonNode getStaticConfig() { return copyConfig; } + @Test + public void testCheckWithNoProperGcsPermissionConnection() throws Exception { + // Config to user (creds) that has no permission to schema + final JsonNode config = Jsons.deserialize(IOs.readFile( + Path.of("secrets/copy_insufficient_gcs_roles_config.json"))); + + StandardCheckConnectionOutput standardCheckConnectionOutput = runCheck(config); + + assertEquals(Status.FAILED, standardCheckConnectionOutput.getStatus()); + assertThat(standardCheckConnectionOutput.getMessage()).contains(NO_GCS_PRIVILEGES_ERR_MSG); + } + } diff --git a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3CopyEncryptedDestinationAcceptanceTest.java b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3CopyEncryptedDestinationAcceptanceTest.java index 2fba654e1c02b..61bcb7b9f71ea 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3CopyEncryptedDestinationAcceptanceTest.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3CopyEncryptedDestinationAcceptanceTest.java @@ -4,14 +4,22 @@ package io.airbyte.integrations.destination.snowflake; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; + import com.fasterxml.jackson.databind.JsonNode; import com.google.common.base.Preconditions; import io.airbyte.commons.io.IOs; import io.airbyte.commons.json.Jsons; +import io.airbyte.config.StandardCheckConnectionOutput; +import io.airbyte.config.StandardCheckConnectionOutput.Status; import java.nio.file.Path; +import org.junit.jupiter.api.Test; public class SnowflakeS3CopyEncryptedDestinationAcceptanceTest extends SnowflakeInsertDestinationAcceptanceTest { + private static final String NO_S3_PRIVILEGES_ERR_MSG = "Could not connect with provided configuration."; + @Override public JsonNode getStaticConfig() { final JsonNode copyConfig = Jsons.deserialize(IOs.readFile(Path.of("secrets/copy_s3_encrypted_config.json"))); @@ -20,4 +28,16 @@ public JsonNode getStaticConfig() { return copyConfig; } + @Test + public void testCheckWithNoProperS3PermissionConnection() throws Exception { + // Config to user (creds) that has no permission to schema + final JsonNode config = Jsons.deserialize(IOs.readFile( + Path.of("secrets/copy_s3_wrong_location_config.json"))); + + StandardCheckConnectionOutput standardCheckConnectionOutput = runCheck(config); + + assertEquals(Status.FAILED, standardCheckConnectionOutput.getStatus()); + assertThat(standardCheckConnectionOutput.getMessage()).contains(NO_S3_PRIVILEGES_ERR_MSG); + } + } diff --git a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeTestSourceOperations.java b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeTestSourceOperations.java index f2958524dcdfc..46ee859f39091 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeTestSourceOperations.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/test-integration/java/io/airbyte/integrations/destination/snowflake/SnowflakeTestSourceOperations.java @@ -4,6 +4,9 @@ package io.airbyte.integrations.destination.snowflake; +import static io.airbyte.db.jdbc.DateTimeConverter.putJavaSQLDate; +import static io.airbyte.db.jdbc.DateTimeConverter.putJavaSQLTime; + import com.fasterxml.jackson.databind.node.ObjectNode; import io.airbyte.db.jdbc.JdbcSourceOperations; import io.airbyte.integrations.standardtest.destination.DestinationAcceptanceTestUtils; @@ -17,4 +20,22 @@ protected void putString(ObjectNode node, String columnName, ResultSet resultSet DestinationAcceptanceTestUtils.putStringIntoJson(resultSet.getString(index), columnName, node); } + @Override + protected void putDate(final ObjectNode node, + final String columnName, + final ResultSet resultSet, + final int index) + throws SQLException { + putJavaSQLDate(node, columnName, resultSet, index); + } + + @Override + protected void putTime(final ObjectNode node, + final String columnName, + final ResultSet resultSet, + final int index) + throws SQLException { + putJavaSQLTime(node, columnName, resultSet, index); + } + } diff --git a/docs/integrations/destinations/snowflake.md b/docs/integrations/destinations/snowflake.md index 9a690157e3865..b9c6ba290ce20 100644 --- a/docs/integrations/destinations/snowflake.md +++ b/docs/integrations/destinations/snowflake.md @@ -277,7 +277,8 @@ Now that you have set up the Snowflake destination connector, check out the foll | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------| -| 0.4.41 | 2023-01-12 | [\#21342](https://github.com/airbytehq/airbyte/pull/21342) | Better handling for conflicting destination streams | +| 0.4.43 | 2023-01-20 | [\#21450](https://github.com/airbytehq/airbyte/pull/21450) | Updated Check methods to handle more possible s3 and gcs stagings issues | +| 0.4.42 | 2023-01-12 | [\#21342](https://github.com/airbytehq/airbyte/pull/21342) | Better handling for conflicting destination streams | | 0.4.41 | 2022-12-16 | [\#20566](https://github.com/airbytehq/airbyte/pull/20566) | Improve spec to adhere to standards | | 0.4.40 | 2022-11-11 | [\#19302](https://github.com/airbytehq/airbyte/pull/19302) | Set jdbc application env variable depends on env - airbyte_oss or airbyte_cloud | | 0.4.39 | 2022-11-09 | [\#18970](https://github.com/airbytehq/airbyte/pull/18970) | Updated "check" connection method to handle more errors | From ff3726eb59daec3a3a245d13186bda6cc99ddeae Mon Sep 17 00:00:00 2001 From: Joe Bell Date: Fri, 20 Jan 2023 15:09:20 -0800 Subject: [PATCH 13/56] Add Docker Debugging Fixture (#21357) * docker debugging options * refactor image shortening method * remove testing annotation * comment updates * debugging docker docs --- .../workers/process/DockerProcessFactory.java | 29 ++++ .../workers/process/ProcessFactory.java | 21 ++- docker-compose.debug.yaml | 10 ++ .../connector-development/debugging-docker.md | 137 ++++++++++++++++++ 4 files changed, 193 insertions(+), 4 deletions(-) create mode 100644 docs/connector-development/debugging-docker.md diff --git a/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/DockerProcessFactory.java b/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/DockerProcessFactory.java index 5ed26798030b7..ea4092d87f524 100644 --- a/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/DockerProcessFactory.java +++ b/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/DockerProcessFactory.java @@ -20,9 +20,12 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.TimeUnit; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -120,6 +123,7 @@ public Process create(final String jobType, LOGGER.info("Creating docker container = {} with resources {}", containerName, resourceRequirements); cmd.add("--name"); cmd.add(containerName); + cmd.addAll(localDebuggingOptions(containerName)); if (networkName != null) { cmd.add("--network"); @@ -169,6 +173,31 @@ public Process create(final String jobType, } } + /** + * !! ONLY FOR DEBUGGING, SHOULD NOT BE USED IN PRODUCTION !! If you set the DEBUG_CONTAINER_IMAGE + * environment variable, and it matches the image name of a spawned container, this method will add + * the necessary params to connect a debugger. For example, to enable this for + * `destination-bigquery` start the services locally with: ``` VERSION="dev" + * DEBUG_CONTAINER_IMAGE="destination-bigquery" docker compose -f docker-compose.yaml -f + * docker-compose.debug.yaml up ``` Additionally you may have to update the image version of your + * target image to 'dev' in the UI of your local airbyte platform. See the + * `docker-compose.debug.yaml` file for more context. + * + * @param containerName the name of the container which could be debugged. + * @return A list with debugging arguments or an empty list + */ + static List localDebuggingOptions(final String containerName) { + final boolean shouldAddDebuggerOptions = + Optional.ofNullable(System.getenv("DEBUG_CONTAINER_IMAGE")).filter(StringUtils::isNotEmpty) + .map(ProcessFactory.extractShortImageName(containerName)::equals).orElse(false) + && Optional.ofNullable(System.getenv("DEBUG_CONTAINER_JAVA_OPTS")).isPresent(); + if (shouldAddDebuggerOptions) { + return List.of("-e", "JAVA_TOOL_OPTIONS=" + System.getenv("DEBUG_CONTAINER_JAVA_OPTS"), "-p5005:5005"); + } else { + return Collections.emptyList(); + } + } + private Path rebasePath(final Path jobRoot) { final Path relativePath = workspaceRoot.relativize(jobRoot); return DATA_MOUNT_DESTINATION.resolve(relativePath); diff --git a/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/ProcessFactory.java b/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/ProcessFactory.java index d9cf45084a068..e57ebf6fbf28e 100644 --- a/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/ProcessFactory.java +++ b/airbyte-commons-worker/src/main/java/io/airbyte/workers/process/ProcessFactory.java @@ -64,11 +64,8 @@ Process create(String jobType, * can be used by the factories implementing this interface for easier operations. */ static String createProcessName(final String fullImagePath, final String jobType, final String jobId, final int attempt, final int lenLimit) { - final var noVersion = fullImagePath.split(VERSION_DELIMITER)[0]; - - final var nameParts = noVersion.split(DOCKER_DELIMITER); - var imageName = nameParts[nameParts.length - 1]; + var imageName = extractShortImageName(fullImagePath); final var randSuffix = RandomStringUtils.randomAlphabetic(5).toLowerCase(); final String suffix = jobType + "-" + jobId + "-" + attempt + "-" + randSuffix; @@ -90,4 +87,20 @@ static String createProcessName(final String fullImagePath, final String jobType return processName.substring(m.start()); } + /** + * Docker image names are by convention separated by slashes. The last portion is the image's name. + * This is followed by a colon and a version number. e.g. airbyte/scheduler:v1 or + * gcr.io/my-project/my-project:v2. + * + * @param fullImagePath the image name with repository and version ex + * gcr.io/my-project/image-name:v2 + * @return the image name without the repo and version, ex. image-name + */ + static String extractShortImageName(final String fullImagePath) { + final var noVersion = fullImagePath.split(VERSION_DELIMITER)[0]; + + final var nameParts = noVersion.split(DOCKER_DELIMITER); + return nameParts[nameParts.length - 1]; + } + } diff --git a/docker-compose.debug.yaml b/docker-compose.debug.yaml index a93fa0b4b2861..3c890301e2edf 100644 --- a/docker-compose.debug.yaml +++ b/docker-compose.debug.yaml @@ -27,3 +27,13 @@ services: networks: - airbyte_internal - airbyte_public + worker: + environment: + - DEBUG_CONTAINER_IMAGE=${DEBUG_CONTAINER_IMAGE} + - DEBUG_CONTAINER_JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 + server: + # You will need to create a remote JVM debugging Run Configuration + # If you're on a Mac you will need to obtain the IP address of the container + # The value of DEBUG_SERVER_JAVA_OPTIONS should be the same as DEBUG_CONTAINER_JAVA_OPTS above + environment: + - JAVA_TOOL_OPTIONS=${DEBUG_SERVER_JAVA_OPTIONS} diff --git a/docs/connector-development/debugging-docker.md b/docs/connector-development/debugging-docker.md new file mode 100644 index 0000000000000..8808ef8e9ad0c --- /dev/null +++ b/docs/connector-development/debugging-docker.md @@ -0,0 +1,137 @@ +# Debugging Docker Containers +This guide will cover debugging **JVM docker containers** either started via Docker Compose or started by the +worker container, such as a Destination container. This guide will assume use of [IntelliJ Community edition](https://www.jetbrains.com/idea/), +however the steps could be applied to another IDE or debugger. + +## Prerequisites +You should have the airbyte repo downloaded and should be able to [run the platform locally](/deploying-airbyte/local-deployment). +Also, if you're on macOS you will need to follow the installation steps for [Docker Mac Connect](https://github.com/chipmk/docker-mac-net-connect). + +## Connecting your debugger +This solution utilizes the environment variable `JAVA_TOOL_OPTIONS` which when set to a specific value allows us to connect our debugger. +We will also be setting up a **Remote JVM Debug** run configuration in IntelliJ which uses the IP address or hostname to connect. + +> **Note** +> The [Docker Mac Connect](https://github.com/chipmk/docker-mac-net-connect) tool is what makes it possible for macOS users to connect to a docker container +> by IP address. + +### Docker Compose Extension +By default, the `docker compose` command will look for a `docker-compose.yaml` file in your directory and execute its instructions. However, you can +provide multiple files to the `docker compose` command with the `-f` option. You can read more about how Docker compose combines or overrides values when +you provide multiple files [on Docker's Website](https://docs.docker.com/compose/extends/). + +In the Airbyte repo, there is already another file `docker-compose.debug.yaml` which extends the `docker-compose.yaml` file. Our goal is to set the +`JAVA_TOOL_OPTIONS` environment variable in the environment of the container we wish to debug. If you look at the `server` configuration under `services` +in the `docker-compose.debug.yaml` file, it should look like this: +```yaml + server: + environment: + - JAVA_TOOL_OPTIONS=${DEBUG_SERVER_JAVA_OPTIONS} +``` +What this is saying is: For the Service `server` add an environment variable `JAVA_TOOL_OPTIONS` with the value of the variable `DEBUG_SERVER_JAVA_OPTIONS`. +`DEBUG_SERVER_JAVA_OPTIONS` has no default value, so if we don't provide one, `JAVA_TOOL_OPTIONS` will be blank or empty. When running the `docker compose` command, +Docker will look to your local environment variables, to see if you have set a value for `DEBUG_SERVER_JAVA_OPTIONS` and copy that value. To set this value +you can either `export` the variable in your environment prior to running the `docker compose` command, or prepend the variable to the command. For our debugging purposes, +we want the value to be `-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005` so to connect our debugger to the `server` container, run the following: + +```bash +DEBUG_SERVER_JAVA_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005" VERSION="dev" docker compose -f docker-compose.yaml -f docker-compose.debug.yaml up +``` + +> **Note** +> This command also passes in the `VERSION=dev` environment variable, which is recommended from the comments in the `docker-compose.debug.yaml` + +### Connecting the Debugger +Now we need to connect our debugger. In IntelliJ, open `Edit Configurations...` from the run menu (Or search for `Edit Configurations` in the command palette). +Create a new *Remote JVM Debug* Run configuration. The `host` option defaults to `localhost` which if you're on Linux you can leave this unchanged. +On a Mac however, you need to find the IP address of your container. **Make sure you've installed and started the [Docker Mac Connect](https://github.com/chipmk/docker-mac-net-connect) +service prior to running the `docker compose` command**. With your containers running, run the following command to easily fetch the IP addresses: + +```bash +$ docker inspect $(docker ps -q ) --format='{{ printf "%-50s" .Name}} {{printf "%-50s" .Config.Image}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' +/airbyte-proxy airbyte/proxy:dev 172.18.0.10172.19.0.4 +/airbyte-server airbyte/server:dev 172.18.0.9 +/airbyte-worker airbyte/worker:dev 172.18.0.8 +/airbyte-source sha256:5eea76716a190d10fd866f5ac6498c8306382f55c6d910231d37a749ad305960 172.17.0.2 +/airbyte-connector-builder-server airbyte/connector-builder-server:dev 172.18.0.6 +/airbyte-webapp airbyte/webapp:dev 172.18.0.7 +/airbyte-cron airbyte/cron:dev 172.18.0.5 +/airbyte-temporal airbyte/temporal:dev 172.18.0.2 +/airbyte-db airbyte/db:dev 172.18.0.4172.19.0.3 +/airbyte-temporal-ui temporalio/web:1.13.0 172.18.0.3172.19.0.2 +``` +You should see an entry for `/airbyte-server` which is the container we've been targeting so copy its IP address (`172.18.0.9` in the example output above) +and replace `localhost` in your IntelliJ Run configuration with the IP address. + +Save your Remote JVM Debug run configuration and run it with the debug option. You should now be able to place breakpoints in any code that is being executed by the +`server` container. If you need to debug another container from the original `docker-compose.yaml` file, you could modify the `docker-compose.debug.yaml` file with a similar option. + +### Debugging Containers Launched by the Worker container +The Airbyte platform launches some containers as needed at runtime, which are not defined in the `docker-compose.yaml` file. These containers are the source or destination +tasks, among other things. But if we can't pass environment variables to them through the `docker-compose.debug.yaml` file, then how can we set the +`JAVA_TOOL_OPTIONS` environment variable? Well, the answer is that we can *pass it through* the container which launches the other containers - the `worker` container. + +For this example, lets say that we want to debug something that happens in the `destination-postgres` connector container. To follow along with this example, you will +need to have set up a connection which uses postgres as a destination, however if you want to use a different connector like `source-postgres`, `destination-bigquery`, etc. that's fine. + +In the `docker-compose.debug.yaml` file you should see an entry for the `worker` service which looks like this +```yaml + worker: + environment: + - DEBUG_CONTAINER_IMAGE=${DEBUG_CONTAINER_IMAGE} + - DEBUG_CONTAINER_JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 +``` +Similar to the previous debugging example, we want to pass an environment variable to the `docker compose` command. This time we're setting the +`DEBUG_CONTAINER_IMAGE` environment variable to the name of the container we're targeting. For our example that is `destination-postgres` so run the command: +```bash +DEBUG_CONTAINER_IMAGE="destination-postgres" VERSION="dev" docker compose -f docker-compose.yaml -f docker-compose.debug.yaml up +``` +The `worker` container now has an environment variable `DEBUG_CONTAINER_IMAGE` with a value of `destination-postgres` which when it compares when it is +spawning containers. If the container name matches the environment variable, it will set the `JAVA_TOOL_OPTIONS` environment variable in the container to +the value of its `DEBUG_CONTAINER_JAVA_OPTS` environment variable, which is the same value we used in the `server` example. + +#### Connecting the Debugger to a Worker Spawned Container +To connect your debugger, **the container must be running**. This `destination-postgres` container will only run when we're running one of its tasks, +such as when a replication is running. Navigate to a connection in your local Airbyte instance at http://localhost:8000 which uses postgres as a destination. +If you ran through the [Postgres to Postgres replication tutorial](https://airbyte.com/tutorials/postgres-replication), you can use this connection. + +On the connection page, trigger a manual sync with the "Sync now" button. Because we set the `suspend` option to `y` in our `JAVA_TOOL_OPTIONS` the +container will pause all execution until the debugger is connected. This can be very useful for methods which run very quickly, such as the Check method. +However, this could be very detrimental if it were pushed into a production environment. For now, it gives us time to set a new Remote JVM Debug Configuraiton. + +This container will have a different IP than the `server` Remote JVM Debug Run configuration we set up earlier. So lets set up a new one with the IP of +the `destination-postgres` container: + +```bash +$ docker inspect $(docker ps -q ) --format='{{ printf "%-50s" .Name}} {{printf "%-50s" .Config.Image}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' +/destination-postgres-write-52-0-grbsw airbyte/destination-postgres:0.3.26 +/airbyte-proxy airbyte/proxy:dev 172.18.0.10172.19.0.4 +/airbyte-worker airbyte/worker:dev 172.18.0.8 +/airbyte-server airbyte/server:dev 172.18.0.9 +/airbyte-destination postgres 172.17.0.3 +/airbyte-source sha256:5eea76716a190d10fd866f5ac6498c8306382f55c6d910231d37a749ad305960 172.17.0.2 +/airbyte-connector-builder-server airbyte/connector-builder-server:dev 172.18.0.6 +/airbyte-webapp airbyte/webapp:dev 172.18.0.7 +/airbyte-cron airbyte/cron:dev 172.18.0.5 +/airbyte-temporal airbyte/temporal:dev 172.18.0.3 +/airbyte-db airbyte/db:dev 172.18.0.2172.19.0.3 +/airbyte-temporal-ui temporalio/web:1.13.0 172.18.0.4172.19.0.2 +``` + +Huh? No IP address, weird. Interestingly enough, all the IPs are sequential but there is one missing, `172.18.0.1`. If we attempt to use that IP in remote debugger, it works! + +You can now add breakpoints and debug any code which would be executed in the `destination-postgres` container. + +Happy Debugging! + +## Gotchas +So now that your debugger is set up, what else is there to know? + +### Code changes +When you're debugging, you might want to make a code change. Anytime you make a code change, your code will become out of sync with the container which is run by the platform. +Essentially this means that after you've made a change you will need to rebuild the docker container you're debugging. Additionally, for the connector containers, you may have to navigate to +"Settings" in your local Airbyte Platform's web UI and change the version of the container to `dev`. See you connector's `README` for details on how to rebuild the container image. + +### Ports +In this tutorial we've been using port `5005` for all debugging. It's the default, so we haven't changed it. If you need to debug *multiple* containers however, they will clash on this port. +If you need to do this, you will have to modify your setup to use another port that is not in use. From 680f5da491b3810649b377b72a5292610717619f Mon Sep 17 00:00:00 2001 From: Alex Birdsall Date: Fri, 20 Jan 2023 15:39:17 -0800 Subject: [PATCH 14/56] :window: :handshake: Free connectors program confirmation UI (#21623) * Extract STRIPE_SUCCESS_QUERY to hook for reuse Also updates the query string itself so it's no longer identical to the pre-existing checkout success query: this means that a one-off credit transaction triggered from the credits page won't be mistaken for enrollment. * Hide banners, show pop-up after successful enrollment * Show confirmation when user requests verification email * Reraise sendEmailVerification errors, so calling code can register success-only actions in a `.then` callback * Increase the z-index of the Toast UI, so that pop-up notifications aren't obscured by an active modal --- .../src/components/ui/Toast/Toast.module.scss | 1 + .../EnrollmentModal/EnrollmentModal.tsx | 3 +- .../useShowEnrollmentModal.tsx | 20 ++++++++++- .../InlineEnrollmentCallout.tsx | 5 ++- .../LargeEnrollmentCallout.tsx | 4 ++- .../hooks/useFreeConnectorProgram.ts | 33 ++++++++++++++++++- .../src/packages/cloud/locales/en.json | 2 ++ .../cloud/services/auth/AuthService.tsx | 1 + .../views/credits/CreditsPage/CreditsPage.tsx | 4 +-- .../components/EmailVerificationHint.tsx | 3 +- .../ConnectionPage/ConnectionPageTitle.tsx | 6 ++-- airbyte-webapp/src/scss/_z-indices.scss | 10 +++--- 12 files changed, 75 insertions(+), 17 deletions(-) diff --git a/airbyte-webapp/src/components/ui/Toast/Toast.module.scss b/airbyte-webapp/src/components/ui/Toast/Toast.module.scss index 42d4ac5840fe7..d14a776aa30b1 100644 --- a/airbyte-webapp/src/components/ui/Toast/Toast.module.scss +++ b/airbyte-webapp/src/components/ui/Toast/Toast.module.scss @@ -43,6 +43,7 @@ $toast-bottom-margin: 27px; position: fixed; box-sizing: border-box; bottom: $toast-bottom-margin; + margin-left: calc(vars.$width-size-menu / 2); left: 50%; transform: translate(-50%, 0); z-index: z-indices.$notification; diff --git a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/EnrollmentModal.tsx b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/EnrollmentModal.tsx index b580fb1d4adf0..bdbee6b827e50 100644 --- a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/EnrollmentModal.tsx +++ b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/EnrollmentModal.tsx @@ -12,6 +12,7 @@ import { Text } from "components/ui/Text"; import { StripeCheckoutSessionCreate, StripeCheckoutSessionRead } from "packages/cloud/lib/domain/stripe"; +import { STRIPE_SUCCESS_QUERY } from "../hooks/useFreeConnectorProgram"; import { ReactComponent as CardSVG } from "./cards.svg"; import { ReactComponent as ConnectorGridSvg } from "./connectorGrid.svg"; import styles from "./EnrollmentModal.module.scss"; @@ -19,8 +20,6 @@ import { ReactComponent as FreeAlphaBetaPillsSVG } from "./free-alpha-beta-pills import { ReactComponent as FreeSVG } from "./free.svg"; import { ReactComponent as MailSVG } from "./mail.svg"; -const STRIPE_SUCCESS_QUERY = "stripeCheckoutSuccess"; - interface EnrollmentModalContentProps { closeModal: () => void; createCheckout: (p: StripeCheckoutSessionCreate) => Promise; diff --git a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/useShowEnrollmentModal.tsx b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/useShowEnrollmentModal.tsx index 632c615399e8c..bf1849e28d7a6 100644 --- a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/useShowEnrollmentModal.tsx +++ b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/EnrollmentModal/useShowEnrollmentModal.tsx @@ -1,4 +1,9 @@ +import { useIntl } from "react-intl"; + +import { ToastType } from "components/ui/Toast"; + import { useModalService } from "hooks/services/Modal"; +import { useNotificationService } from "hooks/services/Notification"; import { useAuthService } from "packages/cloud/services/auth/AuthService"; import { useStripeCheckout } from "packages/cloud/services/stripe/StripeService"; import { useCurrentWorkspaceId } from "services/workspaces/WorkspacesService"; @@ -10,6 +15,19 @@ export const useShowEnrollmentModal = () => { const { mutateAsync: createCheckout } = useStripeCheckout(); const workspaceId = useCurrentWorkspaceId(); const { emailVerified, sendEmailVerification } = useAuthService(); + const { formatMessage } = useIntl(); + const { registerNotification } = useNotificationService(); + + const verifyEmail = () => + sendEmailVerification() + .then(() => { + registerNotification({ + id: "fcp/verify-email", + text: formatMessage({ id: "freeConnectorProgram.enrollmentModal.validationEmailConfirmation" }), + type: ToastType.INFO, + }); + }) + .catch(); // don't crash the page on error return { showEnrollmentModal: () => { @@ -21,7 +39,7 @@ export const useShowEnrollmentModal = () => { createCheckout={createCheckout} closeModal={closeModal} emailVerified={emailVerified} - sendEmailVerification={sendEmailVerification} + sendEmailVerification={verifyEmail} /> ), }); diff --git a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/InlineEnrollmentCallout.tsx b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/InlineEnrollmentCallout.tsx index bde66bf2d6693..09a425906a9da 100644 --- a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/InlineEnrollmentCallout.tsx +++ b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/InlineEnrollmentCallout.tsx @@ -5,6 +5,7 @@ import { Callout } from "components/ui/Callout"; import { Text } from "components/ui/Text"; import { useShowEnrollmentModal } from "./EnrollmentModal"; +import { useFreeConnectorProgram } from "./hooks/useFreeConnectorProgram"; import styles from "./InlineEnrollmentCallout.module.scss"; export const EnrollLink: React.FC> = ({ children }) => { @@ -17,7 +18,9 @@ export const EnrollLink: React.FC> = ({ children }) = ); }; export const InlineEnrollmentCallout: React.FC = () => { - return ( + const { userDidEnroll } = useFreeConnectorProgram(); + + return userDidEnroll ? null : ( { const { showEnrollmentModal } = useShowEnrollmentModal(); + const { userDidEnroll } = useFreeConnectorProgram(); - return ( + return userDidEnroll ? null : ( diff --git a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/hooks/useFreeConnectorProgram.ts b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/hooks/useFreeConnectorProgram.ts index 014a43014a6cd..2a2cdbe460d4e 100644 --- a/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/hooks/useFreeConnectorProgram.ts +++ b/airbyte-webapp/src/packages/cloud/components/experiments/FreeConnectorProgram/hooks/useFreeConnectorProgram.ts @@ -1,12 +1,21 @@ +import { useState } from "react"; +import { useIntl } from "react-intl"; import { useQuery } from "react-query"; +import { useSearchParams } from "react-router-dom"; +import { useEffectOnce } from "react-use"; + +import { ToastType } from "components/ui/Toast"; import { useExperiment } from "hooks/services/Experiment"; +import { useNotificationService } from "hooks/services/Notification"; import { useConfig } from "packages/cloud/services/config"; import { useDefaultRequestMiddlewares } from "services/useDefaultRequestMiddlewares"; import { useCurrentWorkspaceId } from "services/workspaces/WorkspacesService"; import { webBackendGetFreeConnectorProgramInfoForWorkspace } from "../lib/api"; +export const STRIPE_SUCCESS_QUERY = "fcpEnrollmentSuccess"; + export const useFreeConnectorProgram = () => { const workspaceId = useCurrentWorkspaceId(); const { cloudApiUrl } = useConfig(); @@ -14,8 +23,25 @@ export const useFreeConnectorProgram = () => { const middlewares = useDefaultRequestMiddlewares(); const requestOptions = { config, middlewares }; const freeConnectorProgramEnabled = useExperiment("workspace.freeConnectorsProgram.visible", false); + const [searchParams, setSearchParams] = useSearchParams(); + const [userDidEnroll, setUserDidEnroll] = useState(false); + const { formatMessage } = useIntl(); + const { registerNotification } = useNotificationService(); - return useQuery(["freeConnectorProgramInfo", workspaceId], () => + useEffectOnce(() => { + if (searchParams.has(STRIPE_SUCCESS_QUERY)) { + // Remove the stripe parameter from the URL + setSearchParams({}, { replace: true }); + setUserDidEnroll(true); + registerNotification({ + id: "fcp/enrolled", + text: formatMessage({ id: "freeConnectorProgram.enroll.success" }), + type: ToastType.SUCCESS, + }); + } + }); + + const enrollmentStatusQuery = useQuery(["freeConnectorProgramInfo", workspaceId], () => webBackendGetFreeConnectorProgramInfoForWorkspace({ workspaceId }, requestOptions).then( ({ hasEligibleConnector, hasPaymentAccountSaved }) => { const userIsEligibleToEnroll = !hasPaymentAccountSaved && hasEligibleConnector; @@ -27,4 +53,9 @@ export const useFreeConnectorProgram = () => { } ) ); + + return { + enrollmentStatusQuery, + userDidEnroll, + }; }; diff --git a/airbyte-webapp/src/packages/cloud/locales/en.json b/airbyte-webapp/src/packages/cloud/locales/en.json index 69b6a4cc69af1..25bb28b00a51c 100644 --- a/airbyte-webapp/src/packages/cloud/locales/en.json +++ b/airbyte-webapp/src/packages/cloud/locales/en.json @@ -183,11 +183,13 @@ "freeConnectorProgram.title": "Free Connector Program", "freeConnectorProgram.enrollNow": "Enroll now!", "freeConnectorProgram.enroll.description": "Enroll in the Free Connector Program to use Alpha and Beta connectors for free.", + "freeConnectorProgram.enroll.success": "Successfully enrolled in the Free Connector Program", "freeConnectorProgram.enrollmentModal.title": "Free connector program", "freeConnectorProgram.enrollmentModal.free": "Alpha and Beta Connectors are free while you're in the program.The whole Connection is free until both Connectors have move into General Availability (GA)", "freeConnectorProgram.enrollmentModal.emailNotification": "We will let you know through email before a Connector you use moves to GA", "freeConnectorProgram.enrollmentModal.cardOnFile": "When both Connectors are in GA, the Connection will no longer be free. You'll need to have a credit card on file to enroll so Airbyte can handle a Connection's transition to paid service.", "freeConnectorProgram.enrollmentModal.unvalidatedEmailWarning": "You need to verify your email address before you can enroll in the Free Connector Program. Re-send verification email.", + "freeConnectorProgram.enrollmentModal.validationEmailConfirmation": "Verification email sent", "freeConnectorProgram.enrollmentModal.cancelButtonText": "Cancel", "freeConnectorProgram.enrollmentModal.enrollButtonText": "Enroll now!", "freeConnectorProgram.enrollmentModal.unvalidatedEmailButtonText": "Resend email validation", diff --git a/airbyte-webapp/src/packages/cloud/services/auth/AuthService.tsx b/airbyte-webapp/src/packages/cloud/services/auth/AuthService.tsx index 1fa84ac07a4da..fdccf84cfdca5 100644 --- a/airbyte-webapp/src/packages/cloud/services/auth/AuthService.tsx +++ b/airbyte-webapp/src/packages/cloud/services/auth/AuthService.tsx @@ -273,6 +273,7 @@ export const AuthenticationProvider: React.FC> type: ToastType.ERROR, }); } + throw error; } }, async verifyEmail(code: string): Promise { diff --git a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/CreditsPage.tsx b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/CreditsPage.tsx index 7395779491c11..447d98f5b8760 100644 --- a/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/CreditsPage.tsx +++ b/airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/CreditsPage.tsx @@ -20,8 +20,8 @@ import styles from "./CreditsPage.module.scss"; const CreditsPage: React.FC = () => { const { emailVerified } = useAuthService(); useTrackPage(PageTrackingCodes.CREDITS); - const { data: freeConnectorProgramInfo } = useFreeConnectorProgram(); - const { showEnrollmentUi } = freeConnectorProgramInfo || {}; + const { enrollmentStatusQuery } = useFreeConnectorProgram(); + const { showEnrollmentUi } = enrollmentStatusQuery.data || {}; return ( = ({ className }) => { const [isEmailResend, setIsEmailResend] = useState(false); const onResendVerificationMail = async () => { - await sendEmailVerification(); + // the shared error handling inside `sendEmailVerification` suffices + await sendEmailVerification().catch(); setIsEmailResend(true); }; diff --git a/airbyte-webapp/src/pages/connections/ConnectionPage/ConnectionPageTitle.tsx b/airbyte-webapp/src/pages/connections/ConnectionPage/ConnectionPageTitle.tsx index a98a76ec19053..86e7194be2777 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionPage/ConnectionPageTitle.tsx +++ b/airbyte-webapp/src/pages/connections/ConnectionPage/ConnectionPageTitle.tsx @@ -26,8 +26,8 @@ export const ConnectionPageTitle: React.FC = () => { const { connection } = useConnectionEditService(); - const { data: freeConnectorProgramInfo } = useFreeConnectorProgram(); - const displayEnrollmentCallout = freeConnectorProgramInfo?.showEnrollmentUi; + const { enrollmentStatusQuery } = useFreeConnectorProgram(); + const { showEnrollmentUi } = enrollmentStatusQuery.data || {}; const steps = useMemo(() => { const steps = [ @@ -80,7 +80,7 @@ export const ConnectionPageTitle: React.FC = () => {
- {displayEnrollmentCallout && } + {showEnrollmentUi && }
diff --git a/airbyte-webapp/src/scss/_z-indices.scss b/airbyte-webapp/src/scss/_z-indices.scss index 71ec0051a4ca0..752c0b00ecb38 100644 --- a/airbyte-webapp/src/scss/_z-indices.scss +++ b/airbyte-webapp/src/scss/_z-indices.scss @@ -1,11 +1,11 @@ -$tooltip: 9999 + 3; +$tooltip: 9999 + 4; +$notification: 9999 + 3; $datepicker: 9999 + 2; $modal: 9999 + 1; $sidebar: 9999; -$panelSplitter: 0; -$dropdownMenu: 2; -$notification: 20; -$schemaChangesBackdrop: 3; $schemaChangesBackdropContent: 4; +$schemaChangesBackdrop: 3; +$dropdownMenu: 2; $switchSliderBefore: 1; $tableScroll: 1; +$panelSplitter: 0; From 6026465c52b7755dfc4a0b5c92bc229fa84f7db4 Mon Sep 17 00:00:00 2001 From: Anne <102554163+alovew@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:32:23 -0800 Subject: [PATCH 15/56] Remove jobPersistence dependency (#21625) * Remove JobPersistence from ConfigFetchActivityImpl --- airbyte-api/src/main/openapi/config.yaml | 30 + .../workers/config/ApiClientBeanFactory.java | 6 + .../server/apis/JobsApiController.java | 8 + .../server/converters/JobConverter.java | 6 + .../server/handlers/JobHistoryHandler.java | 12 + .../activities/ConfigFetchActivityImpl.java | 40 +- .../activities/ConfigFetchActivityTest.java | 74 +-- .../api/generated-api-html/index.html | 622 ++++++++++-------- 8 files changed, 477 insertions(+), 321 deletions(-) diff --git a/airbyte-api/src/main/openapi/config.yaml b/airbyte-api/src/main/openapi/config.yaml index 79ec520942b2c..2107c31066f7e 100644 --- a/airbyte-api/src/main/openapi/config.yaml +++ b/airbyte-api/src/main/openapi/config.yaml @@ -1989,6 +1989,28 @@ paths: $ref: "#/components/responses/NotFoundResponse" "422": $ref: "#/components/responses/InvalidInputResponse" + /v1/jobs/get_last_replication_job: + post: + tags: + - jobs + operationId: getLastReplicationJob + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectionIdRequestBody" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/JobOptionalRead" + "404": + $ref: "#/components/responses/NotFoundResponse" + "422": + $ref: "#/components/responses/InvalidInputResponse" /v1/jobs/get_light: post: tags: @@ -3907,6 +3929,9 @@ components: updatedAt: type: integer format: int64 + startedAt: + type: integer + format: int64 status: $ref: "#/components/schemas/JobStatus" resetConfig: @@ -4142,6 +4167,11 @@ components: properties: job: $ref: "#/components/schemas/JobRead" + JobOptionalRead: + type: object + properties: + job: + $ref: "#/components/schemas/JobRead" JobDebugInfoRead: type: object required: diff --git a/airbyte-commons-worker/src/main/java/io/airbyte/workers/config/ApiClientBeanFactory.java b/airbyte-commons-worker/src/main/java/io/airbyte/workers/config/ApiClientBeanFactory.java index d7e5d80407c0c..47f2c7cded307 100644 --- a/airbyte-commons-worker/src/main/java/io/airbyte/workers/config/ApiClientBeanFactory.java +++ b/airbyte-commons-worker/src/main/java/io/airbyte/workers/config/ApiClientBeanFactory.java @@ -11,6 +11,7 @@ import io.airbyte.api.client.AirbyteApiClient; import io.airbyte.api.client.generated.ConnectionApi; import io.airbyte.api.client.generated.DestinationApi; +import io.airbyte.api.client.generated.JobsApi; import io.airbyte.api.client.generated.SourceApi; import io.airbyte.api.client.generated.WorkspaceApi; import io.airbyte.api.client.invoker.generated.ApiClient; @@ -72,6 +73,11 @@ public SourceApi sourceApi(@Named("apiClient") final ApiClient apiClient) { return new SourceApi(apiClient); } + @Singleton + public JobsApi jobsApi(@Named("apiClient") final ApiClient apiClient) { + return new JobsApi(apiClient); + } + @Singleton public DestinationApi destinationApi(final ApiClient apiClient) { return new DestinationApi(apiClient); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java index f09d331038a24..9fadce045d05c 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java @@ -6,11 +6,13 @@ import io.airbyte.api.generated.JobsApi; import io.airbyte.api.model.generated.AttemptNormalizationStatusReadList; +import io.airbyte.api.model.generated.ConnectionIdRequestBody; import io.airbyte.api.model.generated.JobDebugInfoRead; import io.airbyte.api.model.generated.JobIdRequestBody; import io.airbyte.api.model.generated.JobInfoLightRead; import io.airbyte.api.model.generated.JobInfoRead; import io.airbyte.api.model.generated.JobListRequestBody; +import io.airbyte.api.model.generated.JobOptionalRead; import io.airbyte.api.model.generated.JobReadList; import io.airbyte.server.handlers.JobHistoryHandler; import io.airbyte.server.handlers.SchedulerHandler; @@ -63,6 +65,12 @@ public JobInfoLightRead getJobInfoLight(final JobIdRequestBody jobIdRequestBody) return ApiHelper.execute(() -> jobHistoryHandler.getJobInfoLight(jobIdRequestBody)); } + @Post("/get_last_replication_job") + @Override + public JobOptionalRead getLastReplicationJob(final ConnectionIdRequestBody connectionIdRequestBody) { + return ApiHelper.execute(() -> jobHistoryHandler.getLastReplicationJob(connectionIdRequestBody)); + } + @Post("/list") @Override public JobReadList listJobsFor(final JobListRequestBody jobListRequestBody) { diff --git a/airbyte-server/src/main/java/io/airbyte/server/converters/JobConverter.java b/airbyte-server/src/main/java/io/airbyte/server/converters/JobConverter.java index 289d1458003e0..9a3d479749e0f 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/converters/JobConverter.java +++ b/airbyte-server/src/main/java/io/airbyte/server/converters/JobConverter.java @@ -19,6 +19,7 @@ import io.airbyte.api.model.generated.JobDebugRead; import io.airbyte.api.model.generated.JobInfoLightRead; import io.airbyte.api.model.generated.JobInfoRead; +import io.airbyte.api.model.generated.JobOptionalRead; import io.airbyte.api.model.generated.JobRead; import io.airbyte.api.model.generated.JobStatus; import io.airbyte.api.model.generated.JobWithAttemptsRead; @@ -72,6 +73,10 @@ public JobInfoLightRead getJobInfoLightRead(final Job job) { return new JobInfoLightRead().job(getJobRead(job)); } + public JobOptionalRead getJobOptionalRead(final Job job) { + return new JobOptionalRead().job(getJobRead(job)); + } + public static JobDebugRead getDebugJobInfoRead(final JobInfoRead jobInfoRead, final SourceDefinitionRead sourceDefinitionRead, final DestinationDefinitionRead destinationDefinitionRead, @@ -103,6 +108,7 @@ public static JobRead getJobRead(final Job job) { .resetConfig(extractResetConfigIfReset(job).orElse(null)) .createdAt(job.getCreatedAtInSecond()) .updatedAt(job.getUpdatedAtInSecond()) + .startedAt(job.getStartedAtInSecond().isPresent() ? job.getStartedAtInSecond().get() : null) .status(Enums.convertTo(job.getStatus(), JobStatus.class)); } diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/JobHistoryHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/JobHistoryHandler.java index d12fdad8a77cc..579e0b4672a4e 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/JobHistoryHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/JobHistoryHandler.java @@ -10,6 +10,7 @@ import io.airbyte.api.model.generated.AttemptRead; import io.airbyte.api.model.generated.AttemptStats; import io.airbyte.api.model.generated.AttemptStreamStats; +import io.airbyte.api.model.generated.ConnectionIdRequestBody; import io.airbyte.api.model.generated.ConnectionRead; import io.airbyte.api.model.generated.DestinationDefinitionIdRequestBody; import io.airbyte.api.model.generated.DestinationDefinitionRead; @@ -21,6 +22,7 @@ import io.airbyte.api.model.generated.JobInfoLightRead; import io.airbyte.api.model.generated.JobInfoRead; import io.airbyte.api.model.generated.JobListRequestBody; +import io.airbyte.api.model.generated.JobOptionalRead; import io.airbyte.api.model.generated.JobRead; import io.airbyte.api.model.generated.JobReadList; import io.airbyte.api.model.generated.JobWithAttemptsRead; @@ -194,6 +196,16 @@ public JobInfoLightRead getJobInfoLight(final JobIdRequestBody jobIdRequestBody) return jobConverter.getJobInfoLightRead(job); } + public JobOptionalRead getLastReplicationJob(final ConnectionIdRequestBody connectionIdRequestBody) throws IOException { + Optional job = jobPersistence.getLastReplicationJob(connectionIdRequestBody.getConnectionId()); + if (job.isEmpty()) { + return new JobOptionalRead(); + } else { + return jobConverter.getJobOptionalRead(job.get()); + } + + } + public JobDebugInfoRead getJobDebugInfo(final JobIdRequestBody jobIdRequestBody) throws ConfigNotFoundException, IOException, JsonValidationException { final Job job = jobPersistence.getJob(jobIdRequestBody.getId()); diff --git a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityImpl.java b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityImpl.java index 74ee4d751b9b3..6e935af243a24 100644 --- a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityImpl.java +++ b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityImpl.java @@ -10,6 +10,7 @@ import com.google.common.annotations.VisibleForTesting; import datadog.trace.api.Trace; import io.airbyte.api.client.generated.ConnectionApi; +import io.airbyte.api.client.generated.JobsApi; import io.airbyte.api.client.generated.WorkspaceApi; import io.airbyte.api.client.invoker.generated.ApiException; import io.airbyte.api.client.model.generated.ConnectionIdRequestBody; @@ -20,11 +21,11 @@ import io.airbyte.api.client.model.generated.ConnectionScheduleDataCron; import io.airbyte.api.client.model.generated.ConnectionScheduleType; import io.airbyte.api.client.model.generated.ConnectionStatus; +import io.airbyte.api.client.model.generated.JobOptionalRead; +import io.airbyte.api.client.model.generated.JobRead; import io.airbyte.api.client.model.generated.WorkspaceRead; import io.airbyte.commons.temporal.exception.RetryableException; import io.airbyte.metrics.lib.ApmTraceUtils; -import io.airbyte.persistence.job.JobPersistence; -import io.airbyte.persistence.job.models.Job; import io.micronaut.context.annotation.Value; import jakarta.inject.Named; import jakarta.inject.Singleton; @@ -61,19 +62,19 @@ public class ConfigFetchActivityImpl implements ConfigFetchActivity { UUID.fromString("226edbc1-4a9c-4401-95a9-90435d667d9d")); private static final long SCHEDULING_NOISE_CONSTANT = 15; - private final JobPersistence jobPersistence; + private final JobsApi jobsApi; private final WorkspaceApi workspaceApi; private final Integer syncJobMaxAttempts; private final Supplier currentSecondsSupplier; private final ConnectionApi connectionApi; @VisibleForTesting - protected ConfigFetchActivityImpl(final JobPersistence jobPersistence, + protected ConfigFetchActivityImpl(final JobsApi jobsApi, final WorkspaceApi workspaceApi, @Value("${airbyte.worker.sync.max-attempts}") final Integer syncJobMaxAttempts, @Named("currentSecondsSupplier") final Supplier currentSecondsSupplier, final ConnectionApi connectionApi) { - this.jobPersistence = jobPersistence; + this.jobsApi = jobsApi; this.workspaceApi = workspaceApi; this.syncJobMaxAttempts = syncJobMaxAttempts; this.currentSecondsSupplier = currentSecondsSupplier; @@ -104,21 +105,22 @@ public ScheduleRetrieverOutput getTimeToWait(final ScheduleRetrieverInput input) * * This method consumes the `scheduleType` and `scheduleData` fields. */ - private ScheduleRetrieverOutput getTimeToWaitFromScheduleType(final ConnectionRead connectionRead, final UUID connectionId) throws IOException { + private ScheduleRetrieverOutput getTimeToWaitFromScheduleType(final ConnectionRead connectionRead, final UUID connectionId) + throws IOException, ApiException { if (connectionRead.getScheduleType() == ConnectionScheduleType.MANUAL || connectionRead.getStatus() != ConnectionStatus.ACTIVE) { // Manual syncs wait for their first run return new ScheduleRetrieverOutput(Duration.ofDays(100 * 365)); } - final Optional previousJobOptional = jobPersistence.getLastReplicationJob(connectionId); + final JobOptionalRead previousJobOptional = jobsApi.getLastReplicationJob(new ConnectionIdRequestBody().connectionId(connectionId)); if (connectionRead.getScheduleType() == ConnectionScheduleType.BASIC) { - if (previousJobOptional.isEmpty()) { + if (previousJobOptional.getJob() == null) { // Basic schedules don't wait for their first run. return new ScheduleRetrieverOutput(Duration.ZERO); } - final Job previousJob = previousJobOptional.get(); - final long prevRunStart = previousJob.getStartedAtInSecond().orElse(previousJob.getCreatedAtInSecond()); + final long prevRunStart = previousJobOptional.getJob().getStartedAt() != null ? previousJobOptional.getJob().getStartedAt() + : previousJobOptional.getJob().getCreatedAt(); final long nextRunStart = prevRunStart + getIntervalInSecond(connectionRead.getScheduleData().getBasicSchedule()); final Duration timeToWait = Duration.ofSeconds( Math.max(0, nextRunStart - currentSecondsSupplier.get())); @@ -135,9 +137,10 @@ private ScheduleRetrieverOutput getTimeToWaitFromScheduleType(final ConnectionRe // us from multiple executions for the same scheduled time, since cron only has a 1-minute // resolution. final long earliestNextRun = Math.max(currentSecondsSupplier.get() * MS_PER_SECOND, - (previousJobOptional.isPresent() - ? previousJobOptional.get().getStartedAtInSecond().orElse(previousJobOptional.get().getCreatedAtInSecond()) - + MIN_CRON_INTERVAL_SECONDS + (previousJobOptional.getJob() != null + ? previousJobOptional.getJob().getStartedAt() != null ? previousJobOptional.getJob().getStartedAt() + MIN_CRON_INTERVAL_SECONDS + : previousJobOptional.getJob().getCreatedAt() + + MIN_CRON_INTERVAL_SECONDS : currentSecondsSupplier.get()) * MS_PER_SECOND); final Date nextRunStart = cronExpression.getNextValidTimeAfter(new Date(earliestNextRun)); Duration timeToWait = Duration.ofSeconds( @@ -185,21 +188,22 @@ private Duration addSchedulingNoiseForAllowListedWorkspace(Duration timeToWait, * * This method consumes the `schedule` field. */ - private ScheduleRetrieverOutput getTimeToWaitFromLegacy(final ConnectionRead connectionRead, final UUID connectionId) throws IOException { + private ScheduleRetrieverOutput getTimeToWaitFromLegacy(final ConnectionRead connectionRead, final UUID connectionId) + throws IOException, ApiException { if (connectionRead.getSchedule() == null || connectionRead.getStatus() != ConnectionStatus.ACTIVE) { // Manual syncs wait for their first run return new ScheduleRetrieverOutput(Duration.ofDays(100 * 365)); } - final Optional previousJobOptional = jobPersistence.getLastReplicationJob(connectionId); + final JobOptionalRead previousJobOptional = jobsApi.getLastReplicationJob(new ConnectionIdRequestBody().connectionId(connectionId)); - if (previousJobOptional.isEmpty() && connectionRead.getSchedule() != null) { + if (previousJobOptional.getJob() == null && connectionRead.getSchedule() != null) { // Non-manual syncs don't wait for their first run return new ScheduleRetrieverOutput(Duration.ZERO); } - final Job previousJob = previousJobOptional.get(); - final long prevRunStart = previousJob.getStartedAtInSecond().orElse(previousJob.getCreatedAtInSecond()); + final JobRead previousJob = previousJobOptional.getJob(); + final long prevRunStart = previousJob.getStartedAt() != null ? previousJob.getStartedAt() : previousJob.getCreatedAt(); final long nextRunStart = prevRunStart + getIntervalInSecond(connectionRead.getSchedule()); diff --git a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityTest.java b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityTest.java index 320df0ac0af4d..d372d91b3377e 100644 --- a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityTest.java +++ b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/ConfigFetchActivityTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.when; import io.airbyte.api.client.generated.ConnectionApi; +import io.airbyte.api.client.generated.JobsApi; import io.airbyte.api.client.generated.WorkspaceApi; import io.airbyte.api.client.invoker.generated.ApiException; import io.airbyte.api.client.model.generated.ConnectionRead; @@ -18,10 +19,10 @@ import io.airbyte.api.client.model.generated.ConnectionScheduleDataCron; import io.airbyte.api.client.model.generated.ConnectionScheduleType; import io.airbyte.api.client.model.generated.ConnectionStatus; +import io.airbyte.api.client.model.generated.JobOptionalRead; +import io.airbyte.api.client.model.generated.JobRead; import io.airbyte.api.client.model.generated.WorkspaceRead; import io.airbyte.config.persistence.ConfigNotFoundException; -import io.airbyte.persistence.job.JobPersistence; -import io.airbyte.persistence.job.models.Job; import io.airbyte.validation.json.JsonValidationException; import io.airbyte.workers.temporal.scheduling.activities.ConfigFetchActivity.ScheduleRetrieverInput; import io.airbyte.workers.temporal.scheduling.activities.ConfigFetchActivity.ScheduleRetrieverOutput; @@ -29,7 +30,6 @@ import java.time.Duration; import java.time.Instant; import java.util.Calendar; -import java.util.Optional; import java.util.TimeZone; import java.util.UUID; import org.assertj.core.api.Assertions; @@ -47,12 +47,12 @@ class ConfigFetchActivityTest { private static final Integer SYNC_JOB_MAX_ATTEMPTS = 3; @Mock - private JobPersistence mJobPersistence; + private JobsApi mJobsApi; @Mock private WorkspaceApi mWorkspaceApi; @Mock - private Job mJob; + private JobRead mJobRead; @Mock private ConnectionApi mConnectionApi; @@ -103,7 +103,7 @@ class ConfigFetchActivityTest { @BeforeEach void setup() { configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> Instant.now().getEpochSecond(), mConnectionApi); } @@ -113,8 +113,8 @@ class TimeToWaitTest { @Test @DisplayName("Test that the job gets scheduled if it is not manual and if it is the first run with legacy schedule schema") void testFirstJobNonManual() throws IOException, JsonValidationException, ConfigNotFoundException, ApiException { - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.empty()); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead()); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithLegacySchedule); @@ -173,13 +173,13 @@ void testDeleted() throws ApiException { @DisplayName("Test we will wait the required amount of time with legacy config") void testWait() throws IOException, JsonValidationException, ConfigNotFoundException, ApiException { configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 3, mConnectionApi); + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 3, mConnectionApi); - when(mJob.getStartedAtInSecond()) - .thenReturn(Optional.of(60L)); + when(mJobRead.getStartedAt()) + .thenReturn(60L); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithLegacySchedule); @@ -196,13 +196,13 @@ void testWait() throws IOException, JsonValidationException, ConfigNotFoundExcep @DisplayName("Test we will not wait if we are late in the legacy schedule schema") void testNotWaitIfLate() throws IOException, ApiException { configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 10, mConnectionApi); + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 10, mConnectionApi); - when(mJob.getStartedAtInSecond()) - .thenReturn(Optional.of(60L)); + when(mJobRead.getStartedAt()) + .thenReturn(60L); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithLegacySchedule); @@ -234,8 +234,8 @@ void testManualScheduleType() throws ApiException { @Test @DisplayName("Test that the job will be immediately scheduled if it is a BASIC_SCHEDULE type on the first run") void testBasicScheduleTypeFirstRun() throws IOException, ApiException { - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.empty()); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead()); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithBasicScheduleType); @@ -251,13 +251,13 @@ void testBasicScheduleTypeFirstRun() throws IOException, ApiException { @Test @DisplayName("Test that we will wait the required amount of time with a BASIC_SCHEDULE type on a subsequent run") void testBasicScheduleSubsequentRun() throws IOException, ApiException { - configFetchActivity = new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 3, mConnectionApi); + configFetchActivity = new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> 60L * 3, mConnectionApi); - when(mJob.getStartedAtInSecond()) - .thenReturn(Optional.of(60L)); + when(mJobRead.getStartedAt()) + .thenReturn(60L); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithBasicScheduleType); @@ -282,11 +282,11 @@ void testCronScheduleSubsequentRun() throws IOException, JsonValidationException when(mWorkspaceApi.getWorkspaceByConnectionId(any())).thenReturn(new WorkspaceRead().workspaceId(UUID.randomUUID())); configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> mockRightNow.getTimeInMillis() / 1000L, mConnectionApi); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithCronScheduleType); @@ -311,12 +311,12 @@ void testCronScheduleMinimumInterval() throws IOException, JsonValidationExcepti when(mWorkspaceApi.getWorkspaceByConnectionId(any())).thenReturn(new WorkspaceRead().workspaceId(UUID.randomUUID())); configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> mockRightNow.getTimeInMillis() / 1000L, mConnectionApi); - when(mJob.getStartedAtInSecond()).thenReturn(Optional.of(mockRightNow.getTimeInMillis() / 1000L)); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobRead.getStartedAt()).thenReturn(mockRightNow.getTimeInMillis() / 1000L); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithCronScheduleType); @@ -342,12 +342,12 @@ void testCronSchedulingNoise() throws IOException, JsonValidationException, Conf .thenReturn(new WorkspaceRead().workspaceId(UUID.fromString("226edbc1-4a9c-4401-95a9-90435d667d9d"))); configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, SYNC_JOB_MAX_ATTEMPTS, () -> mockRightNow.getTimeInMillis() / 1000L, mConnectionApi); - when(mJob.getStartedAtInSecond()).thenReturn(Optional.of(mockRightNow.getTimeInMillis() / 1000L)); - when(mJobPersistence.getLastReplicationJob(connectionId)) - .thenReturn(Optional.of(mJob)); + when(mJobRead.getStartedAt()).thenReturn(mockRightNow.getTimeInMillis() / 1000L); + when(mJobsApi.getLastReplicationJob(any())) + .thenReturn(new JobOptionalRead().job(mJobRead)); when(mConnectionApi.getConnection(any())) .thenReturn(connectionReadWithCronScheduleType); @@ -368,7 +368,7 @@ class TestGetMaxAttempt { void testGetMaxAttempt() { final int maxAttempt = 15031990; configFetchActivity = - new ConfigFetchActivityImpl(mJobPersistence, mWorkspaceApi, maxAttempt, () -> Instant.now().getEpochSecond(), mConnectionApi); + new ConfigFetchActivityImpl(mJobsApi, mWorkspaceApi, maxAttempt, () -> Instant.now().getEpochSecond(), mConnectionApi); Assertions.assertThat(configFetchActivity.getMaxAttempt().getMaxAttempt()) .isEqualTo(maxAttempt); } diff --git a/docs/reference/api/generated-api-html/index.html b/docs/reference/api/generated-api-html/index.html index 340fc7c457940..7489b2e65eefd 100644 --- a/docs/reference/api/generated-api-html/index.html +++ b/docs/reference/api/generated-api-html/index.html @@ -282,6 +282,7 @@

Jobs

  • post /v1/jobs/get_debug_info
  • post /v1/jobs/get
  • post /v1/jobs/get_light
  • +
  • post /v1/jobs/get_last_replication_job
  • post /v1/jobs/list
  • Logs

    @@ -1252,6 +1253,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -1267,12 +1269,12 @@

    Example data

    "attempts" : [ { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -1280,45 +1282,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -1326,12 +1328,12 @@

    Example data

    }, { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -1339,45 +1341,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -1650,6 +1652,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -1665,12 +1668,12 @@

    Example data

    "attempts" : [ { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -1678,45 +1681,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -1724,12 +1727,12 @@

    Example data

    }, { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -1737,45 +1740,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4189,6 +4192,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -4204,12 +4208,12 @@

    Example data

    "attempts" : [ { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4217,45 +4221,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4263,12 +4267,12 @@

    Example data

    }, { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4276,45 +4280,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4524,12 +4528,12 @@

    Example data

    "attempts" : [ { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4537,45 +4541,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4583,12 +4587,12 @@

    Example data

    }, { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4596,45 +4600,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4700,6 +4704,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -4715,12 +4720,12 @@

    Example data

    "attempts" : [ { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4728,45 +4733,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4774,12 +4779,12 @@

    Example data

    }, { "attempt" : { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4787,45 +4792,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, "logs" : { "logLines" : [ "logLines", "logLines" ] @@ -4891,6 +4896,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -4924,6 +4930,79 @@

    422

    InvalidInputExceptionInfo
    +
    +
    + Up +
    post /v1/jobs/get_last_replication_job
    +
    (getLastReplicationJob)
    +
    + + +

    Consumes

    + This API call consumes the following media types via the Content-Type request header: +
      +
    • application/json
    • +
    + +

    Request body

    +
    +
    ConnectionIdRequestBody ConnectionIdRequestBody (required)
    + +
    Body Parameter
    + +
    + + + + +

    Return type

    + + + + +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "job" : {
    +    "createdAt" : 6,
    +    "configId" : "configId",
    +    "startedAt" : 5,
    +    "id" : 0,
    +    "resetConfig" : {
    +      "streamsToReset" : [ {
    +        "name" : "name",
    +        "namespace" : "namespace"
    +      }, {
    +        "name" : "name",
    +        "namespace" : "namespace"
    +      } ]
    +    },
    +    "updatedAt" : 1
    +  }
    +}
    + +

    Produces

    + This API call produces the following media types according to the Accept request header; + the media type will be conveyed by the Content-Type response header. +
      +
    • application/json
    • +
    + +

    Responses

    +

    200

    + Successful operation + JobOptionalRead +

    404

    + Object with given id was not found. + NotFoundKnownExceptionInfo +

    422

    + Input failed validation + InvalidInputExceptionInfo +
    +
    Up @@ -4965,6 +5044,7 @@

    Example data

    "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -4979,12 +5059,12 @@

    Example data

    }, "attempts" : [ { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -4992,53 +5072,53 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -5046,50 +5126,51 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 } ] }, { "job" : { "createdAt" : 6, "configId" : "configId", + "startedAt" : 5, "id" : 0, "resetConfig" : { "streamsToReset" : [ { @@ -5104,12 +5185,12 @@

    Example data

    }, "attempts" : [ { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -5117,53 +5198,53 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 }, { "totalStats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "failureSummary" : { "failures" : [ { @@ -5171,45 +5252,45 @@

    Example data

    "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 }, { "retryable" : true, "stacktrace" : "stacktrace", "internalMessage" : "internalMessage", "externalMessage" : "externalMessage", - "timestamp" : 6 + "timestamp" : 7 } ], "partialSuccess" : true }, - "createdAt" : 5, - "bytesSynced" : 9, - "endedAt" : 7, + "createdAt" : 2, + "bytesSynced" : 3, + "endedAt" : 9, "streamStats" : [ { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" }, { "stats" : { - "stateMessagesEmitted" : 7, + "stateMessagesEmitted" : 1, "recordsCommitted" : 1, - "bytesEmitted" : 4, - "estimatedBytes" : 1, + "bytesEmitted" : 7, + "estimatedBytes" : 6, "estimatedRecords" : 1, - "recordsEmitted" : 2 + "recordsEmitted" : 4 }, "streamNamespace" : "streamNamespace", "streamName" : "streamName" } ], "id" : 5, - "recordsSynced" : 3, - "updatedAt" : 2 + "recordsSynced" : 2, + "updatedAt" : 7 } ] } ] } @@ -10267,6 +10348,7 @@

    Table of Contents

  • JobInfoLightRead -
  • JobInfoRead -
  • JobListRequestBody -
  • +
  • JobOptionalRead -
  • JobRead -
  • JobReadList -
  • JobStatus -
  • @@ -11185,6 +11267,13 @@

    JobListRequestBody - pagination (optional)

    +
    +

    JobOptionalRead - Up

    +
    +
    +
    job (optional)
    +
    +

    JobRead - Up

    @@ -11194,6 +11283,7 @@

    JobRead - configId

    createdAt
    Long format: int64
    updatedAt
    Long format: int64
    +
    startedAt (optional)
    Long format: int64
    status
    resetConfig (optional)
    From b0e5ea9479c27ae559d125563233b0ff4fb5522c Mon Sep 17 00:00:00 2001 From: Baz Date: Sat, 21 Jan 2023 12:44:36 +0200 Subject: [PATCH 16/56] =?UTF-8?q?=F0=9F=93=84=20=F0=9F=90=9B=20Source=20Ne?= =?UTF-8?q?tsuite:=20`check=5Fconnection`=20fix=20+=20edited=20public=20do?= =?UTF-8?q?cs=20(#21645)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-netsuite/Dockerfile | 2 +- .../source-netsuite/source_netsuite/source.py | 8 ++- docs/integrations/sources/netsuite.md | 60 +++++++++++-------- 5 files changed, 43 insertions(+), 31 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index e7dfad1c3c127..09cccc9afda50 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -1099,7 +1099,7 @@ - name: Netsuite sourceDefinitionId: 4f2f093d-ce44-4121-8118-9d13b7bfccd0 dockerRepository: airbyte/source-netsuite - dockerImageTag: 0.1.2 + dockerImageTag: 0.1.3 documentationUrl: https://docs.airbyte.com/integrations/sources/netsuite icon: netsuite.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index dc9f71b621a75..1a239c21a78d4 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -9374,7 +9374,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-netsuite:0.1.2" +- dockerImage: "airbyte/source-netsuite:0.1.3" spec: documentationUrl: "https://docsurl.com" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-netsuite/Dockerfile b/airbyte-integrations/connectors/source-netsuite/Dockerfile index 6633bd9c7308e..4e301fccfbd33 100644 --- a/airbyte-integrations/connectors/source-netsuite/Dockerfile +++ b/airbyte-integrations/connectors/source-netsuite/Dockerfile @@ -35,5 +35,5 @@ COPY source_netsuite ./source_netsuite ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.2 +LABEL io.airbyte.version=0.1.3 LABEL io.airbyte.name=airbyte/source-netsuite diff --git a/airbyte-integrations/connectors/source-netsuite/source_netsuite/source.py b/airbyte-integrations/connectors/source-netsuite/source_netsuite/source.py index cb4cff8ee66f0..a129e6fc57711 100644 --- a/airbyte-integrations/connectors/source-netsuite/source_netsuite/source.py +++ b/airbyte-integrations/connectors/source-netsuite/source_netsuite/source.py @@ -21,18 +21,20 @@ class SourceNetsuite(AbstractSource): logger: logging.Logger = logging.getLogger("airbyte") def auth(self, config: Mapping[str, Any]) -> OAuth1: + # the `realm` param should be in format of: 12345_SB1 + realm = config["realm"].replace("-", "_").upper() return OAuth1( client_key=config["consumer_key"], client_secret=config["consumer_secret"], resource_owner_key=config["token_key"], resource_owner_secret=config["token_secret"], - realm=config["realm"], + realm=realm, signature_method="HMAC-SHA256", ) def base_url(self, config: Mapping[str, Any]) -> str: - realm = config["realm"] - subdomain = realm.lower().replace("_", "-") + # the subdomain should be in format of: 12345-sb1 + subdomain = config["realm"].replace("_", "-").lower() return f"https://{subdomain}.suitetalk.api.netsuite.com" def get_session(self, auth: OAuth1) -> requests.Session: diff --git a/docs/integrations/sources/netsuite.md b/docs/integrations/sources/netsuite.md index ee62dc8d9c813..8747c21b99503 100644 --- a/docs/integrations/sources/netsuite.md +++ b/docs/integrations/sources/netsuite.md @@ -9,7 +9,7 @@ This connector implements the [SuiteTalk REST Web Services](https://docs.oracle. * Allowed access to all Account permissions options ## Airbyte OSS and Airbyte Cloud -* Realm +* Realm (Account ID) * Consumer Key * Consumer Secret * Token ID @@ -25,46 +25,55 @@ This connector implements the [SuiteTalk REST Web Services](https://docs.oracle. #### Step 2.1: Obtain Realm info 1. Login into your NetSuite [account](https://system.netsuite.com/pages/customerlogin.jsp?country=US) 2. Go to **Setup** » **Company** » **Company Information** -3. Copy your Account ID. It will looks like **1234567** if you use regular account or **1234567_SB2** if it is a Sandbox +3. Copy your Account ID (Realm). It should look like **1234567** for the `Production` env. or **1234567_SB2** - for a `Sandbox` #### Step 2.2: Enable features 1. Go to **Setup** » **Company** » **Enable Features** 2. Click on **SuiteCloud** tab -3. Scroll down to **Manage Authentication** section -4. Enable checkbox **TOKEN-BASED AUTHENTICATION** -5. Save changes +3. Scroll down to **SuiteScript** section +4. Enable checkbox for `CLIENT SUITESCRIPT` and `SERVER SUITESCRIPT` +5. Scroll down to **Manage Authentication** section +6. Enable checkbox `TOKEN-BASED AUTHENTICATION` +7. Scroll down to **SuiteTalk (Web Services)** +8. Enable checkbox `REST WEB SERVISES` +9. Save the changes #### Step 2.3: Create Integration (obtain Consumer Key and Consumer Secret) 1. Go to **Setup** » **Integration** » **Manage Integrations** » **New** -2. Fill the **Name** field. *It is a just description of integration* -3. **State** will keep **enabled** -4. Enable checkbox **Token-Based Authentication** on *Authentication* section +2. Fill the **Name** field (we recommend to put `airbyte-rest-integration` for a name) +3. Make sure the **State** is `enabled` +4. Enable checkbox `Token-Based Authentication` in **Authentication** section 5. Save changes -6. After that, **Consumer Key** and **Consumer Secret** will be showed once, copy them. -#### Step 2.4: Setup Role +6. After that, **Consumer Key** and **Consumer Secret** will be showed once (copy them to the safe place) +#### Step 2.4: Setup Role 1. Go to **Setup** » **Users/Roles** » **Manage Roles** » **New** -2. Fill the **Name** field. +2. Fill the **Name** field (we recommend to put `airbyte-integration-role` for a name) 3. Scroll down to **Permissions** tab -4. You need to select manually each record on selection lists and give at least **Read-only** level access on the next tabs: (Permissions, Reports, Lists, Setup, Custom Records). You strongly need to be careful and attentive on this point. -5. -#### Step 2.5: Setup User -1. Go to **Setup** » **Users/Roles** » **Manage Users** -2. In column _Name_ click on the user’s name you want to give access -3. Then click on **Edit** button under the user’s name +4. (REQUIRED) Click on `Transactions` and manually `add` all the dropdown entities with either `full` or `view` access level. +5. (REQUIRED) Click on `Reports` and manually `add` all the dropdown entities with either `full` or `view` access level. +6. (REQUIRED) Click on `Lists` and manually `add` all the dropdown entities with either `full` or `view` access level. +7. (REQUIRED) Click on `Setup` and manually `add` all the dropdown entities with either `full` or `view` access level. +* Make sure you've done all `REQUIRED` steps correctly, to avoid sync issues in the future. +* Please edit these params again when you `rename` or `customise` any `Object` in Netsuite for `airbyte-integration-role` to reflect such changes. + +#### Step 2.5: Setup User +1. Go to **Setup** » **Users/Roles** » **Manage Users** +2. In column `Name` click on the user’s name you want to give access to the `airbyte-integration-role` +3. Then click on **Edit** button under the user’s name 4. Scroll down to **Access** tab at the bottom -5. Select from dropdown list the role which you created in step 2.4 +5. Select from dropdown list the `airbyte-integration-role` role which you created in step 2.4 6. Save changes #### Step 2.6: Create Access Token for role 1. Go to **Setup** » **Users/Roles** » **Access Tokens** » **New** 2. Select an **Application Name** -3. Under **User** select the user you assigned the _Role_ in the step **2.4** -4. Inside **Role** select the one you gave to the user in the step **2.5** -5. Under **Token Name** you can give a descriptive name to the Token you are creating -6. Save changes -7. After that, **Token ID** and **Token Secret** will be showed once, copy them. +3. Under **User** select the user you assigned the `airbyte-integration-role` in the step **2.4** +4. Inside **Role** select the one you gave to the user in the step **2.5** +5. Under **Token Name** you can give a descriptive name to the Token you are creating (we recommend to put `airbyte-rest-integration-token` for a name) +6. Save changes +7. After that, **Token ID** and **Token Secret** will be showed once (copy them to the safe place) #### Step 2.7: Summary You have copied next parameters -* Realm (Account ID) +* Realm (Account ID) * Consumer Key * Consumer Secret * Token ID @@ -105,7 +114,7 @@ The NetSuite source connector supports the following [sync modes](https://docs.a ## Supported Streams -- Streams are generated based on `ROLE` and `USER` access to them as well as `Account` settings, make sure you're using `Admin` or any other custom `ROLE` granted to the Access Token, having the access to the NetSuite objects for data sync. +- Streams are generated based on `ROLE` and `USER` access to them as well as `Account` settings, make sure you're using the correct role assigned in our case `airbyte-integration-role` or any other custom `ROLE` granted to the Access Token, having the access to the NetSuite objects for data sync, please refer to the **Setup guide** > **Step 2.4** and **Setup guide** > **Step 2.5** ## Performance considerations @@ -116,5 +125,6 @@ The connector is restricted by Netsuite [Concurrency Limit per Integration](http | Version | Date | Pull Request | Subject | | :------ | :--------- | :------------------------------------------------------- | :-------------------------- | +| 0.1.3 | 2023-01-20 | [21645](https://github.com/airbytehq/airbyte/pull/21645) | Minor issues fix, Setup Guide corrections for public docs | | 0.1.1 | 2022-09-28 | [17304](https://github.com/airbytehq/airbyte/pull/17304) | Migrate to per-stream state | | 0.1.0 | 2022-09-15 | [16093](https://github.com/airbytehq/airbyte/pull/16093) | Initial Alpha release | From 0548d5f8493f9dcac82c928d250ff861d5ba9832 Mon Sep 17 00:00:00 2001 From: Andy Jih Date: Sat, 21 Jan 2023 10:47:43 -0800 Subject: [PATCH 17/56] minor copy change (#21681) --- airbyte-webapp/src/packages/cloud/locales/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airbyte-webapp/src/packages/cloud/locales/en.json b/airbyte-webapp/src/packages/cloud/locales/en.json index 25bb28b00a51c..d86f8b13e677c 100644 --- a/airbyte-webapp/src/packages/cloud/locales/en.json +++ b/airbyte-webapp/src/packages/cloud/locales/en.json @@ -185,8 +185,8 @@ "freeConnectorProgram.enroll.description": "Enroll in the Free Connector Program to use Alpha and Beta connectors for free.", "freeConnectorProgram.enroll.success": "Successfully enrolled in the Free Connector Program", "freeConnectorProgram.enrollmentModal.title": "Free connector program", - "freeConnectorProgram.enrollmentModal.free": "Alpha and Beta Connectors are free while you're in the program.The whole Connection is free until both Connectors have move into General Availability (GA)", - "freeConnectorProgram.enrollmentModal.emailNotification": "We will let you know through email before a Connector you use moves to GA", + "freeConnectorProgram.enrollmentModal.free": "Alpha and Beta Connectors are free while you're in the program.The whole Connection is free until both Connectors have moved into General Availability (GA)", + "freeConnectorProgram.enrollmentModal.emailNotification": "We will email you before both connectors in a connection move to GA.", "freeConnectorProgram.enrollmentModal.cardOnFile": "When both Connectors are in GA, the Connection will no longer be free. You'll need to have a credit card on file to enroll so Airbyte can handle a Connection's transition to paid service.", "freeConnectorProgram.enrollmentModal.unvalidatedEmailWarning": "You need to verify your email address before you can enroll in the Free Connector Program. Re-send verification email.", "freeConnectorProgram.enrollmentModal.validationEmailConfirmation": "Verification email sent", From 126ce3628b5c640d159d42e9b17f33f9b5ed3a5c Mon Sep 17 00:00:00 2001 From: VitaliiMaltsev <39538064+VitaliiMaltsev@users.noreply.github.com> Date: Sun, 22 Jan 2023 18:03:37 +0200 Subject: [PATCH 18/56] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20connection=20leak?= =?UTF-8?q?=20in=20StreamingJdbcDatabase=20(#20888)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed connection leak in StreamingJdbcDatabase * fixed checkstyle --- .../java/io/airbyte/db/jdbc/JdbcDatabase.java | 2 ++ .../io/airbyte/db/jdbc/StreamingJdbcDatabase.java | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java index 18fb509c225fb..b59c97e5db9d7 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java @@ -29,6 +29,8 @@ public abstract class JdbcDatabase extends SqlDatabase { protected final JdbcCompatibleSourceOperations sourceOperations; + protected Exception streamException; + protected boolean isStreamFailed; public JdbcDatabase(final JdbcCompatibleSourceOperations sourceOperations) { this.sourceOperations = sourceOperations; diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/StreamingJdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/StreamingJdbcDatabase.java index ba8bd82ca9dbd..6fb7f3f60948d 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/StreamingJdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/StreamingJdbcDatabase.java @@ -71,6 +71,9 @@ public Stream unsafeQuery(final CheckedFunction Stream unsafeQuery(final CheckedFunction Stream toUnsafeStream(final ResultSet resultSet, - final CheckedFunction mapper, - final JdbcStreamingQueryConfig streamingConfig) { + protected Stream toUnsafeStream(final ResultSet resultSet, + final CheckedFunction mapper, + final JdbcStreamingQueryConfig streamingConfig) { return StreamSupport.stream(new Spliterators.AbstractSpliterator<>(Long.MAX_VALUE, Spliterator.ORDERED) { @Override @@ -102,7 +105,11 @@ public boolean tryAdvance(final Consumer action) { return true; } catch (final SQLException e) { LOGGER.error("SQLState: {}, Message: {}", e.getSQLState(), e.getMessage()); - throw new RuntimeException(e); + streamException = e; + isStreamFailed = true; + // throwing an exception in tryAdvance() method lead to the endless loop in Spliterator and stream + // will never close + return false; } } From b83cd5763ebe3b1a7a6e98063448b75a734e31fe Mon Sep 17 00:00:00 2001 From: Denys Davydov Date: Mon, 23 Jan 2023 10:18:21 +0200 Subject: [PATCH 19/56] Source Instagram: test strictness level high (#21602) * #19049 source instagram: test strictness level high * #19049 source instagram - upd changelog * #19049 source instagram: upd expected records * #19049 sourcte instagram: update expected records * #19049 source instagram: exclude Media stream from sat * #19049 source instagram: bypass users stream * auto-bump connector version Co-authored-by: Octavia Squidington III --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-instagram/Dockerfile | 2 +- .../acceptance-test-config.yml | 88 ++++++++++++------- .../integration_tests/abnormal_state.json | 12 +++ .../configured_catalog_without_stories.json | 79 ----------------- .../integration_tests/expected_records.jsonl | 18 ++++ .../incremental_catalog.json | 19 ++++ .../connectors/source-instagram/setup.py | 2 +- .../source_instagram/streams.py | 2 + docs/integrations/sources/instagram.md | 3 +- 11 files changed, 113 insertions(+), 116 deletions(-) create mode 100644 airbyte-integrations/connectors/source-instagram/integration_tests/abnormal_state.json delete mode 100644 airbyte-integrations/connectors/source-instagram/integration_tests/configured_catalog_without_stories.json create mode 100644 airbyte-integrations/connectors/source-instagram/integration_tests/expected_records.jsonl create mode 100644 airbyte-integrations/connectors/source-instagram/integration_tests/incremental_catalog.json diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 09cccc9afda50..dd2baf95cd869 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -796,7 +796,7 @@ - name: Instagram sourceDefinitionId: 6acf6b55-4f1e-4fca-944e-1a3caef8aba8 dockerRepository: airbyte/source-instagram - dockerImageTag: 1.0.0 + dockerImageTag: 1.0.1 documentationUrl: https://docs.airbyte.com/integrations/sources/instagram icon: instagram.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 1a239c21a78d4..65312a1bcb83d 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -6648,7 +6648,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-instagram:1.0.0" +- dockerImage: "airbyte/source-instagram:1.0.1" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/instagram" changelogUrl: "https://docs.airbyte.com/integrations/sources/instagram" diff --git a/airbyte-integrations/connectors/source-instagram/Dockerfile b/airbyte-integrations/connectors/source-instagram/Dockerfile index 8dadf21002333..7e6ab0aa0f94e 100644 --- a/airbyte-integrations/connectors/source-instagram/Dockerfile +++ b/airbyte-integrations/connectors/source-instagram/Dockerfile @@ -12,5 +12,5 @@ RUN pip install . ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=1.0.0 +LABEL io.airbyte.version=1.0.1 LABEL io.airbyte.name=airbyte/source-instagram diff --git a/airbyte-integrations/connectors/source-instagram/acceptance-test-config.yml b/airbyte-integrations/connectors/source-instagram/acceptance-test-config.yml index 0a53d8267a4d8..bbbfbff25b893 100644 --- a/airbyte-integrations/connectors/source-instagram/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-instagram/acceptance-test-config.yml @@ -1,40 +1,64 @@ # See [Source Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/source-acceptance-tests-reference) # for more information about how to configure these tests connector_image: airbyte/source-instagram:dev -tests: +test_strictness_level: high +acceptance_tests: spec: - - spec_path: "integration_tests/spec.json" + tests: + - spec_path: "integration_tests/spec.json" connection: - - config_path: "secrets/config.json" - status: "succeed" - - config_path: "integration_tests/invalid_config.json" - status: "failed" + tests: + - config_path: "secrets/config.json" + status: "succeed" + - config_path: "integration_tests/invalid_config.json" + status: "failed" discovery: - - config_path: "secrets/config.json" + tests: + - config_path: "secrets/config.json" basic_read: - - config_path: "secrets/config.json" - configured_catalog_path: "integration_tests/configured_catalog_without_stories.json" -# disabled because the only incremental stream is user_insights and its state is nested -# incremental: -# - config_path: "secrets/config.json" -# configured_catalog_path: "integration_tests/configured_catalog.json" -# future_state_path: "integration_tests/abnormal_state.json" + tests: + - config_path: "secrets/config.json" + expect_records: + path: "integration_tests/expected_records.jsonl" + empty_streams: + - name: "media" + bypass_reason: "Floating data" + - name: "users" + bypass_reason: "Profile picture url is not constant" + - name: "stories" + bypass_reason: "Stories only live for 24 hours" + - name: "story_insights" + bypass_reason: "Stories only live for 24 hours, so do the insights" full_refresh: - - config_path: "secrets/config.json" - configured_catalog_path: "integration_tests/configured_catalog.json" - ignored_fields: - "user_insights": - - email_contacts - - follower_count - - get_directions_clicks - - impressions - - phone_call_clicks - - profile_views - - reach - - text_message_clicks - - website_clicks - - impressions_week - - reach_week - - impressions_days_28 - - reach_days_28 - - online_followers \ No newline at end of file + tests: + - config_path: "secrets/config.json" + configured_catalog_path: "integration_tests/configured_catalog.json" + ignored_fields: + "user_insights": + - email_contacts + - follower_count + - get_directions_clicks + - impressions + - phone_call_clicks + - profile_views + - reach + - text_message_clicks + - website_clicks + - impressions_week + - reach_week + - impressions_days_28 + - reach_days_28 + - online_followers + incremental: + tests: + - config_path: "secrets/config.json" + configured_catalog_path: "integration_tests/incremental_catalog.json" + future_state: + future_state_path: "integration_tests/abnormal_state.json" + cursor_paths: + user_insights: ["17841408147298757", "date"] + # because state is complex and stores values for different accounts on one hand + # and there's no way we can set multiple cursor paths for a single stream on the other, + # this test should be skipped as it is false negative. + # (we can not restrict accounts via config as well) + skip_comprehensive_incremental_tests: true \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-instagram/integration_tests/abnormal_state.json new file mode 100644 index 0000000000000..8bf6c05504872 --- /dev/null +++ b/airbyte-integrations/connectors/source-instagram/integration_tests/abnormal_state.json @@ -0,0 +1,12 @@ +[ + { + "type": "STREAM", + "stream": { + "stream_state": { + "17841408147298757": { "date": "2222-01-01T00:00:00Z" }, + "17841403112736866": { "date": "2222-01-01T00:00:00Z" } + }, + "stream_descriptor": { "name": "user_insights" } + } + } +] diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/configured_catalog_without_stories.json b/airbyte-integrations/connectors/source-instagram/integration_tests/configured_catalog_without_stories.json deleted file mode 100644 index 3df5fddbed01c..0000000000000 --- a/airbyte-integrations/connectors/source-instagram/integration_tests/configured_catalog_without_stories.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "streams": [ - { - "stream": { - "name": "media", - "json_schema": {}, - "supported_sync_modes": ["full_refresh"], - "source_defined_cursor": null, - "default_cursor_field": null, - "source_defined_primary_key": [["id"]], - "namespace": null - }, - "sync_mode": "full_refresh", - "cursor_field": null, - "destination_sync_mode": "append", - "primary_key": null - }, - { - "stream": { - "name": "media_insights", - "json_schema": {}, - "supported_sync_modes": ["full_refresh"], - "source_defined_cursor": null, - "default_cursor_field": null, - "source_defined_primary_key": [["id"]], - "namespace": null - }, - "sync_mode": "full_refresh", - "cursor_field": null, - "destination_sync_mode": "append", - "primary_key": null - }, - { - "stream": { - "name": "users", - "json_schema": {}, - "supported_sync_modes": ["full_refresh"], - "source_defined_cursor": null, - "default_cursor_field": null, - "source_defined_primary_key": [["id"]], - "namespace": null - }, - "sync_mode": "full_refresh", - "cursor_field": null, - "destination_sync_mode": "append", - "primary_key": null - }, - { - "stream": { - "name": "user_lifetime_insights", - "json_schema": {}, - "supported_sync_modes": ["full_refresh"], - "source_defined_cursor": null, - "default_cursor_field": null, - "source_defined_primary_key": null, - "namespace": null - }, - "sync_mode": "full_refresh", - "cursor_field": null, - "destination_sync_mode": "append", - "primary_key": null - }, - { - "stream": { - "name": "user_insights", - "json_schema": {}, - "supported_sync_modes": ["full_refresh", "incremental"], - "source_defined_cursor": true, - "default_cursor_field": ["date"], - "source_defined_primary_key": null, - "namespace": null - }, - "sync_mode": "full_refresh", - "cursor_field": null, - "destination_sync_mode": "append", - "primary_key": null - } - ] -} diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-instagram/integration_tests/expected_records.jsonl new file mode 100644 index 0000000000000..b6442a870bb78 --- /dev/null +++ b/airbyte-integrations/connectors/source-instagram/integration_tests/expected_records.jsonl @@ -0,0 +1,18 @@ +{"stream": "media_insights", "data": {"engagement": 3, "impressions": 145, "reach": 141, "saved": 1, "video_views": 50, "id": "17990014330517797", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213559669} +{"stream": "media_insights", "data": {"carousel_album_engagement": 10, "carousel_album_impressions": 844, "carousel_album_reach": 709, "saved": 2, "id": "17866123508374641", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213559966} +{"stream": "media_insights", "data": {"engagement": 30, "impressions": 474, "reach": 428, "saved": 2, "id": "18036549181220554", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213560249} +{"stream": "media_insights", "data": {"engagement": 18, "impressions": 319, "reach": 294, "saved": 0, "id": "17851446202651273", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213560576} +{"stream": "media_insights", "data": {"engagement": 30, "impressions": 188, "reach": 180, "saved": 3, "id": "17879859175449567", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213560889} +{"stream": "media_insights", "data": {"engagement": 20, "impressions": 140, "reach": 135, "saved": 2, "id": "17847571591686839", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213561193} +{"stream": "media_insights", "data": {"engagement": 22, "impressions": 100, "reach": 96, "saved": 0, "id": "18075437350133485", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213561448} +{"stream": "media_insights", "data": {"engagement": 20, "impressions": 71, "reach": 68, "saved": 2, "id": "17846350990714113", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213561747} +{"stream": "media_insights", "data": {"engagement": 15, "impressions": 65, "reach": 61, "saved": 0, "id": "17980709605286481", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213562115} +{"stream": "media_insights", "data": {"engagement": 13, "impressions": 57, "reach": 55, "saved": 0, "id": "18076537066186055", "page_id": "112704783733939", "business_account_id": "17841408147298757"}, "emitted_at": 1674213562572} +{"stream": "user_lifetime_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "metric": "audience_city", "date": "2023-01-20T08:00:00+0000", "value": {"London, England": 6, "Sydney, New South Wales": 17, "Atlanta, Georgia": 5, "S\u00e3o Paulo, S\u00e3o Paulo (state)": 13, "Rio de Janeiro, Rio de Janeiro (state)": 5, "Hong Kong, Hong Kong": 4, "Berlin, Berlin": 4, "Kolkata, West Bengal": 5, "Tulsa, Oklahoma": 3, "Austin, Texas": 4, "Kyiv, Kyiv": 4, "Lagos, Lagos State": 16, "San Jose, California": 4, "Kano, Kano State": 4, "Pune, Maharashtra": 6, "Huntsville, Alabama": 3, "Skopje, Municipality of Centar (Skopje)": 4, "Moscow, Moscow": 6, "Bogot\u00e1, Distrito Especial": 5, "Dar es Salaam, Dar es Salaam": 6, "Jakarta, Jakarta": 7, "Accra, Greater Accra Region": 4, "Buenos Aires, Ciudad Aut\u00f3noma de Buenos Aires": 6, "Melbourne, Victoria": 10, "Gurugram, Haryana": 4, "Los Angeles, California": 8, "Madrid, Comunidad de Madrid": 4, "Spring Valley, Nevada": 3, "Lima, Lima Region": 5, "Istanbul, Istanbul Province": 8, "Chennai, Tamil Nadu": 5, "Abuja, Federal Capital Territory": 5, "Mexico City, Distrito Federal": 7, "Cape Town, Western Cape": 4, "San Francisco, California": 6, "Greater Noida, Uttar Pradesh": 3, "Tehran, Tehran Province": 7, "New York, New York": 15, "Dubai, Dubai": 4, "Santiago, Santiago Metropolitan Region": 9, "Mumbai, Maharashtra": 6, "Bangalore, Karnataka": 14, "Singapore, Singapore": 5, "Hyderabad, Telangana": 4, "San Diego, California": 4}}, "emitted_at": 1674213658786} +{"stream": "user_lifetime_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "metric": "audience_country", "date": "2023-01-20T08:00:00+0000", "value": {"DE": 29, "BD": 5, "TW": 6, "RU": 13, "PT": 4, "TZ": 8, "UA": 5, "FR": 8, "SA": 9, "BR": 66, "SE": 6, "SG": 5, "MA": 6, "DZ": 6, "ID": 26, "GB": 40, "CA": 28, "US": 268, "EG": 10, "AE": 6, "CH": 8, "IN": 119, "ZA": 16, "IQ": 7, "CL": 11, "IR": 12, "GR": 6, "IT": 16, "MX": 27, "MY": 11, "CO": 12, "ES": 13, "VE": 8, "AR": 19, "AT": 5, "TH": 6, "AU": 37, "PE": 5, "PH": 7, "NG": 30, "TN": 6, "PK": 11, "PL": 4, "TR": 9, "NL": 12}}, "emitted_at": 1674213658786} +{"stream": "user_lifetime_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "metric": "audience_gender_age", "date": "2023-01-20T08:00:00+0000", "value": {"F.18-24": 13, "F.25-34": 90, "F.35-44": 66, "F.45-54": 16, "F.55-64": 1, "F.65+": 4, "M.13-17": 5, "M.18-24": 73, "M.25-34": 374, "M.35-44": 212, "M.45-54": 67, "M.55-64": 16, "M.65+": 14, "U.18-24": 23, "U.25-34": 65, "U.35-44": 29, "U.45-54": 19, "U.55-64": 4, "U.65+": 1}}, "emitted_at": 1674213658786} +{"stream": "user_lifetime_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "metric": "audience_locale", "date": "2023-01-20T08:00:00+0000", "value": {"el_GR": 1, "it_IT": 12, "ru_RU": 13, "pl_PL": 2, "tr_TR": 4, "id_ID": 15, "es_US": 1, "pt_BR": 50, "th_TH": 1, "ja_JP": 1, "fr_FR": 18, "de_DE": 22, "ms_MY": 1, "zh_TW": 3, "es_MX": 7, "es_CO": 3, "es_ES": 10, "es_CL": 3, "nl_NL": 7, "es_LA": 56, "fr_CA": 1, "es_VE": 1, "sv_SE": 5, "da_DK": 1, "fa_IR": 2, "sr_RS": 1, "hr_HR": 1, "fi_FI": 2, "ar_AR": 6, "en_GB": 111, "ko_KR": 2, "en_US": 695, "lv_LV": 1, "uk_UA": 2, "en_IN": 26, "zh_CN": 3, "ar_AE": 1}}, "emitted_at": 1674213658786} +{"stream": "user_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "email_contacts": 0, "date": "2022-12-22T08:00:00+0000", "follower_count": 1, "get_directions_clicks": 0, "impressions": 0, "phone_call_clicks": 0, "profile_views": 1, "reach": 0, "text_message_clicks": 0, "website_clicks": 0, "impressions_week": 26, "reach_week": 8, "impressions_days_28": 8388, "reach_days_28": 2549, "online_followers": {"0": 162, "1": 184, "2": 185, "3": 214, "4": 249, "5": 261, "6": 266, "7": 269, "8": 287, "9": 285, "10": 260, "11": 276, "12": 261, "13": 244, "14": 247, "15": 227, "16": 236, "17": 216, "18": 208, "19": 213, "20": 194, "21": 175, "22": 162, "23": 176}}, "emitted_at": 1674213660433} +{"stream": "user_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "email_contacts": 0, "date": "2022-12-23T08:00:00+0000", "follower_count": 0, "get_directions_clicks": 0, "impressions": 0, "phone_call_clicks": 0, "profile_views": 0, "reach": 0, "text_message_clicks": 0, "website_clicks": 0, "impressions_week": 10, "reach_week": 6, "impressions_days_28": 8274, "reach_days_28": 2521, "online_followers": {"0": 175, "1": 178, "2": 188, "3": 228, "4": 247, "5": 278, "6": 276, "7": 273, "8": 295, "9": 283, "10": 283, "11": 278, "12": 254, "13": 253, "14": 221, "15": 228, "16": 224, "17": 210, "18": 215, "19": 222, "20": 215, "21": 183, "22": 180, "23": 170}}, "emitted_at": 1674213661691} +{"stream": "user_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "email_contacts": 0, "date": "2022-12-24T08:00:00+0000", "follower_count": 0, "get_directions_clicks": 0, "impressions": 0, "phone_call_clicks": 0, "profile_views": 0, "reach": 0, "text_message_clicks": 0, "website_clicks": 0, "impressions_week": 10, "reach_week": 6, "impressions_days_28": 8274, "reach_days_28": 2521, "online_followers": {"0": 169, "1": 157, "2": 187, "3": 192, "4": 219, "5": 238, "6": 259, "7": 281, "8": 285, "9": 298, "10": 278, "11": 278, "12": 247, "13": 277, "14": 266, "15": 233, "16": 202, "17": 207, "18": 200, "19": 225, "20": 225, "21": 226, "22": 186, "23": 183}}, "emitted_at": 1674213662878} +{"stream": "user_insights", "data": {"page_id": "112704783733939", "business_account_id": "17841408147298757", "email_contacts": 0, "date": "2022-12-25T08:00:00+0000", "follower_count": 1, "get_directions_clicks": 0, "impressions": 0, "phone_call_clicks": 0, "profile_views": 0, "reach": 0, "text_message_clicks": 0, "website_clicks": 0, "impressions_week": 8, "reach_week": 5, "impressions_days_28": 8271, "reach_days_28": 2521, "online_followers": {"0": 198, "1": 182, "2": 181, "3": 183, "4": 192, "5": 243, "6": 271, "7": 269, "8": 283, "9": 290, "10": 272, "11": 278, "12": 275, "13": 271, "14": 270, "15": 233, "16": 238, "17": 215, "18": 215, "19": 216, "20": 200, "21": 185, "22": 180, "23": 165}}, "emitted_at": 1674213664240} diff --git a/airbyte-integrations/connectors/source-instagram/integration_tests/incremental_catalog.json b/airbyte-integrations/connectors/source-instagram/integration_tests/incremental_catalog.json new file mode 100644 index 0000000000000..3a48ffe85ae1f --- /dev/null +++ b/airbyte-integrations/connectors/source-instagram/integration_tests/incremental_catalog.json @@ -0,0 +1,19 @@ +{ + "streams": [ + { + "stream": { + "name": "user_insights", + "json_schema": {}, + "supported_sync_modes": ["full_refresh", "incremental"], + "source_defined_cursor": true, + "default_cursor_field": ["date"], + "source_defined_primary_key": null, + "namespace": null + }, + "sync_mode": "incremental", + "cursor_field": null, + "destination_sync_mode": "append", + "primary_key": null + } + ] +} diff --git a/airbyte-integrations/connectors/source-instagram/setup.py b/airbyte-integrations/connectors/source-instagram/setup.py index 2564950e99809..31c38de6cab98 100644 --- a/airbyte-integrations/connectors/source-instagram/setup.py +++ b/airbyte-integrations/connectors/source-instagram/setup.py @@ -6,7 +6,7 @@ from setuptools import find_packages, setup MAIN_REQUIREMENTS = [ - "airbyte-cdk~=0.1", + "airbyte-cdk", "cached_property~=1.5", "facebook_business~=11.0", "pendulum>=2,<3", diff --git a/airbyte-integrations/connectors/source-instagram/source_instagram/streams.py b/airbyte-integrations/connectors/source-instagram/source_instagram/streams.py index 828eaf77f46e6..3d788c1eece24 100644 --- a/airbyte-integrations/connectors/source-instagram/source_instagram/streams.py +++ b/airbyte-integrations/connectors/source-instagram/source_instagram/streams.py @@ -218,6 +218,8 @@ def stream_slices( state_value = stream_state.get(account_id, {}).get(self.cursor_field) start_date = pendulum.parse(state_value) if state_value else self._start_date start_date = max(start_date, self._start_date, pendulum.now().subtract(days=self.buffer_days)) + if start_date > pendulum.now(): + continue for since in pendulum.period(start_date, self._end_date).range("days", self.days_increment): until = since.add(days=self.days_increment) self.logger.info(f"Reading insights between {since.date()} and {until.date()}") diff --git a/docs/integrations/sources/instagram.md b/docs/integrations/sources/instagram.md index f1027257d46d6..27e4c09cecfce 100644 --- a/docs/integrations/sources/instagram.md +++ b/docs/integrations/sources/instagram.md @@ -91,7 +91,8 @@ AirbyteRecords are required to conform to the [Airbyte type](https://docs.airbyt ## Changelog | Version | Date | Pull Request | Subject | -| :------ | :--------- | :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | +|:--------|:-----------|:---------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------| +| 1.0.1 | 2023-01-19 | [21602](https://github.com/airbytehq/airbyte/pull/21602) | Handle abnormally large state values | | 1.0.0 | 2022-09-23 | [17110](https://github.com/airbytehq/airbyte/pull/17110) | Remove custom read function and migrate to per-stream state | | 0.1.11 | 2022-09-08 | [16428](https://github.com/airbytehq/airbyte/pull/16428) | Fix requests metrics for Reels media product type | | 0.1.10 | 2022-09-05 | [16340](https://github.com/airbytehq/airbyte/pull/16340) | Update to latest version of the CDK (v0.1.81) | From e35dc2360073c49ed061bf5ef4c2b230834210f3 Mon Sep 17 00:00:00 2001 From: Denys Davydov Date: Mon, 23 Jan 2023 10:18:45 +0200 Subject: [PATCH 20/56] #1313 source google ads: write less logs (#21517) * #1313 source google ads: write less logs * #1313 source google ads: upd changelog * #1313 source google ads: fix expected records * #1313 source google ads: rm unused call to init * #1313 source google ads: fix expected records * #1313 source google ads - bump sieve outside the loop * auto-bump connector version Co-authored-by: Octavia Squidington III --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-google-ads/Dockerfile | 2 +- .../acceptance-test-config.yml | 2 + .../integration_tests/expected_records.txt | 10 ---- .../source_google_ads/streams.py | 53 ++++++++++++++----- .../unit_tests/test_source.py | 14 +++-- .../unit_tests/test_streams.py | 14 ++++- docs/integrations/sources/google-ads.md | 1 + 9 files changed, 65 insertions(+), 35 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index dd2baf95cd869..9f92385c6812f 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -645,7 +645,7 @@ - name: Google Ads sourceDefinitionId: 253487c0-2246-43ba-a21f-5116b20a2c50 dockerRepository: airbyte/source-google-ads - dockerImageTag: 0.2.7 + dockerImageTag: 0.2.8 documentationUrl: https://docs.airbyte.com/integrations/sources/google-ads icon: google-adwords.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 65312a1bcb83d..b38dcf6956ae0 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -5215,7 +5215,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-google-ads:0.2.7" +- dockerImage: "airbyte/source-google-ads:0.2.8" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/google-ads" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-google-ads/Dockerfile b/airbyte-integrations/connectors/source-google-ads/Dockerfile index b084445822610..3a43a8003271d 100644 --- a/airbyte-integrations/connectors/source-google-ads/Dockerfile +++ b/airbyte-integrations/connectors/source-google-ads/Dockerfile @@ -13,5 +13,5 @@ COPY main.py ./ ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.2.7 +LABEL io.airbyte.version=0.2.8 LABEL io.airbyte.name=airbyte/source-google-ads diff --git a/airbyte-integrations/connectors/source-google-ads/acceptance-test-config.yml b/airbyte-integrations/connectors/source-google-ads/acceptance-test-config.yml index 0aad58fbad44e..6e136fdb23b52 100644 --- a/airbyte-integrations/connectors/source-google-ads/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-google-ads/acceptance-test-config.yml @@ -22,6 +22,8 @@ acceptance_tests: path: "integration_tests/expected_records.txt" timeout_seconds: 600 empty_streams: + - name: "accounts" + bypass_reason: "Floating data" - name: "display_topics_performance_report" bypass_reason: "Stream not filled yet." - name: "click_view" diff --git a/airbyte-integrations/connectors/source-google-ads/integration_tests/expected_records.txt b/airbyte-integrations/connectors/source-google-ads/integration_tests/expected_records.txt index 6603bc6f40fcb..8071b1e4d341d 100644 --- a/airbyte-integrations/connectors/source-google-ads/integration_tests/expected_records.txt +++ b/airbyte-integrations/connectors/source-google-ads/integration_tests/expected_records.txt @@ -59,16 +59,6 @@ {"stream": "ad_groups", "data": {"ad_group.ad_rotation_mode": "UNSPECIFIED", "ad_group.base_ad_group": "customers/4651612872/adGroups/137020701042", "ad_group.campaign": "customers/4651612872/campaigns/16820250687", "ad_group.cpc_bid_micros": 10000, "ad_group.cpm_bid_micros": 10000, "ad_group.cpv_bid_micros": 0, "ad_group.display_custom_bid_dimension": "UNSPECIFIED", "ad_group.effective_target_cpa_micros": 0, "ad_group.effective_target_cpa_source": "UNSPECIFIED", "ad_group.effective_target_roas": 0.0, "ad_group.effective_target_roas_source": "UNSPECIFIED", "ad_group.excluded_parent_asset_field_types": [], "ad_group.explorer_auto_optimizer_setting.opt_in": false, "ad_group.final_url_suffix": "", "ad_group.id": 137020701042, "ad_group.labels": [], "ad_group.name": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\u00a02", "ad_group.percent_cpc_bid_micros": 0, "ad_group.resource_name": "customers/4651612872/adGroups/137020701042", "ad_group.status": "ENABLED", "ad_group.target_cpa_micros": 0, "ad_group.target_cpm_micros": 10000, "ad_group.target_roas": 0.0, "ad_group.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n", "targeting_dimension: AGE_RANGE\nbid_only: true\n", "targeting_dimension: GENDER\nbid_only: true\n", "targeting_dimension: PARENTAL_STATUS\nbid_only: true\n", "targeting_dimension: INCOME_RANGE\nbid_only: true\n"], "ad_group.tracking_url_template": "", "ad_group.type": "SEARCH_STANDARD", "ad_group.url_custom_parameters": [], "segments.date": "2022-04-12"}, "emitted_at": 1671617356027} {"stream": "ad_groups", "data": {"ad_group.ad_rotation_mode": "UNSPECIFIED", "ad_group.base_ad_group": "customers/4651612872/adGroups/137051662444", "ad_group.campaign": "customers/4651612872/campaigns/16820250687", "ad_group.cpc_bid_micros": 10000, "ad_group.cpm_bid_micros": 10000, "ad_group.cpv_bid_micros": 0, "ad_group.display_custom_bid_dimension": "UNSPECIFIED", "ad_group.effective_target_cpa_micros": 0, "ad_group.effective_target_cpa_source": "UNSPECIFIED", "ad_group.effective_target_roas": 0.0, "ad_group.effective_target_roas_source": "UNSPECIFIED", "ad_group.excluded_parent_asset_field_types": [], "ad_group.explorer_auto_optimizer_setting.opt_in": false, "ad_group.final_url_suffix": "", "ad_group.id": 137051662444, "ad_group.labels": [], "ad_group.name": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\u00a01", "ad_group.percent_cpc_bid_micros": 0, "ad_group.resource_name": "customers/4651612872/adGroups/137051662444", "ad_group.status": "ENABLED", "ad_group.target_cpa_micros": 0, "ad_group.target_cpm_micros": 10000, "ad_group.target_roas": 0.0, "ad_group.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n", "targeting_dimension: AGE_RANGE\nbid_only: true\n", "targeting_dimension: GENDER\nbid_only: true\n", "targeting_dimension: PARENTAL_STATUS\nbid_only: true\n", "targeting_dimension: INCOME_RANGE\nbid_only: true\n"], "ad_group.tracking_url_template": "", "ad_group.type": "SEARCH_STANDARD", "ad_group.url_custom_parameters": [], "segments.date": "2022-04-12"}, "emitted_at": 1671617356028} {"stream": "ad_groups", "data": {"ad_group.ad_rotation_mode": "UNSPECIFIED", "ad_group.base_ad_group": "customers/4651612872/adGroups/137020701042", "ad_group.campaign": "customers/4651612872/campaigns/16820250687", "ad_group.cpc_bid_micros": 10000, "ad_group.cpm_bid_micros": 10000, "ad_group.cpv_bid_micros": 0, "ad_group.display_custom_bid_dimension": "UNSPECIFIED", "ad_group.effective_target_cpa_micros": 0, "ad_group.effective_target_cpa_source": "UNSPECIFIED", "ad_group.effective_target_roas": 0.0, "ad_group.effective_target_roas_source": "UNSPECIFIED", "ad_group.excluded_parent_asset_field_types": [], "ad_group.explorer_auto_optimizer_setting.opt_in": false, "ad_group.final_url_suffix": "", "ad_group.id": 137020701042, "ad_group.labels": [], "ad_group.name": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\u00a02", "ad_group.percent_cpc_bid_micros": 0, "ad_group.resource_name": "customers/4651612872/adGroups/137020701042", "ad_group.status": "ENABLED", "ad_group.target_cpa_micros": 0, "ad_group.target_cpm_micros": 10000, "ad_group.target_roas": 0.0, "ad_group.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n", "targeting_dimension: AGE_RANGE\nbid_only: true\n", "targeting_dimension: GENDER\nbid_only: true\n", "targeting_dimension: PARENTAL_STATUS\nbid_only: true\n", "targeting_dimension: INCOME_RANGE\nbid_only: true\n"], "ad_group.tracking_url_template": "", "ad_group.type": "SEARCH_STANDARD", "ad_group.url_custom_parameters": [], "segments.date": "2022-04-13"}, "emitted_at": 1671617356029} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-08"}, "emitted_at": 1673361973477} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-09"}, "emitted_at": 1673361973478} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-10"}, "emitted_at": 1673361973479} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-11"}, "emitted_at": 1673361973479} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-12"}, "emitted_at": 1673361973480} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-13"}, "emitted_at": 1673361973481} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-14"}, "emitted_at": 1673361973481} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-15"}, "emitted_at": 1673361973482} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-16"}, "emitted_at": 1673361973483} -{"stream": "accounts", "data": {"customer.auto_tagging_enabled": true, "customer.call_reporting_setting.call_conversion_action": "customers/4651612872/conversionActions/179", "customer.call_reporting_setting.call_conversion_reporting_enabled": true, "customer.call_reporting_setting.call_reporting_enabled": true, "customer.conversion_tracking_setting.conversion_tracking_id": 657981234, "customer.conversion_tracking_setting.cross_account_conversion_tracking_id": 0, "customer.currency_code": "USD", "customer.descriptive_name": "", "customer.final_url_suffix": "", "customer.has_partners_badge": false, "customer.id": 4651612872, "customer.manager": false, "customer.optimization_score": 0.4809464, "customer.optimization_score_weight": 14.093616, "customer.pay_per_conversion_eligibility_failure_reasons": ["CustomerPayPerConversionEligibilityFailureReason.NOT_ENOUGH_CONVERSIONS"], "customer.remarketing_setting.google_global_site_tag": "\n\n\n", "customer.resource_name": "customers/4651612872", "customer.test_account": false, "customer.time_zone": "America/Los_Angeles", "customer.tracking_url_template": "", "segments.date": "2022-04-17"}, "emitted_at": 1673361973996} {"stream": "campaigns", "data": {"campaign.accessible_bidding_strategy": "", "campaign.ad_serving_optimization_status": "OPTIMIZE", "campaign.advertising_channel_sub_type": "UNSPECIFIED", "campaign.advertising_channel_type": "SEARCH", "campaign.app_campaign_setting.app_id": "", "campaign.app_campaign_setting.app_store": "UNSPECIFIED", "campaign.app_campaign_setting.bidding_strategy_goal_type": "UNSPECIFIED", "campaign.base_campaign": "customers/4651612872/campaigns/16820250687", "campaign.bidding_strategy": "", "campaign.bidding_strategy_type": "TARGET_SPEND", "campaign.campaign_budget": "customers/4651612872/campaignBudgets/10695604507", "campaign_budget.amount_micros": 750000, "campaign.commission.commission_rate_micros": 0, "campaign.dynamic_search_ads_setting.domain_name": "", "campaign.dynamic_search_ads_setting.feeds": [], "campaign.dynamic_search_ads_setting.language_code": "", "campaign.dynamic_search_ads_setting.use_supplied_urls_only": false, "campaign.end_date": "2037-12-30", "campaign.excluded_parent_asset_field_types": [], "campaign.experiment_type": "BASE", "campaign.final_url_suffix": "", "campaign.frequency_caps": [], "campaign.geo_target_type_setting.negative_geo_target_type": "PRESENCE", "campaign.geo_target_type_setting.positive_geo_target_type": "PRESENCE_OR_INTEREST", "campaign.hotel_setting.hotel_center_id": 0, "campaign.id": 16820250687, "campaign.labels": [], "campaign.local_campaign_setting.location_source_type": "UNSPECIFIED", "campaign.manual_cpc.enhanced_cpc_enabled": false, "campaign.manual_cpm": "", "campaign.manual_cpv": "", "campaign.maximize_conversion_value.target_roas": 0.0, "campaign.maximize_conversions.target_cpa_micros": 0, "campaign.name": "Website traffic-Search-15", "campaign.network_settings.target_content_network": true, "campaign.network_settings.target_google_search": true, "campaign.network_settings.target_partner_search_network": false, "campaign.network_settings.target_search_network": true, "campaign.optimization_goal_setting.optimization_goal_types": [], "campaign.optimization_score": 0.0, "campaign.payment_mode": "CLICKS", "campaign.percent_cpc.cpc_bid_ceiling_micros": 0, "campaign.percent_cpc.enhanced_cpc_enabled": false, "campaign.real_time_bidding_setting.opt_in": false, "campaign.resource_name": "customers/4651612872/campaigns/16820250687", "campaign.selective_optimization.conversion_actions": [], "campaign.serving_status": "SERVING", "campaign.shopping_setting.campaign_priority": 0, "campaign.shopping_setting.enable_local": false, "campaign.shopping_setting.merchant_id": 0, "campaign.shopping_setting.sales_country": "", "campaign.start_date": "2022-04-08", "campaign.status": "PAUSED", "campaign.target_cpa.cpc_bid_ceiling_micros": 0, "campaign.target_cpa.cpc_bid_floor_micros": 0, "campaign.target_cpa.target_cpa_micros": 0, "campaign.target_cpm": "", "campaign.target_impression_share.cpc_bid_ceiling_micros": 0, "campaign.target_impression_share.location": "UNSPECIFIED", "campaign.target_impression_share.location_fraction_micros": 0, "campaign.target_roas.cpc_bid_ceiling_micros": 0, "campaign.target_roas.cpc_bid_floor_micros": 0, "campaign.target_roas.target_roas": 0.0, "campaign.target_spend.cpc_bid_ceiling_micros": 0, "campaign.target_spend.target_spend_micros": 0, "campaign.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n"], "campaign.tracking_setting.tracking_url": "", "campaign.tracking_url_template": "", "campaign.url_custom_parameters": [], "campaign.vanity_pharma.vanity_pharma_display_url_mode": "UNSPECIFIED", "campaign.vanity_pharma.vanity_pharma_text": "UNSPECIFIED", "campaign.video_brand_safety_suitability": "UNSPECIFIED", "metrics.clicks": 0, "metrics.ctr": 0.0, "metrics.conversions": 0.0, "metrics.conversions_value": 0.0, "metrics.cost_micros": 0, "metrics.impressions": 2.0, "metrics.video_views": 0.0, "metrics.video_quartile_p100_rate": 0.0, "segments.date": "2022-04-08", "segments.hour": 21.0}, "emitted_at": 1671617378643} {"stream": "campaigns", "data": {"campaign.accessible_bidding_strategy": "", "campaign.ad_serving_optimization_status": "OPTIMIZE", "campaign.advertising_channel_sub_type": "UNSPECIFIED", "campaign.advertising_channel_type": "SEARCH", "campaign.app_campaign_setting.app_id": "", "campaign.app_campaign_setting.app_store": "UNSPECIFIED", "campaign.app_campaign_setting.bidding_strategy_goal_type": "UNSPECIFIED", "campaign.base_campaign": "customers/4651612872/campaigns/16820250687", "campaign.bidding_strategy": "", "campaign.bidding_strategy_type": "TARGET_SPEND", "campaign.campaign_budget": "customers/4651612872/campaignBudgets/10695604507", "campaign_budget.amount_micros": 750000, "campaign.commission.commission_rate_micros": 0, "campaign.dynamic_search_ads_setting.domain_name": "", "campaign.dynamic_search_ads_setting.feeds": [], "campaign.dynamic_search_ads_setting.language_code": "", "campaign.dynamic_search_ads_setting.use_supplied_urls_only": false, "campaign.end_date": "2037-12-30", "campaign.excluded_parent_asset_field_types": [], "campaign.experiment_type": "BASE", "campaign.final_url_suffix": "", "campaign.frequency_caps": [], "campaign.geo_target_type_setting.negative_geo_target_type": "PRESENCE", "campaign.geo_target_type_setting.positive_geo_target_type": "PRESENCE_OR_INTEREST", "campaign.hotel_setting.hotel_center_id": 0, "campaign.id": 16820250687, "campaign.labels": [], "campaign.local_campaign_setting.location_source_type": "UNSPECIFIED", "campaign.manual_cpc.enhanced_cpc_enabled": false, "campaign.manual_cpm": "", "campaign.manual_cpv": "", "campaign.maximize_conversion_value.target_roas": 0.0, "campaign.maximize_conversions.target_cpa_micros": 0, "campaign.name": "Website traffic-Search-15", "campaign.network_settings.target_content_network": true, "campaign.network_settings.target_google_search": true, "campaign.network_settings.target_partner_search_network": false, "campaign.network_settings.target_search_network": true, "campaign.optimization_goal_setting.optimization_goal_types": [], "campaign.optimization_score": 0.0, "campaign.payment_mode": "CLICKS", "campaign.percent_cpc.cpc_bid_ceiling_micros": 0, "campaign.percent_cpc.enhanced_cpc_enabled": false, "campaign.real_time_bidding_setting.opt_in": false, "campaign.resource_name": "customers/4651612872/campaigns/16820250687", "campaign.selective_optimization.conversion_actions": [], "campaign.serving_status": "SERVING", "campaign.shopping_setting.campaign_priority": 0, "campaign.shopping_setting.enable_local": false, "campaign.shopping_setting.merchant_id": 0, "campaign.shopping_setting.sales_country": "", "campaign.start_date": "2022-04-08", "campaign.status": "PAUSED", "campaign.target_cpa.cpc_bid_ceiling_micros": 0, "campaign.target_cpa.cpc_bid_floor_micros": 0, "campaign.target_cpa.target_cpa_micros": 0, "campaign.target_cpm": "", "campaign.target_impression_share.cpc_bid_ceiling_micros": 0, "campaign.target_impression_share.location": "UNSPECIFIED", "campaign.target_impression_share.location_fraction_micros": 0, "campaign.target_roas.cpc_bid_ceiling_micros": 0, "campaign.target_roas.cpc_bid_floor_micros": 0, "campaign.target_roas.target_roas": 0.0, "campaign.target_spend.cpc_bid_ceiling_micros": 0, "campaign.target_spend.target_spend_micros": 0, "campaign.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n"], "campaign.tracking_setting.tracking_url": "", "campaign.tracking_url_template": "", "campaign.url_custom_parameters": [], "campaign.vanity_pharma.vanity_pharma_display_url_mode": "UNSPECIFIED", "campaign.vanity_pharma.vanity_pharma_text": "UNSPECIFIED", "campaign.video_brand_safety_suitability": "UNSPECIFIED", "metrics.clicks": 0, "metrics.ctr": 0.0, "metrics.conversions": 0.0, "metrics.conversions_value": 0.0, "metrics.cost_micros": 0, "metrics.impressions": 1.0, "metrics.video_views": 0.0, "metrics.video_quartile_p100_rate": 0.0, "segments.date": "2022-04-09", "segments.hour": 2.0}, "emitted_at": 1671617378653} {"stream": "campaigns", "data": {"campaign.accessible_bidding_strategy": "", "campaign.ad_serving_optimization_status": "OPTIMIZE", "campaign.advertising_channel_sub_type": "UNSPECIFIED", "campaign.advertising_channel_type": "SEARCH", "campaign.app_campaign_setting.app_id": "", "campaign.app_campaign_setting.app_store": "UNSPECIFIED", "campaign.app_campaign_setting.bidding_strategy_goal_type": "UNSPECIFIED", "campaign.base_campaign": "customers/4651612872/campaigns/16820250687", "campaign.bidding_strategy": "", "campaign.bidding_strategy_type": "TARGET_SPEND", "campaign.campaign_budget": "customers/4651612872/campaignBudgets/10695604507", "campaign_budget.amount_micros": 750000, "campaign.commission.commission_rate_micros": 0, "campaign.dynamic_search_ads_setting.domain_name": "", "campaign.dynamic_search_ads_setting.feeds": [], "campaign.dynamic_search_ads_setting.language_code": "", "campaign.dynamic_search_ads_setting.use_supplied_urls_only": false, "campaign.end_date": "2037-12-30", "campaign.excluded_parent_asset_field_types": [], "campaign.experiment_type": "BASE", "campaign.final_url_suffix": "", "campaign.frequency_caps": [], "campaign.geo_target_type_setting.negative_geo_target_type": "PRESENCE", "campaign.geo_target_type_setting.positive_geo_target_type": "PRESENCE_OR_INTEREST", "campaign.hotel_setting.hotel_center_id": 0, "campaign.id": 16820250687, "campaign.labels": [], "campaign.local_campaign_setting.location_source_type": "UNSPECIFIED", "campaign.manual_cpc.enhanced_cpc_enabled": false, "campaign.manual_cpm": "", "campaign.manual_cpv": "", "campaign.maximize_conversion_value.target_roas": 0.0, "campaign.maximize_conversions.target_cpa_micros": 0, "campaign.name": "Website traffic-Search-15", "campaign.network_settings.target_content_network": true, "campaign.network_settings.target_google_search": true, "campaign.network_settings.target_partner_search_network": false, "campaign.network_settings.target_search_network": true, "campaign.optimization_goal_setting.optimization_goal_types": [], "campaign.optimization_score": 0.0, "campaign.payment_mode": "CLICKS", "campaign.percent_cpc.cpc_bid_ceiling_micros": 0, "campaign.percent_cpc.enhanced_cpc_enabled": false, "campaign.real_time_bidding_setting.opt_in": false, "campaign.resource_name": "customers/4651612872/campaigns/16820250687", "campaign.selective_optimization.conversion_actions": [], "campaign.serving_status": "SERVING", "campaign.shopping_setting.campaign_priority": 0, "campaign.shopping_setting.enable_local": false, "campaign.shopping_setting.merchant_id": 0, "campaign.shopping_setting.sales_country": "", "campaign.start_date": "2022-04-08", "campaign.status": "PAUSED", "campaign.target_cpa.cpc_bid_ceiling_micros": 0, "campaign.target_cpa.cpc_bid_floor_micros": 0, "campaign.target_cpa.target_cpa_micros": 0, "campaign.target_cpm": "", "campaign.target_impression_share.cpc_bid_ceiling_micros": 0, "campaign.target_impression_share.location": "UNSPECIFIED", "campaign.target_impression_share.location_fraction_micros": 0, "campaign.target_roas.cpc_bid_ceiling_micros": 0, "campaign.target_roas.cpc_bid_floor_micros": 0, "campaign.target_roas.target_roas": 0.0, "campaign.target_spend.cpc_bid_ceiling_micros": 0, "campaign.target_spend.target_spend_micros": 0, "campaign.targeting_setting.target_restrictions": ["targeting_dimension: AUDIENCE\nbid_only: true\n"], "campaign.tracking_setting.tracking_url": "", "campaign.tracking_url_template": "", "campaign.url_custom_parameters": [], "campaign.vanity_pharma.vanity_pharma_display_url_mode": "UNSPECIFIED", "campaign.vanity_pharma.vanity_pharma_text": "UNSPECIFIED", "campaign.video_brand_safety_suitability": "UNSPECIFIED", "metrics.clicks": 0, "metrics.ctr": 0.0, "metrics.conversions": 0.0, "metrics.conversions_value": 0.0, "metrics.cost_micros": 0, "metrics.impressions": 4.0, "metrics.video_views": 0.0, "metrics.video_quartile_p100_rate": 0.0, "segments.date": "2022-04-09", "segments.hour": 7.0}, "emitted_at": 1671617378663} diff --git a/airbyte-integrations/connectors/source-google-ads/source_google_ads/streams.py b/airbyte-integrations/connectors/source-google-ads/source_google_ads/streams.py index f51264e742e24..1d61f98bf3f6a 100644 --- a/airbyte-integrations/connectors/source-google-ads/source_google_ads/streams.py +++ b/airbyte-integrations/connectors/source-google-ads/source_google_ads/streams.py @@ -2,6 +2,7 @@ # Copyright (c) 2022 Airbyte, Inc., all rights reserved. # +import logging from abc import ABC from typing import Any, Iterable, List, Mapping, MutableMapping, Optional, Tuple @@ -18,6 +19,24 @@ from .models import Customer +class cyclic_sieve: + def __init__(self, logger: logging.Logger, fraction: int = 10): + self._logger = logger + self._cycle_counter = 0 + self._fraction = fraction + + def __getattr__(self, item): + if self._cycle_counter % self._fraction == 0: + return getattr(self._logger, item) + return self.stub + + def stub(self, *args, **kwargs): + pass + + def bump(self): + self._cycle_counter += 1 + + def parse_dates(stream_slice): start_date = pendulum.parse(stream_slice["start_date"]) end_date = pendulum.parse(stream_slice["end_date"]) @@ -91,6 +110,7 @@ class GoogleAdsStream(Stream, ABC): def __init__(self, api: GoogleAds, customers: List[Customer]): self.google_ads_client = api self.customers = customers + self.base_sieve_logger = cyclic_sieve(self.logger, 10) def get_query(self, stream_slice: Mapping[str, Any]) -> str: query = GoogleAds.convert_schema_into_query(schema=self.get_json_schema(), report_name=self.name) @@ -105,7 +125,8 @@ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Ite yield {"customer_id": customer.id} def read_records(self, sync_mode, stream_slice: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Mapping[str, Any]]: - self.logger.info(f"Read records using g-ads client. Stream slice is {stream_slice}") + self.base_sieve_logger.bump() + self.base_sieve_logger.info(f"Read records using g-ads client. Stream slice is {stream_slice}") if stream_slice is None: return [] @@ -119,7 +140,7 @@ def read_records(self, sync_mode, stream_slice: Optional[Mapping[str, Any]] = No raise for error in exc.failure.errors: if error.error_code.authorization_error == AuthorizationErrorEnum.AuthorizationError.CUSTOMER_NOT_ENABLED: - self.logger.error(error.message) + self.base_sieve_logger.error(error.message) continue # log and ignore only CUSTOMER_NOT_ENABLED error, otherwise - raise further raise @@ -139,6 +160,7 @@ def __init__(self, start_date: str, conversion_window_days: int, end_date: str = self._end_date = end_date self._state = {} super().__init__(**kwargs) + self.incremental_sieve_logger = cyclic_sieve(self.logger, 10) @property def state(self) -> MutableMapping[str, Any]: @@ -154,6 +176,7 @@ def current_state(self, customer_id, default=None): def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Iterable[Optional[MutableMapping[str, any]]]: for customer in self.customers: + logger = cyclic_sieve(self.logger, 10) stream_state = stream_state or {} if stream_state.get(customer.id): start_date = stream_state[customer.id].get(self.cursor_field) or self._start_date @@ -165,7 +188,7 @@ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Ite start_date = self._start_date end_date = self._end_date - self.logger.info(f"Generating slices for customer {customer.id}. Start date is {start_date}, end date is {end_date}") + logger.info(f"Generating slices for customer {customer.id}. Start date is {start_date}, end date is {end_date}") for chunk in chunk_date_range( start_date=start_date, @@ -178,7 +201,8 @@ def stream_slices(self, stream_state: Mapping[str, Any] = None, **kwargs) -> Ite ): if chunk: chunk["customer_id"] = customer.id - self.logger.info(f"Next slice is {chunk}") + logger.info(f"Next slice is {chunk}") + logger.bump() yield chunk def read_records( @@ -188,8 +212,9 @@ def read_records( This method is overridden to handle GoogleAdsException with EXPIRED_PAGE_TOKEN error code, and update `start_date` key in the `stream_slice` with the latest read record's cursor value, then retry the sync. """ + self.incremental_sieve_logger.bump() while True: - self.logger.info("Starting a while loop iteration") + self.incremental_sieve_logger.info("Starting a while loop iteration") customer_id = stream_slice and stream_slice["customer_id"] try: records = super().read_records(sync_mode, stream_slice=stream_slice) @@ -200,38 +225,40 @@ def read_records( date_in_latest_record = pendulum.parse(record[self.cursor_field]) cursor_value = (max(date_in_current_stream, date_in_latest_record)).to_date_string() self.state = {customer_id: {self.cursor_field: cursor_value}} - self.logger.info(f"Updated state for customer {customer_id}. Full state is {self.state}.") + self.incremental_sieve_logger.info(f"Updated state for customer {customer_id}. Full state is {self.state}.") yield record continue self.state = {customer_id: {self.cursor_field: record[self.cursor_field]}} - self.logger.info(f"Initialized state for customer {customer_id}. Full state is {self.state}.") + self.incremental_sieve_logger.info(f"Initialized state for customer {customer_id}. Full state is {self.state}.") yield record continue except GoogleAdsException as exception: - self.logger.info(f"Caught a GoogleAdsException: {str(exception)}") + self.incremental_sieve_logger.info(f"Caught a GoogleAdsException: {str(exception)}") error = next(iter(exception.failure.errors)) if error.error_code.request_error == RequestErrorEnum.RequestError.EXPIRED_PAGE_TOKEN: start_date, end_date = parse_dates(stream_slice) current_state = self.current_state(customer_id) - self.logger.info(f"Start date is {start_date}. End date is {end_date}. Current state is {current_state}") + self.incremental_sieve_logger.info( + f"Start date is {start_date}. End date is {end_date}. Current state is {current_state}" + ) if (end_date - start_date).days == 1: # If range days is 1, no need in retry, because it's the minimum date range - self.logger.error("Page token has expired.") + self.incremental_sieve_logger.error("Page token has expired.") raise exception elif current_state == stream_slice["start_date"]: # It couldn't read all the records within one day, it will enter an infinite loop, # so raise the error - self.logger.error("Page token has expired.") + self.incremental_sieve_logger.error("Page token has expired.") raise exception # Retry reading records from where it crushed stream_slice["start_date"] = self.current_state(customer_id, default=stream_slice["start_date"]) - self.logger.info(f"Retry reading records from where it crushed with a modified slice: {stream_slice}") + self.incremental_sieve_logger.info(f"Retry reading records from where it crushed with a modified slice: {stream_slice}") else: # raise caught error for other error statuses raise exception else: # return the control if no exception is raised - self.logger.info("Current slice has been read. Exiting read_records()") + self.incremental_sieve_logger.info("Current slice has been read. Exiting read_records()") return def get_query(self, stream_slice: Mapping[str, Any] = None) -> str: diff --git a/airbyte-integrations/connectors/source-google-ads/unit_tests/test_source.py b/airbyte-integrations/connectors/source-google-ads/unit_tests/test_source.py index 072e2a0626a41..23d115b927e8d 100644 --- a/airbyte-integrations/connectors/source-google-ads/unit_tests/test_source.py +++ b/airbyte-integrations/connectors/source-google-ads/unit_tests/test_source.py @@ -526,15 +526,15 @@ def test_invalid_custom_query_handled(mocked_gads_api, config): @pytest.mark.parametrize( - ("cls", "error", "failure_code", "raise_expected", "log_expected"), + ("cls", "error", "failure_code", "raise_expected"), ( - (AdGroupLabels, "authorization_error", AuthorizationErrorEnum.AuthorizationError.CUSTOMER_NOT_ENABLED, False, True), - (AdGroupLabels, "internal_error", 1, True, False), - (ServiceAccounts, "authentication_error", 1, True, False), - (ServiceAccounts, "internal_error", 1, True, False), + (AdGroupLabels, "authorization_error", AuthorizationErrorEnum.AuthorizationError.CUSTOMER_NOT_ENABLED, False), + (AdGroupLabels, "internal_error", 1, True), + (ServiceAccounts, "authentication_error", 1, True), + (ServiceAccounts, "internal_error", 1, True), ), ) -def test_read_record_error_handling(config, customers, caplog, mocked_gads_api, cls, error, failure_code, raise_expected, log_expected): +def test_read_record_error_handling(config, customers, caplog, mocked_gads_api, cls, error, failure_code, raise_expected): error_msg = "Some unexpected error" mocked_gads_api(failure_code=failure_code, failure_msg=error_msg, error_type=error) google_api = GoogleAds(credentials=config["credentials"]) @@ -546,8 +546,6 @@ def test_read_record_error_handling(config, customers, caplog, mocked_gads_api, else: for _ in stream.read_records(sync_mode=Mock(), stream_slice={"customer_id": "1234567890"}): pass - error_in_log = error_msg in caplog.text - assert error_in_log is log_expected def test_stream_slices(config, customers): diff --git a/airbyte-integrations/connectors/source-google-ads/unit_tests/test_streams.py b/airbyte-integrations/connectors/source-google-ads/unit_tests/test_streams.py index 7e600bef4991a..632c272179633 100644 --- a/airbyte-integrations/connectors/source-google-ads/unit_tests/test_streams.py +++ b/airbyte-integrations/connectors/source-google-ads/unit_tests/test_streams.py @@ -2,6 +2,7 @@ # Copyright (c) 2022 Airbyte, Inc., all rights reserved. # +import logging from unittest.mock import Mock import pytest @@ -12,7 +13,7 @@ from google.api_core.exceptions import DataLoss, InternalServerError, ResourceExhausted, TooManyRequests from grpc import RpcError from source_google_ads.google_ads import GoogleAds -from source_google_ads.streams import ClickView +from source_google_ads.streams import ClickView, cyclic_sieve from .common import MockGoogleAdsClient as MockGoogleAdsClient @@ -218,3 +219,14 @@ def test_retry_transient_errors(mocker, config, customers, error_cls): records = list(stream.read_records(sync_mode=SyncMode.incremental, cursor_field=["segments.date"], stream_slice=stream_slice)) assert mocked_search.call_count == 5 assert records == [] + + +def test_cyclic_sieve(caplog): + original_logger = logging.getLogger("test") + sieve = cyclic_sieve(original_logger, fraction=10) + for _ in range(20): + sieve.info("Ground Control to Major Tom") + sieve.info("Your circuit's dead, there's something wrong") + sieve.info("Can you hear me, Major Tom?") + sieve.bump() + assert len(caplog.records) == 6 # 20 * 3 / 10 diff --git a/docs/integrations/sources/google-ads.md b/docs/integrations/sources/google-ads.md index 3c2177cc32f4b..5077574c55e5e 100644 --- a/docs/integrations/sources/google-ads.md +++ b/docs/integrations/sources/google-ads.md @@ -139,6 +139,7 @@ Due to a limitation in the Google Ads API which does not allow getting performan | Version | Date | Pull Request | Subject | |:---------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| `0.2.8` | 2023-01-18 | [21517](https://github.com/airbytehq/airbyte/pull/21517) | Write fewer logs | | `0.2.7` | 2023-01-10 | [20755](https://github.com/airbytehq/airbyte/pull/20755) | Add more logs to debug stuck syncs | | `0.2.6` | 2022-12-22 | [20855](https://github.com/airbytehq/airbyte/pull/20855) | Retry 429 and 5xx errors | | `0.2.5` | 2022-11-22 | [19700](https://github.com/airbytehq/airbyte/pull/19700) | Fix schema for `campaigns` stream | From dd0706e8015e1a2f4631121394b0083d6d4b5b6c Mon Sep 17 00:00:00 2001 From: Sergio Ropero <42538006+sergio-ropero@users.noreply.github.com> Date: Mon, 23 Jan 2023 14:36:44 +0100 Subject: [PATCH 21/56] fix: Introduces back the `initial_waiting_seconds` option for MSSQL source. (#21348) Introduces back the `initial_waiting_seconds` option for MSSQL source. --- .../main/resources/seed/source_definitions.yaml | 2 +- .../init/src/main/resources/seed/source_specs.yaml | 14 +++++++++++++- .../source-mssql-strict-encrypt/Dockerfile | 2 +- .../src/test/resources/expected_spec.json | 9 +++++++++ .../connectors/source-mssql/Dockerfile | 2 +- .../source-mssql/src/main/resources/spec.json | 9 +++++++++ .../test-integration/resources/expected_spec.json | 9 +++++++++ docs/integrations/sources/mssql.md | 3 ++- 8 files changed, 45 insertions(+), 5 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 9f92385c6812f..e368e561666eb 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -1019,7 +1019,7 @@ - name: Microsoft SQL Server (MSSQL) sourceDefinitionId: b5ea17b1-f170-46dc-bc31-cc744ca984c1 dockerRepository: airbyte/source-mssql - dockerImageTag: 0.4.27 + dockerImageTag: 0.4.28 documentationUrl: https://docs.airbyte.com/integrations/sources/mssql icon: mssql.svg sourceType: database diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index b38dcf6956ae0..2b815cffb911d 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -8113,7 +8113,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-mssql:0.4.27" +- dockerImage: "airbyte/source-mssql:0.4.28" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/mssql" connectionSpecification: @@ -8272,6 +8272,18 @@ \ the \"Snapshot\" level, you must enable the snapshot isolation mode on the database." order: 2 + initial_waiting_seconds: + type: "integer" + title: "Initial Waiting Time in Seconds (Advanced)" + description: "The amount of time the connector will wait when it launches\ + \ to determine if there is new data to sync or not. Defaults to\ + \ 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about\ + \ initial waiting time." + default: 300 + min: 120 + max: 1200 + order: 3 tunnel_method: type: "object" title: "SSH Tunnel Method" diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile index 3ec6c69f7c274..97644ffc9f9da 100644 --- a/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mssql-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.27 +LABEL io.airbyte.version=0.4.28 LABEL io.airbyte.name=airbyte/source-mssql-strict-encrypt diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json index bbdae356015ac..55ef10232e9c9 100644 --- a/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json @@ -139,6 +139,15 @@ "enum": ["Snapshot", "Read Committed"], "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.", "order": 2 + }, + "initial_waiting_seconds": { + "type": "integer", + "title": "Initial Waiting Time in Seconds (Advanced)", + "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.", + "default": 300, + "min": 120, + "max": 1200, + "order": 3 } } } diff --git a/airbyte-integrations/connectors/source-mssql/Dockerfile b/airbyte-integrations/connectors/source-mssql/Dockerfile index b0624aaf167ea..44663ce0fe9c2 100644 --- a/airbyte-integrations/connectors/source-mssql/Dockerfile +++ b/airbyte-integrations/connectors/source-mssql/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mssql COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.27 +LABEL io.airbyte.version=0.4.28 LABEL io.airbyte.name=airbyte/source-mssql diff --git a/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json b/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json index 35b192d2c4de7..9be47072c1500 100644 --- a/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json @@ -150,6 +150,15 @@ "enum": ["Snapshot", "Read Committed"], "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.", "order": 2 + }, + "initial_waiting_seconds": { + "type": "integer", + "title": "Initial Waiting Time in Seconds (Advanced)", + "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.", + "default": 300, + "min": 120, + "max": 1200, + "order": 3 } } } diff --git a/airbyte-integrations/connectors/source-mssql/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-mssql/src/test-integration/resources/expected_spec.json index 4745ff1f922ec..0b94887ffc1a3 100644 --- a/airbyte-integrations/connectors/source-mssql/src/test-integration/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-mssql/src/test-integration/resources/expected_spec.json @@ -150,6 +150,15 @@ "enum": ["Snapshot", "Read Committed"], "description": "Existing data in the database are synced through an initial snapshot. This parameter controls the isolation level that will be used during the initial snapshotting. If you choose the \"Snapshot\" level, you must enable the snapshot isolation mode on the database.", "order": 2 + }, + "initial_waiting_seconds": { + "type": "integer", + "title": "Initial Waiting Time in Seconds (Advanced)", + "description": "The amount of time the connector will wait when it launches to determine if there is new data to sync or not. Defaults to 300 seconds. Valid range: 120 seconds to 1200 seconds. Read about initial waiting time.", + "default": 300, + "min": 120, + "max": 1200, + "order": 3 } } } diff --git a/docs/integrations/sources/mssql.md b/docs/integrations/sources/mssql.md index 44a86a62e01c9..eaadcae5f40b9 100644 --- a/docs/integrations/sources/mssql.md +++ b/docs/integrations/sources/mssql.md @@ -341,7 +341,8 @@ WHERE actor_definition_id ='b5ea17b1-f170-46dc-bc31-cc744ca984c1' AND (configura | Version | Date | Pull Request | Subject | |:--------|:-----------|:------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------| -| 0.4.27 | 2022-12-14 | [20436](https://github.com/airbytehq/airbyte/pull/20346) | Consolidate date/time values mapping for JDBC sources | +| 0.4.28 | 2023-01-18 | [21348](https://github.com/airbytehq/airbyte/pull/21348) | Fix error introduced in [18959](https://github.com/airbytehq/airbyte/pull/18959) in which option `initial_waiting_seconds` was removed | +| 0.4.27 | 2022-12-14 | [20436](https://github.com/airbytehq/airbyte/pull/20346) | Consolidate date/time values mapping for JDBC sources | | 0.4.26 | 2022-12-12 | [18959](https://github.com/airbytehq/airbyte/pull/18959) | CDC : Don't timeout if snapshot is not complete. | | 0.4.25 | 2022-11-04 | [18732](https://github.com/airbytehq/airbyte/pull/18732) | Upgrade debezium version to 1.9.6 | | 0.4.24 | 2022-10-25 | [18383](https://github.com/airbytehq/airbyte/pull/18383) | Better SSH error handling + messages | From 0fbd3b284e6bab07592a529542079925f0c50aff Mon Sep 17 00:00:00 2001 From: Joey Marshment-Howell Date: Mon, 23 Jan 2023 15:13:37 +0100 Subject: [PATCH 22/56] =?UTF-8?q?=F0=9F=AA=9F=20=F0=9F=90=9B=20Force=20ref?= =?UTF-8?q?resh=20of=20firebase=20token=20after=20verifying=20email=20(#21?= =?UTF-8?q?687)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/packages/cloud/lib/auth/GoogleAuthService.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/airbyte-webapp/src/packages/cloud/lib/auth/GoogleAuthService.ts b/airbyte-webapp/src/packages/cloud/lib/auth/GoogleAuthService.ts index 32c11bf9f1c60..df0f42e91754c 100644 --- a/airbyte-webapp/src/packages/cloud/lib/auth/GoogleAuthService.ts +++ b/airbyte-webapp/src/packages/cloud/lib/auth/GoogleAuthService.ts @@ -20,6 +20,8 @@ import { signInWithPopup, GoogleAuthProvider, GithubAuthProvider, + getIdToken, + reload, } from "firebase/auth"; import { Provider } from "config"; @@ -144,7 +146,13 @@ export class GoogleAuthService { } async confirmEmailVerify(code: string): Promise { - return applyActionCode(this.auth, code); + await applyActionCode(this.auth, code); + + // Reload the user and get a fresh token with email_verified: true + if (this.auth.currentUser) { + await reload(this.auth.currentUser); + await getIdToken(this.auth.currentUser, true); + } } async signInWithEmailLink(email: string): Promise { From 79de89d4397e9561c2ebb770034536316124a627 Mon Sep 17 00:00:00 2001 From: Akash Kulkarni <113392464+akashkulk@users.noreply.github.com> Date: Mon, 23 Jan 2023 06:33:58 -0800 Subject: [PATCH 23/56] Source Postgres : Fast query for estimate messages (#21683) * Source Postgres : Fast query for estimate messages * Update documentation * auto-bump connector version * Update strict-encrypt Dockerfile Co-authored-by: Octavia Squidington III --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../source-postgres-strict-encrypt/Dockerfile | 2 +- .../connectors/source-postgres/Dockerfile | 2 +- .../source/postgres/PostgresQueryUtils.java | 2 +- .../source/postgres/PostgresSource.java | 32 ++- docs/integrations/sources/postgres.md | 241 +++++++++--------- 7 files changed, 149 insertions(+), 134 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index e368e561666eb..9a03ea0179555 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -1338,7 +1338,7 @@ - name: Postgres sourceDefinitionId: decd338e-5647-4c0b-adf4-da0e75f5a750 dockerRepository: airbyte/source-postgres - dockerImageTag: 1.0.38 + dockerImageTag: 1.0.39 documentationUrl: https://docs.airbyte.com/integrations/sources/postgres icon: postgresql.svg sourceType: database diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 2b815cffb911d..8739219dcc27a 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -11488,7 +11488,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-postgres:1.0.38" +- dockerImage: "airbyte/source-postgres:1.0.39" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/postgres" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile index 6e8c951d7a933..75240c9b2918d 100644 --- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.0.38 +LABEL io.airbyte.version=1.0.39 LABEL io.airbyte.name=airbyte/source-postgres-strict-encrypt diff --git a/airbyte-integrations/connectors/source-postgres/Dockerfile b/airbyte-integrations/connectors/source-postgres/Dockerfile index 04a84a8f6750a..2d826c4e83760 100644 --- a/airbyte-integrations/connectors/source-postgres/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.0.38 +LABEL io.airbyte.version=1.0.39 LABEL io.airbyte.name=airbyte/source-postgres diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresQueryUtils.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresQueryUtils.java index 23140901e3a79..855a5d34ad2f9 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresQueryUtils.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresQueryUtils.java @@ -26,7 +26,7 @@ public class PostgresQueryUtils { public static final String TABLE_ESTIMATE_QUERY = """ - SELECT (SELECT COUNT(*) FROM %s) AS %s, + SELECT (select reltuples::int8 as count from pg_class c JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace where nspname='%s' AND relname='%s') AS %s, pg_relation_size('%s') AS %s; """; diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java index d2a3aab3609d5..06df1a710c478 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java @@ -557,13 +557,20 @@ protected void estimateFullRefreshSyncSize(final JdbcDatabase database, final String fullTableName = getFullyQualifiedTableNameWithQuoting(schemaName, tableName, getQuoteString()); - final List tableEstimateResult = getFullTableEstimate(database, fullTableName); + final List tableEstimateResult = getFullTableEstimate(database, fullTableName, schemaName, tableName); if (!tableEstimateResult.isEmpty() && tableEstimateResult.get(0).has(ROW_COUNT_RESULT_COL) && tableEstimateResult.get(0).has(TOTAL_BYTES_RESULT_COL)) { final long syncRowCount = tableEstimateResult.get(0).get(ROW_COUNT_RESULT_COL).asLong(); final long syncByteCount = tableEstimateResult.get(0).get(TOTAL_BYTES_RESULT_COL).asLong(); + // The fast count query can return negative or otherwise invalid results for small tables. In this + // case, we can skip emitting an + // estimate trace altogether since the sync will likely complete quickly. + if (syncRowCount <= 0) { + return; + } + // Here, we double the bytes estimate to account for serialization. Perhaps a better way to do this // is to // read a row and Stringify it to better understand the accurate volume of data sent over the wire. @@ -588,20 +595,23 @@ protected void estimateIncrementalSyncSize(final JdbcDatabase database, final String fullTableName = getFullyQualifiedTableNameWithQuoting(schemaName, tableName, getQuoteString()); - final List tableEstimateResult = getFullTableEstimate(database, fullTableName); + final List tableEstimateResult = getFullTableEstimate(database, fullTableName, schemaName, tableName); final long tableRowCount = tableEstimateResult.get(0).get(ROW_COUNT_RESULT_COL).asLong(); final long tableByteCount = tableEstimateResult.get(0).get(TOTAL_BYTES_RESULT_COL).asLong(); + // The fast count query can return negative or otherwise invalid results for small tables. In this + // case, we can skip emitting an + // estimate trace altogether since the sync will likely complete quickly. + if (tableRowCount <= 0) { + return; + } + final long syncRowCount; final long syncByteCount; syncRowCount = getIncrementalTableRowCount(database, fullTableName, cursorInfo, cursorFieldType); - if (tableRowCount == 0) { - syncByteCount = 0; - } else { - syncByteCount = (tableByteCount / tableRowCount) * syncRowCount; - } + syncByteCount = (tableByteCount / tableRowCount) * syncRowCount; // Here, we double the bytes estimate to account for serialization. Perhaps a better way to do this // is to @@ -615,10 +625,14 @@ protected void estimateIncrementalSyncSize(final JdbcDatabase database, } } - private List getFullTableEstimate(final JdbcDatabase database, final String fullTableName) throws SQLException { + private List getFullTableEstimate(final JdbcDatabase database, + final String fullTableName, + final String schemaName, + final String tableName) + throws SQLException { // Construct the table estimate query. final String tableEstimateQuery = - String.format(TABLE_ESTIMATE_QUERY, fullTableName, ROW_COUNT_RESULT_COL, fullTableName, TOTAL_BYTES_RESULT_COL); + String.format(TABLE_ESTIMATE_QUERY, schemaName, tableName, ROW_COUNT_RESULT_COL, fullTableName, TOTAL_BYTES_RESULT_COL); LOGGER.debug("table estimate query: {}", tableEstimateQuery); final List jsonNodes = database.bufferedResultSetQuery(conn -> conn.createStatement().executeQuery(tableEstimateQuery), resultSet -> JdbcUtils.getDefaultSourceOperations().rowToJson(resultSet)); diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md index 4b3ed0421585d..b46e079717308 100644 --- a/docs/integrations/sources/postgres.md +++ b/docs/integrations/sources/postgres.md @@ -409,124 +409,125 @@ The root causes is that the WALs needed for the incremental sync has been remove ## Changelog -| Version | Date | Pull Request | Subject | -|:--------|:-----------|:----------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 1.0.38 | 2022-01-17 | [20436](https://github.com/airbytehq/airbyte/pull/20346) | Consolidate date/time values mapping for JDBC sources | -| 1.0.37 | 2023-01-17 | [20783](https://github.com/airbytehq/airbyte/pull/20783) | Emit estimate trace messages for non-CDC mode. | -| 1.0.36 | 2023-01-11 | [21003](https://github.com/airbytehq/airbyte/pull/21003) | Handle null values for array data types in CDC mode gracefully. | -| 1.0.35 | 2023-01-04 | [20469](https://github.com/airbytehq/airbyte/pull/20469) | Introduce feature to make LSN commit behaviour configurable. | -| 1.0.34 | 2022-12-13 | [20378](https://github.com/airbytehq/airbyte/pull/20378) | Improve descriptions | -| 1.0.33 | 2022-12-12 | [18959](https://github.com/airbytehq/airbyte/pull/18959) | CDC : Don't timeout if snapshot is not complete. | -| 1.0.32 | 2022-12-12 | [20192](https://github.com/airbytehq/airbyte/pull/20192) | Only throw a warning if cursor column contains null values. | -| 1.0.31 | 2022-12-02 | [19889](https://github.com/airbytehq/airbyte/pull/19889) | Check before each sync and stop if an incremental sync cursor column contains a null value. | -| | 2022-12-02 | [19985](https://github.com/airbytehq/airbyte/pull/19985) | Reenable incorrectly-disabled `wal2json` CDC plugin | -| 1.0.30 | 2022-11-29 | [19024](https://github.com/airbytehq/airbyte/pull/19024) | Skip tables from schema where user do not have Usage permission during discovery. | -| 1.0.29 | 2022-11-29 | [19623](https://github.com/airbytehq/airbyte/pull/19623) | Mark PSQLException related to using replica that is configured as a hot standby server as config error. | -| 1.0.28 | 2022-11-28 | [19514](https://github.com/airbytehq/airbyte/pull/19514) | Adjust batch selection memory limits databases. | -| 1.0.27 | 2022-11-28 | [16990](https://github.com/airbytehq/airbyte/pull/16990) | Handle arrays data types | -| 1.0.26 | 2022-11-18 | [19551](https://github.com/airbytehq/airbyte/pull/19551) | Fixes bug with ssl modes | -| 1.0.25 | 2022-11-16 | [19004](https://github.com/airbytehq/airbyte/pull/19004) | Use Debezium heartbeats to improve CDC replication of large databases. | -| 1.0.24 | 2022-11-07 | [19291](https://github.com/airbytehq/airbyte/pull/19291) | Default timeout is reduced from 1 min to 10sec | -| 1.0.23 | 2022-11-07 | [19025](https://github.com/airbytehq/airbyte/pull/19025) | Stop enforce SSL if ssl mode is disabled | -| 1.0.22 | 2022-10-31 | [18538](https://github.com/airbytehq/airbyte/pull/18538) | Encode database name | -| 1.0.21 | 2022-10-25 | [18256](https://github.com/airbytehq/airbyte/pull/18256) | Disable allow and prefer ssl modes in CDC mode | -| 1.0.20 | 2022-10-25 | [18383](https://github.com/airbytehq/airbyte/pull/18383) | Better SSH error handling + messages | -| 1.0.19 | 2022-10-21 | [18263](https://github.com/airbytehq/airbyte/pull/18263) | Fixes bug introduced in [15833](https://github.com/airbytehq/airbyte/pull/15833) and adds better error messaging for SSH tunnel in Destinations | -| 1.0.18 | 2022-10-19 | [18087](https://github.com/airbytehq/airbyte/pull/18087) | Better error messaging for configuration errors (SSH configs, choosing an invalid cursor) | -| 1.0.17 | 2022-10-17 | [18041](https://github.com/airbytehq/airbyte/pull/18041) | Fixes bug introduced 2022-09-12 with SshTunnel, handles iterator exception properly | -| 1.0.16 | 2022-10-13 | [15535](https://github.com/airbytehq/airbyte/pull/16238) | Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode | -| 1.0.15 | 2022-10-11 | [17782](https://github.com/airbytehq/airbyte/pull/17782) | Handle 24:00:00 value for Time column | -| 1.0.14 | 2022-10-03 | [17515](https://github.com/airbytehq/airbyte/pull/17515) | Fix an issue preventing connection using client certificate | -| 1.0.13 | 2022-10-01 | [17459](https://github.com/airbytehq/airbyte/pull/17459) | Upgrade debezium version to 1.9.6 from 1.9.2 | -| 1.0.12 | 2022-09-27 | [17299](https://github.com/airbytehq/airbyte/pull/17299) | Improve error handling for strict-encrypt postgres source | -| 1.0.11 | 2022-09-26 | [17131](https://github.com/airbytehq/airbyte/pull/17131) | Allow nullable columns to be used as cursor | -| 1.0.10 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | Wrap logs in AirbyteLogMessage | -| 1.0.9 | 2022-09-13 | [16657](https://github.com/airbytehq/airbyte/pull/16657) | Improve CDC record queueing performance | -| 1.0.8 | 2022-09-08 | [16202](https://github.com/airbytehq/airbyte/pull/16202) | Adds error messaging factory to UI | -| 1.0.7 | 2022-08-30 | [16114](https://github.com/airbytehq/airbyte/pull/16114) | Prevent traffic going on an unsecured channel in strict-encryption version of source postgres | -| 1.0.6 | 2022-08-30 | [16138](https://github.com/airbytehq/airbyte/pull/16138) | Remove unnecessary logging | -| 1.0.5 | 2022-08-25 | [15993](https://github.com/airbytehq/airbyte/pull/15993) | Add support for connection over SSL in CDC mode | -| 1.0.4 | 2022-08-23 | [15877](https://github.com/airbytehq/airbyte/pull/15877) | Fix temporal data type bug which was causing failure in CDC mode | -| 1.0.3 | 2022-08-18 | [14356](https://github.com/airbytehq/airbyte/pull/14356) | DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field | -| 1.0.2 | 2022-08-11 | [15538](https://github.com/airbytehq/airbyte/pull/15538) | Allow additional properties in db stream state | -| 1.0.1 | 2022-08-10 | [15496](https://github.com/airbytehq/airbyte/pull/15496) | Fix state emission in incremental sync | -| | 2022-08-10 | [15481](https://github.com/airbytehq/airbyte/pull/15481) | Fix data handling from WAL logs in CDC mode | -| 1.0.0 | 2022-08-05 | [15380](https://github.com/airbytehq/airbyte/pull/15380) | Change connector label to generally_available (requires [upgrading](https://docs.airbyte.com/operator-guides/upgrading-airbyte/) your Airbyte platform to `v0.40.0-alpha`) | -| 0.4.44 | 2022-08-05 | [15342](https://github.com/airbytehq/airbyte/pull/15342) | Adjust titles and descriptions in spec.json | -| 0.4.43 | 2022-08-03 | [15226](https://github.com/airbytehq/airbyte/pull/15226) | Make connectionTimeoutMs configurable through JDBC url parameters | -| 0.4.42 | 2022-08-03 | [15273](https://github.com/airbytehq/airbyte/pull/15273) | Fix a bug in `0.4.36` and correctly parse the CDC initial record waiting time | -| 0.4.41 | 2022-08-03 | [15077](https://github.com/airbytehq/airbyte/pull/15077) | Sync data from beginning if the LSN is no longer valid in CDC | -| | 2022-08-03 | [14903](https://github.com/airbytehq/airbyte/pull/14903) | Emit state messages more frequently (⛔ this version has a bug; use `1.0.1` instead) | -| 0.4.40 | 2022-08-03 | [15187](https://github.com/airbytehq/airbyte/pull/15187) | Add support for BCE dates/timestamps | -| | 2022-08-03 | [14534](https://github.com/airbytehq/airbyte/pull/14534) | Align regular and CDC integration tests and data mappers | -| 0.4.39 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | -| 0.4.38 | 2022-07-26 | [14362](https://github.com/airbytehq/airbyte/pull/14362) | Integral columns are now discovered as int64 fields. | -| 0.4.37 | 2022-07-22 | [14714](https://github.com/airbytehq/airbyte/pull/14714) | Clarified error message when invalid cursor column selected | -| 0.4.36 | 2022-07-21 | [14451](https://github.com/airbytehq/airbyte/pull/14451) | Make initial CDC waiting time configurable (⛔ this version has a bug and will not work; use `0.4.42` instead) | -| 0.4.35 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | -| 0.4.34 | 2022-07-17 | [13840](https://github.com/airbytehq/airbyte/pull/13840) | Added the ability to connect using different SSL modes and SSL certificates. | -| 0.4.33 | 2022-07-14 | [14586](https://github.com/airbytehq/airbyte/pull/14586) | Validate source JDBC url parameters | -| 0.4.32 | 2022-07-07 | [14694](https://github.com/airbytehq/airbyte/pull/14694) | Force to produce LEGACY state if the use stream capable feature flag is set to false | -| 0.4.31 | 2022-07-07 | [14447](https://github.com/airbytehq/airbyte/pull/14447) | Under CDC mode, retrieve only those tables included in the publications | -| 0.4.30 | 2022-06-30 | [14251](https://github.com/airbytehq/airbyte/pull/14251) | Use more simple and comprehensive query to get selectable tables | -| 0.4.29 | 2022-06-29 | [14265](https://github.com/airbytehq/airbyte/pull/14265) | Upgrade postgresql JDBC version to 42.3.5 | -| 0.4.28 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | -| 0.4.26 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | -| 0.4.25 | 2022-06-15 | [13823](https://github.com/airbytehq/airbyte/pull/13823) | Publish adaptive postgres source that enforces ssl on cloud + Debezium version upgrade to 1.9.2 from 1.4.2 | -| 0.4.24 | 2022-06-14 | [13549](https://github.com/airbytehq/airbyte/pull/13549) | Fixed truncated precision if the value of microseconds or seconds is 0 | -| 0.4.23 | 2022-06-13 | [13655](https://github.com/airbytehq/airbyte/pull/13745) | Fixed handling datetime cursors when upgrading from older versions of the connector | -| 0.4.22 | 2022-06-09 | [13655](https://github.com/airbytehq/airbyte/pull/13655) | Fixed bug with unsupported date-time datatypes during incremental sync | -| 0.4.21 | 2022-06-06 | [13435](https://github.com/airbytehq/airbyte/pull/13435) | Adjust JDBC fetch size based on max memory and max row size | -| 0.4.20 | 2022-06-02 | [13367](https://github.com/airbytehq/airbyte/pull/13367) | Added convertion hstore to json format | -| 0.4.19 | 2022-05-25 | [13166](https://github.com/airbytehq/airbyte/pull/13166) | Added timezone awareness and handle BC dates | -| 0.4.18 | 2022-05-25 | [13083](https://github.com/airbytehq/airbyte/pull/13083) | Add support for tsquey type | -| 0.4.17 | 2022-05-19 | [13016](https://github.com/airbytehq/airbyte/pull/13016) | CDC modify schema to allow null values | -| 0.4.16 | 2022-05-14 | [12840](https://github.com/airbytehq/airbyte/pull/12840) | Added custom JDBC parameters field | -| 0.4.15 | 2022-05-13 | [12834](https://github.com/airbytehq/airbyte/pull/12834) | Fix the bug that the connector returns empty catalog for Azure Postgres database | -| 0.4.14 | 2022-05-08 | [12689](https://github.com/airbytehq/airbyte/pull/12689) | Add table retrieval according to role-based `SELECT` privilege | -| 0.4.13 | 2022-05-05 | [10230](https://github.com/airbytehq/airbyte/pull/10230) | Explicitly set null value for field in json | -| 0.4.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | -| 0.4.11 | 2022-04-11 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | -| 0.4.10 | 2022-04-08 | [11798](https://github.com/airbytehq/airbyte/pull/11798) | Fixed roles for fetching materialized view processing | -| 0.4.8 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | -| 0.4.7 | 2022-02-18 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Updated timestamp transformation with microseconds | -| 0.4.6 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | (unpublished) Add `-XX:+ExitOnOutOfMemoryError` JVM option | -| 0.4.5 | 2022-02-08 | [10173](https://github.com/airbytehq/airbyte/pull/10173) | Improved discovering tables in case if user does not have permissions to any table | -| 0.4.4 | 2022-01-26 | [9807](https://github.com/airbytehq/airbyte/pull/9807) | Update connector fields title/description | -| 0.4.3 | 2022-01-24 | [9554](https://github.com/airbytehq/airbyte/pull/9554) | Allow handling of java sql date in CDC | -| 0.4.2 | 2022-01-13 | [9360](https://github.com/airbytehq/airbyte/pull/9360) | Added schema selection | -| 0.4.1 | 2022-01-05 | [9116](https://github.com/airbytehq/airbyte/pull/9116) | Added materialized views processing | -| 0.4.0 | 2021-12-13 | [8726](https://github.com/airbytehq/airbyte/pull/8726) | Support all Postgres types | -| 0.3.17 | 2021-12-01 | [8371](https://github.com/airbytehq/airbyte/pull/8371) | Fixed incorrect handling "\n" in ssh key | -| 0.3.16 | 2021-11-28 | [7995](https://github.com/airbytehq/airbyte/pull/7995) | Fixed money type with amount > 1000 | -| 0.3.15 | 2021-11-26 | [8066](https://github.com/airbytehq/airbyte/pull/8266) | Fixed the case, when Views are not listed during schema discovery | -| 0.3.14 | 2021-11-17 | [8010](https://github.com/airbytehq/airbyte/pull/8010) | Added checking of privileges before table internal discovery | -| 0.3.13 | 2021-10-26 | [7339](https://github.com/airbytehq/airbyte/pull/7339) | Support or improve support for Interval, Money, Date, various geometric data types, inventory_items, and others | -| 0.3.12 | 2021-09-30 | [6585](https://github.com/airbytehq/airbyte/pull/6585) | Improved SSH Tunnel key generation steps | -| 0.3.11 | 2021-09-02 | [5742](https://github.com/airbytehq/airbyte/pull/5742) | Add SSH Tunnel support | -| 0.3.9 | 2021-08-17 | [5304](https://github.com/airbytehq/airbyte/pull/5304) | Fix CDC OOM issue | -| 0.3.8 | 2021-08-13 | [4699](https://github.com/airbytehq/airbyte/pull/4699) | Added json config validator | -| 0.3.4 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | -| 0.3.3 | 2021-06-08 | [3960](https://github.com/airbytehq/airbyte/pull/3960) | Add method field in specification parameters | -| 0.3.2 | 2021-05-26 | [3179](https://github.com/airbytehq/airbyte/pull/3179) | Remove `isCDC` logging | -| 0.3.1 | 2021-04-21 | [2878](https://github.com/airbytehq/airbyte/pull/2878) | Set defined cursor for CDC | -| 0.3.0 | 2021-04-21 | [2990](https://github.com/airbytehq/airbyte/pull/2990) | Support namespaces | -| 0.2.7 | 2021-04-16 | [2923](https://github.com/airbytehq/airbyte/pull/2923) | SSL spec as optional | -| 0.2.6 | 2021-04-16 | [2757](https://github.com/airbytehq/airbyte/pull/2757) | Support SSL connection | -| 0.2.5 | 2021-04-12 | [2859](https://github.com/airbytehq/airbyte/pull/2859) | CDC bugfix | -| 0.2.4 | 2021-04-09 | [2548](https://github.com/airbytehq/airbyte/pull/2548) | Support CDC | -| 0.2.3 | 2021-03-28 | [2600](https://github.com/airbytehq/airbyte/pull/2600) | Add NCHAR and NVCHAR support to DB and cursor type casting | -| 0.2.2 | 2021-03-26 | [2460](https://github.com/airbytehq/airbyte/pull/2460) | Destination supports destination sync mode | -| 0.2.1 | 2021-03-18 | [2488](https://github.com/airbytehq/airbyte/pull/2488) | Sources support primary keys | -| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | -| 0.1.13 | 2021-02-02 | [1887](https://github.com/airbytehq/airbyte/pull/1887) | Migrate AbstractJdbcSource to use iterators | -| 0.1.12 | 2021-01-25 | [1746](https://github.com/airbytehq/airbyte/pull/1746) | Fix NPE in State Decorator | -| 0.1.11 | 2021-01-25 | [1765](https://github.com/airbytehq/airbyte/pull/1765) | Add field titles to specification | -| 0.1.10 | 2021-01-19 | [1724](https://github.com/airbytehq/airbyte/pull/1724) | Fix JdbcSource handling of tables with same names in different schemas | -| 0.1.9 | 2021-01-14 | [1655](https://github.com/airbytehq/airbyte/pull/1655) | Fix JdbcSource OOM | -| 0.1.8 | 2021-01-13 | [1588](https://github.com/airbytehq/airbyte/pull/1588) | Handle invalid numeric values in JDBC source | -| 0.1.7 | 2021-01-08 | [1307](https://github.com/airbytehq/airbyte/pull/1307) | Migrate Postgres and MySql to use new JdbcSource | -| 0.1.6 | 2020-12-09 | [1172](https://github.com/airbytehq/airbyte/pull/1172) | Support incremental sync | -| 0.1.5 | 2020-11-30 | [1038](https://github.com/airbytehq/airbyte/pull/1038) | Change JDBC sources to discover more than standard schemas | -| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | +| Version | Date | Pull Request | Subject | +|:--------|:-----------|:------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 1.0.39 | 2022-01-20 | [21683](https://github.com/airbytehq/airbyte/pull/21683) | Speed up esmtimates for trace messages in non-CDC mode. | +| 1.0.38 | 2022-01-17 | [20436](https://github.com/airbytehq/airbyte/pull/20346) | Consolidate date/time values mapping for JDBC sources | +| 1.0.37 | 2023-01-17 | [20783](https://github.com/airbytehq/airbyte/pull/20783) | Emit estimate trace messages for non-CDC mode. | +| 1.0.36 | 2023-01-11 | [21003](https://github.com/airbytehq/airbyte/pull/21003) | Handle null values for array data types in CDC mode gracefully. | +| 1.0.35 | 2023-01-04 | [20469](https://github.com/airbytehq/airbyte/pull/20469) | Introduce feature to make LSN commit behaviour configurable. | +| 1.0.34 | 2022-12-13 | [20378](https://github.com/airbytehq/airbyte/pull/20378) | Improve descriptions | +| 1.0.33 | 2022-12-12 | [18959](https://github.com/airbytehq/airbyte/pull/18959) | CDC : Don't timeout if snapshot is not complete. | +| 1.0.32 | 2022-12-12 | [20192](https://github.com/airbytehq/airbyte/pull/20192) | Only throw a warning if cursor column contains null values. | +| 1.0.31 | 2022-12-02 | [19889](https://github.com/airbytehq/airbyte/pull/19889) | Check before each sync and stop if an incremental sync cursor column contains a null value. | +| | 2022-12-02 | [19985](https://github.com/airbytehq/airbyte/pull/19985) | Reenable incorrectly-disabled `wal2json` CDC plugin | +| 1.0.30 | 2022-11-29 | [19024](https://github.com/airbytehq/airbyte/pull/19024) | Skip tables from schema where user do not have Usage permission during discovery. | +| 1.0.29 | 2022-11-29 | [19623](https://github.com/airbytehq/airbyte/pull/19623) | Mark PSQLException related to using replica that is configured as a hot standby server as config error. | +| 1.0.28 | 2022-11-28 | [19514](https://github.com/airbytehq/airbyte/pull/19514) | Adjust batch selection memory limits databases. | +| 1.0.27 | 2022-11-28 | [16990](https://github.com/airbytehq/airbyte/pull/16990) | Handle arrays data types | +| 1.0.26 | 2022-11-18 | [19551](https://github.com/airbytehq/airbyte/pull/19551) | Fixes bug with ssl modes | +| 1.0.25 | 2022-11-16 | [19004](https://github.com/airbytehq/airbyte/pull/19004) | Use Debezium heartbeats to improve CDC replication of large databases. | +| 1.0.24 | 2022-11-07 | [19291](https://github.com/airbytehq/airbyte/pull/19291) | Default timeout is reduced from 1 min to 10sec | +| 1.0.23 | 2022-11-07 | [19025](https://github.com/airbytehq/airbyte/pull/19025) | Stop enforce SSL if ssl mode is disabled | +| 1.0.22 | 2022-10-31 | [18538](https://github.com/airbytehq/airbyte/pull/18538) | Encode database name | +| 1.0.21 | 2022-10-25 | [18256](https://github.com/airbytehq/airbyte/pull/18256) | Disable allow and prefer ssl modes in CDC mode | +| 1.0.20 | 2022-10-25 | [18383](https://github.com/airbytehq/airbyte/pull/18383) | Better SSH error handling + messages | +| 1.0.19 | 2022-10-21 | [18263](https://github.com/airbytehq/airbyte/pull/18263) | Fixes bug introduced in [15833](https://github.com/airbytehq/airbyte/pull/15833) and adds better error messaging for SSH tunnel in Destinations | +| 1.0.18 | 2022-10-19 | [18087](https://github.com/airbytehq/airbyte/pull/18087) | Better error messaging for configuration errors (SSH configs, choosing an invalid cursor) | +| 1.0.17 | 2022-10-17 | [18041](https://github.com/airbytehq/airbyte/pull/18041) | Fixes bug introduced 2022-09-12 with SshTunnel, handles iterator exception properly | +| 1.0.16 | 2022-10-13 | [15535](https://github.com/airbytehq/airbyte/pull/16238) | Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode | +| 1.0.15 | 2022-10-11 | [17782](https://github.com/airbytehq/airbyte/pull/17782) | Handle 24:00:00 value for Time column | +| 1.0.14 | 2022-10-03 | [17515](https://github.com/airbytehq/airbyte/pull/17515) | Fix an issue preventing connection using client certificate | +| 1.0.13 | 2022-10-01 | [17459](https://github.com/airbytehq/airbyte/pull/17459) | Upgrade debezium version to 1.9.6 from 1.9.2 | +| 1.0.12 | 2022-09-27 | [17299](https://github.com/airbytehq/airbyte/pull/17299) | Improve error handling for strict-encrypt postgres source | +| 1.0.11 | 2022-09-26 | [17131](https://github.com/airbytehq/airbyte/pull/17131) | Allow nullable columns to be used as cursor | +| 1.0.10 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | Wrap logs in AirbyteLogMessage | +| 1.0.9 | 2022-09-13 | [16657](https://github.com/airbytehq/airbyte/pull/16657) | Improve CDC record queueing performance | +| 1.0.8 | 2022-09-08 | [16202](https://github.com/airbytehq/airbyte/pull/16202) | Adds error messaging factory to UI | +| 1.0.7 | 2022-08-30 | [16114](https://github.com/airbytehq/airbyte/pull/16114) | Prevent traffic going on an unsecured channel in strict-encryption version of source postgres | +| 1.0.6 | 2022-08-30 | [16138](https://github.com/airbytehq/airbyte/pull/16138) | Remove unnecessary logging | +| 1.0.5 | 2022-08-25 | [15993](https://github.com/airbytehq/airbyte/pull/15993) | Add support for connection over SSL in CDC mode | +| 1.0.4 | 2022-08-23 | [15877](https://github.com/airbytehq/airbyte/pull/15877) | Fix temporal data type bug which was causing failure in CDC mode | +| 1.0.3 | 2022-08-18 | [14356](https://github.com/airbytehq/airbyte/pull/14356) | DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field | +| 1.0.2 | 2022-08-11 | [15538](https://github.com/airbytehq/airbyte/pull/15538) | Allow additional properties in db stream state | +| 1.0.1 | 2022-08-10 | [15496](https://github.com/airbytehq/airbyte/pull/15496) | Fix state emission in incremental sync | +| | 2022-08-10 | [15481](https://github.com/airbytehq/airbyte/pull/15481) | Fix data handling from WAL logs in CDC mode | +| 1.0.0 | 2022-08-05 | [15380](https://github.com/airbytehq/airbyte/pull/15380) | Change connector label to generally_available (requires [upgrading](https://docs.airbyte.com/operator-guides/upgrading-airbyte/) your Airbyte platform to `v0.40.0-alpha`) | +| 0.4.44 | 2022-08-05 | [15342](https://github.com/airbytehq/airbyte/pull/15342) | Adjust titles and descriptions in spec.json | +| 0.4.43 | 2022-08-03 | [15226](https://github.com/airbytehq/airbyte/pull/15226) | Make connectionTimeoutMs configurable through JDBC url parameters | +| 0.4.42 | 2022-08-03 | [15273](https://github.com/airbytehq/airbyte/pull/15273) | Fix a bug in `0.4.36` and correctly parse the CDC initial record waiting time | +| 0.4.41 | 2022-08-03 | [15077](https://github.com/airbytehq/airbyte/pull/15077) | Sync data from beginning if the LSN is no longer valid in CDC | +| | 2022-08-03 | [14903](https://github.com/airbytehq/airbyte/pull/14903) | Emit state messages more frequently (⛔ this version has a bug; use `1.0.1` instead) | +| 0.4.40 | 2022-08-03 | [15187](https://github.com/airbytehq/airbyte/pull/15187) | Add support for BCE dates/timestamps | +| | 2022-08-03 | [14534](https://github.com/airbytehq/airbyte/pull/14534) | Align regular and CDC integration tests and data mappers | +| 0.4.39 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | +| 0.4.38 | 2022-07-26 | [14362](https://github.com/airbytehq/airbyte/pull/14362) | Integral columns are now discovered as int64 fields. | +| 0.4.37 | 2022-07-22 | [14714](https://github.com/airbytehq/airbyte/pull/14714) | Clarified error message when invalid cursor column selected | +| 0.4.36 | 2022-07-21 | [14451](https://github.com/airbytehq/airbyte/pull/14451) | Make initial CDC waiting time configurable (⛔ this version has a bug and will not work; use `0.4.42` instead) | +| 0.4.35 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | +| 0.4.34 | 2022-07-17 | [13840](https://github.com/airbytehq/airbyte/pull/13840) | Added the ability to connect using different SSL modes and SSL certificates. | +| 0.4.33 | 2022-07-14 | [14586](https://github.com/airbytehq/airbyte/pull/14586) | Validate source JDBC url parameters | +| 0.4.32 | 2022-07-07 | [14694](https://github.com/airbytehq/airbyte/pull/14694) | Force to produce LEGACY state if the use stream capable feature flag is set to false | +| 0.4.31 | 2022-07-07 | [14447](https://github.com/airbytehq/airbyte/pull/14447) | Under CDC mode, retrieve only those tables included in the publications | +| 0.4.30 | 2022-06-30 | [14251](https://github.com/airbytehq/airbyte/pull/14251) | Use more simple and comprehensive query to get selectable tables | +| 0.4.29 | 2022-06-29 | [14265](https://github.com/airbytehq/airbyte/pull/14265) | Upgrade postgresql JDBC version to 42.3.5 | +| 0.4.28 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | +| 0.4.26 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | +| 0.4.25 | 2022-06-15 | [13823](https://github.com/airbytehq/airbyte/pull/13823) | Publish adaptive postgres source that enforces ssl on cloud + Debezium version upgrade to 1.9.2 from 1.4.2 | +| 0.4.24 | 2022-06-14 | [13549](https://github.com/airbytehq/airbyte/pull/13549) | Fixed truncated precision if the value of microseconds or seconds is 0 | +| 0.4.23 | 2022-06-13 | [13655](https://github.com/airbytehq/airbyte/pull/13745) | Fixed handling datetime cursors when upgrading from older versions of the connector | +| 0.4.22 | 2022-06-09 | [13655](https://github.com/airbytehq/airbyte/pull/13655) | Fixed bug with unsupported date-time datatypes during incremental sync | +| 0.4.21 | 2022-06-06 | [13435](https://github.com/airbytehq/airbyte/pull/13435) | Adjust JDBC fetch size based on max memory and max row size | +| 0.4.20 | 2022-06-02 | [13367](https://github.com/airbytehq/airbyte/pull/13367) | Added convertion hstore to json format | +| 0.4.19 | 2022-05-25 | [13166](https://github.com/airbytehq/airbyte/pull/13166) | Added timezone awareness and handle BC dates | +| 0.4.18 | 2022-05-25 | [13083](https://github.com/airbytehq/airbyte/pull/13083) | Add support for tsquey type | +| 0.4.17 | 2022-05-19 | [13016](https://github.com/airbytehq/airbyte/pull/13016) | CDC modify schema to allow null values | +| 0.4.16 | 2022-05-14 | [12840](https://github.com/airbytehq/airbyte/pull/12840) | Added custom JDBC parameters field | +| 0.4.15 | 2022-05-13 | [12834](https://github.com/airbytehq/airbyte/pull/12834) | Fix the bug that the connector returns empty catalog for Azure Postgres database | +| 0.4.14 | 2022-05-08 | [12689](https://github.com/airbytehq/airbyte/pull/12689) | Add table retrieval according to role-based `SELECT` privilege | +| 0.4.13 | 2022-05-05 | [10230](https://github.com/airbytehq/airbyte/pull/10230) | Explicitly set null value for field in json | +| 0.4.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | +| 0.4.11 | 2022-04-11 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | +| 0.4.10 | 2022-04-08 | [11798](https://github.com/airbytehq/airbyte/pull/11798) | Fixed roles for fetching materialized view processing | +| 0.4.8 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | +| 0.4.7 | 2022-02-18 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Updated timestamp transformation with microseconds | +| 0.4.6 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | (unpublished) Add `-XX:+ExitOnOutOfMemoryError` JVM option | +| 0.4.5 | 2022-02-08 | [10173](https://github.com/airbytehq/airbyte/pull/10173) | Improved discovering tables in case if user does not have permissions to any table | +| 0.4.4 | 2022-01-26 | [9807](https://github.com/airbytehq/airbyte/pull/9807) | Update connector fields title/description | +| 0.4.3 | 2022-01-24 | [9554](https://github.com/airbytehq/airbyte/pull/9554) | Allow handling of java sql date in CDC | +| 0.4.2 | 2022-01-13 | [9360](https://github.com/airbytehq/airbyte/pull/9360) | Added schema selection | +| 0.4.1 | 2022-01-05 | [9116](https://github.com/airbytehq/airbyte/pull/9116) | Added materialized views processing | +| 0.4.0 | 2021-12-13 | [8726](https://github.com/airbytehq/airbyte/pull/8726) | Support all Postgres types | +| 0.3.17 | 2021-12-01 | [8371](https://github.com/airbytehq/airbyte/pull/8371) | Fixed incorrect handling "\n" in ssh key | +| 0.3.16 | 2021-11-28 | [7995](https://github.com/airbytehq/airbyte/pull/7995) | Fixed money type with amount > 1000 | +| 0.3.15 | 2021-11-26 | [8066](https://github.com/airbytehq/airbyte/pull/8266) | Fixed the case, when Views are not listed during schema discovery | +| 0.3.14 | 2021-11-17 | [8010](https://github.com/airbytehq/airbyte/pull/8010) | Added checking of privileges before table internal discovery | +| 0.3.13 | 2021-10-26 | [7339](https://github.com/airbytehq/airbyte/pull/7339) | Support or improve support for Interval, Money, Date, various geometric data types, inventory_items, and others | +| 0.3.12 | 2021-09-30 | [6585](https://github.com/airbytehq/airbyte/pull/6585) | Improved SSH Tunnel key generation steps | +| 0.3.11 | 2021-09-02 | [5742](https://github.com/airbytehq/airbyte/pull/5742) | Add SSH Tunnel support | +| 0.3.9 | 2021-08-17 | [5304](https://github.com/airbytehq/airbyte/pull/5304) | Fix CDC OOM issue | +| 0.3.8 | 2021-08-13 | [4699](https://github.com/airbytehq/airbyte/pull/4699) | Added json config validator | +| 0.3.4 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | +| 0.3.3 | 2021-06-08 | [3960](https://github.com/airbytehq/airbyte/pull/3960) | Add method field in specification parameters | +| 0.3.2 | 2021-05-26 | [3179](https://github.com/airbytehq/airbyte/pull/3179) | Remove `isCDC` logging | +| 0.3.1 | 2021-04-21 | [2878](https://github.com/airbytehq/airbyte/pull/2878) | Set defined cursor for CDC | +| 0.3.0 | 2021-04-21 | [2990](https://github.com/airbytehq/airbyte/pull/2990) | Support namespaces | +| 0.2.7 | 2021-04-16 | [2923](https://github.com/airbytehq/airbyte/pull/2923) | SSL spec as optional | +| 0.2.6 | 2021-04-16 | [2757](https://github.com/airbytehq/airbyte/pull/2757) | Support SSL connection | +| 0.2.5 | 2021-04-12 | [2859](https://github.com/airbytehq/airbyte/pull/2859) | CDC bugfix | +| 0.2.4 | 2021-04-09 | [2548](https://github.com/airbytehq/airbyte/pull/2548) | Support CDC | +| 0.2.3 | 2021-03-28 | [2600](https://github.com/airbytehq/airbyte/pull/2600) | Add NCHAR and NVCHAR support to DB and cursor type casting | +| 0.2.2 | 2021-03-26 | [2460](https://github.com/airbytehq/airbyte/pull/2460) | Destination supports destination sync mode | +| 0.2.1 | 2021-03-18 | [2488](https://github.com/airbytehq/airbyte/pull/2488) | Sources support primary keys | +| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | +| 0.1.13 | 2021-02-02 | [1887](https://github.com/airbytehq/airbyte/pull/1887) | Migrate AbstractJdbcSource to use iterators | +| 0.1.12 | 2021-01-25 | [1746](https://github.com/airbytehq/airbyte/pull/1746) | Fix NPE in State Decorator | +| 0.1.11 | 2021-01-25 | [1765](https://github.com/airbytehq/airbyte/pull/1765) | Add field titles to specification | +| 0.1.10 | 2021-01-19 | [1724](https://github.com/airbytehq/airbyte/pull/1724) | Fix JdbcSource handling of tables with same names in different schemas | +| 0.1.9 | 2021-01-14 | [1655](https://github.com/airbytehq/airbyte/pull/1655) | Fix JdbcSource OOM | +| 0.1.8 | 2021-01-13 | [1588](https://github.com/airbytehq/airbyte/pull/1588) | Handle invalid numeric values in JDBC source | +| 0.1.7 | 2021-01-08 | [1307](https://github.com/airbytehq/airbyte/pull/1307) | Migrate Postgres and MySql to use new JdbcSource | +| 0.1.6 | 2020-12-09 | [1172](https://github.com/airbytehq/airbyte/pull/1172) | Support incremental sync | +| 0.1.5 | 2020-11-30 | [1038](https://github.com/airbytehq/airbyte/pull/1038) | Change JDBC sources to discover more than standard schemas | +| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | From 72a7080590a13984df5bc00300cb91c59d9a8028 Mon Sep 17 00:00:00 2001 From: Catherine Noll Date: Mon, 23 Jan 2023 11:47:16 -0500 Subject: [PATCH 24/56] [Low Code CDK] surface the resolved manifest in the CDK (#21703) This will be used by the connector builder server. --- .../sources/declarative/manifest_declarative_source.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py index ca010c7782ec9..40fb1b6fac819 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/manifest_declarative_source.py @@ -81,6 +81,10 @@ def __init__(self, source_config: ConnectionDefinition, debug: bool = False, con if unknown_fields: raise InvalidConnectorDefinitionException(f"Found unknown top-level fields: {unknown_fields}") + @property + def resolved_manifest(self) -> Mapping[str, Any]: + return self._new_source_config + @property def connection_checker(self) -> ConnectionChecker: check = self._new_source_config["check"] if self.construct_using_pydantic_models else self._legacy_source_config["check"] From d10dc0ccb2e0bbebe6a6b9159f067411a1fbefdc Mon Sep 17 00:00:00 2001 From: clnoll Date: Mon, 23 Jan 2023 16:49:24 +0000 Subject: [PATCH 25/56] =?UTF-8?q?=F0=9F=A4=96=20Bump=20minor=20version=20o?= =?UTF-8?q?f=20Airbyte=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/setup.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/airbyte-cdk/python/.bumpversion.cfg b/airbyte-cdk/python/.bumpversion.cfg index f5b3e4e22b3b6..44db9b6e9a4d7 100644 --- a/airbyte-cdk/python/.bumpversion.cfg +++ b/airbyte-cdk/python/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.21.0 +current_version = 0.22.0 commit = False [bumpversion:file:setup.py] diff --git a/airbyte-cdk/python/CHANGELOG.md b/airbyte-cdk/python/CHANGELOG.md index 2499aef31e9a8..ce125c91cac2b 100644 --- a/airbyte-cdk/python/CHANGELOG.md +++ b/airbyte-cdk/python/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.22.0 +Surface the resolved manifest in the CDK + ## 0.21.0 Add AvailabilityStrategy concept and use check_availability within CheckStream diff --git a/airbyte-cdk/python/setup.py b/airbyte-cdk/python/setup.py index 780ae48a81d3f..ccb663e991ba7 100644 --- a/airbyte-cdk/python/setup.py +++ b/airbyte-cdk/python/setup.py @@ -15,7 +15,7 @@ setup( name="airbyte-cdk", - version="0.21.0", + version="0.22.0", description="A framework for writing Airbyte Connectors.", long_description=README, long_description_content_type="text/markdown", From b8d54717fbe801d28498a046f87c00dbb4e7f157 Mon Sep 17 00:00:00 2001 From: Benoit Moriceau Date: Mon, 23 Jan 2023 08:50:43 -0800 Subject: [PATCH 26/56] Fix an npe on a sort fuction (#21685) * Fix an npe on a sort fuction * Format * Fix build --- .../JobCreationAndStatusUpdateActivityImpl.java | 13 ++++++++----- .../JobCreationAndStatusUpdateActivityTest.java | 10 ++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityImpl.java b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityImpl.java index 295112266ecaa..2e321793c832b 100644 --- a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityImpl.java +++ b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityImpl.java @@ -14,6 +14,7 @@ import static io.airbyte.persistence.job.models.AttemptStatus.FAILED; import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Lists; import datadog.trace.api.Trace; import io.airbyte.commons.docker.DockerUtils; @@ -66,7 +67,6 @@ import jakarta.inject.Singleton; import java.io.IOException; import java.nio.file.Path; -import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; @@ -483,10 +483,13 @@ private void failNonTerminalJobs(final UUID connectionId) { ReleaseStage.generally_available, 4); private static final Comparator RELEASE_STAGE_COMPARATOR = Comparator.comparingInt(RELEASE_STAGE_ORDER::get); - private static List orderByReleaseStageAsc(final List releaseStages) { - final List copiedList = new ArrayList<>(releaseStages); - copiedList.sort(RELEASE_STAGE_COMPARATOR); - return copiedList; + @VisibleForTesting + static List orderByReleaseStageAsc(final List releaseStages) { + // Using collector to get a mutable list + return releaseStages.stream() + .filter(stage -> stage != null) + .sorted(RELEASE_STAGE_COMPARATOR) + .toList(); } /** diff --git a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityTest.java b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityTest.java index ccdb8447fd6c4..0efcb27e5c6d3 100644 --- a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityTest.java +++ b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/scheduling/activities/JobCreationAndStatusUpdateActivityTest.java @@ -33,6 +33,7 @@ import io.airbyte.config.persistence.ConfigNotFoundException; import io.airbyte.config.persistence.ConfigRepository; import io.airbyte.config.persistence.StreamResetPersistence; +import io.airbyte.db.instance.configs.jooq.generated.enums.ReleaseStage; import io.airbyte.persistence.job.JobCreator; import io.airbyte.persistence.job.JobNotifier; import io.airbyte.persistence.job.JobPersistence; @@ -535,4 +536,13 @@ void ensureCleanJobState() throws IOException { } + @Test + void testReleaseStageOrdering() { + final List input = List.of(ReleaseStage.alpha, ReleaseStage.custom, ReleaseStage.beta, ReleaseStage.generally_available); + final List expected = List.of(ReleaseStage.custom, ReleaseStage.alpha, ReleaseStage.beta, ReleaseStage.generally_available); + + Assertions.assertThat(JobCreationAndStatusUpdateActivityImpl.orderByReleaseStageAsc(input)) + .containsExactlyElementsOf(expected); + } + } From 6595409098a50b64aaabf958c9951361c5305d2e Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem <168664+edmundito@users.noreply.github.com> Date: Mon, 23 Jan 2023 11:56:33 -0500 Subject: [PATCH 27/56] =?UTF-8?q?=F0=9F=AA=9F=20=F0=9F=8E=A8=20=20Update?= =?UTF-8?q?=20page=20bottom=20margins=20to=20be=20consistent=20(#21673)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix bottom of Sources and destinations settings page * Remove unused components * Remove H3 from titles * Fix layouts to have consistent page bottom margin * Set default spacing to 20px / xl * Remove extraneous padding from pages and let containers handle it * Check if running cloud app to add extra bottom spacing * Fix layout issues with connection Edit controls, move line rendering to the transformation cards * Set "saving" state in create controls to use the create button instead of having a different UI * Fix padding in DbtTransformationsCard --- .../FormPageContent.module.scss | 6 +- .../ConnectorBlocks/FormPageContent.tsx | 11 +++- .../src/components/base/Titles/Titles.tsx | 6 -- .../src/components/base/Titles/index.tsx | 2 +- .../MainPageWithScroll.module.scss | 7 ++- .../MainPageWithScroll/MainPageWithScroll.tsx | 5 +- .../ConnectionEditFormCard.module.scss | 9 ++- .../ConnectionEditFormCard.tsx | 5 +- .../ConnectionForm/CreateControls.module.scss | 5 ++ .../ConnectionForm/CreateControls.tsx | 40 ++----------- .../ConnectionForm/EditControls.module.scss | 28 +-------- .../ConnectionForm/EditControls.tsx | 47 +++++++-------- .../CollapsibleCard.module.scss | 3 - .../ui/CollapsibleCard/CollapsibleCard.tsx | 4 -- .../SettingsPage/SettingsPage.module.scss | 1 - .../components/ConnectorsView.module.scss | 3 - .../components/ConnectorsView.tsx | 59 +++++++++++-------- .../components/PageComponents.tsx | 20 +------ .../ConnectionReplicationPage.module.scss | 2 - .../ConnectionStatusPage.module.scss | 4 -- .../ConnectionStatusPage.tsx | 1 - .../ConnectionTransformationPage.module.scss | 12 +++- .../ConnectionTransformationPage.tsx | 5 +- .../CustomTransformationsCard.tsx | 1 - .../DbtCloudTransformationsCard.module.scss | 2 +- airbyte-webapp/src/scss/_variables.scss | 2 +- .../ConnectorDocumentationLayout.module.scss | 2 +- 27 files changed, 119 insertions(+), 173 deletions(-) create mode 100644 airbyte-webapp/src/components/connection/ConnectionForm/CreateControls.module.scss delete mode 100644 airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.module.scss delete mode 100644 airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.module.scss diff --git a/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.module.scss b/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.module.scss index a3166da8dda78..524972b7ce192 100644 --- a/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.module.scss +++ b/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.module.scss @@ -2,7 +2,11 @@ .container { margin: 13px auto 0; - padding-bottom: variables.$spacing-page-bottom; + padding-bottom: variables.$spacing-xl; + + &.cloud { + padding-bottom: variables.$spacing-page-bottom-cloud; + } &:not(.big) { width: 80%; diff --git a/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.tsx b/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.tsx index 64af7f776f976..1e1c4a051ec5d 100644 --- a/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.tsx +++ b/airbyte-webapp/src/components/ConnectorBlocks/FormPageContent.tsx @@ -1,6 +1,8 @@ import classNames from "classnames"; import { PropsWithChildren } from "react"; +import { isCloudApp } from "utils/app"; + import styles from "./FormPageContent.module.scss"; interface FormPageContentProps { @@ -8,7 +10,14 @@ interface FormPageContentProps { } const FormPageContent: React.FC> = ({ big, children }) => ( -
    {children}
    +
    + {children} +
    ); export default FormPageContent; diff --git a/airbyte-webapp/src/components/base/Titles/Titles.tsx b/airbyte-webapp/src/components/base/Titles/Titles.tsx index 9d2a5ee0fd9d5..50630f7ce4783 100644 --- a/airbyte-webapp/src/components/base/Titles/Titles.tsx +++ b/airbyte-webapp/src/components/base/Titles/Titles.tsx @@ -19,12 +19,6 @@ const H1 = styled.h1` margin: 0; `; -/** @deprecated Use `` */ -export const H3 = styled(H1).attrs({ as: "h3" })` - font-size: 20px; - line-height: 24px; -`; - /** @deprecated Use `` */ export const H5 = styled(H1).attrs({ as: "h5" })` font-size: ${({ theme }) => theme.h5?.fontSize || "16px"}; diff --git a/airbyte-webapp/src/components/base/Titles/index.tsx b/airbyte-webapp/src/components/base/Titles/index.tsx index 502ba2ea70362..c6f9a9079c5fd 100644 --- a/airbyte-webapp/src/components/base/Titles/index.tsx +++ b/airbyte-webapp/src/components/base/Titles/index.tsx @@ -1 +1 @@ -export { H3, H5 } from "./Titles"; +export { H5 } from "./Titles"; diff --git a/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.module.scss b/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.module.scss index 22c55a7f45fbb..185526591e756 100644 --- a/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.module.scss +++ b/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.module.scss @@ -9,6 +9,7 @@ } .contentContainer { + flex: 1; max-width: 100%; overflow-x: auto; padding-top: variables.$spacing-lg; @@ -17,6 +18,10 @@ .content { overflow-y: auto; height: 100%; - padding: 0 variables.$spacing-xl variables.$spacing-page-bottom; + padding: 0 variables.$spacing-xl variables.$spacing-xl; min-width: variables.$main-page-content-min-width; + + &.cloud { + padding-bottom: variables.$spacing-page-bottom-cloud; + } } diff --git a/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.tsx b/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.tsx index 047e1e14dbe14..71091c50b3cb8 100644 --- a/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.tsx +++ b/airbyte-webapp/src/components/common/MainPageWithScroll/MainPageWithScroll.tsx @@ -1,5 +1,8 @@ +import classNames from "classnames"; import React from "react"; +import { isCloudApp } from "utils/app"; + import styles from "./MainPageWithScroll.module.scss"; /** @@ -20,7 +23,7 @@ export const MainPageWithScroll: React.FC = ({ headTitl {pageTitle}
    -
    {children}
    +
    {children}
    ); diff --git a/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.module.scss b/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.module.scss index ce45b41bb4f7d..343ffae519be1 100644 --- a/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.module.scss +++ b/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.module.scss @@ -1,5 +1,12 @@ +@use "scss/colors"; @use "scss/variables"; .formCard { - padding: 22px 27px variables.$spacing-xl 24px; + padding: variables.$spacing-xl; +} + +.editControls { + border-top: variables.$border-thin solid colors.$grey-100; + margin: 0 -#{variables.$spacing-xl}; + padding: variables.$spacing-xl variables.$spacing-xl 0; } diff --git a/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.tsx b/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.tsx index a0be5283d3338..3533cafa8a4a9 100644 --- a/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.tsx +++ b/airbyte-webapp/src/components/connection/ConnectionEditFormCard/ConnectionEditFormCard.tsx @@ -13,7 +13,6 @@ import EditControls from "../ConnectionForm/EditControls"; import styles from "./ConnectionEditFormCard.module.scss"; interface FormCardProps extends CollapsibleCardProps { - bottomSeparator?: boolean; form: FormikConfig; submitDisabled?: boolean; } @@ -21,7 +20,6 @@ interface FormCardProps extends CollapsibleCardProps { export const ConnectionEditFormCard = ({ children, form, - bottomSeparator = true, submitDisabled, ...props }: React.PropsWithChildren>) => { @@ -45,10 +43,9 @@ export const ConnectionEditFormCard = ({
    {children} -
    +
    {mode !== "readonly" && ( theme.darkPrimaryColor}; - justify-content: center; -`; - -const Loader = styled.div` - margin-right: 10px; -`; - const Success = styled(StatusIcon)` width: 26px; min-width: 26px; @@ -61,19 +44,8 @@ const ErrorText = styled.div` `; const CreateControls: React.FC = ({ isSubmitting, errorMessage, isValid }) => { - if (isSubmitting) { - return ( - - - - - - - ); - } - return ( - + {errorMessage ? ( @@ -86,11 +58,11 @@ const CreateControls: React.FC = ({ isSubmitting, errorMess
    )}
    -
    - + ); }; diff --git a/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.module.scss b/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.module.scss index 2afd4f0946a34..1610ff1d8d2ce 100644 --- a/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.module.scss +++ b/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.module.scss @@ -1,29 +1,5 @@ -@use "scss/colors"; @use "scss/variables"; -.content { - display: flex; - justify-content: flex-end; - align-items: center; - flex-direction: row; - margin-top: variables.$spacing-lg; - gap: variables.$spacing-lg; - padding: variables.$spacing-sm; -} - -.controlButton { - margin-left: variables.$spacing-md; -} - -// currently only implemented on transformation view form card, margins are specific to that implementation -// todo: standardize the margin sizes here -.line { - min-width: 100%; - height: variables.$border-thin; - background: colors.$grey-100; - margin: variables.$spacing-lg -27px 0 -24px; -} - -.buttonsContainer { - display: flex; +.container { + margin-top: variables.$spacing-md; } diff --git a/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.tsx b/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.tsx index fc78785d64582..6fa6fe33cd1b4 100644 --- a/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.tsx +++ b/airbyte-webapp/src/components/connection/ConnectionForm/EditControls.tsx @@ -2,6 +2,7 @@ import React from "react"; import { FormattedMessage } from "react-intl"; import { Button } from "components/ui/Button"; +import { FlexContainer } from "components/ui/Flex"; import styles from "./EditControls.module.scss"; import { ResponseMessage } from "./ResponseMessage"; @@ -14,7 +15,6 @@ interface EditControlProps { successMessage?: React.ReactNode; errorMessage?: React.ReactNode; enableControls?: boolean; - withLine?: boolean; } const EditControls: React.FC = ({ @@ -25,33 +25,28 @@ const EditControls: React.FC = ({ successMessage, errorMessage, enableControls, - withLine, }) => { return ( - <> - {withLine &&
    } -
    - -
    - - -
    -
    - + + + + + + + ); }; diff --git a/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.module.scss b/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.module.scss deleted file mode 100644 index 87ff85fde1550..0000000000000 --- a/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.collapsibleCard { - margin-bottom: 10px; -} diff --git a/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.tsx b/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.tsx index 4b0dfdaeec9de..52b12607e2bd1 100644 --- a/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.tsx +++ b/airbyte-webapp/src/components/ui/CollapsibleCard/CollapsibleCard.tsx @@ -1,14 +1,11 @@ import { faChevronRight } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import classNames from "classnames"; import React from "react"; import { useToggle } from "react-use"; import styled from "styled-components"; import { Card } from "components/ui/Card"; -import styles from "./CollapsibleCard.module.scss"; - const CardHeader = styled.div` display: flex; justify-content: space-between; @@ -40,7 +37,6 @@ export const CollapsibleCard: React.FC = ({ return ( {title} diff --git a/airbyte-webapp/src/pages/SettingsPage/SettingsPage.module.scss b/airbyte-webapp/src/pages/SettingsPage/SettingsPage.module.scss index a756f2ddb7790..997a2399432ec 100644 --- a/airbyte-webapp/src/pages/SettingsPage/SettingsPage.module.scss +++ b/airbyte-webapp/src/pages/SettingsPage/SettingsPage.module.scss @@ -3,7 +3,6 @@ .content { display: flex; flex-direction: row; - padding-bottom: variables.$spacing-lg; } .mainView { diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.module.scss b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.module.scss deleted file mode 100644 index 17d92ee1b1e64..0000000000000 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.buttonsContainer { - display: flex; -} diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx index 21030a1999776..fa40c8a3aedb0 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/ConnectorsView.tsx @@ -3,6 +3,8 @@ import { FormattedMessage } from "react-intl"; import { CellProps } from "react-table"; import { HeadTitle } from "components/common/HeadTitle"; +import { FlexContainer } from "components/ui/Flex"; +import { Heading } from "components/ui/Heading"; import { Table } from "components/ui/Table"; import { Connector, ConnectorDefinition } from "core/domain/connector"; @@ -12,10 +14,9 @@ import { FeatureItem, useFeature } from "hooks/services/Feature"; import { useCurrentWorkspace } from "hooks/services/useWorkspace"; import ConnectorCell from "./ConnectorCell"; -import styles from "./ConnectorsView.module.scss"; import CreateConnector from "./CreateConnector"; import ImageCell from "./ImageCell"; -import { Block, FormContentTitle, Title } from "./PageComponents"; +import { FormContentTitle } from "./PageComponents"; import UpgradeAllButton from "./UpgradeAllButton"; import VersionCell from "./VersionCell"; @@ -125,7 +126,7 @@ const ConnectorsView: React.FC = ({ const renderHeaderControls = (section: "used" | "available") => ((section === "used" && usedConnectorsDefinitions.length > 0) || (section === "available" && usedConnectorsDefinitions.length === 0)) && ( -
    + {allowUploadCustomImage && } {(hasNewConnectorVersion || isUpdateSuccess) && allowUpdateConnectors && ( = ({ onUpdate={onUpdate} /> )} -
    + ); return ( @@ -143,31 +144,37 @@ const ConnectorsView: React.FC = ({ - {usedConnectorsDefinitions.length > 0 && ( - - - <FormattedMessage id={type === "sources" ? "admin.manageSource" : "admin.manageDestination"} /> - {renderHeaderControls("used")} - + + {usedConnectorsDefinitions.length > 0 && ( + + + + + + {renderHeaderControls("used")} + + + + )} + + + + + + + {renderHeaderControls("available")} +
    - - )} - - - - <FormattedMessage id={type === "sources" ? "admin.availableSource" : "admin.availableDestinations"} /> - {renderHeaderControls("available")} - -
    - + + ); }; diff --git a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/PageComponents.tsx b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/PageComponents.tsx index 31a9eaff246da..ef7827175dd42 100644 --- a/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/PageComponents.tsx +++ b/airbyte-webapp/src/pages/SettingsPage/pages/ConnectorsPage/components/PageComponents.tsx @@ -1,27 +1,11 @@ import styled from "styled-components"; -import { H5 } from "components/base/Titles"; - -const Title = styled(H5)` - color: ${({ theme }) => theme.darkPrimaryColor}; - margin-bottom: 19px; - display: flex; - justify-content: space-between; - align-items: center; -`; - -const Block = styled.div` - margin-bottom: 56px; -`; - -const FormContent = styled.div` +export const FormContent = styled.div` width: 253px; margin: -10px 0 -10px 200px; position: relative; `; -const FormContentTitle = styled(FormContent)` +export const FormContentTitle = styled(FormContent)` margin: 0 0 0 200px; `; - -export { Title, Block, FormContent, FormContentTitle }; diff --git a/airbyte-webapp/src/pages/connections/ConnectionReplicationPage/ConnectionReplicationPage.module.scss b/airbyte-webapp/src/pages/connections/ConnectionReplicationPage/ConnectionReplicationPage.module.scss index fc965f61fed9e..1bba26e32786a 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionReplicationPage/ConnectionReplicationPage.module.scss +++ b/airbyte-webapp/src/pages/connections/ConnectionReplicationPage/ConnectionReplicationPage.module.scss @@ -1,8 +1,6 @@ @use "scss/variables"; .content { - padding-bottom: variables.$spacing-md; - > form { display: flex; flex-direction: column; diff --git a/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.module.scss b/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.module.scss index 48419e552f164..8badacf0e8551 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.module.scss +++ b/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.module.scss @@ -31,10 +31,6 @@ } } -.contentCard { - margin-bottom: variables.$spacing-xl; -} - .footer { width: 100%; display: flex; diff --git a/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.tsx b/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.tsx index 29bcdb7986bbb..c5f87cbf6a4bd 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.tsx +++ b/airbyte-webapp/src/pages/connections/ConnectionStatusPage/ConnectionStatusPage.tsx @@ -159,7 +159,6 @@ export const ConnectionStatusPage: React.FC = () => { return ( <> diff --git a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.module.scss b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.module.scss index 6903e64a247b2..681bc32cc405a 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.module.scss +++ b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.module.scss @@ -1,7 +1,17 @@ +@use "scss/variables"; + .content { max-width: 1073px; margin: 0 auto; - padding-bottom: 10px; + + & > fieldset { + margin: 0; + padding: 0; + border: 0; + display: flex; + flex-direction: column; + gap: variables.$spacing-lg; + } } .customCard { diff --git a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.tsx b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.tsx index 17bd026c7c276..40c9ee19e2b94 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.tsx +++ b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/ConnectionTransformationPage.tsx @@ -61,10 +61,7 @@ export const ConnectionTransformationPage: React.FC = () => { return (
    -
    +
    {supportsNormalization && } {supportsDbt && } {supportsCloudDbtIntegration && } diff --git a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/CustomTransformationsCard.tsx b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/CustomTransformationsCard.tsx index 0b8a0b8455f35..88a58210773c1 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/CustomTransformationsCard.tsx +++ b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/CustomTransformationsCard.tsx @@ -28,7 +28,6 @@ export const CustomTransformationsCard: React.FC<{ title={} collapsible - bottomSeparator form={{ initialValues, enableReinitialize: true, diff --git a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/DbtCloudTransformationsCard.module.scss b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/DbtCloudTransformationsCard.module.scss index 09620779260b5..9d9a85316dbcf 100644 --- a/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/DbtCloudTransformationsCard.module.scss +++ b/airbyte-webapp/src/pages/connections/ConnectionTransformationPage/DbtCloudTransformationsCard.module.scss @@ -5,7 +5,7 @@ display: flex; flex-direction: column; align-items: center; - padding: 25px 25px 22px; + padding: variables.$spacing-xl; background-color: colors.$grey-50; } diff --git a/airbyte-webapp/src/scss/_variables.scss b/airbyte-webapp/src/scss/_variables.scss index 5f5d103e38b0e..19c967957ab54 100644 --- a/airbyte-webapp/src/scss/_variables.scss +++ b/airbyte-webapp/src/scss/_variables.scss @@ -26,7 +26,7 @@ $spacing-md: 10px; $spacing-lg: 15px; $spacing-xl: 20px; $spacing-2xl: 40px; -$spacing-page-bottom: 150px; +$spacing-page-bottom-cloud: 88px; $main-page-content-min-width: 960px; $width-size-menu: 93px; diff --git a/airbyte-webapp/src/views/Connector/ConnectorDocumentationLayout/ConnectorDocumentationLayout.module.scss b/airbyte-webapp/src/views/Connector/ConnectorDocumentationLayout/ConnectorDocumentationLayout.module.scss index 626cae0e8051a..41c28fbedb93d 100644 --- a/airbyte-webapp/src/views/Connector/ConnectorDocumentationLayout/ConnectorDocumentationLayout.module.scss +++ b/airbyte-webapp/src/views/Connector/ConnectorDocumentationLayout/ConnectorDocumentationLayout.module.scss @@ -3,7 +3,7 @@ .leftPanel { > *:last-child { - padding-bottom: variables.$spacing-page-bottom; + padding-bottom: variables.$spacing-page-bottom-cloud; } } From db37aadf67d21d0a8f93256fbcd5003e00f70242 Mon Sep 17 00:00:00 2001 From: Joe Bell Date: Mon, 23 Jan 2023 09:12:27 -0800 Subject: [PATCH 28/56] Improve Authentication Error handling (#21087) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor checks * Add Auth Error Checks * rebase from master * some weird versioning issue * 🪟🎉 Connector builder: Substream slicer and cartesian slicer (#20861) * improve some types * improve further * clean up a bit more * refactor loading state * move loading state up * remove isLoading references * remove unused props and make fetch connector error work * remove special component for name * remove top level state for unifinished flows * start removing uiwidget * Update airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.module.scss Co-authored-by: Tim Roes * remove undefined option for selected id * remove unused prop * fix types * remove uiwidget state * clean up * adjust comment * handle errors in a nice way * do not respect default on oneOf fields * rename to formblock * reduce re-renders * pass error to secure inputs * simplify and improve styling * align top * code review * remove comment * review comments * rename file * be strict about boolean values * add example * track form error in error boundary * review comments * handle unexpected cases better * enrich error with connector id * 🪟🎉 Add copy stream button (#20577) * add copy stream button * review comments * rename prop * 🪟🎉 Connector builder: Integrate connector form for test input (#20385) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * fix small stuff * add warning label * review comments * adjust translation Co-authored-by: lmossman * use request_body_json instead of request_body_data * :window: :art: Move `Add` button into the line of Connector Builder key value list fields (#20699) * move add button into line * add stories for empty with control, and content + control * change button name to Control * 🪟🎉 Connector builder: Allow defining inputs (#20431) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * handle stored form values that don't contain new fields properly * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * 🪟🎉 Connector builder authentication (#20645) * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * fix keys * 🪟🎉 Connector builder: Session token and oauth authentication (#20712) * session token and oauth authentication * fill in session token variable * typos * make sure validation error does not go away * 🪟🎉 Connector builder: Always validate inputs form (#20664) * validate user input outside of form * review comments Co-authored-by: lmossman Co-authored-by: lmossman * fix merge conflict with dropdown prop being renamed to control * [Connector Builder] Add paginator (#20698) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly Co-authored-by: Joe Reuter * [Connector Builder] Add stream slicer (#20748) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly * save stream slicer progress * finish stream slicer * fix stream slicer fields and validation Co-authored-by: Joe Reuter * debounce form builder values update to reduce load * 🪟🔧 Connector builder: use new lowcode manifest (#20715) * use new manifest yaml * Update airbyte-webapp/src/components/connectorBuilder/types.ts Co-authored-by: Lake Mossman * use updated manifest types Co-authored-by: Lake Mossman * add substream slicer * add substream and cartesian slicer * debounce validation as well * akways show stream test button in error state if there are errors * fix type of oauth input * add validation schema for add stream form * validate all views on test click * add type to prevent console warning * do not allow path for substream slicer request option * do not show request option for substream slicer * rewrite stream slice field tooltip Co-authored-by: Tim Roes Co-authored-by: lmossman * 🪟🔧 Connector builder: Performance improvements (#20620) * improve some types * improve further * clean up a bit more * refactor loading state * move loading state up * remove isLoading references * remove unused props and make fetch connector error work * remove special component for name * remove top level state for unifinished flows * start removing uiwidget * Update airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.module.scss Co-authored-by: Tim Roes * remove undefined option for selected id * remove unused prop * fix types * remove uiwidget state * clean up * adjust comment * handle errors in a nice way * do not respect default on oneOf fields * rename to formblock * reduce re-renders * pass error to secure inputs * simplify and improve styling * align top * code review * remove comment * review comments * rename file * be strict about boolean values * add example * track form error in error boundary * review comments * handle unexpected cases better * speed up some bits * more changes * enrich error with connector id * 🪟🎉 Add copy stream button (#20577) * add copy stream button * review comments * rename prop * 🪟🎉 Connector builder: Integrate connector form for test input (#20385) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * fix small stuff * add warning label * review comments * adjust translation Co-authored-by: lmossman * use request_body_json instead of request_body_data * :window: :art: Move `Add` button into the line of Connector Builder key value list fields (#20699) * move add button into line * add stories for empty with control, and content + control * change button name to Control * 🪟🎉 Connector builder: Allow defining inputs (#20431) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * handle stored form values that don't contain new fields properly * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * 🪟🎉 Connector builder authentication (#20645) * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * fix keys * 🪟🎉 Connector builder: Session token and oauth authentication (#20712) * session token and oauth authentication * fill in session token variable * typos * make sure validation error does not go away * 🪟🎉 Connector builder: Always validate inputs form (#20664) * validate user input outside of form * review comments Co-authored-by: lmossman Co-authored-by: lmossman * fix merge conflict with dropdown prop being renamed to control * [Connector Builder] Add paginator (#20698) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly Co-authored-by: Joe Reuter * [Connector Builder] Add stream slicer (#20748) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly * save stream slicer progress * finish stream slicer * fix stream slicer fields and validation Co-authored-by: Joe Reuter * debounce form builder values update to reduce load * 🪟🔧 Connector builder: use new lowcode manifest (#20715) * use new manifest yaml * Update airbyte-webapp/src/components/connectorBuilder/types.ts Co-authored-by: Lake Mossman * use updated manifest types Co-authored-by: Lake Mossman * debounce validation as well * akways show stream test button in error state if there are errors * fix type of oauth input * review comments * fix more * add validation schema for add stream form * validate all views on test click * add type to prevent console warning * review comment * make sure testing state and form state stay consistent * improve builder errors * remove test state from streamconfig view * remove console log * remove unnecessary positive index check Co-authored-by: Tim Roes Co-authored-by: lmossman * Remove workspace helper from fetchConfigActivity (#21048) * Remove workspace helper and replace with workspaceApi * Publish new version of destination-redshift (#21083) * Update changelog * auto-bump connector version Co-authored-by: Octavia Squidington III * Progress Bar Read APIs (#20937) Follow up PR to #20787 . Make stats available to the read apis so these are available to the webapp. After this, all that is left is writing these stats as the job progresses. Add the required logic in JobHistoryHandler.java. Took the chance to also rename our internal Attempt models field from id to attemptNumber to better reflect that the field stores not the row's database id, but the job's attempt number. Most of the files changes here are due to that rename. * Rm temporal version (#21045) * Rm temporal version * Remove temporal version * Update the replayed workflow * Format * Fix pmd * 🪟🎉 Connector builder: Available inputs dropdown (#20983) * improve some types * improve further * clean up a bit more * refactor loading state * move loading state up * remove isLoading references * remove unused props and make fetch connector error work * remove special component for name * remove top level state for unifinished flows * start removing uiwidget * Update airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.module.scss Co-authored-by: Tim Roes * remove undefined option for selected id * remove unused prop * fix types * remove uiwidget state * clean up * adjust comment * handle errors in a nice way * do not respect default on oneOf fields * rename to formblock * reduce re-renders * pass error to secure inputs * simplify and improve styling * align top * code review * remove comment * review comments * rename file * be strict about boolean values * add example * track form error in error boundary * review comments * handle unexpected cases better * enrich error with connector id * 🪟🎉 Add copy stream button (#20577) * add copy stream button * review comments * rename prop * 🪟🎉 Connector builder: Integrate connector form for test input (#20385) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * fix small stuff * add warning label * review comments * adjust translation Co-authored-by: lmossman * use request_body_json instead of request_body_data * :window: :art: Move `Add` button into the line of Connector Builder key value list fields (#20699) * move add button into line * add stories for empty with control, and content + control * change button name to Control * 🪟🎉 Connector builder: Allow defining inputs (#20431) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * handle stored form values that don't contain new fields properly * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * 🪟🎉 Connector builder authentication (#20645) * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * fix keys * 🪟🎉 Connector builder: Session token and oauth authentication (#20712) * session token and oauth authentication * fill in session token variable * typos * make sure validation error does not go away * 🪟🎉 Connector builder: Always validate inputs form (#20664) * validate user input outside of form * review comments Co-authored-by: lmossman Co-authored-by: lmossman * fix merge conflict with dropdown prop being renamed to control * [Connector Builder] Add paginator (#20698) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly Co-authored-by: Joe Reuter * [Connector Builder] Add stream slicer (#20748) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly * save stream slicer progress * finish stream slicer * fix stream slicer fields and validation Co-authored-by: Joe Reuter * debounce form builder values update to reduce load * 🪟🔧 Connector builder: use new lowcode manifest (#20715) * use new manifest yaml * Update airbyte-webapp/src/components/connectorBuilder/types.ts Co-authored-by: Lake Mossman * use updated manifest types Co-authored-by: Lake Mossman * debounce validation as well * akways show stream test button in error state if there are errors * fix type of oauth input * available inputs dropdown * add validation schema for add stream form * validate all views on test click * add type to prevent console warning * improve styling * make sure padding is set correctly * make sure focus is set right * comment * use correct state hook * add tooltip to user input button and fix wording for new user input option Co-authored-by: Tim Roes Co-authored-by: lmossman * Fixed appstore docs link (#21098) * fill in all default values on switch (#21059) * 🐛Source Freshdesk: Fix schema types (#20416) * Fix schema types * Updated version * Updated acceptance tests * auto-bump connector version Co-authored-by: Octavia Squidington III * CDK: Add schema inferrer class (#20941) * fix stuff * Update schema_inferrer.py * Update schema_inferrer.py * bump version * review comments * code style * fix formatting * improve tests * Source Facebook Marketing: Docs update (#21105) * Source Amazon Ads: fix bug with handling: "Report date is too far in the past." (partial revert of #20662) (#21082) * Revert "Source Amazon Ads: fix bug with handling: "Report date is too far in the past." (#20662)" This reverts commit ec995959f7af3574cd7a6a5e63d2c2aaf3118183. * fix Signed-off-by: Sergey Chvalyuk * revert master Signed-off-by: Sergey Chvalyuk * revert to master Signed-off-by: Sergey Chvalyuk * bump 0.1.27 Signed-off-by: Sergey Chvalyuk * fix Signed-off-by: Sergey Chvalyuk * amazon-ads.md updated Signed-off-by: Sergey Chvalyuk * amazon-ads.md updated Signed-off-by: Sergey Chvalyuk * auto-bump connector version Signed-off-by: Sergey Chvalyuk Co-authored-by: Augustin Co-authored-by: Octavia Squidington III Co-authored-by: Topher Lubaway * Revert "Progress Bar Read APIs (#20937)" (#21115) Breaks when there is no config present https://github.com/airbytehq/airbyte/issues/21112 This reverts commit 3a2b0405c425562ba5fa8bfe3f5a4646c165591a. * Remove unneeded margin top and bottom (#21111) * feat(Platform): update actor configuration when receiving control messages from connectors during sync (#19811) * track latest config message * pass new config as part of outputs * persist new config * persist config as the messages come through, dont set output * clean up old implementation * accept control messages for destinations * get api client from micronaut * mask instance-wide oauth params when updating configs * defaultreplicationworker tests * formatting * tests for source/destination handlers * rm todo * refactor test a bit to fix pmd * fix pmd * fix test * add PersistConfigHelperTest * update message tracker comment * fix pmd * format * move ApiClientBeanFactory to commons-worker, use in container-orchestrator * pull out config updating to separate methods * add jitter * rename PersistConfigHelper -> UpdateConnectorConfigHelper, docs * fix exception type * fmt * move message type check into runnable * formatting * pass api client env vars to container orchestrator * pass micronaut envs to container orchestrator * print stacktrace for debugging * different api host for container orchestrator * fix default env var * format * fix errors after merge * set source and destination actor id as part of the sync input * fix: get destination definition * fix null ptr * remove "actor" from naming * fix missing change from rename * revert ContainerOrchestratorConfigBeanFactory changes * inject sourceapi/destinationapi directly rather than airbyteapiclient * UpdateConnectorConfigHelper -> ConnectorConfigUpdater * rm log * fix test * dont fail on config update error * pass id, not full config to runnables/accept control message * add new config required for api client * add test file * fix test compatibility * mount data plane credentials secret to container orchestrator (#20724) * mount data plane credentials secret to container orchestrator * rm copy-pasta * properly handle empty strings * set env vars like before * use the right config vars * 🐛Source Looker: Fix schema transformation issue (#20182) * Fix schema transformation issue * Updated PR number * Added unittest * Add a test case that uses the recursion * Unhide from cloud * Bumed seed version * [ISSUE #20322] add datetime_granularity logic to DatetimeStreamSlicer… (#20717) * [ISSUE #20322] add datetime_granularity logic to DatetimeStreamSlicer and migrate duration to ISO8601 * [ISSUE #20322] fix tests * [ISSUE #20322] code review based on clnoll's comments and fixed tests * [ISSUE #20322] fix flake8 error * [ISSUE #20322] fix source tests * [ISSUE #20322] fixing yet another error in source * [ISSUE #20322] code review * [ISSUE #20322] adding new sources using datetime slicer * [ISSUE #20322] fixing source-datascope and increasing version * [ISSUE #20322] regenerate component schema * [ISSUE #20322] fixing source-datascope * [ISSUE #20322] extra field error * Source Slack: update schema; data from openapi spec (#20767) * Source Slack: update schema; data from openapi spec * Source Slack: Docs update * Source Slack: Update schema * Source Slack: Update schema (timestamp returned in POSIX time) * Source Slack: Disable backward compatibility test for discovery * auto-bump connector version Co-authored-by: Octavia Squidington III * make sure name is rendered in first position (#21101) * Source Github: Raise Error if no organizations or repos are available (#21084) * Source Github: Raise Error if no organizations or repos are available * Source GitHub: Update docs; bump version * Source GitHub: Add test * Source GitHub: Exclude empty streams * auto-bump connector version Co-authored-by: Octavia Squidington III * Convert the server to micronaut (#19194) * Extract Operation API * Extract scheduler API * Format * extract source api * Extract source definition api * Add path * Extract State API * extract webbackend api * extract webbackend api * extract workspace api * Extract source definition specification api * Remove configuration API * tmp * Checkstyle * tmp * tmp * Inject but don't resolve Bean * tmp * Tmp * fix build * TMP * Tmp * Clean up * better thread pool * Change port to 8080 * Fix port * Rm unused * Cors filter * Format * rename * Tmp * Config based * Rm health controller ref * tmp * Pool size * Mock healthcheck * Revert "Mock healthcheck" This reverts commit 466677636bda96bed7bbfd354a59abc38ff1e315. * Revert "Revert "Mock healthcheck"" This reverts commit 267094ae149f3c077bdba6f71646d99655ce81a0. * Restore health check * Tmp * format * Rm deprecated * Fix PMD * Tmp * Fix proxy test * Remove useless annotation * set auto commit as false * Clean up and PR comments * Bmoric/convert attempt micronaut (#19847) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * Comments and banner * Non related files * rm tmp * Fix build * Format * Hit the micronaut server directly * micronaut OperationApiController (#20270) * micronaut OperationApiController * pass micronaut client to OperationApi * Bmoric/convert connection micronaut (#20211) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix build * Format * Remove media type * Format Co-authored-by: Cole Snodgrass * Bmoric/convert destination controller micronaut (#20269) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * Tmp * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix bean * Add JsonSchemaValidator as a Bean * Fix build * Format * Format * Test fix * Pr comments * Remove media type * Format * Remove media type * Format * format * Add missing airbyte api client Co-authored-by: Cole Snodgrass * Bmoric/convert destination definition controller micronaut (#20277) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * Tmp * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix bean * Add JsonSchemaValidator as a Bean * Fix build * Format * Format * Test fix * Pr comments * Remove media type * Format * Remove media type * Format * Remove media type * Format * api client * missing annotation * format Co-authored-by: Cole Snodgrass * convert StateApiController to Micronaut (#20329) * convert to micronaut * nginx updates * format * Move dest oauth to micronaut (#20318) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix build * Format * Remove media type * Format * Move dest oauth to micronaut * Pr comments * format Co-authored-by: Cole Snodgrass * Bmoric/convert source micronaut (#20334) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix build * Format * Remove media type * Format * Tmp * tmp * Build * missing bean * format Co-authored-by: Cole Snodgrass * Migrate to micronaut (#20339) * Migrate source to micronaut * convert SchedulerApiController to Micronaut (#20337) * wip; SchedulerApiController * remove @Named * remove @Singleton * add back todo message * Bmoric/convert source definition micronaut (#20338) * tmp * Fix build * tmp * Tmp * tmp * tmp * Tmp * tmp * tmp * Clean up * tmp * Convert Connection Api Controller * PR Comments * convert openapiapicontroller to micronaut (#20258) * convert openapiapicontroller to micronaut * merge health/openapi locations into one entry * Fix build * Format * Remove media type * Format * Tmp * tmp * Build * missing bean * Tmp * Add Beans * fix Bean * Add passthrough * Clean up * Missing path * FIx typo * Fix conflicts * for mat Co-authored-by: Cole Snodgrass * update SourceOauthApiController to Micronaut (#20386) * convert SourceOauthApiController to Micronaut * remove SourceOauthApi reference * convert WorkspaceApiController to micronaut (#20214) * wip; broken * convert WorkspaceApiController to micronaut * remove test controller * format * format * add @Body to SourceOauthApiController * consolidate nginx settings * remove unnecessary factories * Bmoric/convert jobs micronaut (#20382) * Convert jobs to micronaut * Nit * Format * Bmoric/convert source definition specification micronaut (#20379) * Migrate source definition specifications to micronaut * Format * Format * convert database assert call to Micronaut (#20406) * remove dupe config section; add DatabaseEventListener * move eventlistner to correct package; update implementation * convert NotificationsApiController to Micronaut (#20396) * convert NotificationsApiController to Micronaut * format * Migrate logs to micronaut (#20400) * Bmoric/convert webbackend micronaut (#20403) * Convert jobs to micronaut * Nit * Format * Migrate the webbackend to micronaut * Add missing Bean * Cleanup (#20459) * Cleanup * More cleanup * Disable in order to test cloud * Restore missing files * Fix test * Format and fix pmd * Add transactional * Fix version * Tentative * Cleanup the cleanup * Rm reference to the micronaut server * format * pmd * more pmd * fix build * Delete logs API * Revert "Delete logs API" This reverts commit fcb271dcdf51d9904fa5d482e5c3e6984d5bc182. * Rm flaky test * Format * Try to fix test * Format * Remove optional * Rm import * Test sleep * Simplify injection * update import * Remove sleep * More injection * Remove more requirement * imports * Remove more requirement * Fix yaml * Remove unused conf * Add role * Test acceptance test * Update env * Revert "Update to Micronaut 3.8.0 (#20716)" This reverts commit a28f93747ffb7c8ad9e30a4a90ceada9d0d7dc0e. * Update helm chart * Fix helm chart * Convert Application Listener * Format * Add explicit deployment mode * Change check port * Update version and bump version to the right value * Cleanup * Update FE end to end test * Allow head request * Fix controller * Format * Fix http client Bean * Format Co-authored-by: Cole Snodgrass * 🪟 🐛 🎨 Fix stream table icon checkboxes and icons (#21108) * Update new stream table icon positioning and style * Add custom icons from design file * Add opacity animation * Fix checkbox sizing in current streams table * Update test snapshots * Use explicit configuration for Micronaut endpoints (#20759) * process config control messages during `check` and `discover` (#20894) * track latest config message * pass new config as part of outputs * persist new config * persist config as the messages come through, dont set output * clean up old implementation * accept control messages for destinations * get api client from micronaut * mask instance-wide oauth params when updating configs * defaultreplicationworker tests * formatting * tests for source/destination handlers * rm todo * refactor test a bit to fix pmd * fix pmd * fix test * add PersistConfigHelperTest * update message tracker comment * fix pmd * format * move ApiClientBeanFactory to commons-worker, use in container-orchestrator * pull out config updating to separate methods * add jitter * rename PersistConfigHelper -> UpdateConnectorConfigHelper, docs * fix exception type * fmt * move message type check into runnable * formatting * pass api client env vars to container orchestrator * pass micronaut envs to container orchestrator * print stacktrace for debugging * different api host for container orchestrator * fix default env var * format * fix errors after merge * set source and destination actor id as part of the sync input * fix: get destination definition * fix null ptr * remove "actor" from naming * fix missing change from rename * revert ContainerOrchestratorConfigBeanFactory changes * inject sourceapi/destinationapi directly rather than airbyteapiclient * UpdateConnectorConfigHelper -> ConnectorConfigUpdater * rm log * fix test * dont fail on config update error * process control messages for discover jobs * process control messages for CHECK * persist config updates on check_connection_for_update * get last config message rather than first * fix pmd * fix failing tests * add tests * source id not required for check connection (create case) * suppress pmd warning for BusyWait literal * source id not required for checkc onnection (create case) (p2) * pass id, not full config to runnables/accept control message * add new config required for api client * add test file * remove debugging logs * rename method (getLast -> getMostRecent) * rm version check (re-added this in by mistake on merge) * fix test compatibility * simplify * 🪟🧹 Connector builder: Fast fields performance improvements (#20957) * improve some types * improve further * clean up a bit more * refactor loading state * move loading state up * remove isLoading references * remove unused props and make fetch connector error work * remove special component for name * remove top level state for unifinished flows * start removing uiwidget * Update airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard.module.scss Co-authored-by: Tim Roes * remove undefined option for selected id * remove unused prop * fix types * remove uiwidget state * clean up * adjust comment * handle errors in a nice way * do not respect default on oneOf fields * rename to formblock * reduce re-renders * pass error to secure inputs * simplify and improve styling * align top * code review * remove comment * review comments * rename file * be strict about boolean values * add example * track form error in error boundary * review comments * handle unexpected cases better * speed up some bits * more changes * enrich error with connector id * 🪟🎉 Add copy stream button (#20577) * add copy stream button * review comments * rename prop * 🪟🎉 Connector builder: Integrate connector form for test input (#20385) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * fix small stuff * add warning label * review comments * adjust translation Co-authored-by: lmossman * use request_body_json instead of request_body_data * :window: :art: Move `Add` button into the line of Connector Builder key value list fields (#20699) * move add button into line * add stories for empty with control, and content + control * change button name to Control * 🪟🎉 Connector builder: Allow defining inputs (#20431) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * handle stored form values that don't contain new fields properly * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * 🪟🎉 Connector builder authentication (#20645) * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * fix keys * 🪟🎉 Connector builder: Session token and oauth authentication (#20712) * session token and oauth authentication * fill in session token variable * typos * make sure validation error does not go away * 🪟🎉 Connector builder: Always validate inputs form (#20664) * validate user input outside of form * review comments Co-authored-by: lmossman Co-authored-by: lmossman * fix merge conflict with dropdown prop being renamed to control * [Connector Builder] Add paginator (#20698) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly Co-authored-by: Joe Reuter * [Connector Builder] Add stream slicer (#20748) * move connector builder components into the same shared components/connectorBuilder directory * move diff over from poc branch * save current progress * add modal for adding streams * focus stream after adding and reset button style * add reset confirm modal and select view on add * style global config and streams buttons * styling improvements * handle long stream names better * pull in connector manifest schema directly * add box shadows to resizable panels * upgrade orval and use connector manifest schema directly * remove airbyte protocol from connector builder api spec * generate python models from openapi change * fix position of yaml toggle * handle no stream case with better looking message * group global fields into single object and fix console error * confirmation modal on toggling dirty form + cleanup * fix connector name display * undo change to manifest schema * remove commented code * remove unnecessary change * fix spacing * use shadow mixin for connector img * add comment about connector img * change onSubmit to no-op * remove console log * clean up styling * simplify sidebar to remove StreamSelectButton component * swap colors of toggle * move FormikPatch to src/core/form * move types up to connectorBuilder/ level * use grid display for ui yaml toggle button * use spread instead of setting array index directly * add intl in missing places * pull connector manifest schema in through separate openapi spec * use correct intl string id * throttle setting json manifest in yaml editor * use button prop instead of manually styling * consolidate AddStreamButton styles * fix sidebar flex styles * use specific flex properties instead of flex * clean up download and reset button styles * use row-reverse for yaml editor download button * fix stream selector styles to remove margins * give connector setup guide panel same corner and shadow styles * remove blur from page display * set view to stream when selected in test panel * add placeholder when stream name is empty * switch to index-based stream selection to preserve testing panel selected stream on rename * handle empty name in stream selector * make connector form work in connector builder * wip * fix small stuff * add basic input UI * user inputs * make most of inputs configuration work * fix a bunch of stuff * handle unknown config types * add warning label * fix label * fix some styling * review comments * improve state management and error handling * allow auth configuration * check for conflicts with the inferred inputs * fix invisible inputs * handle stored form values that don't contain new fields properly * session token and oauth authentication * fill in session token variable * fix merge of default values * add primaryKey and cursorField to builder types, and consolidate default valeues to types.ts * add cursor and primary key fields to ui * save * add page size and token option inputs * fixes after rebase * add pagination * fix pagination types * handle empty field_name better * Update airbyte-webapp/src/locales/en.json Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsView.tsx Co-authored-by: Lake Mossman * inputs editing weirdness * input form reset * using the Label component * reduce redundancy and hide advanced input options for inferred inputs * unnecessary validation * typo * unnecessary effect hook * build spec even for invalid forms but do not update stream list * typos * make sure validation error does not go away * make primary key and cursor optional, and reorder * save toggle group progress * fix style of toggle label * handle empty values better * fix page size/token option field validation and rendering * handle cursor pagination page size option correctly * save stream slicer progress * finish stream slicer * fix stream slicer fields and validation Co-authored-by: Joe Reuter * debounce form builder values update to reduce load * 🪟🔧 Connector builder: use new lowcode manifest (#20715) * use new manifest yaml * Update airbyte-webapp/src/components/connectorBuilder/types.ts Co-authored-by: Lake Mossman * use updated manifest types Co-authored-by: Lake Mossman * debounce validation as well * akways show stream test button in error state if there are errors * fix type of oauth input * review comments * fix more * start implementing fast fields * a few more fastfields * fix some stuff * complete fast fields work * memoize a bit more * remove irrelevant change * fix types * some more improvements * prevent all out-of-line validation calls * use derivedJsonManifest when in UI view Co-authored-by: Tim Roes Co-authored-by: lmossman * In Cloud, out of date connectors call always returns 0 (#21126) * isCloudApp returns a boolean now * Connector service never makes the check updates call in Cloud * Move hadoop-lzo to test dependency (#21085) * remove hadoop-lzo from gradle dependencies in destination-s3 project * move hadoop-lzo from build time to test time dependencies in base-s3 project * Update Connector Builder docs to reflect configuration UI additions (#21129) * update connector builder docs for UI MVP release * remove note about separately declaring schemas * Revert "Convert the server to micronaut (#19194)" (#21132) This reverts commit 0b153d11f9b5cc723acc6bbfd0478bd74e124c53. * 🐛 Source Google Ads: publish missing `0.2.6` (#21103) * Remerge Progress Bar Read API. (#21124) Let's try #20937 again, this time with better test for error cases. See original PR for description. This PR adds testing and logic to handle empty/bad job input. * Bump Airbyte version from 0.40.26 to 0.40.27 (#21135) Co-authored-by: lmossman * add import rule changes for Kotlin code (#21136) * Source Okta: OAuth2.0 support - disabled (#20877) * Disabled OAuth Okta * Updated acceptance tests * Updated PR number * auto-bump connector version Co-authored-by: Octavia Squidington III * Remove the quarantine status (#21088) * Rm temporal version * Remove temporal version * Update the replayed workflow * Remove quarantine information * normalization: delete supportsDbt and supportsNormalization from DestinationDefinitionSpecificationRead (#21005) * delete supportsDbt and supportsNormalization from DestinationDefinitionSpecificationRead * FE changes * add new fields to the DestinationDefinitionRead API model * update handlers * update api doc * update handlers * remove debug loggin * implement suggestions * update octavia-cli tests * fix supported check * update octavia-cli * fix integration tests * fix mocks * fix forgotten renaming Co-authored-by: Evan Tahler * Allow for custom requesters to be defined in low-code manifests (#21001) * Allow for custom requesters to be defined in low-code manifests * add test for custom requester component * bump versions and changelog * adjust readme (#20945) * 🪟🎨 Connector form: Improve logs look and feel (#20951) * improve logs look and feel in connector form * add button to toggle * lokk and feel * Adjust GitHub flow for FE chapter (#20813) * Adjust GitHub flow for FE chapter * Change labeler config * Source: Google Analytics 4 (GA4) - improve config validation and SAT (#20889) Signed-off-by: Sergey Chvalyuk * Simplify messaging for sync canceled jobs (#20999) * Hide stats * Show cancelled icon when it's multiple attempts * Update attempts count to gray * Extract shared attempt functions into utils file * Cleanup component export and scss imports * Fix height glitch when opening and closing log * Remove deprecated getter (#21089) * Rm temporal version * Remove temporal version * Update the replayed workflow * Remove quarantine information * Remove deprecated getter * Import error broke master (#21165) * allow the cursors and primary keys to be deselected when the sync mode does not require it (#21117) * Connector builder server: Add inferred schema to read API response (#20942) * fix stuff * add inferred schema to API * fix yaml changes * fix yaml formatting * add whitespace back * reorder imports * New destination: databend (community PR #19815) (#20909) * feat: Add databend destination Co-authored-by: hantmac Co-authored-by: josephkmh Co-authored-by: Sajarin * Update postgres.md (#21170) * Source Facebook Marketing: Update schema ad_account (#21149) * Source Facebook Marketing: Update schema ad_account * Source Facebook Marketing: Update docs; bump version * Source Facebook Marketing: disable backward compatibility * auto-bump connector version Co-authored-by: Octavia Squidington III * Revert "Revert Convert the server to micronaut" (#21133) * Revert "Revert "Convert the server to micronaut (#19194)" (#21132)" This reverts commit 31c65f8eea479ba7e1149f2ccb936220b27a39f1. * Fix the cors * Fix cloud * Amazon Seller Partner: Validate connections without orders data (#20896) * amazon seller partner validate connection without orders data * amazon seller partner bump version in docs * amazon seller partner fix redundant if statement * auto-bump connector version Co-authored-by: Sajarin Co-authored-by: Octavia Squidington III * Source Harvest: Skip 403 FORBIDDEN for all streams (#21151) * Source Harvest: Skip 403 FORBIDDEN for all streams * Source Harvest: update docs * auto-bump connector version Co-authored-by: Octavia Squidington III * test for behavior when a column is removed in an incremental sync (#20033) * test for behavior when a column is removed in an incremental sync * fixes in dat test for dropping a column * only run drop-one-column test for the exchange rates dataset * re-enable tests that were disabled during development * remove unused import * update test to new method for checking spec capabilities * use config directly instead of parameterized test Co-authored-by: Michael Siega Co-authored-by: Michael Siega <109092231+mfsiega-airbyte@users.noreply.github.com> * Source Mailchimp - fix the way request params are built (#20765) * 1058 source mailchimp - fix the way request params are built * auto-bump connector version Co-authored-by: Octavia Squidington III * 🐛 🎉 Source Airtable: migrate to the `Metadata API` for dynamic schema generation (#20846) * Extend connection list filtering (#21094) * Update listWorkspaceStandardSyncs to support lists of sources/destinations * Update API spec * test cleanup (#21178) * removed error (#20612) * Adjust connector icons (#20547) * Adjust connector icons * Update icons * Add missing icons * Remove missing icon from spec * Add trailing newline * Fix test * Use jest directly as test runner (#21174) * 🪟 🎨 Refining BulkEditPanel component (#20474) * Adds handling for source defined and unavailable stream paths inside PillSelect * Adds handling of unavailable cursor and primary key field for PillButton components * Adds useMemo to SyncPathSelect component * Add InfoText component for cursor field and primary key to match table design in Figma * Removes animation for BulkEditPanel; Adds StreamPathSelect new property pillIfChangeUnavailable for cases when we need or not to render pill under unavailable to change path text * Disables pointer event while PillButton is disabled * Adds renderDisabledState property to control PillSelect content while disabled * Changes renderDisabledState -> disabledLabel * 🪟 🔧 Add tests for BulkEditService (#20820) * Add tests for BulkEditService * Add act function to test cases while updating state * Add tests full description; Adds type to MOCK_NODES array; Fixes import relative path * Connector builder: E2e tests (#21122) * wip * wip * e2e tests for connector builder server * rename function * clean up * clean up a bit more * fix path * fix and add documentation * more documentation * stabilze * review comments * 🎉 Source Airtable: update `releaseStage` to `beta` (#20935) * 🪟 🎉 Disable deselection of cursor field/primary key in the UI (#20844) * 🪟 🔧 Update frontend typing of cloud api response (#21086) * 🪟 🔧 Use CSS Custom Properties for colors (#19344) * use css custom properties for colors * separate tokens by hue * adjust stylelint * fix code editor color transformations * remove blue-transparent from color palette * scope opacity to bg only * rename to theme-light * avoid transparent blue, use palette color instead * bring back expanding hex values * replace tooltip colors * define overlay color in theme * fix tooltip colors * slightly darker link color * remove unused SC colors * add box shadow variables * light tooltip table variant * inline one-off colors for login * add new colors to theme-light * fix import name * fix merge conflict with box shadows * fix overlay bg color Co-authored-by: lmossman * ci-connector-ops: change required reviewers logic (#21158) * [ISSUE-20322] updating tutorial documentation (#21163) * [ISSUE-20322] updating tutorial documentation * [ISSUE-20322] updating test and improving docs * Connector builder server: Fix unit tests (#21107) * fix stuff * add inferred schema to API * fix yaml changes * fix yaml formatting * add whitespace back * fix tests * reformat * add unit tests * Destination connector for teradata vantage (rebased community PR) (#21160) * Destination connector for teradata vantage is implemented * add teradata destination to seed yaml * Add teradata destination to specs seed file Co-authored-by: Satish Chinthanippu * 🎉 Updates for edit password field in connector (#20723) * Moves Cancel button to the left. * changes Edit button to outline - secondary variant. * Updates button size to match input height. * convert EnvVariableFeatureFlag to an injected dependency (#21171) * inject feature-flag client into integration-launcher * inject feature-flag client into message-tracker * inject feature-flag client into DefaultAirbyteSource * missed reference in message-tracker * Updated ISO certification date (#21181) * added info * edited wording * Source google ads: add more logs (#20755) * #1148 source google ads: add more logs * #1148 source google ads: upd changelog * #1148 source google ads: flake fix * #1148 source google ads - fix SATs * #1148 source Google Ads: bump version * #1148 source google ads: upd expected records * auto-bump connector version Co-authored-by: Octavia Squidington III * 🎉 Destination Local CSV: add custom delimiter (#17998) * Adds delimeter to the spec file. Adds function to get delimeter from the config. * New delimiter works, but only checked raw airbyte tables. * Fixes testWriteFailure(), testWriteSuccess() still broken. * Corrects CSVFormat and now all tests pass. * Implements tab separator. * Corrects tooltip on destination settings page. * Creates CSV file with delimiters and prints it as stirng. * Adds try catch block for assertion. Deletes file after test run. * Removes separate format for tab dleimiter, it is not needed. * Cleans up code. * Adds missing bracket. * Adds files from incorrect rebase. * Corrects imports. * Fixes connectors base build. * Corrects Dockerfile version bump. Adds changelog. * Corrects getProtocolVersion method and makes CSVDataArgumentsProvider class static. * auto-bump connector version Co-authored-by: Octavia Squidington III * Source Airtable: fix field names (#21215) * Source S3: update block size for json (#21210) * Source S3: update block size for json * Source S3: update docs * auto-bump connector version Co-authored-by: Octavia Squidington III * 🪟 🧹 Custom connectors in Cloud UI updates (#21034) * check if doc url is a valid url in cloud, but don't require it * field label and placeholder * cleanup * match casing for other form labels * cleanup imports * hide documentation panel if URL is empty * only show documentation panel if url is from our docs * make docs url optional, don't put a link in conncectorsview if empty * Update airbyte-webapp/src/views/Connector/ConnectorDocumentationLayout/ConnectorDocumentationLayout.tsx Co-authored-by: Joey Marshment-Howell * use , cleanup from Joey's commit in review comment * Use component in ImageCell, get styled components out of there while I'm at it * add "required" labels * show validation error regardless of `touched` for documentationUrl * use old placeholder instead Co-authored-by: Joey Marshment-Howell * lowcode docs: add link to YAML reference (#21231) * Update platform-workflow-labels.yml (#21225) * Update README.md (#21236) Update connector release stage docs * Enforce HTTPS (#21182) * Enforce HTTPS * 🪟🐛 Connector builder UI: Fix datetime stream slicer (#21161) * fix datetime stream slicer * Update airbyte-webapp/src/components/connectorBuilder/Builder/StreamSlicerSection.tsx Co-authored-by: Lake Mossman * Update airbyte-webapp/src/components/connectorBuilder/Builder/StreamSlicerSection.tsx Co-authored-by: Lake Mossman Co-authored-by: Lake Mossman * [ISSUE #19981] testing version bump (#21106) * [ISSUE #19981] testing version bump * [ISSUE #19981] debugging part-to-bump * [ISSUE #19981] further debugging on part-to-bump * [ISSUE #19981] further debugging on part-to-bump yet again * [ISSUE #19981] further debugging on part-to-bump yet again and again * [ISSUE #19981] improving on first successful attempt * [ISSUE #19981] adding changelog and concurrency * [ISSUE #19981] update version in .bumpversion.cfg * [ISSUE #19981] testing Slack notification with working channel * [ISSUE #19981] documentation and clean up before PR * [ISSUE #19981] make changelog-message optional * [ISSUE #19981] align version with new release * [ISSUE #19981] code review * [Low-Code CDK] Handle forward references in manifest (#20893) [Low-Code CDK] Handle forward references in manifest * Update form field labels in connection form to match design (#21036) * Update form field labels in connection form to match design - Replaced ControlLabels message property with infoTooltipContent - Replaced property "flex-start" to "center" for FlexContainer (New Connection) * Hide no credits banner for no billing accounts (#21218) * Fix auto detect schema change backdrop color CSS (#21246) * Source notion: fix schema (#20639) * #1047 oncall - Source Notion: fix Pages stream schema * #1047 oncall - Source Notion: fix Pages stream schema * #1047 oncall - Source Notion: upd changelog * #1047 source notion - remove ignored fields * #1047 source notion: fix SATs * #1047 source notion: upd expected records * auto-bump connector version Co-authored-by: Octavia Squidington III * [Connector-builder server] Allow client to specify record limit and enforce max of 1000 (#20575) * Upgrade to Micronaut 3.8.0 and related dependencies (#21077) * Upgrade to Micronaut 3.8.0 and related dependencies * Define hostname/subdomain to be compatible with updated AWS SDK * Use bucket name for hostname * Pin dependencies to avoid behavior change * Add comment * Source Google Analytics Data API: slicer updated, unit tests added (#21169) Signed-off-by: Sergey Chvalyuk * Bmoric/restore old interface (#21235) * Re introduce old exception mapper * Use mapper * Switch CI to use npm ci (#21259) * postgres-source-cdc: handle null values for array data types (#21003) * postgres-source-cdc:handle null values for array data types * fix test * upgrade version * auto-bump connector version Co-authored-by: Octavia Squidington III * 🪟 🐛 Fix broken switch UI state - when checked state provided as a "value" (#21219) * fix broken switch state - when checked state provided as a "value" * Update airbyte-webapp/src/components/ui/Switch/Switch.tsx Co-authored-by: Krishna (kc) Glick Co-authored-by: Krishna (kc) Glick * 🪟 🔧 Use experiment for new streams table design (#21230) * Use experiment for new streams table design * Update formConfig validationSchema to use a hook to get the feature flags directly * Add useNewTableDesignExperiment helper hook * Rename isNewStreamsTableEnabled -> isNewTableDesignEnabld * Cleanup tidyFormValues to take the existing schema in * Fix var name in CatalogTreeTableHeader * Source Snapchat Marketing: fix error response (#21267) * Source Snapchat Marketing: fix error response * Source Snapchat Marketing: update docs * auto-bump connector version Co-authored-by: Octavia Squidington III * [Low-Code CDK] Parse incoming manifest objects into Pydantic models (#20747) * initial work to parse manifest objects into pydantic models * pr feedback and some other validations * rerun manifest schema generation * remove field constraint due to bug * add a few tests for the model to component factory * add catch * fix a bug where propagated schema doesn't work with old factory * add additionaProperties: false to the handwritten schema * regenerate pydantic models * fix test * [Low Code CDK] Add type annotations and cleanup usage of `visited` set (#21268) * [Low Code CDK] Add type annotations and cleanup usage of `visited` set * 🤖 Bump minor version of Airbyte CDK * feat: mention user on failed master branch build (#21201) * 🪟 🔧 Fixed passed props to `` which cause error in console (#20711) * fixed sourceDefinitionId and destinationDefinitionId * clean up props * Connector builder server: Fail on failing tests (#21198) * fail on failing command * fix test * Source Google Ads: Update docs (#21308) * Source Ads: docs * Source Ads: docs * Migrate airbyte-bootloader to Micronaut (#21073) * Migrate airbyte-bootloader to Micronaut * PR feedback * More PR feedback * Rename variable for clarity * Add properties to support cloud * Formatting * Use default values for env vars * Re-organization to support cloud overrides * Disable conditional logging * More singleton cleanup * test: try CI without fluentbit * Revert "test: try CI without fluentbit" This reverts commit 8fa0f7410602078296c859c0e783dbdc8456c4a7. * test: enable SSH on EC2 runner * Revert "test: enable SSH on EC2 runner" This reverts commit e4867aae0965faa6ebf83e19e5bd9e9765478099. * Avoid early database connection on startup * Fix compile issues from refactor * Formatting Co-authored-by: perangel * 🪟 🧹 Reorganize connections pages (#20845) * Reorganize connection pages Flatten structure Simplify names * Consolidate all the Connection routes to a single file * Extract job types and utilities to own files within JobItem Move JobsWithJobs to JobItem/utils * Move ConnectionName component to components/connection * Move StatusMainInfo components and rename to components/connection/ConnectionInfoCard * Move ConnectionBlock to components/connection * Clean up ConnectionPage structure * Update style import in ConnectionInfoCard test * Clean up ConnectionRoutePaths enum * Apply suggestions from code review - Update export default style Co-authored-by: Krishna (kc) Glick * Update ConnectionInfoCard test description name * Update test snapshots Co-authored-by: Krishna (kc) Glick * Add bootloader/server to published images for Cloud (#21325) * 🪟 🚦 E2E: Fix duplicated database object warning (#20926) * replace "cypress-postgres" with "pg-promise" npm package * update cypress config * update userDefineConnection type and naming * Update airbyte-webapp-e2e-tests/cypress/plugins/index.ts Co-authored-by: Mark Berger Co-authored-by: Mark Berger * Run Airbyte CI on pull_request (#21266) * Run Airbyte CI on pull_request as well * also only run on pushes to master * 🎉 Source bigcommerce: add brands and categories streams (#20518) * Add product info to the orders stream * Update docs * Refactor order_products into its own stream * formatting * Update docs and docker version * remove duplicate field * Add brands and categories streams to bigcommerce * remove duplicate state * remove duplicate source * update docs * update docs * bump docker version * update markdown * lint * auto-bump connector version Co-authored-by: Sajarin Co-authored-by: Haithem SOUALA Co-authored-by: Octavia Squidington III * 🎉 New Destination: Weaviate (#20094) * Add Weaviate Destination #20012 * Fix formatting and standards * Fix flake issue * Fix unused client variable * Add support for int based ID fields * Ensure stream name meets Weaviate class reqs * add integration test for using pokemon as source * handle nested objects by converting to json string * create schema for transforming data to weaviate * Add docs for weaviate destination * Remove pokemon-schema external dependency * Remove pikachu integration test external dep * Add large batch test case * add test for second sync * Fix issue with fields starting with uppercase * add more checks to line_break test * Update README for Weaviate * Make batch_size configurable with 100 as default * Add support for providing vectors * Update docs * Add test for existing Weaviate class * Add trying to create schema in check connection * Add support for mongodb _id fields * Add support for providing custom ID * remove unused file * fix flow of is_ready() check * Move standalone functions to utils.py * Support overwrite mode * Add regex based stream_name_class_name conversion * remove unneeded print statement * Add "airbyte_secret" : true to password config * add support for array of arrays * remove unneeded variable declaration * change to MutableMapping since we use del * change name from queued_write to buffered_write * add retry on partial batch error * Fix partial batch retry and add tests * fix ID generation * Clean up recursive retry logic * fix flake tests * ran flake reformat * add definitions Co-authored-by: Ivica Taseski Co-authored-by: itaseski * Make schema field in source-snowflake mean a subset of the specified o… (#20465) * Make schema field in source-postgres mean a subset of the specified of schema when during discover(). update UI * Add missing file * Fix failing acceptance test * sanity * update doc * typo * version bump and release note * Fix failing test * fix format * Ensure Local Secret Persistence is Initialized (#21329) * Formatting * Ensure that local persistence is initialized * December release notes docs (#21270) * added december release notes * edits * Add dependencies to docker-compose (#19321) * Revert "Revert "Add dependencies to docker-compose (#19257)" (#19306)" This reverts commit b16f28fd4d9bd05c3512d1f6dbb94af2672259b3. * Bump docker-compose version * test * Revert "test" This reverts commit c3b28c9ec3233d33c2646b349f02a09fbd520f65. * Bump docker compose version to 3.8 * test * test * Use a newer docker for platform build * test * Use docker compose v2 * Update docker for frontend e2e * Use docker compose v2 for e2e tests * Update tools to use docker compose v2 * Update more docker compose references to v2 * Update docker compose usage in docs * Update deploying airbyte docs * Fix permission * Case insensistive check * Add extra mention for docker compose in upgrading airbyte * Improve upgrade docker note * store env-var response (#21327) * store env-var response * fix formatting * fix pmd issue * change log message to debug * fix file change error * Better escape the select query for a case a schema name starts with a number (#21051) * Better escape the select query for a case a schema name starts with a numebr. * improve test * fix unrelated build error * manually bump source definition version (#21349) * :bug: Source Jira: `check_connection` fails if no projects are defined (#20739) Co-authored-by: Evan Tahler Co-authored-by: Octavia Squidington III Co-authored-by: Serhii Chvaliuk Co-authored-by: Augustin * airbyte-common-workers: Collect trace message on failed connection_status (#20721) * 🪟 🎉 Verify auth status on tab focus (#21175) * Make documentation_url optional in a declarative connector spec (#21347) * Make documentation_url optional in a declarative connector spec * simplify if statement * bump patch version of cdk * Revert "bump patch version of cdk" This reverts commit 1854bf3be1ee71500b95053ebd9b595a71b3d693. * 🤖 Bump patch version of Airbyte CDK * Revert "🤖 Bump patch version of Airbyte CDK" This reverts commit 85d5a989e2a8dde04342ee31e8dbc03df5887154. * 🤖 Bump patch version of Airbyte CDK Co-authored-by: lmossman * Avoid parsing a message if this message is too big (#21090) * Tmp * Format * TMP * TMP * Inject max memory * Clean up * Improve error message * PR comments * Unrelated changes * Fix pmd * JDBC Destinations: improve error message for conflicting streams (#21342) * catch conflicting streams as configerror * add test * bump version + changelog * derp, fix test setup * derp * auto-bump connector version Co-authored-by: Octavia Squidington III * Bump Airbyte version from 0.40.27 to 0.40.28 (#21359) Co-authored-by: lmossman * Add records committed to job stats (#21364) * [Low-Code CDK] Construct declarative components from Pydantic models (#21050) * initial work to parse manifest objects into pydantic models * pr feedback and some other validations * rerun manifest schema generation * remove field constraint due to bug * initial work to construct most components from greenhouse * custom components parse subcomponent fields correctly and adding a few more component constructors * construct components from gnews * first pass at posthog.yaml * Handle nested custom components with list values. Also includes updates to posthog.yaml, including autoformatting changes. * adding constructors for slicers, filters, and transformations and a few bug fixes * make sed work across multiple OS * add NoAuth component * fix handling of custom components with nested list * Autogenerate `TYPE_NAME_TO_MODEL` mapping * Handle default kwargs not defined on model for custom components * Re-add `options` for CartesianProductStreamSlicer for backwards compat with custom stream slicers * add basic unit tests for the model component factory * add back defaults and extra parameters like options to retain compatibility with legacy flow and backwards compatibility * Remove `_get_defaults`; using actual default values on classes instead * Add backoff strategy component creation functions * add back defaults and extra parameters like options to retain compatibility with legacy flow and backwards compatibility * add lots of tests to construct components from the pydantic models and a few bug fixes * add a few tests for the model to component factory * add catch * fix a bug where propagated schema doesn't work with old factory * clean up a few files * add type inference for custom components, more tests and some refactoring of the model factory * template, docs, manifest updates, pr feedback and some cleanup * pr feedback and polish schema a bit * fix tests from the latest rebase of master * fix the last few bugs I found and adjust a few sources that weren't perfectly compatible with the new component flow * fix CheckStream bug cleanup and a few small tweaks and polish * add additional test to cover bug case * fix formatting * 🤖 Bump minor version of Airbyte CDK Co-authored-by: Catherine Noll Co-authored-by: brianjlai * update destination-python generator (#21298) * fixed current_value in usage_triggers stream (#21304) * 🪟 🔧 Add stylelint plugin & no-color-variables-in-rgba rule (#21269) * fix e2e tests (#21380) * 🪟🎉 Connector builder: Schema inferrer UI (#21154) * fix stuff * add inferred schema to API * fix yaml changes * fix yaml formatting * add whitespace back * basic ui * advanced UI * Remove unused one * reset package lock * resolve merge conflicts * styling * show button and icon in the normal schema tab * restructure * handle yaml view * small fix * review comments * make monaco resize * review comments * 🎉 New Source: Dremio (#19912) * Remove `supportsNormalization` `supportsDbt` from non GA destination spec (#21319) * SAT: check `future_state` only for incremental streams. (#21248) Signed-off-by: Sergey Chvalyuk * :tada: Typeform - beta certification (#21145) * fixed SAT, fix specs, updated docs * fix incremental * fix incremental * fix incremental * updated connector version in source_definitions.yaml * updated version in source_specs.yaml * Update databend.md (#21179) * Update databend.md * component (#21273) * genericize alert component * add className prop to alert * rename infobox "callout", swap in place for scss module * fix imports * use callout in place of alert * add blue variant, remove icon prop * remove font-size (this is already the default) * remove single use prop, use a classname instead * use semantic names, remove empty line * cleanup from rebase * Update to Micronaut 3.8.1 (#21388) * Source Slack: retry timeout error (#21321) * Source Slack: retry timeout error * Source Slack: update docs * Source Slack: update retry * auto-bump connector version Co-authored-by: Octavia Squidington III * Source Facebook Marketing: Videos stream remove filtering (#21385) * Source Facebook Marketing: Videos stream remove filtering * Source Facebook Marketing: update docs * Source Facebook Marketing: Ref * auto-bump connector version Co-authored-by: Octavia Squidington III * Source Klaviyo: enable SAT high strictness (#21374) * Source Klaviyo: change configuration of acceptance-test-config.yml for high strictness * Add metrics stream to configured_catalog, add metrics expected records * Update future state * Remove expected records for flows stream * Source File: enable high strictness level (#21243) * Source File: enable high strictness level * Addedend line Co-authored-by: Serhii Lazebnyi * introduce code coverage report step (#21376) * introduce code coverage report step * remove airbyte-queue jacoco report since it isn't being generated by the build yet * leave pointer to wildcard support and tweak coverage threshold * added edits (#21346) * 🪟 🐛 Fix jest tests to fail build correctly (#21408) * Fix jest tests to fail build correctly * Add failing test for demo * Update StatusCell.test.tsx * Allow the OSS server only on OSS (#21416) * Update create connection page to full width, and fix trivial UI issues (#21352) * Update big prop in FormPageContent to expand to full width * Fix Normalization & Tranformation heading size * Update FormPageContent to scss and add bottom padding * Remove max-width from ConnectionReplicationPage * Improvements to edge cases of CheckStream (#21404) * Add test for failure case * Except StopIteration - make test pass * Don't attempt to connect to a stream if we get no stream slices * Make helper method for getting first record for a slice * Add comments and exit early if stream to check isn't in list of source streams * move helpers to helper module * Clarify what it means when StopIteration is returned by helper methods * Add AllowedHosts to Actor Definitions and Config Database (#21363) * Add AllowedHosts to actor_definitions and database * use objects for better null-ness handling * Tables.ACTOR_DEFINITIO * Update on-gcp-compute-engine.md (#21429) Use curl instead of wget since we already install curl. * refactor checks * rebase from master * PR Feedback * PR feedback * revert unintended version downgrade * add version updates and changelog * auto-bump connector version * auto-bump connector version * formatting * bump snowflake destination version * manual version bump for s3 * auto-bump connector version * auto-bump connector version Signed-off-by: Sergey Chvalyuk Co-authored-by: Joe Reuter Co-authored-by: Tim Roes Co-authored-by: lmossman Co-authored-by: Anne <102554163+alovew@users.noreply.github.com> Co-authored-by: Greg Solovyev Co-authored-by: Octavia Squidington III Co-authored-by: Davin Chia Co-authored-by: Benoit Moriceau Co-authored-by: Amruta Ranade <11484018+Amruta-Ranade@users.noreply.github.com> Co-authored-by: Serhii Lazebnyi <53845333+lazebnyi@users.noreply.github.com> Co-authored-by: Artem Inzhyyants <36314070+artem1205@users.noreply.github.com> Co-authored-by: Serhii Chvaliuk Co-authored-by: Augustin Co-authored-by: Topher Lubaway Co-authored-by: Krishna (kc) Glick Co-authored-by: Pedro S. Lopez Co-authored-by: Maxime Carbonneau-Leclerc Co-authored-by: Cole Snodgrass Co-authored-by: Edmundo Ruiz Ghanem <168664+edmundito@users.noreply.github.com> Co-authored-by: Jonathan Pearlin Co-authored-by: Baz Co-authored-by: Octavia Squidington III <90398440+octavia-squidington-iii@users.noreply.github.com> Co-authored-by: lmossman Co-authored-by: Evan Tahler Co-authored-by: Brian Lai <51336873+brianjlai@users.noreply.github.com> Co-authored-by: Michael Siega <109092231+mfsiega-airbyte@users.noreply.github.com> Co-authored-by: hantmac Co-authored-by: josephkmh Co-authored-by: Sajarin Co-authored-by: Zaza Javakhishvili Co-authored-by: Michael Siega Co-authored-by: Denys Davydov Co-authored-by: Jimmy Ma Co-authored-by: Sophia Wiley <106352739+sophia-wiley@users.noreply.github.com> Co-authored-by: Yatsuk Bogdan Co-authored-by: Joey Marshment-Howell Co-authored-by: Satish Chinthanippu Co-authored-by: Nataly Merezhuk <65251165+natalyjazzviolin@users.noreply.github.com> Co-authored-by: Teal Larson Co-authored-by: Sherif A. Nada Co-authored-by: Catherine Noll Co-authored-by: Mark Berger Co-authored-by: Subodh Kant Chaturvedi Co-authored-by: Vladimir Co-authored-by: Volodymyr Pochtar Co-authored-by: perangel Co-authored-by: Conor Co-authored-by: Philip Corr Co-authored-by: Haithem SOUALA Co-authored-by: Sam Stoelinga Co-authored-by: Ivica Taseski Co-authored-by: itaseski Co-authored-by: Rodi Reich Zilberman <867491+rodireich@users.noreply.github.com> Co-authored-by: Philippe Boyd Co-authored-by: Edward Gao Co-authored-by: Catherine Noll Co-authored-by: brianjlai Co-authored-by: darynaishchenko <80129833+darynaishchenko@users.noreply.github.com> Co-authored-by: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com> Co-authored-by: midavadim Co-authored-by: Roman Yermilov [GL] <86300758+roman-yermilov-gl@users.noreply.github.com> Co-authored-by: Serhii Lazebnyi Co-authored-by: Ella Rohm-Ensing --- .../seed/destination_definitions.yaml | 10 ++-- .../resources/seed/destination_specs.yaml | 10 ++-- .../destination/s3/BlobStorageOperations.java | 4 +- .../destination/s3/S3BaseChecks.java | 2 +- .../destination/s3/S3StorageOperations.java | 26 +++++---- .../util/ConnectorExceptionUtil.java | 3 + .../Dockerfile | 2 +- .../destination-bigquery/Dockerfile | 2 +- .../bigquery/BigQueryGcsOperations.java | 15 ++++- .../bigquery/BigQueryDestinationTest.java | 4 +- .../connectors/destination-gcs/Dockerfile | 2 +- .../destination-redshift/Dockerfile | 2 +- .../RedshiftS3StagingSqlOperations.java | 2 +- .../connectors/destination-s3/Dockerfile | 2 +- .../destination-snowflake/Dockerfile | 2 +- .../SnowflakeS3StagingSqlOperations.java | 2 +- docs/integrations/destinations/bigquery.md | 1 + docs/integrations/destinations/gcs.md | 57 ++++++++++--------- docs/integrations/destinations/redshift.md | 3 +- docs/integrations/destinations/s3.md | 1 + docs/integrations/destinations/snowflake.md | 3 +- 21 files changed, 90 insertions(+), 65 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml index d84582706ba2f..b055912956595 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml @@ -40,7 +40,7 @@ - name: BigQuery destinationDefinitionId: 22f6c74f-5699-40ff-833c-4a879ea40133 dockerRepository: airbyte/destination-bigquery - dockerImageTag: 1.2.11 + dockerImageTag: 1.2.12 documentationUrl: https://docs.airbyte.com/integrations/destinations/bigquery icon: bigquery.svg normalizationConfig: @@ -139,7 +139,7 @@ - name: Google Cloud Storage (GCS) destinationDefinitionId: ca8f6566-e555-4b40-943a-545bf123117a dockerRepository: airbyte/destination-gcs - dockerImageTag: 0.2.12 + dockerImageTag: 0.2.13 documentationUrl: https://docs.airbyte.com/integrations/destinations/gcs icon: googlecloudstorage.svg resourceRequirements: @@ -290,7 +290,7 @@ - name: Redshift destinationDefinitionId: f7a7d195-377f-cf5b-70a5-be6b819019dc dockerRepository: airbyte/destination-redshift - dockerImageTag: 0.3.53 + dockerImageTag: 0.3.54 documentationUrl: https://docs.airbyte.com/integrations/destinations/redshift icon: redshift.svg normalizationConfig: @@ -321,7 +321,7 @@ - name: S3 destinationDefinitionId: 4816b78f-1489-44c1-9060-4b19d5fa9362 dockerRepository: airbyte/destination-s3 - dockerImageTag: 0.3.18 + dockerImageTag: 0.3.19 documentationUrl: https://docs.airbyte.com/integrations/destinations/s3 icon: s3.svg resourceRequirements: @@ -348,7 +348,7 @@ - name: Snowflake destinationDefinitionId: 424892c4-daac-4491-b35d-c6688ba547ba dockerRepository: airbyte/destination-snowflake - dockerImageTag: 0.4.43 + dockerImageTag: 0.4.44 documentationUrl: https://docs.airbyte.com/integrations/destinations/snowflake icon: snowflake.svg normalizationConfig: diff --git a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml index aa768b304061f..7f34e408d5b9d 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml @@ -621,7 +621,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-bigquery:1.2.11" +- dockerImage: "airbyte/destination-bigquery:1.2.12" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/bigquery" connectionSpecification: @@ -2325,7 +2325,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-gcs:0.2.12" +- dockerImage: "airbyte/destination-gcs:0.2.13" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/gcs" connectionSpecification: @@ -5123,7 +5123,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-redshift:0.3.53" +- dockerImage: "airbyte/destination-redshift:0.3.54" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/redshift" connectionSpecification: @@ -5492,7 +5492,7 @@ supported_destination_sync_modes: - "append" - "overwrite" -- dockerImage: "airbyte/destination-s3:0.3.18" +- dockerImage: "airbyte/destination-s3:0.3.19" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/s3" connectionSpecification: @@ -6109,7 +6109,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-snowflake:0.4.43" +- dockerImage: "airbyte/destination-snowflake:0.4.44" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/snowflake" connectionSpecification: diff --git a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/BlobStorageOperations.java b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/BlobStorageOperations.java index d131470e976e9..96681b4216f83 100644 --- a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/BlobStorageOperations.java +++ b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/BlobStorageOperations.java @@ -22,9 +22,9 @@ protected BlobStorageOperations() { public abstract String getBucketObjectPath(String namespace, String streamName, DateTime writeDatetime, String customFormat); /** - * Create a storage object where to store data in the destination for a @param objectPath + * Ensure that the bucket specified in the config exists */ - public abstract void createBucketObjectIfNotExists(String objectPath) throws Exception; + public abstract void createBucketIfNotExists() throws Exception; /** * Upload the data files into the storage area. diff --git a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3BaseChecks.java b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3BaseChecks.java index b5f2037e842b7..0873cbb87a01f 100644 --- a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3BaseChecks.java +++ b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3BaseChecks.java @@ -120,7 +120,7 @@ private static void attemptWriteAndDeleteS3Object(final S3StorageOperations stor final var bucketPath = s3Config.getBucketPath(); if (!Strings.isNullOrEmpty(bucketPath)) { - storageOperations.createBucketObjectIfNotExists(bucketPath); + storageOperations.createBucketIfNotExists(); } s3.putObject(s3Bucket, outputTableName, "check-content"); testIAMUserHasListObjectPermission(s3, s3Bucket); diff --git a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3StorageOperations.java b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3StorageOperations.java index 5994634351420..ba9f3a19ceabb 100644 --- a/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3StorageOperations.java +++ b/airbyte-integrations/bases/base-java-s3/src/main/java/io/airbyte/integrations/destination/s3/S3StorageOperations.java @@ -8,6 +8,7 @@ import alex.mojaki.s3upload.StreamTransferManager; import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.DeleteObjectsRequest; import com.amazonaws.services.s3.model.DeleteObjectsRequest.KeyVersion; import com.amazonaws.services.s3.model.ListObjectsRequest; @@ -15,12 +16,14 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; +import io.airbyte.commons.exceptions.ConfigErrorException; import io.airbyte.commons.string.Strings; import io.airbyte.integrations.destination.NamingConventionTransformer; import io.airbyte.integrations.destination.record_buffer.SerializableBuffer; import io.airbyte.integrations.destination.s3.template.S3FilenameTemplateManager; import io.airbyte.integrations.destination.s3.template.S3FilenameTemplateParameterObject; import io.airbyte.integrations.destination.s3.util.StreamTransferManagerFactory; +import io.airbyte.integrations.util.ConnectorExceptionUtil; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -95,23 +98,15 @@ public String getBucketObjectPath(final String namespace, final String streamNam /** * Create a directory object at the specified location. Creates the bucket if necessary. - * - * @param objectPath The directory to create. Must be a nonempty string. */ @Override - public void createBucketObjectIfNotExists(final String objectPath) { + public void createBucketIfNotExists() { final String bucket = s3Config.getBucketName(); - final String folderPath = objectPath.endsWith("/") ? objectPath : objectPath + "/"; if (!doesBucketExist(bucket)) { LOGGER.info("Bucket {} does not exist; creating...", bucket); s3Client.createBucket(bucket); LOGGER.info("Bucket {} has been created.", bucket); } - if (!s3Client.doesObjectExist(bucket, folderPath)) { - LOGGER.info("Storage Object {}/{} does not exist in bucket; creating...", bucket, objectPath); - s3Client.putObject(bucket, folderPath, ""); - LOGGER.info("Storage Object {}/{} has been created in bucket.", bucket, objectPath); - } } protected boolean doesBucketExist(final String bucket) { @@ -138,7 +133,18 @@ public String uploadRecordsToBucket(final SerializableBuffer recordsData, exceptionsThrown.add(e); } } - throw new RuntimeException(String.format("Exceptions thrown while uploading records into storage: %s", Strings.join(exceptionsThrown, "\n"))); + // Verifying that ALL exceptions are authentication related before assuming this is a configuration + // issue + // reduces risk of misidentifying errors or reporting a transient error. + final boolean areAllExceptionsAuthExceptions = exceptionsThrown.stream().filter(e -> e instanceof AmazonS3Exception) + .map(s3e -> ((AmazonS3Exception) s3e).getStatusCode()) + .filter(ConnectorExceptionUtil.HTTP_AUTHENTICATION_ERROR_CODES::contains) + .count() == exceptionsThrown.size(); + if (areAllExceptionsAuthExceptions) { + throw new ConfigErrorException(exceptionsThrown.get(0).getMessage(), exceptionsThrown.get(0)); + } else { + throw new RuntimeException(String.format("Exceptions thrown while uploading records into storage: %s", Strings.join(exceptionsThrown, "\n"))); + } } /** diff --git a/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/ConnectorExceptionUtil.java b/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/ConnectorExceptionUtil.java index 2db68dff49e68..ea336d8fce652 100644 --- a/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/ConnectorExceptionUtil.java +++ b/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/ConnectorExceptionUtil.java @@ -4,6 +4,7 @@ package io.airbyte.integrations.util; +import com.google.common.collect.ImmutableList; import io.airbyte.commons.exceptions.ConfigErrorException; import io.airbyte.commons.exceptions.ConnectionErrorException; import io.airbyte.integrations.base.errors.messages.ErrorMessage; @@ -22,6 +23,8 @@ public class ConnectorExceptionUtil { static final String RECOVERY_CONNECTION_ERROR_MESSAGE = "We're having issues syncing from a Postgres replica that is configured as a hot standby server. " + "Please see https://docs.airbyte.com/integrations/sources/postgres/#sync-data-from-postgres-hot-standby-server for options and workarounds"; + + public static final List HTTP_AUTHENTICATION_ERROR_CODES = ImmutableList.of(401, 403); private static final List> configErrorPredicates = List.of(getConfigErrorPredicate(), getConnectionErrorPredicate(), isRecoveryConnectionExceptionPredicate(), isUnknownColumnInFieldListException()); diff --git a/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile b/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile index 1cfd9ee045d5d..e6cd0710659c2 100644 --- a/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile +++ b/airbyte-integrations/connectors/destination-bigquery-denormalized/Dockerfile @@ -17,5 +17,5 @@ ENV ENABLE_SENTRY true COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.2.11 +LABEL io.airbyte.version=1.2.12 LABEL io.airbyte.name=airbyte/destination-bigquery-denormalized diff --git a/airbyte-integrations/connectors/destination-bigquery/Dockerfile b/airbyte-integrations/connectors/destination-bigquery/Dockerfile index f79d950d1d7f0..5e0eba63c40d7 100644 --- a/airbyte-integrations/connectors/destination-bigquery/Dockerfile +++ b/airbyte-integrations/connectors/destination-bigquery/Dockerfile @@ -17,5 +17,5 @@ ENV ENABLE_SENTRY true COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.2.11 +LABEL io.airbyte.version=1.2.12 LABEL io.airbyte.name=airbyte/destination-bigquery diff --git a/airbyte-integrations/connectors/destination-bigquery/src/main/java/io/airbyte/integrations/destination/bigquery/BigQueryGcsOperations.java b/airbyte-integrations/connectors/destination-bigquery/src/main/java/io/airbyte/integrations/destination/bigquery/BigQueryGcsOperations.java index 51a269725befb..e955d005b871e 100644 --- a/airbyte-integrations/connectors/destination-bigquery/src/main/java/io/airbyte/integrations/destination/bigquery/BigQueryGcsOperations.java +++ b/airbyte-integrations/connectors/destination-bigquery/src/main/java/io/airbyte/integrations/destination/bigquery/BigQueryGcsOperations.java @@ -13,11 +13,14 @@ import com.google.cloud.bigquery.LoadJobConfiguration; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.TableId; +import com.google.common.collect.ImmutableList; +import io.airbyte.commons.exceptions.ConfigErrorException; import io.airbyte.integrations.destination.StandardNameTransformer; import io.airbyte.integrations.destination.bigquery.uploader.AbstractBigQueryUploader; import io.airbyte.integrations.destination.gcs.GcsDestinationConfig; import io.airbyte.integrations.destination.gcs.GcsStorageOperations; import io.airbyte.integrations.destination.record_buffer.SerializableBuffer; +import io.airbyte.integrations.util.ConnectorExceptionUtil; import io.airbyte.protocol.models.v0.DestinationSyncMode; import java.util.HashSet; import java.util.List; @@ -84,7 +87,15 @@ public String getStagingFullPath(final String datasetId, final String stream) { public void createSchemaIfNotExists(final String datasetId, final String datasetLocation) { if (!existingSchemas.contains(datasetId)) { LOGGER.info("Creating dataset {}", datasetId); - BigQueryUtils.getOrCreateDataset(bigQuery, datasetId, datasetLocation); + try { + BigQueryUtils.getOrCreateDataset(bigQuery, datasetId, datasetLocation); + } catch (BigQueryException e) { + if (ConnectorExceptionUtil.HTTP_AUTHENTICATION_ERROR_CODES.contains(e.getCode())) { + throw new ConfigErrorException(e.getMessage(), e); + } else { + throw e; + } + } existingSchemas.add(datasetId); } } @@ -99,7 +110,7 @@ public void createTmpTableIfNotExists(final TableId tmpTableId, final Schema tab public void createStageIfNotExists(final String datasetId, final String stream) { final String objectPath = getStagingFullPath(datasetId, stream); LOGGER.info("Creating staging path for stream {} (dataset {}): {}", stream, datasetId, objectPath); - gcsStorageOperations.createBucketObjectIfNotExists(objectPath); + gcsStorageOperations.createBucketIfNotExists(); } @Override diff --git a/airbyte-integrations/connectors/destination-bigquery/src/test-integration/java/io/airbyte/integrations/destination/bigquery/BigQueryDestinationTest.java b/airbyte-integrations/connectors/destination-bigquery/src/test-integration/java/io/airbyte/integrations/destination/bigquery/BigQueryDestinationTest.java index 065ff49844cec..3f2c05210cf02 100644 --- a/airbyte-integrations/connectors/destination-bigquery/src/test-integration/java/io/airbyte/integrations/destination/bigquery/BigQueryDestinationTest.java +++ b/airbyte-integrations/connectors/destination-bigquery/src/test-integration/java/io/airbyte/integrations/destination/bigquery/BigQueryDestinationTest.java @@ -84,8 +84,10 @@ class BigQueryDestinationTest { protected static final Path CREDENTIALS_WITH_GCS_STAGING_PATH = Path.of("secrets/credentials-gcs-staging.json"); - protected static final Path[] ALL_PATHS = {CREDENTIALS_WITH_GCS_STAGING_PATH, CREDENTIALS_BAD_PROJECT_PATH, CREDENTIALS_NO_DATASET_CREATION_PATH, + + protected static final Path[] ALL_PATHS = {CREDENTIALS_STANDARD_INSERT_PATH, CREDENTIALS_BAD_PROJECT_PATH, CREDENTIALS_NO_DATASET_CREATION_PATH, CREDENTIALS_NO_EDIT_PUBLIC_SCHEMA_ROLE_PATH, CREDENTIALS_NON_BILLABLE_PROJECT_PATH, CREDENTIALS_WITH_GCS_STAGING_PATH}; + private static final Logger LOGGER = LoggerFactory.getLogger(BigQueryDestinationTest.class); private static final String DATASET_NAME_PREFIX = "bq_dest_integration_test"; diff --git a/airbyte-integrations/connectors/destination-gcs/Dockerfile b/airbyte-integrations/connectors/destination-gcs/Dockerfile index c5534e0a9128c..f4d34c04bceb0 100644 --- a/airbyte-integrations/connectors/destination-gcs/Dockerfile +++ b/airbyte-integrations/connectors/destination-gcs/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION destination-gcs COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.2.12 +LABEL io.airbyte.version=0.2.13 LABEL io.airbyte.name=airbyte/destination-gcs diff --git a/airbyte-integrations/connectors/destination-redshift/Dockerfile b/airbyte-integrations/connectors/destination-redshift/Dockerfile index 5f06bd32cc8e4..882852e888115 100644 --- a/airbyte-integrations/connectors/destination-redshift/Dockerfile +++ b/airbyte-integrations/connectors/destination-redshift/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION destination-redshift COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.3.53 +LABEL io.airbyte.version=0.3.54 LABEL io.airbyte.name=airbyte/destination-redshift diff --git a/airbyte-integrations/connectors/destination-redshift/src/main/java/io/airbyte/integrations/destination/redshift/operations/RedshiftS3StagingSqlOperations.java b/airbyte-integrations/connectors/destination-redshift/src/main/java/io/airbyte/integrations/destination/redshift/operations/RedshiftS3StagingSqlOperations.java index 63abde3f69663..657a582d6eebc 100644 --- a/airbyte-integrations/connectors/destination-redshift/src/main/java/io/airbyte/integrations/destination/redshift/operations/RedshiftS3StagingSqlOperations.java +++ b/airbyte-integrations/connectors/destination-redshift/src/main/java/io/airbyte/integrations/destination/redshift/operations/RedshiftS3StagingSqlOperations.java @@ -77,7 +77,7 @@ public String getStagingPath(UUID connectionId, String namespace, String streamN public void createStageIfNotExists(JdbcDatabase database, String stageName) throws Exception { final String bucketPath = s3Config.getBucketPath(); final String prefix = bucketPath.isEmpty() ? "" : bucketPath + (bucketPath.endsWith("/") ? "" : "/"); - s3StorageOperations.createBucketObjectIfNotExists(prefix + stageName); + s3StorageOperations.createBucketIfNotExists(); } @Override diff --git a/airbyte-integrations/connectors/destination-s3/Dockerfile b/airbyte-integrations/connectors/destination-s3/Dockerfile index e11e5ea30b84f..73f794c6b7211 100644 --- a/airbyte-integrations/connectors/destination-s3/Dockerfile +++ b/airbyte-integrations/connectors/destination-s3/Dockerfile @@ -40,5 +40,5 @@ RUN /bin/bash -c 'set -e && \ echo "unknown arch" ;\ fi' -LABEL io.airbyte.version=0.3.18 +LABEL io.airbyte.version=0.3.19 LABEL io.airbyte.name=airbyte/destination-s3 diff --git a/airbyte-integrations/connectors/destination-snowflake/Dockerfile b/airbyte-integrations/connectors/destination-snowflake/Dockerfile index 4b8f627b28ea2..da6515de1feb3 100644 --- a/airbyte-integrations/connectors/destination-snowflake/Dockerfile +++ b/airbyte-integrations/connectors/destination-snowflake/Dockerfile @@ -20,5 +20,5 @@ RUN tar xf ${APPLICATION}.tar --strip-components=1 ENV ENABLE_SENTRY true -LABEL io.airbyte.version=0.4.43 +LABEL io.airbyte.version=0.4.44 LABEL io.airbyte.name=airbyte/destination-snowflake diff --git a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingSqlOperations.java b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingSqlOperations.java index 9cdc3058be4e9..e9c40de09116d 100644 --- a/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingSqlOperations.java +++ b/airbyte-integrations/connectors/destination-snowflake/src/main/java/io/airbyte/integrations/destination/snowflake/SnowflakeS3StagingSqlOperations.java @@ -82,7 +82,7 @@ public String uploadRecordsToStage(final JdbcDatabase database, @Override public void createStageIfNotExists(final JdbcDatabase database, final String stageName) { - s3StorageOperations.createBucketObjectIfNotExists(stageName); + s3StorageOperations.createBucketIfNotExists(); } @Override diff --git a/docs/integrations/destinations/bigquery.md b/docs/integrations/destinations/bigquery.md index e418918e1f78d..6b6759b152f5b 100644 --- a/docs/integrations/destinations/bigquery.md +++ b/docs/integrations/destinations/bigquery.md @@ -136,6 +136,7 @@ Now that you have set up the BigQuery destination connector, check out the follo | Version | Date | Pull Request | Subject | |:--------|:-----------|:----------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------| +| 1.2.12 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | | 1.2.11 | 2023-01-18 | [#21144](https://github.com/airbytehq/airbyte/pull/21144) | Added explicit error message if sync fails due to a config issue | | 1.2.9 | 2022-12-14 | [#20501](https://github.com/airbytehq/airbyte/pull/20501) | Report GCS staging failures that occur during connection check | | 1.2.8 | 2022-11-22 | [#19489](https://github.com/airbytehq/airbyte/pull/19489) | Added non-billable projects handle to check connection stage | diff --git a/docs/integrations/destinations/gcs.md b/docs/integrations/destinations/gcs.md index aa07d098ed178..e988530da08ce 100644 --- a/docs/integrations/destinations/gcs.md +++ b/docs/integrations/destinations/gcs.md @@ -235,31 +235,32 @@ Under the hood, an Airbyte data stream in Json schema is first converted to an A ## CHANGELOG -| Version | Date | Pull Request | Subject | -|:--------| :--- | :--- | :--- | -| 0.2.12 | 2022-10-18 | [\#17901](https://github.com/airbytehq/airbyte/pull/17901) | Fix logging to GCS | -| 0.2.11 | 2022-09-01 | [\#16243](https://github.com/airbytehq/airbyte/pull/16243) | Fix Json to Avro conversion when there is field name clash from combined restrictions (`anyOf`, `oneOf`, `allOf` fields) | -| 0.2.10 | 2022-08-05 | [\#14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | -| 0.2.9 | 2022-06-24 | [\#14114](https://github.com/airbytehq/airbyte/pull/14114) | Remove "additionalProperties": false from specs for connectors with staging | -| 0.2.8 | 2022-06-17 | [\#13753](https://github.com/airbytehq/airbyte/pull/13753) | Deprecate and remove PART_SIZE_MB fields from connectors based on StreamTransferManager | -| 0.2.7 | 2022-06-14 | [\#13483](https://github.com/airbytehq/airbyte/pull/13483) | Added support for int, long, float data types to Avro/Parquet formats. | -| 0.2.6 | 2022-05-17 | [12820](https://github.com/airbytehq/airbyte/pull/12820) | Improved 'check' operation performance | -| 0.2.5 | 2022-05-04 | [\#12578](https://github.com/airbytehq/airbyte/pull/12578) | In JSON to Avro conversion, log JSON field values that do not follow Avro schema for debugging. | -| 0.2.4 | 2022-04-22 | [\#12167](https://github.com/airbytehq/airbyte/pull/12167) | Add gzip compression option for CSV and JSONL formats. | -| 0.2.3 | 2022-04-22 | [\#11795](https://github.com/airbytehq/airbyte/pull/11795) | Fix the connection check to verify the provided bucket path. | -| 0.2.2 | 2022-04-05 | [\#11728](https://github.com/airbytehq/airbyte/pull/11728) | Properly clean-up bucket when running OVERWRITE sync mode | -| 0.2.1 | 2022-04-05 | [\#11499](https://github.com/airbytehq/airbyte/pull/11499) | Updated spec and documentation. | -| 0.2.0 | 2022-04-04 | [\#11686](https://github.com/airbytehq/airbyte/pull/11686) | Use serialized buffering strategy to reduce memory consumption; compress CSV and JSONL formats. | -| 0.1.22 | 2022-02-12 | [\#10256](https://github.com/airbytehq/airbyte/pull/10256) | Add JVM flag to exist on OOME. | -| 0.1.21 | 2022-02-12 | [\#10299](https://github.com/airbytehq/airbyte/pull/10299) | Fix connection check to require only the necessary permissions. | -| 0.1.20 | 2022-01-11 | [\#9367](https://github.com/airbytehq/airbyte/pull/9367) | Avro & Parquet: support array field with unknown item type; default any improperly typed field to string. | -| 0.1.19 | 2022-01-10 | [\#9121](https://github.com/airbytehq/airbyte/pull/9121) | Fixed check method for GCS mode to verify if all roles assigned to user | -| 0.1.18 | 2021-12-30 | [\#8809](https://github.com/airbytehq/airbyte/pull/8809) | Update connector fields title/description | -| 0.1.17 | 2021-12-21 | [\#8574](https://github.com/airbytehq/airbyte/pull/8574) | Added namespace to Avro and Parquet record types | -| 0.1.16 | 2021-12-20 | [\#8974](https://github.com/airbytehq/airbyte/pull/8974) | Release a new version to ensure there is no excessive logging. | -| 0.1.15 | 2021-12-03 | [\#8386](https://github.com/airbytehq/airbyte/pull/8386) | Add new GCP regions | -| 0.1.14 | 2021-12-01 | [\#7732](https://github.com/airbytehq/airbyte/pull/7732) | Support timestamp in Avro and Parquet | -| 0.1.13 | 2021-11-03 | [\#7288](https://github.com/airbytehq/airbyte/issues/7288) | Support Json `additionalProperties`. | -| 0.1.2 | 2021-09-12 | [\#5720](https://github.com/airbytehq/airbyte/issues/5720) | Added configurable block size for stream. Each stream is limited to 10,000 by GCS | -| 0.1.1 | 2021-08-26 | [\#5296](https://github.com/airbytehq/airbyte/issues/5296) | Added storing gcsCsvFileLocation property for CSV format. This is used by destination-bigquery \(GCS Staging upload type\) | -| 0.1.0 | 2021-07-16 | [\#4329](https://github.com/airbytehq/airbyte/pull/4784) | Initial release. | +| Version | Date | Pull Request | Subject | +|:--------| :--- |:------------------------------------------------------------| :--- | +| 0.2.13 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | +| 0.2.12 | 2022-10-18 | [\#17901](https://github.com/airbytehq/airbyte/pull/17901) | Fix logging to GCS | +| 0.2.11 | 2022-09-01 | [\#16243](https://github.com/airbytehq/airbyte/pull/16243) | Fix Json to Avro conversion when there is field name clash from combined restrictions (`anyOf`, `oneOf`, `allOf` fields) | +| 0.2.10 | 2022-08-05 | [\#14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | +| 0.2.9 | 2022-06-24 | [\#14114](https://github.com/airbytehq/airbyte/pull/14114) | Remove "additionalProperties": false from specs for connectors with staging | +| 0.2.8 | 2022-06-17 | [\#13753](https://github.com/airbytehq/airbyte/pull/13753) | Deprecate and remove PART_SIZE_MB fields from connectors based on StreamTransferManager | +| 0.2.7 | 2022-06-14 | [\#13483](https://github.com/airbytehq/airbyte/pull/13483) | Added support for int, long, float data types to Avro/Parquet formats. | +| 0.2.6 | 2022-05-17 | [12820](https://github.com/airbytehq/airbyte/pull/12820) | Improved 'check' operation performance | +| 0.2.5 | 2022-05-04 | [\#12578](https://github.com/airbytehq/airbyte/pull/12578) | In JSON to Avro conversion, log JSON field values that do not follow Avro schema for debugging. | +| 0.2.4 | 2022-04-22 | [\#12167](https://github.com/airbytehq/airbyte/pull/12167) | Add gzip compression option for CSV and JSONL formats. | +| 0.2.3 | 2022-04-22 | [\#11795](https://github.com/airbytehq/airbyte/pull/11795) | Fix the connection check to verify the provided bucket path. | +| 0.2.2 | 2022-04-05 | [\#11728](https://github.com/airbytehq/airbyte/pull/11728) | Properly clean-up bucket when running OVERWRITE sync mode | +| 0.2.1 | 2022-04-05 | [\#11499](https://github.com/airbytehq/airbyte/pull/11499) | Updated spec and documentation. | +| 0.2.0 | 2022-04-04 | [\#11686](https://github.com/airbytehq/airbyte/pull/11686) | Use serialized buffering strategy to reduce memory consumption; compress CSV and JSONL formats. | +| 0.1.22 | 2022-02-12 | [\#10256](https://github.com/airbytehq/airbyte/pull/10256) | Add JVM flag to exist on OOME. | +| 0.1.21 | 2022-02-12 | [\#10299](https://github.com/airbytehq/airbyte/pull/10299) | Fix connection check to require only the necessary permissions. | +| 0.1.20 | 2022-01-11 | [\#9367](https://github.com/airbytehq/airbyte/pull/9367) | Avro & Parquet: support array field with unknown item type; default any improperly typed field to string. | +| 0.1.19 | 2022-01-10 | [\#9121](https://github.com/airbytehq/airbyte/pull/9121) | Fixed check method for GCS mode to verify if all roles assigned to user | +| 0.1.18 | 2021-12-30 | [\#8809](https://github.com/airbytehq/airbyte/pull/8809) | Update connector fields title/description | +| 0.1.17 | 2021-12-21 | [\#8574](https://github.com/airbytehq/airbyte/pull/8574) | Added namespace to Avro and Parquet record types | +| 0.1.16 | 2021-12-20 | [\#8974](https://github.com/airbytehq/airbyte/pull/8974) | Release a new version to ensure there is no excessive logging. | +| 0.1.15 | 2021-12-03 | [\#8386](https://github.com/airbytehq/airbyte/pull/8386) | Add new GCP regions | +| 0.1.14 | 2021-12-01 | [\#7732](https://github.com/airbytehq/airbyte/pull/7732) | Support timestamp in Avro and Parquet | +| 0.1.13 | 2021-11-03 | [\#7288](https://github.com/airbytehq/airbyte/issues/7288) | Support Json `additionalProperties`. | +| 0.1.2 | 2021-09-12 | [\#5720](https://github.com/airbytehq/airbyte/issues/5720) | Added configurable block size for stream. Each stream is limited to 10,000 by GCS | +| 0.1.1 | 2021-08-26 | [\#5296](https://github.com/airbytehq/airbyte/issues/5296) | Added storing gcsCsvFileLocation property for CSV format. This is used by destination-bigquery \(GCS Staging upload type\) | +| 0.1.0 | 2021-07-16 | [\#4329](https://github.com/airbytehq/airbyte/pull/4784) | Initial release. | diff --git a/docs/integrations/destinations/redshift.md b/docs/integrations/destinations/redshift.md index a2a7168dcd03f..0f2b0ac8e50fd 100644 --- a/docs/integrations/destinations/redshift.md +++ b/docs/integrations/destinations/redshift.md @@ -141,6 +141,7 @@ Each stream will be output into its own raw table in Redshift. Each table will c | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0.3.54 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | | 0.3.53 | 2023-01-03 | [\#17273](https://github.com/airbytehq/airbyte/pull/17273) | Flatten JSON arrays to fix maximum size check for SUPER field | | 0.3.52 | 2022-12-30 | [\#20879](https://github.com/airbytehq/airbyte/pull/20879) | Added configurable parameter for number of file buffers | | 0.3.51 | 2022-10-26 | [\#18434](https://github.com/airbytehq/airbyte/pull/18434) | Fix empty S3 bucket path handling | @@ -178,5 +179,3 @@ Each stream will be output into its own raw table in Redshift. Each table will c | 0.3.13 | 2021-09-02 | [5745](https://github.com/airbytehq/airbyte/pull/5745) | Disable STATUPDATE flag when using S3 staging to speed up performance | | 0.3.12 | 2021-07-21 | [3555](https://github.com/airbytehq/airbyte/pull/3555) | Enable partial checkpointing for halfway syncs | | 0.3.11 | 2021-07-20 | [4874](https://github.com/airbytehq/airbyte/pull/4874) | allow `additionalProperties` in connector spec | - - diff --git a/docs/integrations/destinations/s3.md b/docs/integrations/destinations/s3.md index c642624c6ea32..db26ac102e0d0 100644 --- a/docs/integrations/destinations/s3.md +++ b/docs/integrations/destinations/s3.md @@ -330,6 +330,7 @@ In order for everything to work correctly, it is also necessary that the user wh | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------| +| 0.3.19 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | | 0.3.18 | 2022-12-15 | [\#20088](https://github.com/airbytehq/airbyte/pull/20088) | New data type support v0/v1 | | 0.3.17 | 2022-10-15 | [\#18031](https://github.com/airbytehq/airbyte/pull/18031) | Fix integration tests to use bucket path | | 0.3.16 | 2022-10-03 | [\#17340](https://github.com/airbytehq/airbyte/pull/17340) | Enforced encrypted only traffic to S3 buckets and check logic | diff --git a/docs/integrations/destinations/snowflake.md b/docs/integrations/destinations/snowflake.md index b9c6ba290ce20..1bbadee5053ad 100644 --- a/docs/integrations/destinations/snowflake.md +++ b/docs/integrations/destinations/snowflake.md @@ -277,7 +277,8 @@ Now that you have set up the Snowflake destination connector, check out the foll | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------| -| 0.4.43 | 2023-01-20 | [\#21450](https://github.com/airbytehq/airbyte/pull/21450) | Updated Check methods to handle more possible s3 and gcs stagings issues | +| 0.4.44 | 2023-01-20 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | +| 0.4.43 | 2023-01-20 | [\#21450](https://github.com/airbytehq/airbyte/pull/21450) | Updated Check methods to handle more possible s3 and gcs stagings issues | | 0.4.42 | 2023-01-12 | [\#21342](https://github.com/airbytehq/airbyte/pull/21342) | Better handling for conflicting destination streams | | 0.4.41 | 2022-12-16 | [\#20566](https://github.com/airbytehq/airbyte/pull/20566) | Improve spec to adhere to standards | | 0.4.40 | 2022-11-11 | [\#19302](https://github.com/airbytehq/airbyte/pull/19302) | Set jdbc application env variable depends on env - airbyte_oss or airbyte_cloud | From d77514dcfedbc4205f7f6161f29200a32d5d06d1 Mon Sep 17 00:00:00 2001 From: Augustin Date: Mon, 23 Jan 2023 18:25:53 +0100 Subject: [PATCH 29/56] CI connector ops: introduce QA checks in /test (#21699) --- .github/workflows/test-command.yml | 9 -- tools/bin/ci_integration_test.sh | 1 + .../ci_connector_ops/qa_checks.py | 91 +++++++++++++++++++ tools/ci_connector_ops/setup.py | 5 +- 4 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 tools/ci_connector_ops/ci_connector_ops/qa_checks.py diff --git a/.github/workflows/test-command.yml b/.github/workflows/test-command.yml index 069d1cd46624e..8a6f36d5d7752 100644 --- a/.github/workflows/test-command.yml +++ b/.github/workflows/test-command.yml @@ -95,19 +95,12 @@ jobs: uses: actions/setup-python@v4 with: python-version: "3.9" - - name: Install Pyenv - run: | - python3 -m pip install --quiet virtualenv==16.7.9 --user - python3 -m virtualenv venv - source venv/bin/activate - name: Install CI scripts # all CI python packages have the prefix "ci_" run: | - source venv/bin/activate pip install --quiet -e ./tools/ci_* - name: Write Integration Test Credentials for ${{ github.event.inputs.connector }} run: | - source venv/bin/activate ci_credentials ${{ github.event.inputs.connector }} write-to-storage # normalization also runs destination-specific tests, so fetch their creds also if [ 'bases/base-normalization' = "${{ github.event.inputs.connector }}" ] || [ 'base-normalization' = "${{ github.event.inputs.connector }}" ]; then @@ -117,7 +110,6 @@ jobs: fi env: GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }} - - name: Test ${{ github.event.inputs.connector }} id: test env: @@ -132,7 +124,6 @@ jobs: - name: Update Integration Test Credentials after test run for ${{ github.event.inputs.connector }} if: always() run: | - source venv/bin/activate ci_credentials ${{ github.event.inputs.connector }} update-secrets # normalization also runs destination-specific tests, so fetch their creds also if [ 'bases/base-normalization' = "${{ github.event.inputs.connector }}" ] || [ 'base-normalization' = "${{ github.event.inputs.connector }}" ]; then diff --git a/tools/bin/ci_integration_test.sh b/tools/bin/ci_integration_test.sh index 8fb208fdf83a3..3fbd1a65970d0 100755 --- a/tools/bin/ci_integration_test.sh +++ b/tools/bin/ci_integration_test.sh @@ -32,6 +32,7 @@ else export SUB_BUILD="CONNECTORS_BASE" elif [[ "$connector" == *"connectors"* ]]; then connector_name=$(echo $connector | cut -d / -f 2) + run-qa-checks $connector_name selected_integration_test=$(echo "$all_integration_tests" | grep "^$connector_name$" || echo "") integrationTestCommand="$(_to_gradle_path "airbyte-integrations/$connector" integrationTest)" else diff --git a/tools/ci_connector_ops/ci_connector_ops/qa_checks.py b/tools/ci_connector_ops/ci_connector_ops/qa_checks.py new file mode 100644 index 0000000000000..dc384641c4546 --- /dev/null +++ b/tools/ci_connector_ops/ci_connector_ops/qa_checks.py @@ -0,0 +1,91 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + +import sys + +def check_documentation_markdown_file(connector_name: str) -> bool: + """Check if a markdown file with connector documentation is available + in docs/integrations//.md + + Args: + connector_name (str): The connector name + + Returns: + bool: Wether a documentation file was found. + """ + # TODO implement + return True + +def check_changelog_entry_is_updated(connector_name: str) -> bool: + """Check that the changelog entry is updated for the latest connector version + in docs/integrations//.md + + Args: + connector_name (str): The connector name + + Returns: + bool: Wether a the changelog is up to date. + """ + # TODO implement + return True + +def check_connector_icon_is_available(connector_name: str) -> bool: + """Check an SVG icon exists for a connector in + in airbyte-config/init/src/main/resources/icons/.svg + + Args: + connector_name (str): The connector name + + Returns: + bool: Wether an icon exists for this connector. + """ + # TODO implement + return True + +def check_connector_https_url_only(connector_name: str) -> bool: + """Check a connector code contains only https url. + + Args: + connector_name (str): The connector name + + Returns: + bool: Wether the connector code contains only https url. + """ + # TODO implement + return True + +def check_connector_has_no_critical_vulnerabilities(connector_name: str) -> bool: + """Check if the connector image is free of critical Snyk vulnerabilities. + Runs a docker scan command. + + Args: + connector_name (str): The connector name + + Returns: + bool: Wether the connector is free of critical vulnerabilities. + """ + # TODO implement + return True + +QA_CHECKS = [ + check_documentation_markdown_file, + check_changelog_entry_is_updated, + check_connector_icon_is_available, + check_connector_https_url_only, + check_connector_has_no_critical_vulnerabilities +] + +def run_qa_checks(): + connector_name = sys.argv[1] + print(f"Running QA checks for {connector_name}") + qa_check_results = {qa_check.__name__: qa_check(connector_name) for qa_check in QA_CHECKS} + if not all(qa_check_results.values()): + print(f"QA checks failed for {connector_name}") + for check_name, check_result in qa_check_results.items(): + check_result_prefix = "✅" if check_result else "❌" + print(f"{check_result_prefix} - {check_name}") + sys.exit(1) + else: + print(f"All QA checks succeeded for {connector_name}") + sys.exit(0) diff --git a/tools/ci_connector_ops/setup.py b/tools/ci_connector_ops/setup.py index 09928f800c24b..c573c8d7148bb 100644 --- a/tools/ci_connector_ops/setup.py +++ b/tools/ci_connector_ops/setup.py @@ -9,7 +9,7 @@ setup( - version="0.1.1", + version="0.1.2", name="ci_connector_ops", description="Packaged maintained by the connector operations team to perform CI for connectors", author="Airbyte", @@ -21,7 +21,8 @@ "console_scripts": [ "check-test-strictness-level = ci_connector_ops.sat_config_checks:check_test_strictness_level", "write-review-requirements-file = ci_connector_ops.sat_config_checks:write_review_requirements_file", - "print-mandatory-reviewers = ci_connector_ops.sat_config_checks:print_mandatory_reviewers" + "print-mandatory-reviewers = ci_connector_ops.sat_config_checks:print_mandatory_reviewers", + "run-qa-checks = ci_connector_ops.qa_checks:run_qa_checks" ], }, ) From b786a180f02c6d48d82f19f51c8c8e730a14b983 Mon Sep 17 00:00:00 2001 From: Jonathan Pearlin Date: Mon, 23 Jan 2023 12:42:43 -0500 Subject: [PATCH 30/56] Add required roles to API endpoints (#21664) * Restore auth poc * Formatting * Custom Netty pipeline handler to aid authorization * Fix handler name * Cleanup * Remove cloud code * Disable API authorization in OSS * Remove unused dependency * Add newline * Add required roles --- .../io/airbyte/commons/auth/AuthRole.java | 92 +++++++++++++++++++ .../commons/auth/AuthRoleConstants.java | 21 +++++ .../io/airbyte/commons/auth/AuthRoleTest.java | 47 ++++++++++ .../server/apis/AttemptApiController.java | 6 ++ .../server/apis/ConnectionApiController.java | 14 +++ .../server/apis/DestinationApiController.java | 20 +++- .../DestinationDefinitionApiController.java | 19 ++++ ...nDefinitionSpecificationApiController.java | 6 ++ .../apis/DestinationOauthApiController.java | 9 ++ .../server/apis/HealthApiController.java | 3 + .../server/apis/JobsApiController.java | 14 +++ .../server/apis/LogsApiController.java | 6 ++ .../server/apis/NotFoundController.java | 3 + .../apis/NotificationsApiController.java | 6 ++ .../server/apis/OpenapiApiController.java | 6 ++ .../server/apis/OperationApiController.java | 13 +++ .../server/apis/SchedulerApiController.java | 9 ++ .../server/apis/SourceApiController.java | 15 +++ .../apis/SourceDefinitionApiController.java | 19 ++++ ...eDefinitionSpecificationApiController.java | 6 ++ .../server/apis/SourceOauthApiController.java | 9 ++ .../server/apis/StateApiController.java | 8 ++ .../server/apis/WebBackendApiController.java | 15 +++ .../server/apis/WorkspaceApiController.java | 16 ++++ .../src/main/resources/application.yml | 48 +++++++--- deps.toml | 2 + 26 files changed, 417 insertions(+), 15 deletions(-) create mode 100644 airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRole.java create mode 100644 airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRoleConstants.java create mode 100644 airbyte-commons/src/test/java/io/airbyte/commons/auth/AuthRoleTest.java diff --git a/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRole.java b/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRole.java new file mode 100644 index 0000000000000..b2ff02702545f --- /dev/null +++ b/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRole.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.commons.auth; + +import java.util.Comparator; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * This enum describes the standard auth levels for a given resource. It currently is only used for + * 2 resources Workspace and Instance (i.e. the entire instance or deployment of Airbyte). + * + * In the context of a workspace, there is a 1:1 mapping. + *
      + *
    • OWNER => WORKSPACE OWNER. Superadmin of the instance (typically the person that created it), + * has all the rights on the instance including deleting it.
    • + *
    • ADMIN => WORKSPACE ADMIN. Admin of the instance, can invite other users, update their + * permission and change settings of the instance.
    • + *
    • EDITOR => WORKSPACE EDITOR
    • + *
    • READER => WORKSPACE READER
    • + *
    • AUTHENTICATED_USER => INVALID
    • + *
    • NONE => NONE (does not have access to this resource)
    • + *
    + * In the context of the instance, there are currently only 3 levels. + *
      + *
    • ADMIN => INSTANCE ADMIN
    • + *
    • AUTHENTICATED_USER => Denotes that all that is required for access is an active Airbyte + * account. This should only ever be used when the associated resource is an INSTANCE. All other + * uses are invalid. It is a special value in the enum to handle a case that only applies to + * instances and no other resources.
    • + *
    • NONE => NONE (not applicable. anyone being checked in our auth stack already has an account + * so by definition they have some access to the instance.)
    • + *
    + */ +public enum AuthRole { + + OWNER(500, AuthRoleConstants.OWNER), + ADMIN(400, AuthRoleConstants.ADMIN), + EDITOR(300, AuthRoleConstants.EDITOR), + READER(200, AuthRoleConstants.READER), + AUTHENTICATED_USER(100, AuthRoleConstants.AUTHENTICATED_USER), // ONLY USE WITH INSTANCE RESOURCE! + NONE(0, AuthRoleConstants.NONE); + + private final int authority; + private final String label; + + AuthRole(final int authority, final String label) { + this.authority = authority; + this.label = label; + } + + public int getAuthority() { + return authority; + } + + public String getLabel() { + return label; + } + + /** + * Builds the set of roles based on the provided {@link AuthRole} value. + *

    + * The generated set of auth roles contains the provided {@link AuthRole} (if not {@code null}) and + * any other authentication roles with a lesser {@link #getAuthority()} value. + *

    + * + * @param authRole An {@link AuthRole} (may be {@code null}). + * @return The set of {@link AuthRole}s based on the provided {@link AuthRole}. + */ + public static Set buildAuthRolesSet(final AuthRole authRole) { + final Set authRoles = new HashSet<>(); + + if (authRole != null) { + authRoles.add(authRole); + authRoles.addAll(Stream.of(values()) + .filter(role -> !NONE.equals(role)) + .filter(role -> role.getAuthority() < authRole.getAuthority()) + .collect(Collectors.toSet())); + } + + // Sort final set by descending authority order + return authRoles.stream() + .sorted(Comparator.comparingInt(AuthRole::getAuthority)) + .collect(Collectors.toCollection(LinkedHashSet::new)); + } + +} diff --git a/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRoleConstants.java b/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRoleConstants.java new file mode 100644 index 0000000000000..6a206ee0e89e5 --- /dev/null +++ b/airbyte-commons/src/main/java/io/airbyte/commons/auth/AuthRoleConstants.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.commons.auth; + +/** + * Collection of constants that defines authorization roles. + */ +public final class AuthRoleConstants { + + public static final String ADMIN = "ADMIN"; + public static final String AUTHENTICATED_USER = "AUTHENTICATED_USER"; + public static final String EDITOR = "EDITOR"; + public static final String OWNER = "OWNER"; + public static final String NONE = "NONE"; + public static final String READER = "READER"; + + private AuthRoleConstants() {} + +} diff --git a/airbyte-commons/src/test/java/io/airbyte/commons/auth/AuthRoleTest.java b/airbyte-commons/src/test/java/io/airbyte/commons/auth/AuthRoleTest.java new file mode 100644 index 0000000000000..835488fdd84a1 --- /dev/null +++ b/airbyte-commons/src/test/java/io/airbyte/commons/auth/AuthRoleTest.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.commons.auth; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Set; +import org.junit.jupiter.api.Test; + +/** + * Test suite for the {@link AuthRole} enumeration. + */ +class AuthRoleTest { + + @Test + void testBuildingAuthRoleSet() { + final Set ownerResult = AuthRole.buildAuthRolesSet(AuthRole.OWNER); + assertEquals(5, ownerResult.size()); + assertEquals(Set.of(AuthRole.OWNER, AuthRole.ADMIN, AuthRole.EDITOR, AuthRole.READER, AuthRole.AUTHENTICATED_USER), ownerResult); + + final Set adminResult = AuthRole.buildAuthRolesSet(AuthRole.ADMIN); + assertEquals(4, adminResult.size()); + assertEquals(Set.of(AuthRole.ADMIN, AuthRole.EDITOR, AuthRole.READER, AuthRole.AUTHENTICATED_USER), adminResult); + + final Set editorResult = AuthRole.buildAuthRolesSet(AuthRole.EDITOR); + assertEquals(3, editorResult.size()); + assertEquals(Set.of(AuthRole.EDITOR, AuthRole.READER, AuthRole.AUTHENTICATED_USER), editorResult); + + final Set readerResult = AuthRole.buildAuthRolesSet(AuthRole.READER); + assertEquals(2, readerResult.size()); + assertEquals(Set.of(AuthRole.READER, AuthRole.AUTHENTICATED_USER), readerResult); + + final Set authenticatedUserResult = AuthRole.buildAuthRolesSet(AuthRole.AUTHENTICATED_USER); + assertEquals(1, authenticatedUserResult.size()); + assertEquals(Set.of(AuthRole.AUTHENTICATED_USER), authenticatedUserResult); + + final Set noneResult = AuthRole.buildAuthRolesSet(AuthRole.NONE); + assertEquals(1, noneResult.size()); + assertEquals(Set.of(AuthRole.NONE), noneResult); + + final Set nullResult = AuthRole.buildAuthRolesSet(null); + assertEquals(0, nullResult.size()); + } + +} diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/AttemptApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/AttemptApiController.java index d50e731d5e8d8..c7c112405b44c 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/AttemptApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/AttemptApiController.java @@ -4,6 +4,8 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; + import io.airbyte.api.generated.AttemptApi; import io.airbyte.api.model.generated.InternalOperationResult; import io.airbyte.api.model.generated.SaveStatsRequestBody; @@ -14,10 +16,13 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/attempt/") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class AttemptApiController implements AttemptApi { private final AttemptHandler attemptHandler; @@ -36,6 +41,7 @@ public InternalOperationResult saveStats(final SaveStatsRequestBody requestBody) @Override @Post(uri = "/set_workflow_in_attempt", processes = MediaType.APPLICATION_JSON) + @Secured({ADMIN}) public InternalOperationResult setWorkflowInAttempt(@Body final SetWorkflowInAttemptRequestBody requestBody) { return ApiHelper.execute(() -> attemptHandler.setWorkflowInAttempt(requestBody)); } diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java index f0de78d03d312..f61b89e41447c 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.ConnectionApi; import io.airbyte.api.model.generated.ConnectionCreate; import io.airbyte.api.model.generated.ConnectionIdRequestBody; @@ -21,11 +24,14 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/connections") @Context() @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class ConnectionApiController implements ConnectionApi { private final ConnectionsHandler connectionsHandler; @@ -42,24 +48,28 @@ public ConnectionApiController(final ConnectionsHandler connectionsHandler, @Override @Post(uri = "/create") + @Secured({EDITOR}) public ConnectionRead createConnection(@Body final ConnectionCreate connectionCreate) { return ApiHelper.execute(() -> connectionsHandler.createConnection(connectionCreate)); } @Override @Post(uri = "/update") + @Secured({EDITOR}) public ConnectionRead updateConnection(@Body final ConnectionUpdate connectionUpdate) { return ApiHelper.execute(() -> connectionsHandler.updateConnection(connectionUpdate)); } @Override @Post(uri = "/list") + @Secured({READER}) public ConnectionReadList listConnectionsForWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> connectionsHandler.listConnectionsForWorkspace(workspaceIdRequestBody)); } @Override @Post(uri = "/list_all") + @Secured({READER}) public ConnectionReadList listAllConnectionsForWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> connectionsHandler.listAllConnectionsForWorkspace(workspaceIdRequestBody)); } @@ -72,12 +82,14 @@ public ConnectionReadList searchConnections(@Body final ConnectionSearch connect @Override @Post(uri = "/get") + @Secured({READER}) public ConnectionRead getConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> connectionsHandler.getConnection(connectionIdRequestBody.getConnectionId())); } @Override @Post(uri = "/delete") + @Secured({EDITOR}) public void deleteConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { ApiHelper.execute(() -> { operationsHandler.deleteOperationsForConnection(connectionIdRequestBody); @@ -88,12 +100,14 @@ public void deleteConnection(@Body final ConnectionIdRequestBody connectionIdReq @Override @Post(uri = "/sync") + @Secured({EDITOR}) public JobInfoRead syncConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> schedulerHandler.syncConnection(connectionIdRequestBody)); } @Override @Post(uri = "/reset") + @Secured({EDITOR}) public JobInfoRead resetConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> schedulerHandler.resetConnection(connectionIdRequestBody)); } diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java index 6c16cec4a596e..7a20184b0e4da 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.DestinationApi; import io.airbyte.api.model.generated.CheckConnectionRead; import io.airbyte.api.model.generated.DestinationCloneRequestBody; @@ -20,24 +23,32 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; -import lombok.AllArgsConstructor; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/destinations") @Requires(property = "airbyte.deployment-mode", value = "OSS") -@AllArgsConstructor +@Secured(SecurityRule.IS_AUTHENTICATED) public class DestinationApiController implements DestinationApi { private final DestinationHandler destinationHandler; private final SchedulerHandler schedulerHandler; + public DestinationApiController(final DestinationHandler destinationHandler, final SchedulerHandler schedulerHandler) { + this.destinationHandler = destinationHandler; + this.schedulerHandler = schedulerHandler; + } + @Post(uri = "/check_connection") + @Secured({EDITOR}) @Override public CheckConnectionRead checkConnectionToDestination(@Body final DestinationIdRequestBody destinationIdRequestBody) { return ApiHelper.execute(() -> schedulerHandler.checkDestinationConnectionFromDestinationId(destinationIdRequestBody)); } @Post(uri = "/check_connection_for_update") + @Secured({EDITOR}) @Override public CheckConnectionRead checkConnectionToDestinationForUpdate(@Body final DestinationUpdate destinationUpdate) { return ApiHelper.execute(() -> schedulerHandler.checkDestinationConnectionFromDestinationIdForUpdate(destinationUpdate)); @@ -50,12 +61,14 @@ public DestinationRead cloneDestination(@Body final DestinationCloneRequestBody } @Post(uri = "/create") + @Secured({EDITOR}) @Override public DestinationRead createDestination(@Body final DestinationCreate destinationCreate) { return ApiHelper.execute(() -> destinationHandler.createDestination(destinationCreate)); } @Post(uri = "/delete") + @Secured({EDITOR}) @Override public void deleteDestination(@Body final DestinationIdRequestBody destinationIdRequestBody) { ApiHelper.execute(() -> { @@ -65,12 +78,14 @@ public void deleteDestination(@Body final DestinationIdRequestBody destinationId } @Post(uri = "/get") + @Secured({READER}) @Override public DestinationRead getDestination(@Body final DestinationIdRequestBody destinationIdRequestBody) { return ApiHelper.execute(() -> destinationHandler.getDestination(destinationIdRequestBody)); } @Post(uri = "/list") + @Secured({READER}) @Override public DestinationReadList listDestinationsForWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> destinationHandler.listDestinationsForWorkspace(workspaceIdRequestBody)); @@ -83,6 +98,7 @@ public DestinationReadList searchDestinations(@Body final DestinationSearch dest } @Post(uri = "/update") + @Secured({EDITOR}) @Override public DestinationRead updateDestination(@Body final DestinationUpdate destinationUpdate) { return ApiHelper.execute(() -> destinationHandler.updateDestination(destinationUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java index 54409d2810210..ab559f6b3b099 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java @@ -4,6 +4,11 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.DestinationDefinitionApi; import io.airbyte.api.model.generated.CustomDestinationDefinitionCreate; import io.airbyte.api.model.generated.DestinationDefinitionIdRequestBody; @@ -19,11 +24,14 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/destination_definitions") @Requires(property = "airbyte.deployment-mode", value = "OSS") @Context +@Secured(SecurityRule.IS_AUTHENTICATED) public class DestinationDefinitionApiController implements DestinationDefinitionApi { private final DestinationDefinitionsHandler destinationDefinitionsHandler; @@ -33,12 +41,14 @@ public DestinationDefinitionApiController(final DestinationDefinitionsHandler de } @Post(uri = "/create_custom") + @Secured({EDITOR}) @Override public DestinationDefinitionRead createCustomDestinationDefinition(final CustomDestinationDefinitionCreate customDestinationDefinitionCreate) { return ApiHelper.execute(() -> destinationDefinitionsHandler.createCustomDestinationDefinition(customDestinationDefinitionCreate)); } @Post(uri = "/delete") + @Secured({ADMIN}) @Override public void deleteDestinationDefinition(final DestinationDefinitionIdRequestBody destinationDefinitionIdRequestBody) { ApiHelper.execute(() -> { @@ -48,18 +58,21 @@ public void deleteDestinationDefinition(final DestinationDefinitionIdRequestBody } @Post(uri = "/get") + @Secured({AUTHENTICATED_USER}) @Override public DestinationDefinitionRead getDestinationDefinition(final DestinationDefinitionIdRequestBody destinationDefinitionIdRequestBody) { return ApiHelper.execute(() -> destinationDefinitionsHandler.getDestinationDefinition(destinationDefinitionIdRequestBody)); } @Post(uri = "/get_for_workspace") + @Secured({READER}) @Override public DestinationDefinitionRead getDestinationDefinitionForWorkspace(final DestinationDefinitionIdWithWorkspaceId destinationDefinitionIdWithWorkspaceId) { return ApiHelper.execute(() -> destinationDefinitionsHandler.getDestinationDefinitionForWorkspace(destinationDefinitionIdWithWorkspaceId)); } @Post(uri = "/grant_definition") + @Secured({ADMIN}) @Override public PrivateDestinationDefinitionRead grantDestinationDefinitionToWorkspace(final DestinationDefinitionIdWithWorkspaceId destinationDefinitionIdWithWorkspaceId) { return ApiHelper @@ -67,30 +80,35 @@ public PrivateDestinationDefinitionRead grantDestinationDefinitionToWorkspace(fi } @Post(uri = "/list") + @Secured({AUTHENTICATED_USER}) @Override public DestinationDefinitionReadList listDestinationDefinitions() { return ApiHelper.execute(destinationDefinitionsHandler::listDestinationDefinitions); } @Post(uri = "/list_for_workspace") + @Secured({READER}) @Override public DestinationDefinitionReadList listDestinationDefinitionsForWorkspace(final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> destinationDefinitionsHandler.listDestinationDefinitionsForWorkspace(workspaceIdRequestBody)); } @Post(uri = "/list_latest") + @Secured({AUTHENTICATED_USER}) @Override public DestinationDefinitionReadList listLatestDestinationDefinitions() { return ApiHelper.execute(destinationDefinitionsHandler::listLatestDestinationDefinitions); } @Post(uri = "/list_private") + @Secured({ADMIN}) @Override public PrivateDestinationDefinitionReadList listPrivateDestinationDefinitions(final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> destinationDefinitionsHandler.listPrivateDestinationDefinitions(workspaceIdRequestBody)); } @Post(uri = "/revoke_definition") + @Secured({ADMIN}) @Override public void revokeDestinationDefinitionFromWorkspace(final DestinationDefinitionIdWithWorkspaceId destinationDefinitionIdWithWorkspaceId) { ApiHelper.execute(() -> { @@ -100,6 +118,7 @@ public void revokeDestinationDefinitionFromWorkspace(final DestinationDefinition } @Post(uri = "/update") + @Secured({AUTHENTICATED_USER}) @Override public DestinationDefinitionRead updateDestinationDefinition(final DestinationDefinitionUpdate destinationDefinitionUpdate) { return ApiHelper.execute(() -> destinationDefinitionsHandler.updateDestinationDefinition(destinationDefinitionUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionSpecificationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionSpecificationApiController.java index 54492c4a905f4..d93bc6dcbe999 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionSpecificationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionSpecificationApiController.java @@ -4,6 +4,8 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; + import io.airbyte.api.generated.DestinationDefinitionSpecificationApi; import io.airbyte.api.model.generated.DestinationDefinitionIdWithWorkspaceId; import io.airbyte.api.model.generated.DestinationDefinitionSpecificationRead; @@ -11,10 +13,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/destination_definition_specifications") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class DestinationDefinitionSpecificationApiController implements DestinationDefinitionSpecificationApi { private final SchedulerHandler schedulerHandler; @@ -24,6 +29,7 @@ public DestinationDefinitionSpecificationApiController(final SchedulerHandler sc } @Post("/get") + @Secured({AUTHENTICATED_USER}) @Override public DestinationDefinitionSpecificationRead getDestinationDefinitionSpecification(final DestinationDefinitionIdWithWorkspaceId destinationDefinitionIdWithWorkspaceId) { return ApiHelper.execute(() -> schedulerHandler.getDestinationSpecification(destinationDefinitionIdWithWorkspaceId)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationOauthApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationOauthApiController.java index 33318e14efcbc..58286dfacd483 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationOauthApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationOauthApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; + import io.airbyte.api.generated.DestinationOauthApi; import io.airbyte.api.model.generated.CompleteDestinationOAuthRequest; import io.airbyte.api.model.generated.DestinationOauthConsentRequest; @@ -14,12 +17,15 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; import java.util.Map; @Controller("/api/v1/destination_oauths") @Requires(property = "airbyte.deployment-mode", value = "OSS") @Context +@Secured(SecurityRule.IS_AUTHENTICATED) public class DestinationOauthApiController implements DestinationOauthApi { private final OAuthHandler oAuthHandler; @@ -29,18 +35,21 @@ public DestinationOauthApiController(final OAuthHandler oAuthHandler) { } @Post("/complete_oauth") + @Secured({EDITOR}) @Override public Map completeDestinationOAuth(final CompleteDestinationOAuthRequest completeDestinationOAuthRequest) { return ApiHelper.execute(() -> oAuthHandler.completeDestinationOAuth(completeDestinationOAuthRequest)); } @Post("/get_consent_url") + @Secured({EDITOR}) @Override public OAuthConsentRead getDestinationOAuthConsent(final DestinationOauthConsentRequest destinationOauthConsentRequest) { return ApiHelper.execute(() -> oAuthHandler.getDestinationOAuthConsent(destinationOauthConsentRequest)); } @Post("/oauth_params/create") + @Secured({ADMIN}) @Override public void setInstancewideDestinationOauthParams(final SetInstancewideDestinationOauthParamsRequestBody setInstancewideDestinationOauthParamsRequestBody) { ApiHelper.execute(() -> { diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/HealthApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/HealthApiController.java index a5b46d39742b5..3ffb6851cbc55 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/HealthApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/HealthApiController.java @@ -11,10 +11,13 @@ import io.micronaut.http.MediaType; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Get; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/health") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_ANONYMOUS) public class HealthApiController implements HealthApi { private final HealthCheckHandler healthCheckHandler; diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java index 9fadce045d05c..b930472e5d230 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/JobsApiController.java @@ -4,6 +4,10 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.JobsApi; import io.airbyte.api.model.generated.AttemptNormalizationStatusReadList; import io.airbyte.api.model.generated.ConnectionIdRequestBody; @@ -20,11 +24,14 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/jobs") @Requires(property = "airbyte.deployment-mode", value = "OSS") @Context +@Secured(SecurityRule.IS_AUTHENTICATED) public class JobsApiController implements JobsApi { private final JobHistoryHandler jobHistoryHandler; @@ -36,42 +43,49 @@ public JobsApiController(final JobHistoryHandler jobHistoryHandler, final Schedu } @Post("/cancel") + @Secured({EDITOR}) @Override public JobInfoRead cancelJob(final JobIdRequestBody jobIdRequestBody) { return ApiHelper.execute(() -> schedulerHandler.cancelJob(jobIdRequestBody)); } @Post("/get_normalization_status") + @Secured({ADMIN}) @Override public AttemptNormalizationStatusReadList getAttemptNormalizationStatusesForJob(final JobIdRequestBody jobIdRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.getAttemptNormalizationStatuses(jobIdRequestBody)); } @Post("/get_debug_info") + @Secured({READER}) @Override public JobDebugInfoRead getJobDebugInfo(final JobIdRequestBody jobIdRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.getJobDebugInfo(jobIdRequestBody)); } @Post("/get") + @Secured({READER}) @Override public JobInfoRead getJobInfo(final JobIdRequestBody jobIdRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.getJobInfo(jobIdRequestBody)); } @Post("/get_light") + @Secured({READER}) @Override public JobInfoLightRead getJobInfoLight(final JobIdRequestBody jobIdRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.getJobInfoLight(jobIdRequestBody)); } @Post("/get_last_replication_job") + @Secured({READER}) @Override public JobOptionalRead getLastReplicationJob(final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.getLastReplicationJob(connectionIdRequestBody)); } @Post("/list") + @Secured({READER}) @Override public JobReadList listJobsFor(final JobListRequestBody jobListRequestBody) { return ApiHelper.execute(() -> jobHistoryHandler.listJobsFor(jobListRequestBody)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/LogsApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/LogsApiController.java index 126ed82026938..13257412cf043 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/LogsApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/LogsApiController.java @@ -4,6 +4,8 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; + import io.airbyte.api.generated.LogsApi; import io.airbyte.api.model.generated.LogsRequestBody; import io.airbyte.server.handlers.LogsHandler; @@ -11,12 +13,15 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; import java.io.File; @Controller("/api/v1/logs") @Requires(property = "airbyte.deployment-mode", value = "OSS") @Context +@Secured(SecurityRule.IS_AUTHENTICATED) public class LogsApiController implements LogsApi { private final LogsHandler logsHandler; @@ -26,6 +31,7 @@ public LogsApiController(final LogsHandler logsHandler) { } @Post("/get") + @Secured({ADMIN}) @Override public File getLogs(final LogsRequestBody logsRequestBody) { return ApiHelper.execute(() -> logsHandler.getLogs(logsRequestBody)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/NotFoundController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/NotFoundController.java index a59dea440b05e..0a089a21b7629 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/NotFoundController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/NotFoundController.java @@ -11,6 +11,8 @@ import io.micronaut.http.MediaType; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Error; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; /** * Custom controller that handles global 404 responses for unknown/unmapped paths. @@ -18,6 +20,7 @@ @Controller("/api/notfound") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_ANONYMOUS) public class NotFoundController { @Error(status = HttpStatus.NOT_FOUND, diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/NotificationsApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/NotificationsApiController.java index 6af6a1cdf242a..c81799b9ac924 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/NotificationsApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/NotificationsApiController.java @@ -4,6 +4,8 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; + import io.airbyte.api.generated.NotificationsApi; import io.airbyte.api.model.generated.Notification; import io.airbyte.api.model.generated.NotificationRead; @@ -12,10 +14,13 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/notifications/try") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class NotificationsApiController implements NotificationsApi { private final WorkspacesHandler workspacesHandler; @@ -25,6 +30,7 @@ public NotificationsApiController(final WorkspacesHandler workspacesHandler) { } @Post + @Secured({AUTHENTICATED_USER}) @Override public NotificationRead tryNotificationConfig(@Body final Notification notification) { return ApiHelper.execute(() -> workspacesHandler.tryNotification(notification)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/OpenapiApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/OpenapiApiController.java index 3aa984d7b2c7e..5e574a23deb9d 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/OpenapiApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/OpenapiApiController.java @@ -4,16 +4,21 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; + import io.airbyte.api.generated.OpenapiApi; import io.airbyte.server.handlers.OpenApiConfigHandler; import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Get; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; import java.io.File; @Controller("/api/v1/openapi") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class OpenapiApiController implements OpenapiApi { private final OpenApiConfigHandler openApiConfigHandler; @@ -23,6 +28,7 @@ public OpenapiApiController(final OpenApiConfigHandler openApiConfigHandler) { } @Get(produces = "text/plain") + @Secured({AUTHENTICATED_USER}) @Override public File getOpenApiSpec() { return ApiHelper.execute(openApiConfigHandler::getFile); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java index a892ca03d47b2..172fbb76e40a3 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java @@ -4,6 +4,10 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.OperationApi; import io.airbyte.api.model.generated.CheckOperationRead; import io.airbyte.api.model.generated.ConnectionIdRequestBody; @@ -18,10 +22,13 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/operations") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class OperationApiController implements OperationApi { private final OperationsHandler operationsHandler; @@ -31,6 +38,7 @@ public OperationApiController(final OperationsHandler operationsHandler) { } @Post("/check") + @Secured({AUTHENTICATED_USER}) @Override public CheckOperationRead checkOperation(@Body final OperatorConfiguration operatorConfiguration) { return ApiHelper.execute(() -> operationsHandler.checkOperation(operatorConfiguration)); @@ -38,11 +46,13 @@ public CheckOperationRead checkOperation(@Body final OperatorConfiguration opera @Post("/create") @Override + @Secured({EDITOR}) public OperationRead createOperation(@Body final OperationCreate operationCreate) { return ApiHelper.execute(() -> operationsHandler.createOperation(operationCreate)); } @Post("/delete") + @Secured({EDITOR}) @Override public void deleteOperation(@Body final OperationIdRequestBody operationIdRequestBody) { ApiHelper.execute(() -> { @@ -52,18 +62,21 @@ public void deleteOperation(@Body final OperationIdRequestBody operationIdReques } @Post("/get") + @Secured({READER}) @Override public OperationRead getOperation(@Body final OperationIdRequestBody operationIdRequestBody) { return ApiHelper.execute(() -> operationsHandler.getOperation(operationIdRequestBody)); } @Post("/list") + @Secured({READER}) @Override public OperationReadList listOperationsForConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> operationsHandler.listOperationsForConnection(connectionIdRequestBody)); } @Post("/update") + @Secured({EDITOR}) @Override public OperationRead updateOperation(@Body final OperationUpdate operationUpdate) { return ApiHelper.execute(() -> operationsHandler.updateOperation(operationUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SchedulerApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SchedulerApiController.java index 53019774aeca0..365dc04afc465 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SchedulerApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SchedulerApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; + import io.airbyte.api.generated.SchedulerApi; import io.airbyte.api.model.generated.CheckConnectionRead; import io.airbyte.api.model.generated.DestinationCoreConfig; @@ -13,10 +16,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/scheduler") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class SchedulerApiController implements SchedulerApi { private final SchedulerHandler schedulerHandler; @@ -26,18 +32,21 @@ public SchedulerApiController(final SchedulerHandler schedulerHandler) { } @Post("/destinations/check_connection") + @Secured({AUTHENTICATED_USER}) @Override public CheckConnectionRead executeDestinationCheckConnection(final DestinationCoreConfig destinationCoreConfig) { return ApiHelper.execute(() -> schedulerHandler.checkDestinationConnectionFromDestinationCreate(destinationCoreConfig)); } @Post("/sources/check_connection") + @Secured({AUTHENTICATED_USER}) @Override public CheckConnectionRead executeSourceCheckConnection(final SourceCoreConfig sourceCoreConfig) { return ApiHelper.execute(() -> schedulerHandler.checkSourceConnectionFromSourceCreate(sourceCoreConfig)); } @Post("/sources/discover_schema") + @Secured({EDITOR}) @Override public SourceDiscoverSchemaRead executeSourceDiscoverSchema(final SourceCoreConfig sourceCoreConfig) { return ApiHelper.execute(() -> schedulerHandler.discoverSchemaForSourceFromSourceCreate(sourceCoreConfig)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java index 64cf7c58dfd62..0c680f7429895 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.SourceApi; import io.airbyte.api.model.generated.ActorCatalogWithUpdatedAt; import io.airbyte.api.model.generated.CheckConnectionRead; @@ -22,10 +25,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/sources") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class SourceApiController implements SourceApi { private final SchedulerHandler schedulerHandler; @@ -37,12 +43,14 @@ public SourceApiController(final SchedulerHandler schedulerHandler, final Source } @Post("/check_connection") + @Secured({EDITOR}) @Override public CheckConnectionRead checkConnectionToSource(final SourceIdRequestBody sourceIdRequestBody) { return ApiHelper.execute(() -> schedulerHandler.checkSourceConnectionFromSourceId(sourceIdRequestBody)); } @Post("/check_connection_for_update") + @Secured({EDITOR}) @Override public CheckConnectionRead checkConnectionToSourceForUpdate(final SourceUpdate sourceUpdate) { return ApiHelper.execute(() -> schedulerHandler.checkSourceConnectionFromSourceIdForUpdate(sourceUpdate)); @@ -55,12 +63,14 @@ public SourceRead cloneSource(final SourceCloneRequestBody sourceCloneRequestBod } @Post("/create") + @Secured({EDITOR}) @Override public SourceRead createSource(final SourceCreate sourceCreate) { return ApiHelper.execute(() -> sourceHandler.createSource(sourceCreate)); } @Post("/delete") + @Secured({EDITOR}) @Override public void deleteSource(final SourceIdRequestBody sourceIdRequestBody) { ApiHelper.execute(() -> { @@ -70,24 +80,28 @@ public void deleteSource(final SourceIdRequestBody sourceIdRequestBody) { } @Post("/discover_schema") + @Secured({EDITOR}) @Override public SourceDiscoverSchemaRead discoverSchemaForSource(final SourceDiscoverSchemaRequestBody sourceDiscoverSchemaRequestBody) { return ApiHelper.execute(() -> schedulerHandler.discoverSchemaForSourceFromSourceId(sourceDiscoverSchemaRequestBody)); } @Post("/get") + @Secured({READER}) @Override public SourceRead getSource(final SourceIdRequestBody sourceIdRequestBody) { return ApiHelper.execute(() -> sourceHandler.getSource(sourceIdRequestBody)); } @Post("/most_recent_source_actor_catalog") + @Secured({READER}) @Override public ActorCatalogWithUpdatedAt getMostRecentSourceActorCatalog(final SourceIdRequestBody sourceIdRequestBody) { return ApiHelper.execute(() -> sourceHandler.getMostRecentSourceActorCatalogWithUpdatedAt(sourceIdRequestBody)); } @Post("/list") + @Secured({READER}) @Override public SourceReadList listSourcesForWorkspace(final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> sourceHandler.listSourcesForWorkspace(workspaceIdRequestBody)); @@ -100,6 +114,7 @@ public SourceReadList searchSources(final SourceSearch sourceSearch) { } @Post("/update") + @Secured({EDITOR}) @Override public SourceRead updateSource(final SourceUpdate sourceUpdate) { return ApiHelper.execute(() -> sourceHandler.updateSource(sourceUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java index 71222c7873c22..97a030dc7f70f 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java @@ -4,6 +4,11 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.SourceDefinitionApi; import io.airbyte.api.model.generated.CustomSourceDefinitionCreate; import io.airbyte.api.model.generated.PrivateSourceDefinitionRead; @@ -19,11 +24,14 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/source_definitions") @Requires(property = "airbyte.deployment-mode", value = "OSS") @Context +@Secured(SecurityRule.IS_AUTHENTICATED) public class SourceDefinitionApiController implements SourceDefinitionApi { private final SourceDefinitionsHandler sourceDefinitionsHandler; @@ -33,12 +41,14 @@ public SourceDefinitionApiController(final SourceDefinitionsHandler sourceDefini } @Post("/create_custom") + @Secured({EDITOR}) @Override public SourceDefinitionRead createCustomSourceDefinition(final CustomSourceDefinitionCreate customSourceDefinitionCreate) { return ApiHelper.execute(() -> sourceDefinitionsHandler.createCustomSourceDefinition(customSourceDefinitionCreate)); } @Post("/delete") + @Secured({ADMIN}) @Override public void deleteSourceDefinition(final SourceDefinitionIdRequestBody sourceDefinitionIdRequestBody) { ApiHelper.execute(() -> { @@ -48,48 +58,56 @@ public void deleteSourceDefinition(final SourceDefinitionIdRequestBody sourceDef } @Post("/get") + @Secured({AUTHENTICATED_USER}) @Override public SourceDefinitionRead getSourceDefinition(final SourceDefinitionIdRequestBody sourceDefinitionIdRequestBody) { return ApiHelper.execute(() -> sourceDefinitionsHandler.getSourceDefinition(sourceDefinitionIdRequestBody)); } @Post("/get_for_workspace") + @Secured({READER}) @Override public SourceDefinitionRead getSourceDefinitionForWorkspace(final SourceDefinitionIdWithWorkspaceId sourceDefinitionIdWithWorkspaceId) { return ApiHelper.execute(() -> sourceDefinitionsHandler.getSourceDefinitionForWorkspace(sourceDefinitionIdWithWorkspaceId)); } @Post("/grant_definition") + @Secured({ADMIN}) @Override public PrivateSourceDefinitionRead grantSourceDefinitionToWorkspace(final SourceDefinitionIdWithWorkspaceId sourceDefinitionIdWithWorkspaceId) { return ApiHelper.execute(() -> sourceDefinitionsHandler.grantSourceDefinitionToWorkspace(sourceDefinitionIdWithWorkspaceId)); } @Post("/list_latest") + @Secured({AUTHENTICATED_USER}) @Override public SourceDefinitionReadList listLatestSourceDefinitions() { return ApiHelper.execute(sourceDefinitionsHandler::listLatestSourceDefinitions); } @Post("/list_private") + @Secured({ADMIN}) @Override public PrivateSourceDefinitionReadList listPrivateSourceDefinitions(final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> sourceDefinitionsHandler.listPrivateSourceDefinitions(workspaceIdRequestBody)); } @Post("/list") + @Secured({AUTHENTICATED_USER}) @Override public SourceDefinitionReadList listSourceDefinitions() { return ApiHelper.execute(sourceDefinitionsHandler::listSourceDefinitions); } @Post("/list_for_workspace") + @Secured({READER}) @Override public SourceDefinitionReadList listSourceDefinitionsForWorkspace(final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> sourceDefinitionsHandler.listSourceDefinitionsForWorkspace(workspaceIdRequestBody)); } @Post("/revoke_definition") + @Secured({ADMIN}) @Override public void revokeSourceDefinitionFromWorkspace(final SourceDefinitionIdWithWorkspaceId sourceDefinitionIdWithWorkspaceId) { ApiHelper.execute(() -> { @@ -99,6 +117,7 @@ public void revokeSourceDefinitionFromWorkspace(final SourceDefinitionIdWithWork } @Post("/update") + @Secured({AUTHENTICATED_USER}) @Override public SourceDefinitionRead updateSourceDefinition(final SourceDefinitionUpdate sourceDefinitionUpdate) { return ApiHelper.execute(() -> sourceDefinitionsHandler.updateSourceDefinition(sourceDefinitionUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionSpecificationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionSpecificationApiController.java index 590f7340b61bf..e87b5c28bddc2 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionSpecificationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionSpecificationApiController.java @@ -4,6 +4,8 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; + import io.airbyte.api.generated.SourceDefinitionSpecificationApi; import io.airbyte.api.model.generated.SourceDefinitionIdWithWorkspaceId; import io.airbyte.api.model.generated.SourceDefinitionSpecificationRead; @@ -11,10 +13,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/source_definition_specifications") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class SourceDefinitionSpecificationApiController implements SourceDefinitionSpecificationApi { private final SchedulerHandler schedulerHandler; @@ -24,6 +29,7 @@ public SourceDefinitionSpecificationApiController(final SchedulerHandler schedul } @Post("/get") + @Secured({AUTHENTICATED_USER}) @Override public SourceDefinitionSpecificationRead getSourceDefinitionSpecification(final SourceDefinitionIdWithWorkspaceId sourceDefinitionIdWithWorkspaceId) { return ApiHelper.execute(() -> schedulerHandler.getSourceDefinitionSpecification(sourceDefinitionIdWithWorkspaceId)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceOauthApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceOauthApiController.java index 2bba632cf6386..52cbc82beb97f 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceOauthApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceOauthApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; + import io.airbyte.api.generated.SourceOauthApi; import io.airbyte.api.model.generated.CompleteSourceOauthRequest; import io.airbyte.api.model.generated.OAuthConsentRead; @@ -14,11 +17,14 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; import java.util.Map; @Controller("/api/v1/source_oauths") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class SourceOauthApiController implements SourceOauthApi { private final OAuthHandler oAuthHandler; @@ -28,18 +34,21 @@ public SourceOauthApiController(final OAuthHandler oAuthHandler) { } @Post("/complete_oauth") + @Secured({EDITOR}) @Override public Map completeSourceOAuth(@Body final CompleteSourceOauthRequest completeSourceOauthRequest) { return ApiHelper.execute(() -> oAuthHandler.completeSourceOAuth(completeSourceOauthRequest)); } @Post("/get_consent_url") + @Secured({EDITOR}) @Override public OAuthConsentRead getSourceOAuthConsent(@Body final SourceOauthConsentRequest sourceOauthConsentRequest) { return ApiHelper.execute(() -> oAuthHandler.getSourceOAuthConsent(sourceOauthConsentRequest)); } @Post("/oauth_params/create") + @Secured({ADMIN}) @Override public void setInstancewideSourceOauthParams(@Body final SetInstancewideSourceOauthParamsRequestBody setInstancewideSourceOauthParamsRequestBody) { ApiHelper.execute(() -> { diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/StateApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/StateApiController.java index b1b62373aaa1c..870a499d5999d 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/StateApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/StateApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.ADMIN; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.StateApi; import io.airbyte.api.model.generated.ConnectionIdRequestBody; import io.airbyte.api.model.generated.ConnectionState; @@ -12,10 +15,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/state") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class StateApiController implements StateApi { private final StateHandler stateHandler; @@ -25,12 +31,14 @@ public StateApiController(final StateHandler stateHandler) { } @Post("/create_or_update") + @Secured({ADMIN}) @Override public ConnectionState createOrUpdateState(final ConnectionStateCreateOrUpdate connectionStateCreateOrUpdate) { return ApiHelper.execute(() -> stateHandler.createOrUpdateState(connectionStateCreateOrUpdate)); } @Post("/get") + @Secured({READER}) @Override public ConnectionState getState(final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> stateHandler.getState(connectionIdRequestBody)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/WebBackendApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/WebBackendApiController.java index ac13e02015c1b..af8c5a3ad3167 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/WebBackendApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/WebBackendApiController.java @@ -4,6 +4,10 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.EDITOR; +import static io.airbyte.commons.auth.AuthRoleConstants.READER; + import io.airbyte.api.generated.WebBackendApi; import io.airbyte.api.model.generated.ConnectionIdRequestBody; import io.airbyte.api.model.generated.ConnectionStateType; @@ -23,10 +27,13 @@ import io.micronaut.context.annotation.Requires; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/web_backend") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) public class WebBackendApiController implements WebBackendApi { private final WebBackendConnectionsHandler webBackendConnectionsHandler; @@ -42,48 +49,56 @@ public WebBackendApiController(final WebBackendConnectionsHandler webBackendConn } @Post("/state/get_type") + @Secured({READER}) @Override public ConnectionStateType getStateType(final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> webBackendConnectionsHandler.getStateType(connectionIdRequestBody)); } @Post("/check_updates") + @Secured({READER}) @Override public WebBackendCheckUpdatesRead webBackendCheckUpdates() { return ApiHelper.execute(webBackendCheckUpdatesHandler::checkUpdates); } @Post("/connections/create") + @Secured({EDITOR}) @Override public WebBackendConnectionRead webBackendCreateConnection(final WebBackendConnectionCreate webBackendConnectionCreate) { return ApiHelper.execute(() -> webBackendConnectionsHandler.webBackendCreateConnection(webBackendConnectionCreate)); } @Post("/connections/get") + @Secured({READER}) @Override public WebBackendConnectionRead webBackendGetConnection(final WebBackendConnectionRequestBody webBackendConnectionRequestBody) { return ApiHelper.execute(() -> webBackendConnectionsHandler.webBackendGetConnection(webBackendConnectionRequestBody)); } @Post("/workspace/state") + @Secured({READER}) @Override public WebBackendWorkspaceStateResult webBackendGetWorkspaceState(final WebBackendWorkspaceState webBackendWorkspaceState) { return ApiHelper.execute(() -> webBackendConnectionsHandler.getWorkspaceState(webBackendWorkspaceState)); } @Post("/connections/list") + @Secured({READER}) @Override public WebBackendConnectionReadList webBackendListConnectionsForWorkspace(final WebBackendConnectionListRequestBody webBackendConnectionListRequestBody) { return ApiHelper.execute(() -> webBackendConnectionsHandler.webBackendListConnectionsForWorkspace(webBackendConnectionListRequestBody)); } @Post("/geographies/list") + @Secured({AUTHENTICATED_USER}) @Override public WebBackendGeographiesListResult webBackendListGeographies() { return ApiHelper.execute(webBackendGeographiesHandler::listGeographiesOSS); } @Post("/connections/update") + @Secured({EDITOR}) @Override public WebBackendConnectionRead webBackendUpdateConnection(final WebBackendConnectionUpdate webBackendConnectionUpdate) { return ApiHelper.execute(() -> webBackendConnectionsHandler.webBackendUpdateConnection(webBackendConnectionUpdate)); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java index 14d3fdc90ad8d..1942a4d03afbb 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java @@ -4,6 +4,9 @@ package io.airbyte.server.apis; +import static io.airbyte.commons.auth.AuthRoleConstants.AUTHENTICATED_USER; +import static io.airbyte.commons.auth.AuthRoleConstants.OWNER; + import io.airbyte.api.generated.WorkspaceApi; import io.airbyte.api.model.generated.ConnectionIdRequestBody; import io.airbyte.api.model.generated.SlugRequestBody; @@ -19,10 +22,14 @@ import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.security.annotation.Secured; +import io.micronaut.security.rules.SecurityRule; @Controller("/api/v1/workspaces") @Requires(property = "airbyte.deployment-mode", value = "OSS") +@Secured(SecurityRule.IS_AUTHENTICATED) +@SuppressWarnings("PMD.AvoidDuplicateLiterals") public class WorkspaceApiController implements WorkspaceApi { private final WorkspacesHandler workspacesHandler; @@ -32,12 +39,14 @@ public WorkspaceApiController(final WorkspacesHandler workspacesHandler) { } @Post("/create") + @Secured({AUTHENTICATED_USER}) @Override public WorkspaceRead createWorkspace(@Body final WorkspaceCreate workspaceCreate) { return ApiHelper.execute(() -> workspacesHandler.createWorkspace(workspaceCreate)); } @Post("/delete") + @Secured({OWNER}) @Override public void deleteWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { ApiHelper.execute(() -> { @@ -47,30 +56,35 @@ public void deleteWorkspace(@Body final WorkspaceIdRequestBody workspaceIdReques } @Post("/get") + @Secured({OWNER}) @Override public WorkspaceRead getWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { return ApiHelper.execute(() -> workspacesHandler.getWorkspace(workspaceIdRequestBody)); } @Post("/get_by_slug") + @Secured({OWNER}) @Override public WorkspaceRead getWorkspaceBySlug(@Body final SlugRequestBody slugRequestBody) { return ApiHelper.execute(() -> workspacesHandler.getWorkspaceBySlug(slugRequestBody)); } @Post("/list") + @Secured({AUTHENTICATED_USER}) @Override public WorkspaceReadList listWorkspaces() { return ApiHelper.execute(workspacesHandler::listWorkspaces); } @Post("/update") + @Secured({OWNER}) @Override public WorkspaceRead updateWorkspace(@Body final WorkspaceUpdate workspaceUpdate) { return ApiHelper.execute(() -> workspacesHandler.updateWorkspace(workspaceUpdate)); } @Post("/tag_feedback_status_as_done") + @Secured({OWNER}) @Override public void updateWorkspaceFeedback(@Body final WorkspaceGiveFeedback workspaceGiveFeedback) { ApiHelper.execute(() -> { @@ -80,12 +94,14 @@ public void updateWorkspaceFeedback(@Body final WorkspaceGiveFeedback workspaceG } @Post("/update_name") + @Secured({OWNER}) @Override public WorkspaceRead updateWorkspaceName(@Body final WorkspaceUpdateName workspaceUpdateName) { return ApiHelper.execute(() -> workspacesHandler.updateWorkspaceName(workspaceUpdateName)); } @Post("/get_by_connection_id") + @Secured({AUTHENTICATED_USER}) @Override public WorkspaceRead getWorkspaceByConnectionId(@Body final ConnectionIdRequestBody connectionIdRequestBody) { return ApiHelper.execute(() -> workspacesHandler.getWorkspaceByConnectionId(connectionIdRequestBody)); diff --git a/airbyte-server/src/main/resources/application.yml b/airbyte-server/src/main/resources/application.yml index 53e670c2c523a..1c58a63ef5466 100644 --- a/airbyte-server/src/main/resources/application.yml +++ b/airbyte-server/src/main/resources/application.yml @@ -2,19 +2,8 @@ micronaut: application: name: airbyte-server security: - intercept-url-map: - - pattern: /** - httpMethod: GET - access: - - isAnonymous() - - pattern: /** - httpMethod: POST - access: - - isAnonymous() - - pattern: /** - httpMethod: HEAD - access: - - isAnonymous() + authentication-provider-strategy: ALL + enabled: ${API_AUTHORIZATION_ENABLED:false} server: port: 8001 cors: @@ -118,6 +107,32 @@ datasources: username: ${DATABASE_USER} password: ${DATABASE_PASSWORD} +endpoints: + beans: + enabled: true + sensitive: false + env: + enabled: true + sensitive: false + health: + enabled: true + sensitive: false + info: + enabled: true + sensitive: true + loggers: + enabled: true + sensitive: true + refresh: + enabled: false + sensitive: true + routes: + enabled: true + sensitive: false + threaddump: + enabled: true + sensitive: true + flyway: enabled: true datasources: @@ -138,3 +153,10 @@ jooq: jobs: jackson-converter-enabled: true sql-dialect: POSTGRES + +logger: + levels: + # Uncomment to help resolve issues with conditional beans + # io.micronaut.context.condition: DEBUG + # Uncomment to help resolve issues with security beans + # io.micronaut.security: DEBUG diff --git a/deps.toml b/deps.toml index f3a642d9bab42..0fa2bd639d690 100644 --- a/deps.toml +++ b/deps.toml @@ -24,6 +24,7 @@ micronaut = "3.8.1" micronaut-test = "3.8.0" platform-testcontainers = "1.17.3" postgresql = "42.3.5" +reactor = "3.5.2" slf4j = "1.7.36" temporal = "1.17.0" @@ -101,6 +102,7 @@ platform-testcontainers-jdbc = { module = "org.testcontainers:jdbc", version.ref platform-testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "platform-testcontainers" } postgresql = { module = "org.postgresql:postgresql", version.ref = "postgresql" } quartz-scheduler = { module = "org.quartz-scheduler:quartz", version = "2.3.2" } +reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "reactor" } s3 = { module = "software.amazon.awssdk:s3", version = "2.16.84" } slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", version = "4.7.3" } From ea5574ac437fe4bf34023a1682fdf01c946897c2 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 23 Jan 2023 10:18:34 -0800 Subject: [PATCH 31/56] Update limitations (#21354) --- docs/integrations/destinations/google-sheets.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/integrations/destinations/google-sheets.md b/docs/integrations/destinations/google-sheets.md index ef4c122966aee..7b836e0535089 100644 --- a/docs/integrations/destinations/google-sheets.md +++ b/docs/integrations/destinations/google-sheets.md @@ -107,12 +107,12 @@ Please be aware of the [Google Spreadsheet limitations](#limitations) before you ### Google Sheets Limitations -During the upload process and from the data storage perspective there are some limitations that should be considered beforehands: +During the upload process and from the data storage perspective there are some limitations that should be considered beforehand as [determined by Google here](https://support.google.com/drive/answer/37603): -- **Maximum of 5 Million Cells** +- **Maximum of 10 Million Cells** -A Google Sheets document can have a maximum of 5 million cells. These can be in a single worksheet or in multiple sheets. -In case you already have the 5 million limit reached in fewer columns, it will not allow you to add more columns (and vice versa, i.e., if 5 million cells limit is reached with a certain number of rows, it will not allow more rows). +A Google Sheets document can have a maximum of 10 million cells. These can be in a single worksheet or in multiple sheets. +In case you already have the 10 million limit reached in fewer columns, it will not allow you to add more columns (and vice versa, i.e., if 10 million cells limit is reached with a certain number of rows, it will not allow more rows). - **Maximum of 18,278 Columns** From e93a463983fc583b1f1091a163d732ef277c1f61 Mon Sep 17 00:00:00 2001 From: Yowan Ramchoreeter <26179814+YowanR@users.noreply.github.com> Date: Mon, 23 Jan 2023 23:53:58 +0530 Subject: [PATCH 32/56] Update shopify.md (#21502) Adding call to action to Shopify doc to help us land OAuth in Cloud --- docs/integrations/sources/shopify.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/integrations/sources/shopify.md b/docs/integrations/sources/shopify.md index f0617da479cef..44f5cc6530725 100644 --- a/docs/integrations/sources/shopify.md +++ b/docs/integrations/sources/shopify.md @@ -5,6 +5,13 @@ description: >- # Shopify + +:::note + +Our Shopify Source Connector does not support OAuth at this time due to limitations outside of our control. If OAuth for Shopify is critical to your business, [please reach out to us](mailto:product@airbyte.io) to discuss how we may be able to partner on this effort. + +::: + ## Sync overview The Shopify source supports both Full Refresh and Incremental syncs. You can choose if this connector will copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run. From e844d73b286f407e84b895e3ebf5d40847b9aa87 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Mon, 23 Jan 2023 19:29:10 +0100 Subject: [PATCH 33/56] pin cdk version (#21708) --- airbyte-connector-builder-server/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-connector-builder-server/setup.py b/airbyte-connector-builder-server/setup.py index 66d7c37273420..e25a3dab72266 100644 --- a/airbyte-connector-builder-server/setup.py +++ b/airbyte-connector-builder-server/setup.py @@ -41,7 +41,7 @@ }, packages=find_packages(exclude=("unit_tests", "integration_tests", "docs")), package_data={}, - install_requires=["airbyte-cdk~=0.15", "fastapi", "uvicorn"], + install_requires=["airbyte-cdk==0.21.0", "fastapi", "uvicorn"], python_requires=">=3.9.11", extras_require={ "tests": [ From b7d5be9e800354bfb7824a64ce2ece1414757aca Mon Sep 17 00:00:00 2001 From: Benoit Moriceau Date: Mon, 23 Jan 2023 10:32:36 -0800 Subject: [PATCH 34/56] Add No content status code (#21655) * Add No content status code * Format --- .../java/io/airbyte/server/apis/ConnectionApiController.java | 3 +++ .../java/io/airbyte/server/apis/DestinationApiController.java | 3 +++ .../server/apis/DestinationDefinitionApiController.java | 3 +++ .../java/io/airbyte/server/apis/OperationApiController.java | 3 +++ .../main/java/io/airbyte/server/apis/SourceApiController.java | 3 +++ .../io/airbyte/server/apis/SourceDefinitionApiController.java | 4 ++++ .../java/io/airbyte/server/apis/WorkspaceApiController.java | 3 +++ 7 files changed, 22 insertions(+) diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java index f61b89e41447c..aca38ca5ccec7 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/ConnectionApiController.java @@ -21,9 +21,11 @@ import io.airbyte.server.handlers.SchedulerHandler; import io.micronaut.context.annotation.Context; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -89,6 +91,7 @@ public ConnectionRead getConnection(@Body final ConnectionIdRequestBody connecti @Override @Post(uri = "/delete") + @Status(HttpStatus.NO_CONTENT) @Secured({EDITOR}) public void deleteConnection(@Body final ConnectionIdRequestBody connectionIdRequestBody) { ApiHelper.execute(() -> { diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java index 7a20184b0e4da..0c1d5f074faa1 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationApiController.java @@ -20,9 +20,11 @@ import io.airbyte.server.handlers.DestinationHandler; import io.airbyte.server.handlers.SchedulerHandler; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -70,6 +72,7 @@ public DestinationRead createDestination(@Body final DestinationCreate destinati @Post(uri = "/delete") @Secured({EDITOR}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteDestination(@Body final DestinationIdRequestBody destinationIdRequestBody) { ApiHelper.execute(() -> { destinationHandler.deleteDestination(destinationIdRequestBody); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java index ab559f6b3b099..e3796c033c320 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/DestinationDefinitionApiController.java @@ -22,8 +22,10 @@ import io.airbyte.server.handlers.DestinationDefinitionsHandler; import io.micronaut.context.annotation.Context; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -50,6 +52,7 @@ public DestinationDefinitionRead createCustomDestinationDefinition(final CustomD @Post(uri = "/delete") @Secured({ADMIN}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteDestinationDefinition(final DestinationDefinitionIdRequestBody destinationDefinitionIdRequestBody) { ApiHelper.execute(() -> { destinationDefinitionsHandler.deleteDestinationDefinition(destinationDefinitionIdRequestBody); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java index 172fbb76e40a3..64ac3c337f51a 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/OperationApiController.java @@ -19,9 +19,11 @@ import io.airbyte.api.model.generated.OperatorConfiguration; import io.airbyte.server.handlers.OperationsHandler; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -54,6 +56,7 @@ public OperationRead createOperation(@Body final OperationCreate operationCreate @Post("/delete") @Secured({EDITOR}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteOperation(@Body final OperationIdRequestBody operationIdRequestBody) { ApiHelper.execute(() -> { operationsHandler.deleteOperation(operationIdRequestBody); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java index 0c680f7429895..c1d5970465ca1 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java @@ -23,8 +23,10 @@ import io.airbyte.server.handlers.SchedulerHandler; import io.airbyte.server.handlers.SourceHandler; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -72,6 +74,7 @@ public SourceRead createSource(final SourceCreate sourceCreate) { @Post("/delete") @Secured({EDITOR}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteSource(final SourceIdRequestBody sourceIdRequestBody) { ApiHelper.execute(() -> { sourceHandler.deleteSource(sourceIdRequestBody); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java index 97a030dc7f70f..1dac7ca5b7089 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceDefinitionApiController.java @@ -22,8 +22,10 @@ import io.airbyte.server.handlers.SourceDefinitionsHandler; import io.micronaut.context.annotation.Context; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -50,6 +52,7 @@ public SourceDefinitionRead createCustomSourceDefinition(final CustomSourceDefin @Post("/delete") @Secured({ADMIN}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteSourceDefinition(final SourceDefinitionIdRequestBody sourceDefinitionIdRequestBody) { ApiHelper.execute(() -> { sourceDefinitionsHandler.deleteSourceDefinition(sourceDefinitionIdRequestBody); @@ -109,6 +112,7 @@ public SourceDefinitionReadList listSourceDefinitionsForWorkspace(final Workspac @Post("/revoke_definition") @Secured({ADMIN}) @Override + @Status(HttpStatus.NO_CONTENT) public void revokeSourceDefinitionFromWorkspace(final SourceDefinitionIdWithWorkspaceId sourceDefinitionIdWithWorkspaceId) { ApiHelper.execute(() -> { sourceDefinitionsHandler.revokeSourceDefinitionFromWorkspace(sourceDefinitionIdWithWorkspaceId); diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java index 1942a4d03afbb..c270ce286ccf9 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/WorkspaceApiController.java @@ -19,9 +19,11 @@ import io.airbyte.api.model.generated.WorkspaceUpdateName; import io.airbyte.server.handlers.WorkspacesHandler; import io.micronaut.context.annotation.Requires; +import io.micronaut.http.HttpStatus; import io.micronaut.http.annotation.Body; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Post; +import io.micronaut.http.annotation.Status; import io.micronaut.security.annotation.Secured; import io.micronaut.security.rules.SecurityRule; @@ -48,6 +50,7 @@ public WorkspaceRead createWorkspace(@Body final WorkspaceCreate workspaceCreate @Post("/delete") @Secured({OWNER}) @Override + @Status(HttpStatus.NO_CONTENT) public void deleteWorkspace(@Body final WorkspaceIdRequestBody workspaceIdRequestBody) { ApiHelper.execute(() -> { workspacesHandler.deleteWorkspace(workspaceIdRequestBody); From 083778183e788e09728a0e13eca35b8fccc48a1d Mon Sep 17 00:00:00 2001 From: Xiaohan Song Date: Mon, 23 Jan 2023 11:02:30 -0800 Subject: [PATCH 35/56] Add write discover fetch event API (#21506) * api changes for writing discover catalog * api changes * format * change return type of the API to return catalogId * PR comments fix * format --- airbyte-api/src/main/openapi/config.yaml | 44 ++++++ .../server/apis/SourceApiController.java | 8 ++ .../server/handlers/ConnectionsHandler.java | 4 +- .../server/handlers/SchedulerHandler.java | 2 +- .../server/handlers/SourceHandler.java | 15 +++ .../WebBackendConnectionsHandler.java | 4 +- .../handlers/helpers/CatalogConverter.java | 39 +++++- .../converters/CatalogConverterTest.java | 23 ++-- .../server/handlers/SourceHandlerTest.java | 28 ++++ .../WebBackendConnectionsHandlerTest.java | 2 +- .../api/generated-api-html/index.html | 125 ++++++++++++++++++ 11 files changed, 272 insertions(+), 22 deletions(-) diff --git a/airbyte-api/src/main/openapi/config.yaml b/airbyte-api/src/main/openapi/config.yaml index 2107c31066f7e..3d22973efe42e 100644 --- a/airbyte-api/src/main/openapi/config.yaml +++ b/airbyte-api/src/main/openapi/config.yaml @@ -754,6 +754,27 @@ paths: $ref: "#/components/responses/NotFoundResponse" "422": $ref: "#/components/responses/InvalidInputResponse" + + /v1/sources/write_discover_catalog_result: + post: + tags: + - source + - internal + summary: Should only called from worker, to write result from discover activity back to DB. + operationId: writeDiscoverCatalogResult + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SourceDiscoverSchemaWriteRequestBody" + required: true + responses: + "200": + description: Successful Operation + content: + application/json: + schema: + $ref: "#/components/schemas/DiscoverCatalogResult" /v1/destination_definitions/update: post: tags: @@ -2812,6 +2833,21 @@ components: type: array items: $ref: "#/components/schemas/SourceRead" + SourceDiscoverSchemaWriteRequestBody: + description: to write this requested object to database. + type: object + required: + - catalog + properties: + catalog: + $ref: "#/components/schemas/AirbyteCatalog" + sourceId: + $ref: "#/components/schemas/SourceId" + connectorVersion: + type: string + configurationHash: + type: string + SourceDiscoverSchemaRead: description: Returns the results of a discover catalog job. If the job was not successful, the catalog field will not be present. jobInfo will aways be present and its status be used to determine if the job was successful or not. type: object @@ -4993,6 +5029,14 @@ components: properties: succeeded: type: boolean + DiscoverCatalogResult: + type: object + required: + - catalogId + properties: + catalogId: + type: string + format: uuid AttemptNormalizationStatusReadList: type: object properties: diff --git a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java index c1d5970465ca1..d7946484d8ee4 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java +++ b/airbyte-server/src/main/java/io/airbyte/server/apis/SourceApiController.java @@ -10,10 +10,12 @@ import io.airbyte.api.generated.SourceApi; import io.airbyte.api.model.generated.ActorCatalogWithUpdatedAt; import io.airbyte.api.model.generated.CheckConnectionRead; +import io.airbyte.api.model.generated.DiscoverCatalogResult; import io.airbyte.api.model.generated.SourceCloneRequestBody; import io.airbyte.api.model.generated.SourceCreate; import io.airbyte.api.model.generated.SourceDiscoverSchemaRead; import io.airbyte.api.model.generated.SourceDiscoverSchemaRequestBody; +import io.airbyte.api.model.generated.SourceDiscoverSchemaWriteRequestBody; import io.airbyte.api.model.generated.SourceIdRequestBody; import io.airbyte.api.model.generated.SourceRead; import io.airbyte.api.model.generated.SourceReadList; @@ -123,4 +125,10 @@ public SourceRead updateSource(final SourceUpdate sourceUpdate) { return ApiHelper.execute(() -> sourceHandler.updateSource(sourceUpdate)); } + @Post("/write_discover_catalog_result") + @Override + public DiscoverCatalogResult writeDiscoverCatalogResult(final SourceDiscoverSchemaWriteRequestBody request) { + return ApiHelper.execute(() -> sourceHandler.writeDiscoverCatalogResult(request)); + } + } diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java index ba32bfeb380ea..12aff047d12a0 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java @@ -160,7 +160,7 @@ public ConnectionRead createConnection(final ConnectionCreate connectionCreate) // TODO Undesirable behavior: sending a null configured catalog should not be valid? if (connectionCreate.getSyncCatalog() != null) { - standardSync.withCatalog(CatalogConverter.toProtocol(connectionCreate.getSyncCatalog())); + standardSync.withCatalog(CatalogConverter.toConfiguredProtocol(connectionCreate.getSyncCatalog())); standardSync.withFieldSelectionData(CatalogConverter.getFieldSelectionData(connectionCreate.getSyncCatalog())); } else { standardSync.withCatalog(new ConfiguredAirbyteCatalog().withStreams(Collections.emptyList())); @@ -318,7 +318,7 @@ private static void applyPatchToStandardSync(final StandardSync sync, final Conn // in the patch. Otherwise, leave the field unchanged. if (patch.getSyncCatalog() != null) { - sync.setCatalog(CatalogConverter.toProtocol(patch.getSyncCatalog())); + sync.setCatalog(CatalogConverter.toConfiguredProtocol(patch.getSyncCatalog())); sync.withFieldSelectionData(CatalogConverter.getFieldSelectionData(patch.getSyncCatalog())); } diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/SchedulerHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/SchedulerHandler.java index d2270ccf172b7..97e8bfb5cc006 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/SchedulerHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/SchedulerHandler.java @@ -404,7 +404,7 @@ private void generateCatalogDiffsAndDisableConnectionsIfNeeded(final SourceDisco connectionRead.getSyncCatalog(); final CatalogDiff diff = connectionsHandler.getDiff(catalogUsedToMakeConfiguredCatalog.orElse(currentAirbyteCatalog), discoveredSchema.getCatalog(), - CatalogConverter.toProtocol(currentAirbyteCatalog)); + CatalogConverter.toConfiguredProtocol(currentAirbyteCatalog)); final boolean containsBreakingChange = containsBreakingChange(diff); final ConnectionUpdate updateObject = new ConnectionUpdate().breakingChange(containsBreakingChange).connectionId(connectionRead.getConnectionId()); diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/SourceHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/SourceHandler.java index cfb0fb278b8c6..c8c366bab4a8b 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/SourceHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/SourceHandler.java @@ -8,10 +8,12 @@ import com.google.common.collect.Lists; import io.airbyte.api.model.generated.ActorCatalogWithUpdatedAt; import io.airbyte.api.model.generated.ConnectionRead; +import io.airbyte.api.model.generated.DiscoverCatalogResult; import io.airbyte.api.model.generated.SourceCloneConfiguration; import io.airbyte.api.model.generated.SourceCloneRequestBody; import io.airbyte.api.model.generated.SourceCreate; import io.airbyte.api.model.generated.SourceDefinitionIdRequestBody; +import io.airbyte.api.model.generated.SourceDiscoverSchemaWriteRequestBody; import io.airbyte.api.model.generated.SourceIdRequestBody; import io.airbyte.api.model.generated.SourceRead; import io.airbyte.api.model.generated.SourceReadList; @@ -27,8 +29,10 @@ import io.airbyte.config.persistence.SecretsRepositoryWriter; import io.airbyte.config.persistence.split_secrets.JsonSecretsProcessor; import io.airbyte.persistence.job.factory.OAuthConfigSupplier; +import io.airbyte.protocol.models.AirbyteCatalog; import io.airbyte.protocol.models.ConnectorSpecification; import io.airbyte.server.converters.ConfigurationUpdate; +import io.airbyte.server.handlers.helpers.CatalogConverter; import io.airbyte.validation.json.JsonSchemaValidator; import io.airbyte.validation.json.JsonValidationException; import jakarta.inject.Inject; @@ -261,6 +265,17 @@ public void deleteSource(final SourceRead source) spec); } + public DiscoverCatalogResult writeDiscoverCatalogResult(final SourceDiscoverSchemaWriteRequestBody request) + throws JsonValidationException, IOException { + final AirbyteCatalog persistenceCatalog = CatalogConverter.toProtocol(request.getCatalog()); + UUID catalogId = configRepository.writeActorCatalogFetchEvent( + persistenceCatalog, + request.getSourceId(), + request.getConnectorVersion(), + request.getConfigurationHash()); + return new DiscoverCatalogResult().catalogId(catalogId); + } + private SourceRead buildSourceRead(final UUID sourceId) throws ConfigNotFoundException, IOException, JsonValidationException { // read configuration from db diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/WebBackendConnectionsHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/WebBackendConnectionsHandler.java index 99303a29f615a..e45c356867041 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/WebBackendConnectionsHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/WebBackendConnectionsHandler.java @@ -546,7 +546,7 @@ public WebBackendConnectionRead webBackendUpdateConnection(final WebBackendConne Jsons.object(mostRecentActorCatalog.get().getCatalog(), io.airbyte.protocol.models.AirbyteCatalog.class); final CatalogDiff catalogDiff = connectionsHandler.getDiff(newAirbyteCatalog, CatalogConverter.toApi(mostRecentAirbyteCatalog), - CatalogConverter.toProtocol(newAirbyteCatalog)); + CatalogConverter.toConfiguredProtocol(newAirbyteCatalog)); breakingChange = containsBreakingChange(catalogDiff); } } @@ -602,7 +602,7 @@ private void resetStreamsIfNeeded(final WebBackendConnectionUpdate webBackendCon CatalogConverter.getFieldSelectionData(oldConnectionRead.getSyncCatalog())); final AirbyteCatalog upToDateAirbyteCatalog = updatedConnectionRead.getSyncCatalog(); final CatalogDiff catalogDiff = - connectionsHandler.getDiff(apiExistingCatalog, upToDateAirbyteCatalog, CatalogConverter.toProtocol(upToDateAirbyteCatalog)); + connectionsHandler.getDiff(apiExistingCatalog, upToDateAirbyteCatalog, CatalogConverter.toConfiguredProtocol(upToDateAirbyteCatalog)); final List apiStreamsToReset = getStreamsToReset(catalogDiff); final Set changedConfigStreamDescriptors = connectionsHandler.getConfigurationDiff(apiExistingCatalog, upToDateAirbyteCatalog); diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java index 8864c1b8130fb..6cf626f381b47 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/helpers/CatalogConverter.java @@ -48,7 +48,7 @@ private static io.airbyte.api.model.generated.AirbyteStream toApi(final io.airby } @SuppressWarnings("PMD.AvoidLiteralsInIfCondition") - private static io.airbyte.protocol.models.AirbyteStream toProtocol(final AirbyteStream stream, AirbyteStreamConfiguration config) + private static io.airbyte.protocol.models.AirbyteStream toConfiguredProtocol(final AirbyteStream stream, AirbyteStreamConfiguration config) throws JsonValidationException { if (config.getFieldSelectionEnabled() != null && config.getFieldSelectionEnabled()) { // Validate the selected field paths. @@ -173,7 +173,8 @@ private static Boolean getStreamHasFieldSelectionEnabled(FieldSelectionData fiel /** * Converts the API catalog model into a protocol catalog. Note: returns all streams, regardless of * selected status. See - * {@link CatalogConverter#toProtocol(AirbyteStream, AirbyteStreamConfiguration)} for context. + * {@link CatalogConverter#toConfiguredProtocol(AirbyteStream, AirbyteStreamConfiguration)} for + * context. * * @param catalog api catalog * @return protocol catalog @@ -183,7 +184,35 @@ public static io.airbyte.protocol.models.ConfiguredAirbyteCatalog toProtocolKeep throws JsonValidationException { final AirbyteCatalog clone = Jsons.clone(catalog); clone.getStreams().forEach(stream -> stream.getConfig().setSelected(true)); - return toProtocol(clone); + return toConfiguredProtocol(clone); + } + + /** + * To convert AirbyteCatalog from APIs to model. This is to differentiate between + * toConfiguredProtocol as the other one converts to ConfiguredAirbyteCatalog object instead. + */ + public static io.airbyte.protocol.models.AirbyteCatalog toProtocol( + final io.airbyte.api.model.generated.AirbyteCatalog catalog) + throws JsonValidationException { + final ArrayList errors = new ArrayList<>(); + + io.airbyte.protocol.models.AirbyteCatalog protoCatalog = + new io.airbyte.protocol.models.AirbyteCatalog(); + var airbyteStream = catalog.getStreams().stream().map(stream -> { + try { + return toConfiguredProtocol(stream.getStream(), stream.getConfig()); + } catch (JsonValidationException e) { + LOGGER.error("Error parsing catalog: {}", e); + errors.add(e); + return null; + } + }).collect(Collectors.toList()); + + if (!errors.isEmpty()) { + throw errors.get(0); + } + protoCatalog.withStreams(airbyteStream); + return protoCatalog; } /** @@ -196,7 +225,7 @@ public static io.airbyte.protocol.models.ConfiguredAirbyteCatalog toProtocolKeep * @param catalog api catalog * @return protocol catalog */ - public static io.airbyte.protocol.models.ConfiguredAirbyteCatalog toProtocol(final io.airbyte.api.model.generated.AirbyteCatalog catalog) + public static io.airbyte.protocol.models.ConfiguredAirbyteCatalog toConfiguredProtocol(final io.airbyte.api.model.generated.AirbyteCatalog catalog) throws JsonValidationException { final ArrayList errors = new ArrayList<>(); final List streams = catalog.getStreams() @@ -205,7 +234,7 @@ public static io.airbyte.protocol.models.ConfiguredAirbyteCatalog toProtocol(fin .map(s -> { try { return new io.airbyte.protocol.models.ConfiguredAirbyteStream() - .withStream(toProtocol(s.getStream(), s.getConfig())) + .withStream(toConfiguredProtocol(s.getStream(), s.getConfig())) .withSyncMode(Enums.convertTo(s.getConfig().getSyncMode(), io.airbyte.protocol.models.SyncMode.class)) .withCursorField(s.getConfig().getCursorField()) .withDestinationSyncMode(Enums.convertTo(s.getConfig().getDestinationSyncMode(), diff --git a/airbyte-server/src/test/java/io/airbyte/server/converters/CatalogConverterTest.java b/airbyte-server/src/test/java/io/airbyte/server/converters/CatalogConverterTest.java index 59602b2e72634..d9d41bda7ec4a 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/converters/CatalogConverterTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/converters/CatalogConverterTest.java @@ -28,7 +28,8 @@ class CatalogConverterTest { @Test void testConvertToProtocol() throws JsonValidationException { - assertEquals(ConnectionHelpers.generateBasicConfiguredAirbyteCatalog(), CatalogConverter.toProtocol(ConnectionHelpers.generateBasicApiCatalog())); + assertEquals(ConnectionHelpers.generateBasicConfiguredAirbyteCatalog(), + CatalogConverter.toConfiguredProtocol(ConnectionHelpers.generateBasicApiCatalog())); } @Test @@ -49,7 +50,7 @@ void testConvertToProtocolColumnSelectionValidation() { // fieldSelectionEnabled=true but selectedFields=null. final var catalog = ConnectionHelpers.generateBasicApiCatalog(); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).selectedFields(null); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(JsonValidationException.class, () -> { @@ -57,14 +58,14 @@ void testConvertToProtocolColumnSelectionValidation() { final var catalog = ConnectionHelpers.generateBasicApiCatalog(); ((ObjectNode) catalog.getStreams().get(0).getStream().getJsonSchema()).remove("properties"); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem("foo")); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(JsonValidationException.class, () -> { // SelectedFieldInfo with empty path. final var catalog = ConnectionHelpers.generateBasicApiCatalog(); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo()); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(UnsupportedOperationException.class, () -> { @@ -72,14 +73,14 @@ void testConvertToProtocolColumnSelectionValidation() { final var catalog = ConnectionHelpers.generateBasicApiCatalog(); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true) .addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem("foo").addFieldPathItem("bar")); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(JsonValidationException.class, () -> { // SelectedFieldInfo with empty path. final var catalog = ConnectionHelpers.generateBasicApiCatalog(); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem("foo")); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(JsonValidationException.class, () -> { @@ -88,7 +89,7 @@ void testConvertToProtocolColumnSelectionValidation() { catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME)); // The sync mode is INCREMENTAL and SECOND_FIELD_NAME is a cursor field. catalog.getStreams().get(0).getConfig().syncMode(SyncMode.INCREMENTAL).cursorField(List.of(SECOND_FIELD_NAME)); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertDoesNotThrow(() -> { @@ -97,7 +98,7 @@ void testConvertToProtocolColumnSelectionValidation() { catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME)); // The cursor field is not selected, but it's okay because it's FULL_REFRESH so it doesn't throw. catalog.getStreams().get(0).getConfig().syncMode(SyncMode.FULL_REFRESH).cursorField(List.of(SECOND_FIELD_NAME)); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertThrows(JsonValidationException.class, () -> { @@ -106,7 +107,7 @@ void testConvertToProtocolColumnSelectionValidation() { catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME)); // The destination sync mode is DEDUP and SECOND_FIELD_NAME is a primary key. catalog.getStreams().get(0).getConfig().destinationSyncMode(DestinationSyncMode.APPEND_DEDUP).primaryKey(List.of(List.of(SECOND_FIELD_NAME))); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); assertDoesNotThrow(() -> { @@ -115,7 +116,7 @@ void testConvertToProtocolColumnSelectionValidation() { catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME)); // The primary key is not selected but that's okay because the destination sync mode is OVERWRITE. catalog.getStreams().get(0).getConfig().destinationSyncMode(DestinationSyncMode.OVERWRITE).primaryKey(List.of(List.of(SECOND_FIELD_NAME))); - CatalogConverter.toProtocol(catalog); + CatalogConverter.toConfiguredProtocol(catalog); }); } @@ -123,7 +124,7 @@ void testConvertToProtocolColumnSelectionValidation() { void testConvertToProtocolFieldSelection() throws JsonValidationException { final var catalog = ConnectionHelpers.generateApiCatalogWithTwoFields(); catalog.getStreams().get(0).getConfig().fieldSelectionEnabled(true).addSelectedFieldsItem(new SelectedFieldInfo().addFieldPathItem(FIELD_NAME)); - assertEquals(ConnectionHelpers.generateBasicConfiguredAirbyteCatalog(), CatalogConverter.toProtocol(catalog)); + assertEquals(ConnectionHelpers.generateBasicConfiguredAirbyteCatalog(), CatalogConverter.toConfiguredProtocol(catalog)); } } diff --git a/airbyte-server/src/test/java/io/airbyte/server/handlers/SourceHandlerTest.java b/airbyte-server/src/test/java/io/airbyte/server/handlers/SourceHandlerTest.java index 758bad37f9095..61a27553bea37 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/handlers/SourceHandlerTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/handlers/SourceHandlerTest.java @@ -15,11 +15,13 @@ import com.google.common.collect.Lists; import io.airbyte.api.model.generated.ConnectionRead; import io.airbyte.api.model.generated.ConnectionReadList; +import io.airbyte.api.model.generated.DiscoverCatalogResult; import io.airbyte.api.model.generated.SourceCloneConfiguration; import io.airbyte.api.model.generated.SourceCloneRequestBody; import io.airbyte.api.model.generated.SourceCreate; import io.airbyte.api.model.generated.SourceDefinitionIdRequestBody; import io.airbyte.api.model.generated.SourceDefinitionSpecificationRead; +import io.airbyte.api.model.generated.SourceDiscoverSchemaWriteRequestBody; import io.airbyte.api.model.generated.SourceIdRequestBody; import io.airbyte.api.model.generated.SourceRead; import io.airbyte.api.model.generated.SourceReadList; @@ -36,8 +38,13 @@ import io.airbyte.config.persistence.SecretsRepositoryWriter; import io.airbyte.config.persistence.split_secrets.JsonSecretsProcessor; import io.airbyte.persistence.job.factory.OAuthConfigSupplier; +import io.airbyte.protocol.models.AirbyteCatalog; +import io.airbyte.protocol.models.CatalogHelpers; import io.airbyte.protocol.models.ConnectorSpecification; +import io.airbyte.protocol.models.Field; +import io.airbyte.protocol.models.JsonSchemaType; import io.airbyte.server.converters.ConfigurationUpdate; +import io.airbyte.server.handlers.helpers.CatalogConverter; import io.airbyte.server.helpers.ConnectionHelpers; import io.airbyte.server.helpers.ConnectorSpecificationHelpers; import io.airbyte.server.helpers.SourceHelpers; @@ -67,6 +74,11 @@ class SourceHandlerTest { private ConnectorSpecification connectorSpecification; private OAuthConfigSupplier oAuthConfigSupplier; + private static final String SHOES = "shoes"; + private static final String SKU = "sku"; + private static final AirbyteCatalog airbyteCatalog = CatalogHelpers.createAirbyteCatalog(SHOES, + Field.of(SKU, JsonSchemaType.STRING)); + // needs to match name of file in src/test/resources/icons private static final String ICON = "test-source.svg"; @@ -369,4 +381,20 @@ void testDeleteSource() throws JsonValidationException, ConfigNotFoundException, verify(connectionsHandler).deleteConnection(connectionRead.getConnectionId()); } + @Test + void testWriteDiscoverCatalogResult() throws JsonValidationException, IOException { + UUID actorId = UUID.randomUUID(); + UUID catalogId = UUID.randomUUID(); + String connectorVersion = "0.0.1"; + String hashValue = "0123456789abcd"; + SourceDiscoverSchemaWriteRequestBody request = new SourceDiscoverSchemaWriteRequestBody().catalog( + CatalogConverter.toApi(airbyteCatalog)).sourceId(actorId).connectorVersion(connectorVersion).configurationHash(hashValue); + + when(configRepository.writeActorCatalogFetchEvent(airbyteCatalog, actorId, connectorVersion, hashValue)).thenReturn(catalogId); + DiscoverCatalogResult result = sourceHandler.writeDiscoverCatalogResult(request); + + verify(configRepository).writeActorCatalogFetchEvent(airbyteCatalog, actorId, connectorVersion, hashValue); + assert (result.getCatalogId()).equals(catalogId); + } + } diff --git a/airbyte-server/src/test/java/io/airbyte/server/handlers/WebBackendConnectionsHandlerTest.java b/airbyte-server/src/test/java/io/airbyte/server/handlers/WebBackendConnectionsHandlerTest.java index 0103d8f0f5fdf..abf564dee15aa 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/handlers/WebBackendConnectionsHandlerTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/handlers/WebBackendConnectionsHandlerTest.java @@ -1016,7 +1016,7 @@ void testUpdateConnectionNoStreamsToReset() throws JsonValidationException, Conf final ConnectionIdRequestBody connectionId = new ConnectionIdRequestBody().connectionId(result.getConnectionId()); verify(connectionsHandler).getDiff(expected.getSyncCatalog(), expectedWithNewSchema.getSyncCatalog(), - CatalogConverter.toProtocol(result.getSyncCatalog())); + CatalogConverter.toConfiguredProtocol(result.getSyncCatalog())); verify(connectionsHandler).getConfigurationDiff(expected.getSyncCatalog(), expectedWithNewSchema.getSyncCatalog()); verify(schedulerHandler, times(0)).resetConnection(connectionId); verify(schedulerHandler, times(0)).syncConnection(connectionId); diff --git a/docs/reference/api/generated-api-html/index.html b/docs/reference/api/generated-api-html/index.html index 7489b2e65eefd..147055182ed25 100644 --- a/docs/reference/api/generated-api-html/index.html +++ b/docs/reference/api/generated-api-html/index.html @@ -274,6 +274,7 @@

    Internal

  • post /v1/jobs/get_normalization_status
  • post /v1/attempt/save_stats
  • post /v1/attempt/set_workflow_in_attempt
  • +
  • post /v1/sources/write_discover_catalog_result
  • Jobs

    SourceDefinition


    +
    +
    + Up +
    post /v1/sources/write_discover_catalog_result
    +
    Should only called from worker, to write result from discover activity back to DB. (writeDiscoverCatalogResult)
    +
    + + +

    Consumes

    + This API call consumes the following media types via the Content-Type request header: +
      +
    • application/json
    • +
    + +

    Request body

    +
    +
    SourceDiscoverSchemaWriteRequestBody SourceDiscoverSchemaWriteRequestBody (required)
    + +
    Body Parameter
    + +
    + + + + +

    Return type

    + + + + +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "catalogId" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91"
    +}
    + +

    Produces

    + This API call produces the following media types according to the Accept request header; + the media type will be conveyed by the Content-Type response header. +
      +
    • application/json
    • +
    + +

    Responses

    +

    200

    + Successful Operation + DiscoverCatalogResult +
    +

    Jobs


    +
    +
    + Up +
    post /v1/sources/write_discover_catalog_result
    +
    Should only called from worker, to write result from discover activity back to DB. (writeDiscoverCatalogResult)
    +
    + + +

    Consumes

    + This API call consumes the following media types via the Content-Type request header: +
      +
    • application/json
    • +
    + +

    Request body

    +
    +
    SourceDiscoverSchemaWriteRequestBody SourceDiscoverSchemaWriteRequestBody (required)
    + +
    Body Parameter
    + +
    + + + + +

    Return type

    + + + + +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "catalogId" : "046b6c7f-0b8a-43b9-b35d-6489e6daee91"
    +}
    + +

    Produces

    + This API call produces the following media types according to the Accept request header; + the media type will be conveyed by the Content-Type response header. +
      +
    • application/json
    • +
    + +

    Responses

    +

    200

    + Successful Operation + DiscoverCatalogResult +
    +

    SourceDefinition

    +
    +

    DiscoverCatalogResult - Up

    +
    +
    +
    catalogId
    UUID format: uuid
    +
    +
    +
    +

    SourceDiscoverSchemaWriteRequestBody - Up

    +
    to write this requested object to database.
    +
    +
    catalog
    +
    sourceId (optional)
    UUID format: uuid
    +
    connectorVersion (optional)
    +
    configurationHash (optional)
    +
    +

    SourceIdRequestBody - Up

    From ab8e4b5998869d4e64acae02182cb65054357f1a Mon Sep 17 00:00:00 2001 From: Catherine Noll Date: Mon, 23 Jan 2023 14:20:56 -0500 Subject: [PATCH 36/56] [Low Code CDK] Pass DeclarativeStream's `name` into DefaultSchemaLoader options (#21658) --- .../parsers/model_to_component_factory.py | 5 ++- .../test_model_to_component_factory.py | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py index b8a307ce799c0..ca5e46d79c6c6 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py @@ -359,7 +359,10 @@ def create_declarative_stream(model: DeclarativeStreamModel, config: Config, **k if model.schema_loader: schema_loader = _create_component_from_model(model=model.schema_loader, config=config) else: - schema_loader = DefaultSchemaLoader(config=config, options=model.options) + options = model.options or {} + if "name" not in options: + options["name"] = model.name + schema_loader = DefaultSchemaLoader(config=config, options=options) transformations = [] if model.transformations: diff --git a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py index ab01d46692b38..9c3abb9acd0fe 100644 --- a/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py +++ b/airbyte-cdk/python/unit_tests/sources/declarative/parsers/test_model_to_component_factory.py @@ -1011,3 +1011,37 @@ def test_add_fields(self): ) ] assert stream.transformations == expected + + def test_default_schema_loader(self): + component_definition = { + "type": "DeclarativeStream", + "name": "test", + "primary_key": [], + "retriever": { + "type": "SimpleRetriever", + "name": "test", + "primary_key": [], + "requester": { + "type": "HttpRequester", + "name": "test", + "url_base": "http://localhost:6767/", + "path": "items/", + "request_options_provider": { + "request_parameters": {}, + "request_headers": {}, + "request_body_json": {}, + "type": "InterpolatedRequestOptionsProvider", + }, + "authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config['api_key'] }}"}, + }, + "record_selector": {"type": "RecordSelector", "extractor": {"type": "DpathExtractor", "field_pointer": ["items"]}}, + "paginator": {"type": "NoPagination"}, + }, + } + resolved_manifest = resolver.preprocess_manifest(component_definition) + propagated_source_config = ManifestComponentTransformer().propagate_types_and_options("", resolved_manifest, {}) + stream = factory.create_component( + model_type=DeclarativeStreamModel, component_definition=propagated_source_config, config=input_config + ) + schema_loader = stream.schema_loader + assert schema_loader.default_loader._get_json_filepath().split("/")[-1] == f"{stream.name}.json" From 39ec49b9da3c29a0954f83ae8b9b6ea7a5060415 Mon Sep 17 00:00:00 2001 From: Joe Bell Date: Mon, 23 Jan 2023 11:24:28 -0800 Subject: [PATCH 37/56] remove failing line (#21740) Co-authored-by: Topher Lubaway --- .../io/airbyte/integrations/destination/s3/S3BaseChecksTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/airbyte-integrations/bases/base-java-s3/src/test/java/io/airbyte/integrations/destination/s3/S3BaseChecksTest.java b/airbyte-integrations/bases/base-java-s3/src/test/java/io/airbyte/integrations/destination/s3/S3BaseChecksTest.java index 6f08faa683e30..08e6eecd65108 100644 --- a/airbyte-integrations/bases/base-java-s3/src/test/java/io/airbyte/integrations/destination/s3/S3BaseChecksTest.java +++ b/airbyte-integrations/bases/base-java-s3/src/test/java/io/airbyte/integrations/destination/s3/S3BaseChecksTest.java @@ -46,7 +46,6 @@ public void attemptWriteAndDeleteS3Object_should_createSpecificFiles() { S3BaseChecks.attemptS3WriteAndDelete(operations, config, "test/bucket/path"); - verify(s3Client).putObject("test_bucket", "test/bucket/path/", ""); verify(s3Client).putObject(eq("test_bucket"), startsWith("test/bucket/path/_airbyte_connection_test_"), anyString()); verify(s3Client).listObjects(ArgumentMatchers.argThat(request -> "test_bucket".equals(request.getBucketName()))); verify(s3Client).deleteObject(eq("test_bucket"), startsWith("test/bucket/path/_airbyte_connection_test_")); From 1fba39a6bf166238626aa2d31038cfe47ea55c45 Mon Sep 17 00:00:00 2001 From: Anne <102554163+alovew@users.noreply.github.com> Date: Mon, 23 Jan 2023 11:41:44 -0800 Subject: [PATCH 38/56] Uncomment auto detect schema (#21731) --- .../workers/config/ActivityBeanFactory.java | 4 +- .../temporal/sync/SyncWorkflowImpl.java | 56 ++++++++++--------- .../temporal/sync/SyncWorkflowTest.java | 48 ++++++++-------- 3 files changed, 56 insertions(+), 52 deletions(-) diff --git a/airbyte-workers/src/main/java/io/airbyte/workers/config/ActivityBeanFactory.java b/airbyte-workers/src/main/java/io/airbyte/workers/config/ActivityBeanFactory.java index b66dfa5cfd741..6e9b5be2333c4 100644 --- a/airbyte-workers/src/main/java/io/airbyte/workers/config/ActivityBeanFactory.java +++ b/airbyte-workers/src/main/java/io/airbyte/workers/config/ActivityBeanFactory.java @@ -112,10 +112,10 @@ public List syncActivities( final PersistStateActivity persistStateActivity, final NormalizationSummaryCheckActivity normalizationSummaryCheckActivity, final WebhookOperationActivity webhookOperationActivity, - // final ConfigFetchActivity configFetchActivity, + final ConfigFetchActivity configFetchActivity, final RefreshSchemaActivity refreshSchemaActivity) { return List.of(replicationActivity, normalizationActivity, dbtTransformationActivity, persistStateActivity, normalizationSummaryCheckActivity, - webhookOperationActivity, /* configFetchActivity, */ refreshSchemaActivity); + webhookOperationActivity, configFetchActivity, refreshSchemaActivity); } @Singleton diff --git a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/sync/SyncWorkflowImpl.java b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/sync/SyncWorkflowImpl.java index c839a8a28f237..0aa8eb8e9dc61 100644 --- a/airbyte-workers/src/main/java/io/airbyte/workers/temporal/sync/SyncWorkflowImpl.java +++ b/airbyte-workers/src/main/java/io/airbyte/workers/temporal/sync/SyncWorkflowImpl.java @@ -12,6 +12,7 @@ import static io.airbyte.metrics.lib.ApmTraceConstants.WORKFLOW_TRACE_OPERATION_NAME; import datadog.trace.api.Trace; +import io.airbyte.api.client.model.generated.ConnectionStatus; import io.airbyte.commons.temporal.scheduling.SyncWorkflow; import io.airbyte.config.NormalizationInput; import io.airbyte.config.NormalizationSummary; @@ -21,12 +22,16 @@ import io.airbyte.config.StandardSyncOperation; import io.airbyte.config.StandardSyncOperation.OperatorType; import io.airbyte.config.StandardSyncOutput; +import io.airbyte.config.StandardSyncSummary; +import io.airbyte.config.StandardSyncSummary.ReplicationStatus; +import io.airbyte.config.SyncStats; import io.airbyte.config.WebhookOperationSummary; import io.airbyte.metrics.lib.ApmTraceUtils; import io.airbyte.persistence.job.models.IntegrationLauncherConfig; import io.airbyte.persistence.job.models.JobRunConfig; import io.airbyte.protocol.models.ConfiguredAirbyteCatalog; import io.airbyte.workers.temporal.annotations.TemporalActivityStub; +import io.airbyte.workers.temporal.scheduling.activities.ConfigFetchActivity; import io.temporal.workflow.Workflow; import java.util.Map; import java.util.Optional; @@ -57,10 +62,10 @@ public class SyncWorkflowImpl implements SyncWorkflow { private NormalizationSummaryCheckActivity normalizationSummaryCheckActivity; @TemporalActivityStub(activityOptionsBeanName = "shortActivityOptions") private WebhookOperationActivity webhookOperationActivity; - // @TemporalActivityStub(activityOptionsBeanName = "shortActivityOptions") - // private RefreshSchemaActivity refreshSchemaActivity; - // @TemporalActivityStub(activityOptionsBeanName = "shortActivityOptions") - // private ConfigFetchActivity configFetchActivity; + @TemporalActivityStub(activityOptionsBeanName = "shortActivityOptions") + private RefreshSchemaActivity refreshSchemaActivity; + @TemporalActivityStub(activityOptionsBeanName = "shortActivityOptions") + private ConfigFetchActivity configFetchActivity; @Trace(operationName = WORKFLOW_TRACE_OPERATION_NAME) @Override @@ -79,28 +84,27 @@ public StandardSyncOutput run(final JobRunConfig jobRunConfig, final int version = Workflow.getVersion(VERSION_LABEL, Workflow.DEFAULT_VERSION, CURRENT_VERSION); final String taskQueue = Workflow.getInfo().getTaskQueue(); - // final int autoDetectSchemaVersion = - // Workflow.getVersion(AUTO_DETECT_SCHEMA_TAG, Workflow.DEFAULT_VERSION, - // AUTO_DETECT_SCHEMA_VERSION); - // - // if (autoDetectSchemaVersion >= AUTO_DETECT_SCHEMA_VERSION) { - // final Optional sourceId = configFetchActivity.getSourceId(connectionId); - // - // if (!sourceId.isEmpty() && refreshSchemaActivity.shouldRefreshSchema(sourceId.get())) { - // LOGGER.info("Refreshing source schema..."); - // refreshSchemaActivity.refreshSchema(sourceId.get(), connectionId); - // } - // - // final Optional status = configFetchActivity.getStatus(connectionId); - // if (!status.isEmpty() && ConnectionStatus.INACTIVE == status.get()) { - // LOGGER.info("Connection is disabled. Cancelling run."); - // final StandardSyncOutput output = - // new StandardSyncOutput() - // .withStandardSyncSummary(new - // StandardSyncSummary().withStatus(ReplicationStatus.CANCELLED).withTotalStats(new SyncStats())); - // return output; - // } - // } + final int autoDetectSchemaVersion = + Workflow.getVersion(AUTO_DETECT_SCHEMA_TAG, Workflow.DEFAULT_VERSION, + AUTO_DETECT_SCHEMA_VERSION); + + if (autoDetectSchemaVersion >= AUTO_DETECT_SCHEMA_VERSION) { + final Optional sourceId = configFetchActivity.getSourceId(connectionId); + + if (!sourceId.isEmpty() && refreshSchemaActivity.shouldRefreshSchema(sourceId.get())) { + LOGGER.info("Refreshing source schema..."); + refreshSchemaActivity.refreshSchema(sourceId.get(), connectionId); + } + + final Optional status = configFetchActivity.getStatus(connectionId); + if (!status.isEmpty() && ConnectionStatus.INACTIVE == status.get()) { + LOGGER.info("Connection is disabled. Cancelling run."); + final StandardSyncOutput output = + new StandardSyncOutput() + .withStandardSyncSummary(new StandardSyncSummary().withStatus(ReplicationStatus.CANCELLED).withTotalStats(new SyncStats())); + return output; + } + } StandardSyncOutput syncOutput = replicationActivity.replicate(jobRunConfig, sourceLauncherConfig, destinationLauncherConfig, syncInput, taskQueue); diff --git a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/sync/SyncWorkflowTest.java b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/sync/SyncWorkflowTest.java index 5c73bf469afa1..9a39dd0b9a827 100644 --- a/airbyte-workers/src/test/java/io/airbyte/workers/temporal/sync/SyncWorkflowTest.java +++ b/airbyte-workers/src/test/java/io/airbyte/workers/temporal/sync/SyncWorkflowTest.java @@ -229,8 +229,8 @@ void testSuccess() { verifyNormalize(normalizationActivity, normalizationInput); verifyDbtTransform(dbtTransformationActivity, syncInput.getResourceRequirements(), operatorDbtInput); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); assertEquals( replicationSuccessOutput.withNormalizationSummary(normalizationSummary).getStandardSyncSummary(), actualOutput.getStandardSyncSummary()); @@ -246,8 +246,8 @@ void testReplicationFailure() { assertThrows(WorkflowFailedException.class, this::execute); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyNoInteractions(persistStateActivity); verifyNoInteractions(normalizationActivity); @@ -269,8 +269,8 @@ void testReplicationFailedGracefully() { final StandardSyncOutput actualOutput = execute(); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyPersistState(persistStateActivity, sync, replicationFailOutput, syncInput.getCatalog()); verifyNormalize(normalizationActivity, normalizationInput); @@ -296,8 +296,8 @@ void testNormalizationFailure() { assertThrows(WorkflowFailedException.class, this::execute); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyPersistState(persistStateActivity, sync, replicationSuccessOutput, syncInput.getCatalog()); verifyNormalize(normalizationActivity, normalizationInput); @@ -317,8 +317,8 @@ void testCancelDuringReplication() { assertThrows(WorkflowFailedException.class, this::execute); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyNoInteractions(persistStateActivity); verifyNoInteractions(normalizationActivity); @@ -343,8 +343,8 @@ void testCancelDuringNormalization() { assertThrows(WorkflowFailedException.class, this::execute); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyPersistState(persistStateActivity, sync, replicationSuccessOutput, syncInput.getCatalog()); verifyNormalize(normalizationActivity, normalizationInput); @@ -368,8 +368,8 @@ void testSkipNormalization() { execute(); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); verifyReplication(replicationActivity, syncInput); verifyPersistState(persistStateActivity, sync, replicationSuccessOutputNoRecordsCommitted, syncInput.getCatalog()); verifyNoInteractions(normalizationActivity); @@ -396,16 +396,16 @@ void testWebhookOperation() { assertEquals(actualOutput.getWebhookOperationSummary().getSuccesses().get(0), WEBHOOK_CONFIG_ID); } - // @Test - // void testSkipReplicationAfterRefreshSchema() { - // when(configFetchActivity.getStatus(any())).thenReturn(Optional.of(ConnectionStatus.INACTIVE)); - // final StandardSyncOutput output = execute(); - // verifyShouldRefreshSchema(refreshSchemaActivity); - // verifyRefreshSchema(refreshSchemaActivity, sync); - // verifyNoInteractions(replicationActivity); - // verifyNoInteractions(normalizationActivity); - // assertEquals(output.getStandardSyncSummary().getStatus(), ReplicationStatus.CANCELLED); - // } + @Test + void testSkipReplicationAfterRefreshSchema() { + when(configFetchActivity.getStatus(any())).thenReturn(Optional.of(ConnectionStatus.INACTIVE)); + final StandardSyncOutput output = execute(); + verifyShouldRefreshSchema(refreshSchemaActivity); + verifyRefreshSchema(refreshSchemaActivity, sync); + verifyNoInteractions(replicationActivity); + verifyNoInteractions(normalizationActivity); + assertEquals(output.getStandardSyncSummary().getStatus(), ReplicationStatus.CANCELLED); + } @SuppressWarnings("ResultOfMethodCallIgnored") private void cancelWorkflow() { From 828b32a3a26f7f3b34ffd9abbe4daeb4be247dbf Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Mon, 23 Jan 2023 21:10:23 +0100 Subject: [PATCH 39/56] =?UTF-8?q?=F0=9F=AA=9F=20=F0=9F=94=A7=20Migrate=20f?= =?UTF-8?q?rom=20react-scripts=20to=20Vite=20(#21421)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Migrate to Vite * Continue work on vite migration * More environment fixes * Add CSP headers to dev server * Remove react-scripts * Shim process.env * Cleanup * Create ESLint failure for CI test * create vite-plugins package * Update nodeJS * Make eslint warnings fail build * Remove trailing empty line in nvmrc * Match package.json with nvmrc * Fix eslint test breakage * Revert node upgrade * Remove setupProxy script * Change default API endpoints to be http --- airbyte-webapp/build.gradle | 10 +- airbyte-webapp/craco.config.js | 26 - airbyte-webapp/{public => }/index.html | 11 +- airbyte-webapp/package-lock.json | 5822 ++++++++++++----- airbyte-webapp/package.json | 27 +- .../packages/vite-plugins/doc-middleware.ts | 27 + airbyte-webapp/packages/vite-plugins/index.ts | 2 + .../vite-plugins/patch-react-virtualized.ts | 29 + .../CatalogTree/next/BulkEditPanel.test.tsx | 2 +- airbyte-webapp/src/config/defaultConfig.ts | 4 +- airbyte-webapp/src/config/types.ts | 1 - .../hooks/services/Feature/FeatureService.tsx | 4 + airbyte-webapp/src/hooks/useSegment.tsx | 2 + airbyte-webapp/src/react-app-env.d.ts | 1 - airbyte-webapp/src/setupProxy.js | 24 - airbyte-webapp/src/types/react-app-env.d.ts | 1 - airbyte-webapp/src/types/rehype-urls.d.ts | 1 - .../src/views/common/StoreProvider.tsx | 6 +- airbyte-webapp/src/vite-env.d.ts | 1 + airbyte-webapp/tsconfig.json | 5 +- airbyte-webapp/vite.config.ts | 81 + 21 files changed, 4459 insertions(+), 1628 deletions(-) delete mode 100644 airbyte-webapp/craco.config.js rename airbyte-webapp/{public => }/index.html (68%) create mode 100644 airbyte-webapp/packages/vite-plugins/doc-middleware.ts create mode 100644 airbyte-webapp/packages/vite-plugins/index.ts create mode 100644 airbyte-webapp/packages/vite-plugins/patch-react-virtualized.ts delete mode 100644 airbyte-webapp/src/react-app-env.d.ts delete mode 100644 airbyte-webapp/src/setupProxy.js delete mode 100644 airbyte-webapp/src/types/react-app-env.d.ts create mode 100644 airbyte-webapp/src/vite-env.d.ts create mode 100644 airbyte-webapp/vite.config.ts diff --git a/airbyte-webapp/build.gradle b/airbyte-webapp/build.gradle index 0d58b5218d043..5fd9ee0dce4be 100644 --- a/airbyte-webapp/build.gradle +++ b/airbyte-webapp/build.gradle @@ -106,16 +106,8 @@ task copyNginx(type: Copy) { into "build/docker/bin/nginx" } -task stylelint(type: NpmTask) { - dependsOn npmInstall - args = ['run', 'stylelint'] - inputs.files commonConfigs - inputs.file '.stylelintrc' - inputs.dir 'src' -} - // Those tasks should be run as part of the "check" task -check.dependsOn validateLinks, licenseCheck, test, stylelint +check.dependsOn validateLinks, licenseCheck, test build.dependsOn buildStorybook diff --git a/airbyte-webapp/craco.config.js b/airbyte-webapp/craco.config.js deleted file mode 100644 index 45bea2176cf52..0000000000000 --- a/airbyte-webapp/craco.config.js +++ /dev/null @@ -1,26 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); - -module.exports = { - webpack: { - configure: (webpackConfig) => { - webpackConfig = { - ...webpackConfig, - plugins: [ - ...webpackConfig.plugins.filter((element) => { - if (element.options) { - return !element.options.hasOwnProperty("ignoreOrder"); - } - return true; - }), - new MiniCssExtractPlugin({ - ignoreOrder: true, - filename: "static/css/[name].[contenthash:8].css", - chunkFilename: "static/css/[name].[contenthash:8].chunk.css", - }), - ], - }; - return webpackConfig; - }, - }, -}; diff --git a/airbyte-webapp/public/index.html b/airbyte-webapp/index.html similarity index 68% rename from airbyte-webapp/public/index.html rename to airbyte-webapp/index.html index b04f783d9e6e1..1389418021201 100644 --- a/airbyte-webapp/public/index.html +++ b/airbyte-webapp/index.html @@ -2,7 +2,7 @@ - + - - - + + + Airbyte
    + diff --git a/airbyte-webapp/package-lock.json b/airbyte-webapp/package-lock.json index 01f3d90ec7da9..e3aa44e3f9af0 100644 --- a/airbyte-webapp/package-lock.json +++ b/airbyte-webapp/package-lock.json @@ -73,7 +73,6 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@craco/craco": "^7.0.0-alpha.7", "@storybook/addon-essentials": "^6.5.7", "@storybook/builder-webpack5": "^6.5.7", "@storybook/manager-webpack5": "^6.5.7", @@ -105,14 +104,16 @@ "@types/unist": "^2.0.5", "@typescript-eslint/eslint-plugin": "^5.27.1", "@typescript-eslint/parser": "^5.27.1", + "@vitejs/plugin-basic-ssl": "^1.0.1", + "@vitejs/plugin-react": "^3.0.1", "babel-jest": "^29.3.1", "dotenv": "^16.0.3", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^8.6.0", "eslint-config-react-app": "^7.0.1", "eslint-plugin-css-modules": "^2.11.0", "eslint-plugin-jest": "^26.5.3", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-unused-imports": "^2.0.0", "express": "^4.18.1", "husky": "^8.0.1", @@ -120,11 +121,11 @@ "jest-environment-jsdom": "^29.3.1", "license-checker": "^25.0.1", "lint-staged": "^12.3.7", - "mini-css-extract-plugin": "^2.6.1", + "meow": "^9.0.0", "node-fetch": "^2.6.7", + "optionator": "^0.9.1", "orval": "^6.11.0-alpha.10", "prettier": "^2.6.2", - "react-scripts": "^5.0.1", "react-select-event": "^5.5.0", "storybook-addon-mock": "^2.4.1", "stylelint": "^14.9.1", @@ -136,7 +137,11 @@ "timezone-mock": "^1.3.4", "tmpl": "^1.0.5", "ts-node": "^10.8.1", - "typescript": "^4.7.3" + "typescript": "^4.7.3", + "vite": "^4.0.4", + "vite-plugin-checker": "^0.5.3", + "vite-plugin-svgr": "^2.4.0", + "vite-tsconfig-paths": "^4.0.3" }, "engines": { "node": "16.18.1" @@ -1732,6 +1737,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz", "integrity": "sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ==", "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1788,6 +1794,36 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", @@ -2326,24 +2362,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -2433,119 +2456,6 @@ "node": ">=0.1.90" } }, - "node_modules/@craco/craco": { - "version": "7.0.0-alpha.7", - "resolved": "https://registry.npmjs.org/@craco/craco/-/craco-7.0.0-alpha.7.tgz", - "integrity": "sha512-3RU+Ur1GvBQKDBL1JhssSgazc8s3pMAgndyS+95UaXdMTuozpI9h4k4OokQRRjiLmr7i0y39l6fBZvknGj2i1w==", - "dev": true, - "dependencies": { - "autoprefixer": "^10.4.7", - "cosmiconfig": "^7.0.1", - "cosmiconfig-typescript-loader": "^2.0.2", - "cross-spawn": "^7.0.3", - "lodash": "^4.17.21", - "semver": "^7.3.7", - "webpack-merge": "^5.8.0" - }, - "bin": { - "craco": "dist/bin/craco.js" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "react-scripts": "^5.0.0" - } - }, - "node_modules/@craco/craco/node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/@craco/craco/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@craco/craco/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@craco/craco/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -2562,7 +2472,8 @@ "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@datadog/browser-core": { "version": "4.21.2", @@ -2767,6 +2678,150 @@ "node": ">=12" } }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/linux-loong64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", @@ -2783,11 +2838,188 @@ "node": ">=12" } }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2808,6 +3040,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2823,6 +3056,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, + "peer": true, "engines": { "node": ">= 4" } @@ -2832,6 +3066,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -3745,6 +3980,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, + "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -3758,7 +3994,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@ibm-cloud/openapi-ruleset": { "version": "0.37.3", @@ -6230,6 +6467,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", "dev": true, + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" @@ -6274,6 +6512,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "dev": true, + "peer": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -6294,6 +6533,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6303,6 +6543,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "dev": true, + "peer": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -7927,6 +8168,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "node_modules/@storybook/builder-webpack4/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/@storybook/builder-webpack4/node_modules/enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -8347,6 +8594,23 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/@storybook/builder-webpack4/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@storybook/builder-webpack4/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -8535,18 +8799,6 @@ "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==", "dev": true }, - "node_modules/@storybook/builder-webpack5/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/clean-css": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", @@ -8991,24 +9243,6 @@ "node": ">=6" } }, - "node_modules/@storybook/builder-webpack5/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -9043,12 +9277,6 @@ } } }, - "node_modules/@storybook/builder-webpack5/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz", @@ -9608,6 +9836,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@storybook/core-common/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/@storybook/core-common/node_modules/enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -10066,6 +10300,23 @@ "node": ">=8" } }, + "node_modules/@storybook/core-common/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@storybook/core-common/node_modules/terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", @@ -10880,6 +11131,23 @@ "node": ">=8" } }, + "node_modules/@storybook/core-server/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@storybook/core-server/node_modules/terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", @@ -10903,6 +11171,12 @@ "webpack": "^4.0.0" } }, + "node_modules/@storybook/core-server/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/@storybook/core-server/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -11396,6 +11670,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@storybook/manager-webpack4/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/@storybook/manager-webpack4/node_modules/enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -11842,6 +12122,23 @@ "node": ">=8" } }, + "node_modules/@storybook/manager-webpack4/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@storybook/manager-webpack4/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -12021,18 +12318,6 @@ "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==", "dev": true }, - "node_modules/@storybook/manager-webpack5/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/@storybook/manager-webpack5/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12617,24 +12902,6 @@ "node": ">=6" } }, - "node_modules/@storybook/manager-webpack5/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/manager-webpack5/node_modules/terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -12669,12 +12936,6 @@ } } }, - "node_modules/@storybook/manager-webpack5/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/@storybook/manager-webpack5/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -13797,6 +14058,7 @@ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", "dev": true, + "peer": true, "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", @@ -13809,6 +14071,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -13824,6 +14087,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13863,6 +14127,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13876,6 +14141,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13889,6 +14155,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13902,6 +14169,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13915,6 +14183,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -13928,6 +14197,7 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", "dev": true, + "peer": true, "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", @@ -13951,6 +14221,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", "dev": true, + "peer": true, "dependencies": { "@svgr/plugin-jsx": "^5.5.0", "camelcase": "^6.2.0", @@ -13969,6 +14240,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, + "peer": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -13985,6 +14257,7 @@ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.12.6" }, @@ -14001,6 +14274,7 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@svgr/babel-preset": "^5.5.0", @@ -14020,6 +14294,7 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", "dev": true, + "peer": true, "dependencies": { "cosmiconfig": "^7.0.0", "deepmerge": "^4.2.2", @@ -14038,6 +14313,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, + "peer": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -14054,6 +14330,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14063,6 +14340,7 @@ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/plugin-transform-react-constant-elements": "^7.12.1", @@ -14086,6 +14364,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -14101,6 +14380,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, + "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -14175,15 +14455,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/@testing-library/dom/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -14276,15 +14547,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/@testing-library/jest-dom/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -14444,6 +14706,7 @@ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, + "peer": true, "engines": { "node": ">=10.13.0" } @@ -14530,6 +14793,7 @@ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, + "peer": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -14540,6 +14804,7 @@ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -14549,6 +14814,7 @@ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -14558,6 +14824,7 @@ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dev": true, + "peer": true, "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -14616,6 +14883,7 @@ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, + "peer": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -14628,6 +14896,7 @@ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -14687,6 +14956,7 @@ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -14816,7 +15086,8 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@types/minimatch": { "version": "3.0.3", @@ -14894,7 +15165,8 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@types/qs": { "version": "6.9.6", @@ -14916,7 +15188,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@types/react": { "version": "17.0.39", @@ -15035,6 +15308,7 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -15043,7 +15317,8 @@ "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@types/sanitize-html": { "version": "2.6.2", @@ -15069,6 +15344,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, + "peer": true, "dependencies": { "@types/express": "*" } @@ -15078,6 +15354,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, + "peer": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -15088,6 +15365,7 @@ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -15140,7 +15418,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@types/uglify-js": { "version": "3.12.0", @@ -15235,6 +15514,7 @@ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -15823,6 +16103,58 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.1.tgz", + "integrity": "sha512-mx+QvYwIbbpOIJw+hypjnW1lAbKDHtWK5ibkF/V1/oMBu8HU/chb+SnqJDAsLq1+7rGqjktCEomMTM5KShzUKQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.7", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0" + } + }, + "node_modules/@vitejs/plugin-react/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitejs/plugin-react/node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -16192,6 +16524,7 @@ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, + "peer": true, "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", @@ -16221,6 +16554,7 @@ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, + "peer": true, "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -16234,6 +16568,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -16249,6 +16584,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -16501,7 +16837,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/argparse": { "version": "2.0.1", @@ -16509,18 +16846,48 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/aria-query/node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" }, - "engines": { - "node": ">=6.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aria-query/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -16561,18 +16928,19 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -16627,14 +16995,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16785,6 +17154,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, + "peer": true, "dependencies": { "lodash": "^4.17.14" } @@ -16851,19 +17221,68 @@ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz", + "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/axobject-query/node_modules/deep-equal": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axobject-query/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/babel-jest": { @@ -17266,6 +17685,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", "dev": true, + "peer": true, "peerDependencies": { "@babel/core": "^7.1.0" } @@ -17562,7 +17982,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "dev": true, + "peer": true }, "node_modules/better-opn": { "version": "2.1.1", @@ -17597,6 +18018,7 @@ "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", "dev": true, + "peer": true, "dependencies": { "bluebird": "^3.5.5", "check-types": "^11.1.1", @@ -17716,6 +18138,7 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, + "peer": true, "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", @@ -17901,7 +18324,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "dev": true, + "peer": true }, "node_modules/browserify-aes": { "version": "1.2.0", @@ -18053,7 +18477,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -18066,6 +18491,7 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", "dev": true, + "peer": true, "engines": { "node": ">=6" }, @@ -18316,27 +18742,50 @@ } }, "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "optional": true, "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" + } + }, + "node_modules/camelcase-keys/node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/camelize": { @@ -18349,6 +18798,7 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -18467,7 +18917,8 @@ "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/chokidar": { "version": "3.5.3", @@ -18782,6 +19233,7 @@ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, + "peer": true, "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", @@ -18896,6 +19348,7 @@ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "peer": true, "engines": { "node": ">=4.0.0" } @@ -19018,6 +19471,7 @@ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, + "peer": true, "engines": { "node": ">=0.8" } @@ -19203,41 +19657,6 @@ "node": ">=8" } }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz", - "integrity": "sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7", - "ts-node": "^10.8.1" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "typescript": ">=3" - } - }, - "node_modules/cosmiconfig-typescript-loader/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cp-file": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", @@ -19629,6 +20048,7 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -19704,6 +20124,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^3.2.1", @@ -19715,7 +20136,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true + "dev": true, + "peer": true }, "node_modules/css-to-react-native": { "version": "3.0.0", @@ -19732,6 +20154,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, + "peer": true, "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" @@ -19745,6 +20168,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -19759,6 +20183,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true, + "peer": true, "engines": { "node": ">= 6" }, @@ -19776,7 +20201,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/cssesc": { "version": "3.0.0", @@ -19795,6 +20221,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, + "peer": true, "dependencies": { "css-tree": "^1.1.2" }, @@ -19807,6 +20234,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", "dev": true, + "peer": true, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -19819,13 +20247,15 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "peer": true }, "node_modules/csso/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -20127,6 +20557,7 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, + "peer": true, "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -20171,6 +20602,186 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser-id/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "optional": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "optional": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "optional": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "optional": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "optional": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "optional": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "optional": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "optional": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "optional": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id/node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -20263,7 +20874,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "dev": true, + "peer": true }, "node_modules/degenerator": { "version": "3.0.2", @@ -20401,6 +21013,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -20503,6 +21116,7 @@ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", "dev": true, + "peer": true, "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" @@ -20520,6 +21134,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -20528,7 +21143,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "peer": true }, "node_modules/detect-port/node_modules/debug": { "version": "2.6.9", @@ -20550,6 +21166,7 @@ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "dev": true, + "peer": true, "dependencies": { "acorn-node": "^1.6.1", "defined": "^1.0.0", @@ -20576,7 +21193,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/diff": { "version": "5.1.0", @@ -20628,19 +21246,22 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true + "dev": true, + "peer": true }, "node_modules/dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, + "peer": true, "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" @@ -20651,6 +21272,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, + "peer": true, "dependencies": { "buffer-indexof": "^1.0.0" } @@ -20695,6 +21317,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, + "peer": true, "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" @@ -20710,7 +21333,8 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "peer": true }, "node_modules/dom-walk": { "version": "0.1.2", @@ -20732,7 +21356,8 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "dev": true, + "peer": true }, "node_modules/domexception": { "version": "4.0.0", @@ -20776,6 +21401,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, + "peer": true, "dependencies": { "dom-serializer": "0", "domelementtype": "1" @@ -20816,7 +21442,8 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/duplexify": { "version": "3.7.1", @@ -20871,6 +21498,7 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", "dev": true, + "peer": true, "dependencies": { "jake": "^10.8.5" }, @@ -21159,6 +21787,15 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -21673,6 +22310,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, + "peer": true, "dependencies": { "@eslint/eslintrc": "^1.0.5", "@humanwhocodes/config-array": "^0.9.2", @@ -21721,9 +22359,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -22005,23 +22643,26 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.18.9", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.3", - "axobject-query": "^2.2.0", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.3.2", - "language-tags": "^1.0.5", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", "semver": "^6.3.0" }, "engines": { @@ -22038,15 +22679,15 @@ "dev": true }, "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" }, "peerDependencies": { "eslint": ">=7.28.0", @@ -22223,6 +22864,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -22238,6 +22880,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -22254,6 +22897,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -22265,13 +22909,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -22284,6 +22930,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -22297,6 +22944,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -22306,6 +22954,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "peer": true, "engines": { "node": ">=4.0" } @@ -22315,6 +22964,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -22327,6 +22977,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -22342,6 +22993,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -22351,6 +23003,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -22363,6 +23016,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -22375,6 +23029,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, + "peer": true, "dependencies": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", @@ -22389,6 +23044,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -22401,6 +23057,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -22423,6 +23080,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -22435,6 +23093,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, + "peer": true, "engines": { "node": ">=4.0" } @@ -23319,6 +23978,7 @@ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", "dev": true, + "peer": true, "dependencies": { "minimatch": "^5.0.1" } @@ -23328,6 +23988,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -23337,6 +23998,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -23349,6 +24011,7 @@ "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", "dev": true, + "peer": true, "engines": { "node": ">= 0.4.0" } @@ -23546,6 +24209,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "peer": true, "engines": { "node": ">=4.0" }, @@ -23555,6 +24219,15 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -23817,6 +24490,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, + "peer": true, "engines": { "node": "*" }, @@ -24146,7 +24820,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/get-package-type": { "version": "0.1.0", @@ -24431,6 +25106,12 @@ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/gonzales-pe": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", @@ -24446,6 +25127,18 @@ "node": ">=0.6.0" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -24457,6 +25150,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "peer": true, "dependencies": { "duplexer": "^0.1.2" }, @@ -24471,7 +25165,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/handlebars": { "version": "4.7.7", @@ -24516,7 +25211,8 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/has": { "version": "1.0.3", @@ -24922,6 +25618,7 @@ "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", "dev": true, + "peer": true, "engines": { "node": ">= 6.0.0" } @@ -24937,6 +25634,7 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, + "peer": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -24949,6 +25647,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -24964,6 +25663,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -25016,6 +25716,38 @@ "node": ">= 6" } }, + "node_modules/html-minifier-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/html-tags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", @@ -25130,7 +25862,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "dev": true, + "peer": true }, "node_modules/http-errors": { "version": "2.0.0", @@ -25170,13 +25903,15 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "peer": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -25475,6 +26210,7 @@ "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", "dev": true, + "peer": true, "dependencies": { "harmony-reflect": "^1.4.6" }, @@ -25756,12 +26492,13 @@ } }, "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -25770,6 +26507,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -25880,10 +26631,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -26036,7 +26790,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "dev": true, + "peer": true }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -26078,6 +26833,7 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -26096,6 +26852,7 @@ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -26105,6 +26862,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -26160,6 +26918,7 @@ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -26169,6 +26928,7 @@ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -26233,6 +26993,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -26246,6 +27025,15 @@ "dev": true, "optional": true }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -26258,6 +27046,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -26457,6 +27258,7 @@ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dev": true, + "peer": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -26475,6 +27277,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -26489,13 +27292,15 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -26512,6 +27317,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -26523,13 +27329,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -26539,6 +27347,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -28070,6 +28879,7 @@ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", @@ -28098,6 +28908,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -28115,6 +28926,7 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, + "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -28130,6 +28942,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -28147,6 +28960,7 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -28161,6 +28975,7 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, + "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -28175,6 +28990,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -28190,6 +29006,7 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -28216,6 +29033,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -28232,6 +29050,7 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -28241,6 +29060,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -28250,6 +29070,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -28265,6 +29086,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -28287,6 +29109,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "peer": true, "engines": { "node": ">=8" } @@ -28296,6 +29119,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -28307,13 +29131,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/jest-jasmine2/node_modules/expect": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -28329,6 +29155,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -28338,6 +29165,7 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -28354,6 +29182,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -28380,6 +29209,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -28400,6 +29230,7 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -28413,6 +29244,7 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "dev": true, + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -28422,6 +29254,7 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -28455,6 +29288,7 @@ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -28468,6 +29302,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -28501,6 +29336,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -28518,6 +29354,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -28532,6 +29369,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -28547,6 +29385,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -28562,6 +29401,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -28571,6 +29411,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -29038,6 +29879,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -29081,6 +29923,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -29097,6 +29940,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -29106,6 +29950,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -29121,6 +29966,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -29143,6 +29989,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "peer": true, "engines": { "node": ">=8" } @@ -29152,6 +29999,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -29163,13 +30011,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -29179,6 +30029,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -29205,6 +30056,7 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "dev": true, + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -29214,6 +30066,7 @@ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -29227,6 +30080,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -29244,6 +30098,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -29258,6 +30113,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -29273,6 +30129,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -30511,6 +31368,7 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -30528,6 +31386,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -30544,6 +31403,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -30553,6 +31413,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -30568,6 +31429,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -30584,6 +31446,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -30595,13 +31458,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -30611,6 +31476,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -31088,7 +31954,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/json-schema-ref-parser": { "version": "5.1.3", @@ -31144,7 +32011,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "dev": true, + "peer": true }, "node_modules/json2mq": { "version": "0.2.0", @@ -31732,13 +32600,15 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true + "dev": true, + "peer": true }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/lodash.omit": { "version": "4.5.0", @@ -31752,11 +32622,18 @@ "integrity": "sha512-5OrRcIVR75M288p4nbI2WLAf3ndw2GD9fyNv3Bc15+WCxJDdZ4lYndSxGd7hnG6PVjiJTeJE2dHEGhIuKGicIQ==", "dev": true }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true + "dev": true, + "peer": true }, "node_modules/lodash.throttle": { "version": "4.1.1", @@ -32657,7 +33534,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/mdurl": { "version": "1.0.1", @@ -32759,149 +33637,83 @@ } }, "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, - "optional": true, "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "optional": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "node": ">=10" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "optional": true, "dependencies": { - "repeating": "^2.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/meow/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "optional": true, "dependencies": { - "pinkie-promise": "^2.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/meow/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "node_modules/meow/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "optional": true, "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "optional": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/meow/node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "optional": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", - "dev": true, - "optional": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" + "node": ">=10" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge-descriptors": { @@ -33963,6 +34775,7 @@ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dev": true, + "peer": true, "dependencies": { "schema-utils": "^4.0.0" }, @@ -33982,6 +34795,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -33998,6 +34812,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -34009,13 +34824,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -34274,6 +35091,7 @@ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, + "peer": true, "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" @@ -34286,7 +35104,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true + "dev": true, + "peer": true }, "node_modules/nan": { "version": "2.16.0", @@ -34671,6 +35490,7 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -34713,6 +35533,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, + "peer": true, "dependencies": { "boolbase": "~1.0.0" } @@ -34900,6 +35721,7 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "dev": true, + "peer": true, "engines": { "node": ">= 6" } @@ -34914,12 +35736,12 @@ } }, "node_modules/object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "engines": { @@ -34969,28 +35791,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -35073,7 +35895,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/on-finished": { "version": "2.4.1", @@ -35825,7 +36648,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "dev": true, + "peer": true }, "node_modules/picocolors": { "version": "1.0.0", @@ -35867,7 +36691,7 @@ "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "optional": true, "engines": { @@ -35877,7 +36701,7 @@ "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "optional": true, "dependencies": { @@ -35913,6 +36737,7 @@ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, + "peer": true, "dependencies": { "find-up": "^3.0.0" }, @@ -35925,6 +36750,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "peer": true, "dependencies": { "locate-path": "^3.0.0" }, @@ -35937,6 +36763,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "peer": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -35950,6 +36777,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "peer": true, "dependencies": { "p-limit": "^2.0.0" }, @@ -35962,6 +36790,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -36020,6 +36849,7 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, + "peer": true, "dependencies": { "async": "^2.6.2", "debug": "^3.1.1", @@ -36034,6 +36864,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -36078,6 +36909,7 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.1.tgz", "integrity": "sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==", "dev": true, + "peer": true, "dependencies": { "lilconfig": "^2.0.4", "yaml": "^1.10.2" @@ -36333,6 +37165,7 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, + "peer": true, "engines": { "node": ">=6" }, @@ -36425,6 +37258,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", "dev": true, + "peer": true, "dependencies": { "asap": "~2.0.6" } @@ -36693,6 +37527,7 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true, + "peer": true, "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -36779,6 +37614,7 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -36791,6 +37627,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, + "peer": true, "dependencies": { "performance-now": "^2.1.0" } @@ -36938,6 +37775,7 @@ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", "dev": true, + "peer": true, "dependencies": { "core-js": "^3.19.2", "object-assign": "^4.1.1", @@ -36985,6 +37823,7 @@ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -37020,6 +37859,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -37035,6 +37875,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -37051,6 +37892,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -37062,13 +37904,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-dev-utils/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -37081,6 +37925,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -37097,6 +37942,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -37106,6 +37952,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", "dev": true, + "peer": true, "engines": { "node": ">= 12.13.0" } @@ -37115,6 +37962,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -37130,6 +37978,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -37145,6 +37994,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -37160,6 +38010,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -37269,7 +38120,8 @@ "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-fast-compare": { "version": "2.0.4", @@ -37767,6 +38619,7 @@ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", @@ -37840,6 +38693,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -37857,6 +38711,7 @@ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", @@ -37904,6 +38759,7 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, + "peer": true, "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -37919,6 +38775,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -37936,6 +38793,7 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -37950,6 +38808,7 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", @@ -37994,6 +38853,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38003,6 +38863,7 @@ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", "dev": true, + "peer": true, "dependencies": { "@sinclair/typebox": "^0.24.1" }, @@ -38015,6 +38876,7 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, + "peer": true, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -38029,6 +38891,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38038,6 +38901,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -38053,6 +38917,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, + "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", @@ -38068,6 +38933,7 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -38094,6 +38960,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38103,6 +38970,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -38119,6 +38987,7 @@ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", "dev": true, + "peer": true, "dependencies": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", @@ -38169,6 +39038,7 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "peer": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -38177,13 +39047,15 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/@types/yargs": { "version": "16.0.5", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -38193,6 +39065,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -38205,6 +39078,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, + "peer": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -38215,6 +39089,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -38227,6 +39102,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -38242,6 +39118,7 @@ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.19.1", "caniuse-lite": "^1.0.30001297", @@ -38269,6 +39146,7 @@ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, + "peer": true, "dependencies": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", @@ -38291,6 +39169,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -38306,6 +39185,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, + "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" @@ -38322,6 +39202,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -38344,6 +39225,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "peer": true, "engines": { "node": ">=8" } @@ -38353,6 +39235,7 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.3.tgz", "integrity": "sha512-qjywD7LvpZJ5+E16lf00GnMVUX5TEVBcKW1/vtGPgAerHwRwE4JP4p1Y40zbLnup2ZfWsd30P2bHdoAKH93XxA==", "dev": true, + "peer": true, "dependencies": { "source-map": "~0.6.0" }, @@ -38365,6 +39248,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38374,6 +39258,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -38385,13 +39270,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, + "peer": true, "engines": { "node": ">= 12" } @@ -38401,6 +39288,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, + "peer": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -38417,6 +39305,7 @@ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz", "integrity": "sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -38435,6 +39324,7 @@ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", "dev": true, + "peer": true, "dependencies": { "timsort": "^0.3.0" }, @@ -38450,6 +39340,7 @@ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz", "integrity": "sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -38468,6 +39359,7 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, + "peer": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.2.15", @@ -38494,6 +39386,7 @@ "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", "dev": true, + "peer": true, "dependencies": { "cssnano": "^5.0.6", "jest-worker": "^27.0.2", @@ -38532,6 +39425,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -38548,6 +39442,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -38560,6 +39455,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -38579,6 +39475,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38588,6 +39485,7 @@ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz", "integrity": "sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==", "dev": true, + "peer": true, "bin": { "css-prefers-color-scheme": "dist/cli.cjs" }, @@ -38603,6 +39501,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^5.1.0", @@ -38619,6 +39518,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, + "peer": true, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -38632,6 +39532,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38641,6 +39542,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true, + "peer": true, "engines": { "node": ">= 6" }, @@ -38653,6 +39555,7 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.16.tgz", "integrity": "sha512-ryhRI9/B9VFCwPbb1z60LLK5/ldoExi7nwdnJzpkLZkm2/r7j2X3jfY+ZvDVJhC/0fPZlrAguYdHNFg0iglPKQ==", "dev": true, + "peer": true, "dependencies": { "cssnano-preset-default": "^5.1.11", "lilconfig": "^2.0.3", @@ -38674,6 +39577,7 @@ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.11.tgz", "integrity": "sha512-ETet5hqHxmzQq2ynXMOQofKuLm7VOjMiOB7E2zdtm/hSeCKlD9fabzIUV4GoPcRyJRHi+4kGf0vsfGYbQ4nmPw==", "dev": true, + "peer": true, "dependencies": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^3.0.1", @@ -38717,6 +39621,7 @@ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.1.tgz", "integrity": "sha512-VNCHL364lh++/ono+S3j9NlUK+d97KNkxI77NlqZU2W3xd2/qmyN61dsa47pTpb55zuU4G4lI7qFjAXZJH1OAQ==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -38728,13 +39633,15 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, + "peer": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -38749,6 +39656,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -38758,6 +39666,7 @@ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "peer": true, "dependencies": { "execa": "^5.0.0" }, @@ -38770,6 +39679,7 @@ "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, + "peer": true, "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -38792,6 +39702,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, + "peer": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -38811,13 +39722,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "peer": true }, "node_modules/react-scripts/node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, + "peer": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -38830,6 +39743,7 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -38839,6 +39753,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, + "peer": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -38853,6 +39768,7 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -38862,6 +39778,7 @@ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -38874,6 +39791,7 @@ "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", "dev": true, + "peer": true, "dependencies": { "@types/eslint": "^7.28.2", "jest-worker": "^27.3.1", @@ -38898,6 +39816,7 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -38913,6 +39832,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "peer": true, "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -38925,6 +39845,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -38941,6 +39862,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -38953,6 +39875,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -38962,6 +39885,7 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, + "peer": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, @@ -38973,13 +39897,15 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, + "peer": true, "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -39001,6 +39927,7 @@ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", "dev": true, + "peer": true, "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -39024,6 +39951,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz", "integrity": "sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g==", "dev": true, + "peer": true, "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -39043,6 +39971,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -39055,6 +39984,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -39067,6 +39997,7 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, + "peer": true, "engines": { "node": ">= 10" } @@ -39076,6 +40007,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -39085,6 +40017,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -39110,6 +40043,7 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "execa": "^5.0.0", @@ -39124,6 +40058,7 @@ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -39154,6 +40089,7 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -39188,6 +40124,7 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", @@ -39231,6 +40168,7 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, + "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -39243,6 +40181,7 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -39259,6 +40198,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -39277,6 +40217,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -39294,6 +40235,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -39320,6 +40262,7 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, + "peer": true, "dependencies": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" @@ -39333,6 +40276,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -39353,6 +40297,7 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -39366,6 +40311,7 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "dev": true, + "peer": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } @@ -39375,6 +40321,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", @@ -39389,6 +40336,7 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, + "peer": true, "dependencies": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", @@ -39421,6 +40369,7 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -39454,6 +40403,7 @@ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -39467,6 +40417,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -39500,6 +40451,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -39517,6 +40469,7 @@ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "dev": true, + "peer": true, "dependencies": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", @@ -39538,6 +40491,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -39555,6 +40509,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -39564,6 +40519,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", "dev": true, + "peer": true, "dependencies": { "@jest/console": "^28.1.3", "@jest/types": "^28.1.3", @@ -39579,6 +40535,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", "dev": true, + "peer": true, "dependencies": { "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -39596,6 +40553,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.19.tgz", "integrity": "sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ==", "dev": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -39605,6 +40563,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -39617,6 +40576,7 @@ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -39629,6 +40589,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^28.1.3", @@ -39649,6 +40610,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -39658,6 +40620,7 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", "dev": true, + "peer": true, "engines": { "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } @@ -39667,6 +40630,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", "dev": true, + "peer": true, "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -39684,6 +40648,7 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", "dev": true, + "peer": true, "dependencies": { "@jest/test-result": "^28.1.3", "@jest/types": "^28.1.3", @@ -39703,6 +40668,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -39716,6 +40682,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -39728,6 +40695,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", "dev": true, + "peer": true, "dependencies": { "@jest/schemas": "^28.1.3", "ansi-regex": "^5.0.1", @@ -39743,6 +40711,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -39755,6 +40724,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", "dev": true, + "peer": true, "dependencies": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" @@ -39771,6 +40741,7 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", "dev": true, + "peer": true, "engines": { "node": ">=12.20" } @@ -39780,6 +40751,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -39795,6 +40767,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -39807,6 +40780,7 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, + "peer": true, "dependencies": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", @@ -39825,6 +40799,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -39839,6 +40814,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -39854,6 +40830,7 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, + "peer": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -39900,6 +40877,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, + "peer": true, "engines": { "node": ">=8.3.0" }, @@ -39920,13 +40898,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -39942,6 +40922,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -39956,6 +40937,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -39970,13 +40952,15 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/node-forge": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", "dev": true, + "peer": true, "engines": { "node": ">= 6.13.0" } @@ -39986,6 +40970,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -39998,6 +40983,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -40013,6 +40999,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -40028,6 +41015,7 @@ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, + "peer": true, "dependencies": { "@types/retry": "^0.12.0", "retry": "^0.13.1" @@ -40041,6 +41029,7 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dev": true, + "peer": true, "dependencies": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", @@ -40059,6 +41048,7 @@ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.2" }, @@ -40071,6 +41061,7 @@ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", "dev": true, + "peer": true, "engines": { "node": ">=8" }, @@ -40084,6 +41075,7 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.3.tgz", "integrity": "sha512-EGM2EBBWqP57N0E7N7WOLT116PJ39dwHVU01WO4XPPQLJfkL2xVgkMZ+TZvCfapj/uJH07UEfKHQNPHzSw/14Q==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.0.2" @@ -40097,6 +41089,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz", "integrity": "sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40112,6 +41105,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz", "integrity": "sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40127,6 +41121,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40142,6 +41137,7 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.4.tgz", "integrity": "sha512-rYlC5015aNqVQt/B6Cy156g7sH5tRUJGmT9xeagYthtKehetbKx7jHxhyLpulP4bs4vbp8u/B2rac0J7S7qPQg==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -40160,6 +41156,7 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.3.tgz", "integrity": "sha512-fVkjHm2T0PSMqXUCIhHNWVGjhB9mHEWX2GboVs7j3iCgr6FpIl9c/IdXy0PHWZSQ9LFTRgmj98amxJE6KOnlsA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40175,6 +41172,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", "dev": true, + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -40187,6 +41185,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.3.tgz", "integrity": "sha512-rtu3otIeY532PnEuuBrIIe+N+pcdbX/7JMZfrcL09wc78YayrHw5E8UkDfvnlOhEUrI4ptCuzXQfj+Or6spbGA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40202,6 +41201,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -40217,6 +41217,7 @@ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz", "integrity": "sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -40232,6 +41233,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.2.tgz", "integrity": "sha512-6VQ3pYTsJHEsN2Bic88Aa7J/Brn4Bv8j/rqaFQZkH+pcVkKYwxCIvoMQkykEW7fBjmofdTnQgcivt5CCBJhtrg==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -40244,6 +41246,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.2.tgz", "integrity": "sha512-LKY81YjUjc78p6rbXIsnppsaFo8XzCoMZkXVILJU//sK0DgPkPSpuq/cZvHss3EtdKvWNYgWzQL+wiJFtEET4g==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -40256,6 +41259,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.2.tgz", "integrity": "sha512-SxBsbTjlsKUvZLL+dMrdWauuNZU8TBq5IOL/DHa6jBUSXFEwmDqeXRfTIK/FQpPTa8MJMxEHjSV3UbiuyLARPQ==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -40268,6 +41272,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.3.tgz", "integrity": "sha512-yRTXknIZA4k8Yo4FiF1xbsLj/VBxfXEWxJNIrtIy6HC9KQ4xJxcPtoaaskh6QptCGrrcGnhKsTsENTRPZOBu4g==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -40280,6 +41285,7 @@ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz", "integrity": "sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40295,6 +41301,7 @@ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.4.tgz", "integrity": "sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40310,6 +41317,7 @@ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", "dev": true, + "peer": true, "peerDependencies": { "postcss": "^8.1.4" } @@ -40319,6 +41327,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz", "integrity": "sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -40334,6 +41343,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz", "integrity": "sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -40349,6 +41359,7 @@ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", "dev": true, + "peer": true, "peerDependencies": { "postcss": "^8.1.0" } @@ -40358,6 +41369,7 @@ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz", "integrity": "sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==", "dev": true, + "peer": true, "engines": { "node": "^12 || ^14 || >=16" }, @@ -40370,6 +41382,7 @@ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz", "integrity": "sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40385,6 +41398,7 @@ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", "dev": true, + "peer": true, "peerDependencies": { "postcss": "^8.0.0" } @@ -40394,6 +41408,7 @@ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", "dev": true, + "peer": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -40413,6 +41428,7 @@ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz", "integrity": "sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40428,6 +41444,7 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, + "peer": true, "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", @@ -40450,6 +41467,7 @@ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.3.tgz", "integrity": "sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==", "dev": true, + "peer": true, "engines": { "node": "^12 || ^14 || >=16" }, @@ -40462,6 +41480,7 @@ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", "dev": true, + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -40474,6 +41493,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.5.tgz", "integrity": "sha512-R2BCPJJ/U2oh1uTWEYn9CcJ7MMcQ1iIbj9wfr2s/zHu5om5MP/ewKdaunpfJqR1WYzqCsgnXuRoVXPAzxdqy8g==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.0.2" @@ -40490,6 +41510,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.5.tgz", "integrity": "sha512-3Oa26/Pb9VOFVksJjFG45SNoe4nhGvJ2Uc6TlRimqF8uhfOCEhVCaJ3rvEat5UFOn2UZqTY5Da8dFgCh3Iq0Ug==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -40508,6 +41529,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.3.tgz", "integrity": "sha512-bC45rVzEwsLhv/cL1eCjoo2OOjbSk9I7HKFBYnBvtyuIZlf7uMipMATXtA0Fc3jwPo3wuPIW1jRJWKzflMh1sA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40523,6 +41545,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.5.tgz", "integrity": "sha512-/YjvXs8PepsoiZAIpjstOO4IHKwFAqYNqbA1yVdqklM84tbUUneh6omJxGlRlF3mi6K5Pa067Mg6IwqEnYC8Zg==", "dev": true, + "peer": true, "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.0.1", @@ -40540,6 +41563,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.4.tgz", "integrity": "sha512-Z0vjod9lRZEmEPfEmA2sCfjbfEEFKefMD3RDIQSUfXK4LpCyWkX1CniUgyNvnjJFLDPSxtgKzozhHhPHKoeGkg==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "cssnano-utils": "^3.0.1", @@ -40557,6 +41581,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.2.tgz", "integrity": "sha512-gpn1nJDMCf3g32y/7kl+jsdamhiYT+/zmEt57RoT9GmzlixBNRPohI7k8UIHelLABhdLf3MSZhtM33xuH5eQOQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -40572,6 +41597,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -40584,6 +41610,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, + "peer": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -40601,6 +41628,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -40616,6 +41644,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "peer": true, "dependencies": { "icss-utils": "^5.0.0" }, @@ -40631,6 +41660,7 @@ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.6" }, @@ -40650,6 +41680,7 @@ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -40665,6 +41696,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", "dev": true, + "peer": true, "dependencies": { "@csstools/normalize.css": "*", "postcss-browser-comments": "^4", @@ -40683,6 +41715,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.2.tgz", "integrity": "sha512-fEMhYXzO8My+gC009qDc/3bgnFP8Fv1Ic8uw4ec4YTlhIOw63tGPk1YFd7fk9bZUf1DAbkhiL/QPWs9JLqdF2g==", "dev": true, + "peer": true, "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -40695,6 +41728,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.2.tgz", "integrity": "sha512-RxXoJPUR0shSjkMMzgEZDjGPrgXUVYyWA/YwQRicb48H15OClPuaDR7tYokLAlGZ2tCSENEN5WxjgxSD5m4cUw==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40710,6 +41744,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.3.tgz", "integrity": "sha512-U+rmhjrNBvIGYqr/1tD4wXPFFMKUbXsYXvlUCzLi0tOCUS6LoeEAnmVXXJY/MEB/1CKZZwBSs2tmzGawcygVBA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40725,6 +41760,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.3.tgz", "integrity": "sha512-uk1+xYx0AMbA3nLSNhbDrqbf/rx+Iuq5tVad2VNyaxxJzx79oGieJ6D9F6AfOL2GtiIbP7vTYlpYHtG+ERFXTg==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40740,6 +41776,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.3.tgz", "integrity": "sha512-Mf2V4JbIDboNGQhW6xW0YREDiYXoX3WrD3EjKkjvnpAJ6W4qqjLnK/c9aioyVFaWWHVdP5zVRw/9DI5S3oLDFw==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40755,6 +41792,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.2.tgz", "integrity": "sha512-Ao0PP6MoYsRU1LxeVUW740ioknvdIUmfr6uAA3xWlQJ9s69/Tupy8qwhuKG3xWfl+KvLMAP9p2WXF9cwuk/7Bg==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40770,6 +41808,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.3.tgz", "integrity": "sha512-uNC7BmS/7h6to2UWa4RFH8sOTzu2O9dVWPE/F9Vm9GdhONiD/c1kNaCLbmsFHlKWcEx7alNUChQ+jH/QAlqsQw==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "postcss-value-parser": "^4.2.0" @@ -40786,6 +41825,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz", "integrity": "sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg==", "dev": true, + "peer": true, "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" @@ -40802,6 +41842,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.3.tgz", "integrity": "sha512-333JWRnX655fSoUbufJ10HJop3c8mrpKkCCUnEmgz/Cb/QEtW+/TMZwDAUt4lnwqP6tCCk0x0b58jqvDgiQm/A==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40817,6 +41858,7 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.4.tgz", "integrity": "sha512-taKtGDZtyYUMVYkg+MuJeBUiTF6cGHZmo/qcW7ibvW79UlyKuSHbo6dpCIiqI+j9oJsXWzP+ovIxoyLDOeQFdw==", "dev": true, + "peer": true, "dependencies": { "cssnano-utils": "^3.0.1", "postcss-value-parser": "^4.2.0" @@ -40833,6 +41875,7 @@ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz", "integrity": "sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==", "dev": true, + "peer": true, "engines": { "node": "^12 || ^14 || >=16" }, @@ -40845,6 +41888,7 @@ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", "dev": true, + "peer": true, "peerDependencies": { "postcss": "^8" } @@ -40854,6 +41898,7 @@ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.3.tgz", "integrity": "sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40869,6 +41914,7 @@ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", "dev": true, + "peer": true, "dependencies": { "autoprefixer": "^10.4.2", "browserslist": "^4.19.1", @@ -40916,6 +41962,7 @@ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz", "integrity": "sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.8" }, @@ -40931,6 +41978,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0" @@ -40947,6 +41995,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.3.tgz", "integrity": "sha512-yDnTUab5i7auHiNwdcL1f+pBnqQFf+7eC4cbC7D8Lc1FkvNZhtpkdad+9U4wDdFb84haupMf0rA/Zc5LcTe/3A==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -40962,6 +42011,7 @@ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", "dev": true, + "peer": true, "peerDependencies": { "postcss": "^8.0.3" } @@ -40971,6 +42021,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", "dev": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0" }, @@ -40983,6 +42034,7 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", "dev": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.1.0", "svgo": "^2.7.0" @@ -40999,6 +42051,7 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.3.tgz", "integrity": "sha512-V5tX2hadSSn+miVCluuK1IDGy+7jAXSOfRZ2DQ+s/4uQZb/orDYBjH0CHgFrXsRw78p4QTuEFA9kI6C956UnHQ==", "dev": true, + "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -41014,6 +42067,7 @@ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, + "peer": true, "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -41023,13 +42077,15 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, + "peer": true, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -41043,6 +42099,7 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "peer": true, "engines": { "node": ">= 4" } @@ -41052,6 +42109,7 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, + "peer": true, "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -41086,6 +42144,7 @@ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, + "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -41098,6 +42157,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -41116,6 +42176,7 @@ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", "dev": true, + "peer": true, "dependencies": { "node-forge": "^1.2.0" }, @@ -41128,6 +42189,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -41143,6 +42205,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "peer": true, "dependencies": { "randombytes": "^2.1.0" } @@ -41152,6 +42215,7 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "peer": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -41163,6 +42227,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, + "peer": true, "engines": { "node": ">= 8" } @@ -41172,6 +42237,7 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", "dev": true, + "peer": true, "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", @@ -41193,6 +42259,7 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", "dev": true, + "peer": true, "engines": { "node": ">= 12.13.0" }, @@ -41209,6 +42276,7 @@ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.2.tgz", "integrity": "sha512-114zeJdOpTrbQYRD4OU5UWJ99LKUaqCPJTU1HQ/n3q3BwmllFN8kHENaLnOeqVq6AhXrWfxHNZTl33iJ4oy3cQ==", "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.16.6", "postcss-selector-parser": "^6.0.4" @@ -41225,6 +42293,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -41237,6 +42306,7 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, + "peer": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -41258,6 +42328,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "peer": true, "engines": { "node": ">= 10" } @@ -41267,6 +42338,7 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.17.tgz", "integrity": "sha512-OiHUsmOKQQEg/ocXaLIjk/kOz8EK2jF6iPuc1bQ4NsmhYl7sk70UDsGV02AJvBAAiJhinPCkDR8egT9qY+ulCw==", "dev": true, + "peer": true, "dependencies": { "arg": "^5.0.1", "chalk": "^4.1.2", @@ -41306,33 +42378,17 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "peer": true, "engines": { "node": ">=6" } }, - "node_modules/react-scripts/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/react-scripts/node_modules/terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", "dev": true, + "peer": true, "dependencies": { "jest-worker": "^27.4.1", "schema-utils": "^3.1.1", @@ -41367,21 +42423,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/react-scripts/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/react-scripts/node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -41408,6 +42460,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -41417,6 +42470,7 @@ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, + "peer": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -41429,6 +42483,7 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true, + "peer": true, "engines": { "node": ">=10.4" } @@ -41438,6 +42493,7 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", "dev": true, + "peer": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.2.2", @@ -41461,6 +42517,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -41477,6 +42534,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -41489,6 +42547,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -41508,6 +42567,7 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", "dev": true, + "peer": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -41559,6 +42619,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -41575,6 +42636,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -41587,6 +42649,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -41599,6 +42662,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -41618,6 +42682,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -41633,6 +42698,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "peer": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -41647,6 +42713,7 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, + "peer": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -41656,6 +42723,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -41667,13 +42735,15 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-scripts/node_modules/whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, + "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -41687,7 +42757,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/react-select": { "version": "5.4.0", @@ -42092,6 +43163,7 @@ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", "dev": true, + "peer": true, "dependencies": { "minimatch": "3.0.4" }, @@ -42205,9 +43277,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -42235,7 +43307,8 @@ "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true + "dev": true, + "peer": true }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", @@ -43586,6 +44659,7 @@ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, + "peer": true, "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -43614,6 +44688,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -43629,6 +44704,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -43643,6 +44719,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -43738,6 +44815,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -43748,51 +44826,16 @@ "rollup": "^2.0.0" } }, - "node_modules/rollup-plugin-terser/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, + "peer": true, "dependencies": { "randombytes": "^2.1.0" } }, - "node_modules/rollup-plugin-terser/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", @@ -44252,7 +45295,8 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/sass": { "version": "1.52.3", @@ -44279,7 +45323,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/saxes": { "version": "6.0.0", @@ -44335,7 +45380,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true + "dev": true, + "peer": true }, "node_modules/selenium-webdriver": { "version": "4.1.2", @@ -44475,6 +45521,7 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, + "peer": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -44493,6 +45540,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -44502,6 +45550,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, + "peer": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -44516,19 +45565,22 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "peer": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "peer": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/serve-static": { "version": "1.15.0", @@ -44652,7 +45704,8 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/should": { "version": "13.2.3", @@ -45134,6 +46187,7 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "peer": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -45150,6 +46204,7 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "peer": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -45324,6 +46379,7 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -45643,6 +46699,7 @@ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "peer": true, "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -45677,6 +46734,7 @@ "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -46073,32 +47131,6 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "node_modules/stylelint/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", @@ -46127,18 +47159,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/stylelint/node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -46157,59 +47177,6 @@ "node": ">=0.10.0" } }, - "node_modules/stylelint/node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/stylelint/node_modules/postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -46250,15 +47217,6 @@ "postcss": "^8.3.3" } }, - "node_modules/stylelint/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -46268,42 +47226,6 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/write-file-atomic": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", @@ -46396,6 +47318,7 @@ "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", "dev": true, + "peer": true, "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", @@ -46423,6 +47346,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -46432,6 +47356,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -46703,6 +47628,7 @@ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -46712,6 +47638,7 @@ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", "dev": true, + "peer": true, "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", @@ -46730,6 +47657,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -46742,6 +47670,7 @@ "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, + "peer": true, "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -46754,20 +47683,21 @@ } }, "node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, "node_modules/terser-webpack-plugin": { @@ -46797,24 +47727,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/terser-webpack-plugin/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/terser-webpack-plugin/node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -46857,22 +47769,16 @@ "node": ">=0.10.0" } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "node_modules/terser/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, "bin": { - "terser": "bin/terser" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" + "node": ">=0.4.0" } }, "node_modules/terser/node_modules/commander": { @@ -46881,15 +47787,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -46919,7 +47816,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/throttle-debounce": { "version": "3.0.1", @@ -46973,7 +47871,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/timers-browserify": { "version": "2.0.12", @@ -46997,6 +47896,13 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true, + "peer": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", "dev": true }, "node_modules/tiny-warning": { @@ -47164,13 +48070,12 @@ "dev": true }, "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/trim-trailing-lines": { @@ -47197,7 +48102,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/ts-dedent": { "version": "2.1.1", @@ -47646,6 +48552,7 @@ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, + "peer": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -47837,7 +48744,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true + "dev": true, + "peer": true }, "node_modules/unset-value": { "version": "1.0.0", @@ -48098,6 +49006,7 @@ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, + "peer": true, "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", @@ -48313,6 +49222,566 @@ "node": ">=4" } }, + "node_modules/vite": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dev": true, + "dependencies": { + "esbuild": "^0.16.3", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.5.3.tgz", + "integrity": "sha512-upPESKsQTypC2S7LPjxu9HknOymNSToAAHTYSFHb0at5GKLcN1QGMAR5Hb+7KqZclGMVniXAj7QdhZv+fTx83Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "npm-run-path": "^4.0.1", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "eslint": ">=7", + "meow": "^9.0.0", + "optionator": "^0.9.1", + "stylelint": ">=13", + "typescript": "*", + "vite": ">=2.0.0", + "vls": "*", + "vti": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vite-plugin-checker/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vite-plugin-checker/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/vite-plugin-checker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-svgr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.4.0.tgz", + "integrity": "sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "@svgr/core": "^6.5.1" + }, + "peerDependencies": { + "vite": "^2.6.0 || 3 || 4" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/vite-plugin-svgr/node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/vite-plugin-svgr/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vite-plugin-svgr/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.0.3.tgz", + "integrity": "sha512-gRO2Q/tOkV+9kMht5tz90+IaEKvW2zCnvwJV3tp2ruPNZOTM5rF+yXorJT4ggmAMYEaJ3nyXjx5P5jY5FwiZ+A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^2.0.1" + }, + "peerDependencies": { + "vite": ">2.0.0-0" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/vite/node_modules/rollup": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.10.0.tgz", + "integrity": "sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -48356,12 +49825,91 @@ "node": ">=0.4.0" } }, + "node_modules/vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true, + "engines": { + "node": ">=8.0.0 || >=10.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", + "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4", + "semver": "^7.3.4", + "vscode-languageserver-protocol": "3.16.0" + }, + "engines": { + "vscode": "^1.52.0" + } + }, + "node_modules/vscode-languageclient/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "dependencies": { + "vscode-languageserver-protocol": "3.16.0" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "dependencies": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, + "peer": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -48707,6 +50255,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "peer": true, "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -48860,6 +50409,7 @@ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", "dev": true, + "peer": true, "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" @@ -48876,6 +50426,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -48885,6 +50436,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -48894,6 +50446,7 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", "dev": true, + "peer": true, "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" @@ -48902,19 +50455,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -48979,12 +50519,6 @@ "acorn": "^8" } }, - "node_modules/webpack/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/webpack/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -49068,24 +50602,6 @@ "node": ">=6" } }, - "node_modules/webpack/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/webpack/node_modules/terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -49176,7 +50692,8 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/whatwg-mimetype": { "version": "3.0.0", @@ -49231,6 +50748,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -49252,12 +50804,6 @@ "node": ">=8" } }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -49278,6 +50824,7 @@ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", "dev": true, + "peer": true, "dependencies": { "idb": "^6.1.4", "workbox-core": "6.4.2" @@ -49287,13 +50834,15 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-broadcast-update": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49303,6 +50852,7 @@ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", "dev": true, + "peer": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -49352,6 +50902,7 @@ "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.2.tgz", "integrity": "sha512-JdEazx7qiVqTBzzBl5rolRwl5cmhihjfIcpqRzIZjtT6b18liVmDn/VlWpqW4C/qP2hrFFMLRV1wlex8ZVBPTg==", "dev": true, + "peer": true, "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", @@ -49369,6 +50920,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -49385,6 +50937,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "peer": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -49399,13 +50952,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, + "peer": true, "dependencies": { "whatwg-url": "^7.0.0" }, @@ -49418,6 +50973,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -49427,6 +50983,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "peer": true, "engines": { "node": ">= 10.0.0" } @@ -49435,13 +50992,15 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-build/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, + "peer": true, "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -49453,6 +51012,7 @@ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49461,13 +51021,15 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-expiration": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", "dev": true, + "peer": true, "dependencies": { "idb": "^6.1.4", "workbox-core": "6.4.2" @@ -49477,13 +51039,15 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-google-analytics": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", "dev": true, + "peer": true, "dependencies": { "workbox-background-sync": "6.4.2", "workbox-core": "6.4.2", @@ -49496,6 +51060,7 @@ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49505,6 +51070,7 @@ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2", "workbox-routing": "6.4.2", @@ -49516,6 +51082,7 @@ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49525,6 +51092,7 @@ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", "dev": true, + "peer": true, "dependencies": { "workbox-cacheable-response": "6.4.2", "workbox-core": "6.4.2", @@ -49539,6 +51107,7 @@ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49548,6 +51117,7 @@ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2" } @@ -49557,6 +51127,7 @@ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", "dev": true, + "peer": true, "dependencies": { "workbox-core": "6.4.2", "workbox-routing": "6.4.2" @@ -49566,13 +51137,15 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/workbox-webpack-plugin": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", "dev": true, + "peer": true, "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", @@ -49593,6 +51166,7 @@ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", "dev": true, + "peer": true, "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.4.2" @@ -50955,6 +52529,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz", "integrity": "sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ==", "dev": true, + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13" } @@ -50990,6 +52565,24 @@ "@babel/plugin-transform-react-jsx": "^7.18.6" } }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, "@babel/plugin-transform-react-pure-annotations": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", @@ -51390,21 +52983,11 @@ } }, "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { @@ -51473,71 +53056,6 @@ "dev": true, "optional": true }, - "@craco/craco": { - "version": "7.0.0-alpha.7", - "resolved": "https://registry.npmjs.org/@craco/craco/-/craco-7.0.0-alpha.7.tgz", - "integrity": "sha512-3RU+Ur1GvBQKDBL1JhssSgazc8s3pMAgndyS+95UaXdMTuozpI9h4k4OokQRRjiLmr7i0y39l6fBZvknGj2i1w==", - "dev": true, - "requires": { - "autoprefixer": "^10.4.7", - "cosmiconfig": "^7.0.1", - "cosmiconfig-typescript-loader": "^2.0.2", - "cross-spawn": "^7.0.3", - "lodash": "^4.17.21", - "semver": "^7.3.7", - "webpack-merge": "^5.8.0" - }, - "dependencies": { - "autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "peer": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -51551,7 +53069,8 @@ "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", - "dev": true + "dev": true, + "peer": true }, "@datadog/browser-core": { "version": "4.21.2", @@ -51721,6 +53240,69 @@ "dev": true, "optional": true }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "dev": true, + "optional": true + }, "@esbuild/linux-loong64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", @@ -51728,11 +53310,89 @@ "dev": true, "optional": true }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "dev": true, + "optional": true + }, "@eslint/eslintrc": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, + "peer": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -51750,6 +53410,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, + "peer": true, "requires": { "type-fest": "^0.20.2" } @@ -51758,13 +53419,15 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "dev": true, + "peer": true }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "dev": true, + "peer": true } } }, @@ -52613,6 +54276,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, + "peer": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -52623,7 +54287,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "peer": true }, "@ibm-cloud/openapi-ruleset": { "version": "0.37.3", @@ -54547,6 +56212,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", "dev": true, + "peer": true, "requires": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" @@ -54572,6 +56238,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "dev": true, + "peer": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -54585,7 +56252,8 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "dev": true, + "peer": true } } }, @@ -54594,6 +56262,7 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "dev": true, + "peer": true, "requires": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -55841,6 +57510,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -56169,6 +57844,17 @@ "safe-buffer": "~5.1.0" } }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -56314,12 +58000,6 @@ "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==", "dev": true }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, "clean-css": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", @@ -56623,26 +58303,6 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -57103,6 +58763,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -57455,6 +59121,17 @@ "has-flag": "^4.0.0" } }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, "terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", @@ -58125,6 +59802,25 @@ "has-flag": "^4.0.0" } }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", @@ -58555,6 +60251,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", @@ -58901,6 +60603,17 @@ "has-flag": "^4.0.0" } }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -59039,12 +60752,6 @@ "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==", "dev": true }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -59442,26 +61149,6 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -60224,6 +61911,7 @@ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", "dev": true, + "peer": true, "requires": { "ejs": "^3.1.6", "json5": "^2.2.0", @@ -60236,6 +61924,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -60246,7 +61935,8 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-plugin-remove-jsx-attribute": { "version": "5.4.0", @@ -60264,37 +61954,43 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-plugin-svg-dynamic-title": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-plugin-svg-em-dimensions": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-plugin-transform-react-native-svg": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-plugin-transform-svg-component": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "dev": true + "dev": true, + "peer": true }, "@svgr/babel-preset": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", "dev": true, + "peer": true, "requires": { "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", @@ -60311,6 +62007,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", "dev": true, + "peer": true, "requires": { "@svgr/plugin-jsx": "^5.5.0", "camelcase": "^6.2.0", @@ -60322,6 +62019,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, + "peer": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -60337,6 +62035,7 @@ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.12.6" } @@ -60346,6 +62045,7 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.12.3", "@svgr/babel-preset": "^5.5.0", @@ -60358,6 +62058,7 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", "dev": true, + "peer": true, "requires": { "cosmiconfig": "^7.0.0", "deepmerge": "^4.2.2", @@ -60369,6 +62070,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, + "peer": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -60381,7 +62083,8 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "dev": true, + "peer": true } } }, @@ -60390,6 +62093,7 @@ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.12.3", "@babel/plugin-transform-react-constant-elements": "^7.12.1", @@ -60406,6 +62110,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -60415,6 +62120,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, + "peer": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -60461,12 +62167,6 @@ "color-convert": "^2.0.1" } }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -60535,12 +62235,6 @@ "color-convert": "^2.0.1" } }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -60653,7 +62347,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true + "dev": true, + "peer": true }, "@tsconfig/node10": { "version": "1.0.8", @@ -60737,6 +62432,7 @@ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, + "peer": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -60747,6 +62443,7 @@ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -60756,6 +62453,7 @@ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -60765,6 +62463,7 @@ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dev": true, + "peer": true, "requires": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -60823,6 +62522,7 @@ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, + "peer": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -60835,6 +62535,7 @@ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -60894,6 +62595,7 @@ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -61016,7 +62718,8 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true + "dev": true, + "peer": true }, "@types/minimatch": { "version": "3.0.3", @@ -61094,7 +62797,8 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true + "dev": true, + "peer": true }, "@types/qs": { "version": "6.9.6", @@ -61115,7 +62819,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "dev": true, + "peer": true }, "@types/react": { "version": "17.0.39", @@ -61234,6 +62939,7 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -61242,7 +62948,8 @@ "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true + "dev": true, + "peer": true }, "@types/sanitize-html": { "version": "2.6.2", @@ -61268,6 +62975,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, + "peer": true, "requires": { "@types/express": "*" } @@ -61277,6 +62985,7 @@ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, + "peer": true, "requires": { "@types/mime": "^1", "@types/node": "*" @@ -61287,6 +62996,7 @@ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -61339,7 +63049,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==", - "dev": true + "dev": true, + "peer": true }, "@types/uglify-js": { "version": "3.12.0", @@ -61431,6 +63142,7 @@ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -61775,6 +63487,43 @@ } } }, + "@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "requires": {} + }, + "@vitejs/plugin-react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.1.tgz", + "integrity": "sha512-mx+QvYwIbbpOIJw+hypjnW1lAbKDHtWK5ibkF/V1/oMBu8HU/chb+SnqJDAsLq1+7rGqjktCEomMTM5KShzUKQ==", + "dev": true, + "requires": { + "@babel/core": "^7.20.7", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + } + } + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -62129,6 +63878,7 @@ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, + "peer": true, "requires": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", @@ -62152,6 +63902,7 @@ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, + "peer": true, "requires": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -62162,6 +63913,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -62171,6 +63923,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -62365,7 +64118,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true + "dev": true, + "peer": true }, "argparse": { "version": "2.0.1", @@ -62373,13 +64127,45 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "deep-equal": "^2.0.5" + }, + "dependencies": { + "deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } } }, "arr-diff": { @@ -62410,18 +64196,19 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true + "dev": true, + "peer": true }, "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -62455,14 +64242,15 @@ } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.map": { @@ -62592,6 +64380,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, + "peer": true, "requires": { "lodash": "^4.17.14" } @@ -62644,17 +64433,59 @@ } } }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.2.tgz", + "integrity": "sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==", "dev": true }, "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + }, + "dependencies": { + "deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } }, "babel-jest": { "version": "29.3.1", @@ -62970,6 +64801,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", "dev": true, + "peer": true, "requires": {} }, "babel-plugin-named-exports-order": { @@ -63210,7 +65042,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "dev": true, + "peer": true }, "better-opn": { "version": "2.1.1", @@ -63238,6 +65071,7 @@ "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", "dev": true, + "peer": true, "requires": { "bluebird": "^3.5.5", "check-types": "^11.1.1", @@ -63337,6 +65171,7 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, + "peer": true, "requires": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", @@ -63490,7 +65325,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "dev": true, + "peer": true }, "browserify-aes": { "version": "1.2.0", @@ -63614,7 +65450,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "dev": true, + "peer": true }, "buffer-xor": { "version": "1.0.3", @@ -63626,7 +65463,8 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true + "dev": true, + "peer": true }, "builtin-status-codes": { "version": "3.0.0", @@ -63814,22 +65652,33 @@ "dev": true }, "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "optional": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "dependencies": { "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", - "dev": true, - "optional": true + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true } } }, @@ -63843,6 +65692,7 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -63919,7 +65769,8 @@ "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==", - "dev": true + "dev": true, + "peer": true }, "chokidar": { "version": "3.5.3", @@ -64153,6 +66004,7 @@ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, + "peer": true, "requires": { "@types/q": "^1.5.1", "chalk": "^2.4.1", @@ -64243,7 +66095,8 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true + "dev": true, + "peer": true }, "commondir": { "version": "1.0.1", @@ -64357,7 +66210,8 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true + "dev": true, + "peer": true }, "console-browserify": { "version": "1.2.0", @@ -64498,31 +66352,6 @@ "yaml": "^1.7.2" } }, - "cosmiconfig-typescript-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz", - "integrity": "sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==", - "dev": true, - "requires": { - "cosmiconfig": "^7", - "ts-node": "^10.8.1" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - } - } - }, "cp-file": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", @@ -64855,7 +66684,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "dev": true, + "peer": true }, "css-color-keywords": { "version": "1.0.0", @@ -64911,6 +66741,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, + "peer": true, "requires": { "boolbase": "^1.0.0", "css-what": "^3.2.1", @@ -64922,7 +66753,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true + "dev": true, + "peer": true }, "css-to-react-native": { "version": "3.0.0", @@ -64939,6 +66771,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, + "peer": true, "requires": { "mdn-data": "2.0.4", "source-map": "^0.6.1" @@ -64948,7 +66781,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -64961,7 +66795,8 @@ "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true + "dev": true, + "peer": true }, "css.escape": { "version": "1.5.1", @@ -64973,7 +66808,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", - "dev": true + "dev": true, + "peer": true }, "cssesc": { "version": "3.0.0", @@ -64986,6 +66822,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, + "peer": true, "requires": { "css-tree": "^1.1.2" }, @@ -64995,6 +66832,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", "dev": true, + "peer": true, "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -65004,13 +66842,15 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "peer": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -65241,6 +67081,7 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, + "peer": true, "requires": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -65271,6 +67112,146 @@ "bplist-parser": "^0.1.0", "meow": "^3.1.0", "untildify": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "optional": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "optional": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "optional": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "optional": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "optional": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "optional": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "optional": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "optional": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "optional": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "optional": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "optional": true + } } }, "defaults": { @@ -65343,7 +67324,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "dev": true, + "peer": true }, "degenerator": { "version": "3.0.2", @@ -65449,7 +67431,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "dev": true, + "peer": true }, "dependency-graph": { "version": "0.11.0", @@ -65539,6 +67522,7 @@ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", "dev": true, + "peer": true, "requires": { "address": "^1.0.1", "debug": "^2.6.0" @@ -65549,6 +67533,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "peer": true, "requires": { "ms": "2.0.0" } @@ -65557,7 +67542,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "peer": true } } }, @@ -65566,6 +67552,7 @@ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "dev": true, + "peer": true, "requires": { "acorn-node": "^1.6.1", "defined": "^1.0.0", @@ -65586,7 +67573,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "dev": true, + "peer": true }, "diff": { "version": "5.1.0", @@ -65631,19 +67619,22 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "peer": true }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true + "dev": true, + "peer": true }, "dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, + "peer": true, "requires": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" @@ -65654,6 +67645,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, + "peer": true, "requires": { "buffer-indexof": "^1.0.0" } @@ -65695,6 +67687,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, + "peer": true, "requires": { "domelementtype": "^2.0.1", "entities": "^2.0.0" @@ -65704,7 +67697,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "dev": true + "dev": true, + "peer": true } } }, @@ -65724,7 +67718,8 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "dev": true, + "peer": true }, "domexception": { "version": "4.0.0", @@ -65755,6 +67750,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, + "peer": true, "requires": { "dom-serializer": "0", "domelementtype": "1" @@ -65794,7 +67790,8 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "peer": true }, "duplexify": { "version": "3.7.1", @@ -65851,6 +67848,7 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", "dev": true, + "peer": true, "requires": { "jake": "^10.8.5" } @@ -66099,6 +68097,15 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -66386,6 +68393,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, + "peer": true, "requires": { "@eslint/eslintrc": "^1.0.5", "@humanwhocodes/config-array": "^0.9.2", @@ -66429,6 +68437,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -66438,6 +68447,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -66448,6 +68458,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -66456,19 +68467,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "dev": true, + "peer": true }, "eslint-scope": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, + "peer": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -66478,19 +68492,22 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true + "dev": true, + "peer": true }, "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "dev": true, + "peer": true }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "requires": { "is-glob": "^4.0.3" } @@ -66500,6 +68517,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, + "peer": true, "requires": { "type-fest": "^0.20.2" } @@ -66508,13 +68526,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -66523,14 +68543,15 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "dev": true, + "peer": true } } }, "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "requires": {} }, @@ -66735,23 +68756,26 @@ } }, "eslint-plugin-jsx-a11y": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, "requires": { - "@babel/runtime": "^7.18.9", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.3", - "axobject-query": "^2.2.0", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.3.2", - "language-tags": "^1.0.5", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", "minimatch": "^3.0.5", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", "semver": "^6.3.0" }, "dependencies": { @@ -66764,9 +68788,9 @@ } }, "eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -66882,6 +68906,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, + "peer": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", @@ -66892,13 +68917,15 @@ "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true + "dev": true, + "peer": true }, "eslint-visitor-keys": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true + "dev": true, + "peer": true } } }, @@ -66913,6 +68940,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "peer": true, "requires": { "estraverse": "^5.1.0" }, @@ -66921,7 +68949,8 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true + "dev": true, + "peer": true } } }, @@ -67630,6 +69659,7 @@ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", "dev": true, + "peer": true, "requires": { "minimatch": "^3.0.5" }, @@ -67639,6 +69669,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "peer": true, "requires": { "balanced-match": "^1.0.0" } @@ -67647,6 +69678,7 @@ "version": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, + "peer": true, "requires": { "brace-expansion": "^2.0.1" } @@ -67657,7 +69689,8 @@ "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "dev": true + "dev": true, + "peer": true }, "fill-range": { "version": "7.0.1", @@ -67825,7 +69858,17 @@ "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true + "dev": true, + "peer": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } }, "for-in": { "version": "1.0.2", @@ -68005,7 +70048,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true + "dev": true, + "peer": true }, "fragment-cache": { "version": "0.2.1", @@ -68288,7 +70332,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true + "dev": true, + "peer": true }, "get-package-type": { "version": "0.1.0", @@ -68507,6 +70552,12 @@ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "gonzales-pe": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", @@ -68516,6 +70567,15 @@ "minimist": "^1.2.5" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -68527,6 +70587,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "peer": true, "requires": { "duplexer": "^0.1.2" } @@ -68535,7 +70596,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true + "dev": true, + "peer": true }, "handlebars": { "version": "4.7.7", @@ -68568,7 +70630,8 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==", - "dev": true + "dev": true, + "peer": true }, "has": { "version": "1.0.3", @@ -68875,7 +70938,8 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "dev": true + "dev": true, + "peer": true }, "hosted-git-info": { "version": "2.8.9", @@ -68888,6 +70952,7 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, + "peer": true, "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -68900,6 +70965,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "peer": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -68915,6 +70981,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "peer": true, "requires": { "safe-buffer": "~5.1.0" } @@ -68956,6 +71023,31 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } } } }, @@ -69042,7 +71134,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "dev": true, + "peer": true }, "http-errors": { "version": "2.0.0", @@ -69075,13 +71168,15 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true + "dev": true, + "peer": true }, "http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "peer": true, "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -69310,6 +71405,7 @@ "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", "dev": true, + "peer": true, "requires": { "harmony-reflect": "^1.4.6" } @@ -69521,12 +71617,24 @@ } }, "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" } }, "is-arrayish": { @@ -69611,10 +71719,13 @@ } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-decimal": { "version": "1.0.4", @@ -69716,7 +71827,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "dev": true, + "peer": true }, "is-negative-zero": { "version": "2.0.2", @@ -69742,7 +71854,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "dev": true, + "peer": true }, "is-object": { "version": "1.0.2", @@ -69754,13 +71867,15 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "dev": true, + "peer": true }, "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true + "dev": true, + "peer": true }, "is-plain-object": { "version": "2.0.4", @@ -69800,13 +71915,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true + "dev": true, + "peer": true }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "dev": true + "dev": true, + "peer": true }, "is-set": { "version": "2.0.2", @@ -69847,6 +71964,19 @@ "has-symbols": "^1.0.1" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -69860,6 +71990,12 @@ "dev": true, "optional": true }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -69869,6 +72005,16 @@ "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -70025,6 +72171,7 @@ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dev": true, + "peer": true, "requires": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -70037,6 +72184,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -70045,13 +72193,15 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true + "dev": true, + "peer": true }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -70062,6 +72212,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -70070,19 +72221,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -71286,6 +73440,7 @@ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", @@ -71311,6 +73466,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -71325,6 +73481,7 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, + "peer": true, "requires": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -71337,6 +73494,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -71351,6 +73509,7 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -71362,6 +73521,7 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, + "peer": true, "requires": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -71373,6 +73533,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, + "peer": true, "requires": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -71385,6 +73546,7 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -71408,6 +73570,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -71421,6 +73584,7 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "peer": true, "requires": { "@sinonjs/commons": "^1.7.0" } @@ -71430,6 +73594,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "requires": { "@types/yargs-parser": "*" } @@ -71439,6 +73604,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -71448,6 +73614,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -71457,13 +73624,15 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true + "dev": true, + "peer": true }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -71472,13 +73641,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "expect": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -71490,13 +73661,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "jest-each": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -71510,6 +73683,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -71531,6 +73705,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -71548,6 +73723,7 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -71557,13 +73733,15 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true + "dev": true, + "peer": true }, "jest-runtime": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -71594,6 +73772,7 @@ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -71604,6 +73783,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -71634,6 +73814,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -71648,6 +73829,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -71659,6 +73841,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -71670,6 +73853,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -71678,13 +73862,15 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -72034,6 +74220,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -72052,6 +74239,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -72065,6 +74253,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "requires": { "@types/yargs-parser": "*" } @@ -72074,6 +74263,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -72083,6 +74273,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -72092,13 +74283,15 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true + "dev": true, + "peer": true }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -72107,19 +74300,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "jest-haste-map": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -72140,13 +74336,15 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true + "dev": true, + "peer": true }, "jest-serializer": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -72157,6 +74355,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -72171,6 +74370,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -72182,6 +74382,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -72193,6 +74394,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -73183,6 +75385,7 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -73197,6 +75400,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -73210,6 +75414,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "requires": { "@types/yargs-parser": "*" } @@ -73219,6 +75424,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -73228,6 +75434,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -73238,6 +75445,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -73246,19 +75454,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -73547,7 +75758,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "peer": true }, "json-schema-ref-parser": { "version": "5.1.3", @@ -73601,7 +75813,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "dev": true, + "peer": true }, "json2mq": { "version": "0.2.0", @@ -74078,13 +76291,15 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true + "dev": true, + "peer": true }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "peer": true }, "lodash.omit": { "version": "4.5.0", @@ -74098,11 +76313,18 @@ "integrity": "sha512-5OrRcIVR75M288p4nbI2WLAf3ndw2GD9fyNv3Bc15+WCxJDdZ4lYndSxGd7hnG6PVjiJTeJE2dHEGhIuKGicIQ==", "dev": true }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true + "dev": true, + "peer": true }, "lodash.throttle": { "version": "4.1.1", @@ -74769,7 +76991,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true + "dev": true, + "peer": true }, "mdurl": { "version": "1.0.1", @@ -74860,117 +77083,60 @@ } }, "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, - "optional": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "optional": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", - "dev": true, - "optional": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "optional": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "optional": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "optional": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "lru-cache": "^6.0.0" } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "optional": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "optional": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "lru-cache": "^6.0.0" } }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", - "dev": true, - "optional": true, - "requires": { - "get-stdin": "^4.0.1" - } + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true } } }, @@ -75637,6 +77803,7 @@ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dev": true, + "peer": true, "requires": { "schema-utils": "^4.0.0" }, @@ -75646,6 +77813,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -75658,6 +77826,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.3" } @@ -75666,13 +77835,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -75884,6 +78055,7 @@ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, + "peer": true, "requires": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" @@ -75893,7 +78065,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true + "dev": true, + "peer": true }, "nan": { "version": "2.16.0", @@ -76227,7 +78400,8 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true + "dev": true, + "peer": true }, "npm-normalize-package-bin": { "version": "1.0.1", @@ -76261,6 +78435,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, + "peer": true, "requires": { "boolbase": "~1.0.0" } @@ -76412,7 +78587,8 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true + "dev": true, + "peer": true }, "object-inspect": { "version": "1.12.2", @@ -76421,12 +78597,12 @@ "dev": true }, "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -76458,25 +78634,25 @@ } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.getownpropertydescriptors": { @@ -76535,7 +78711,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "peer": true }, "on-finished": { "version": "2.4.1", @@ -77131,7 +79308,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "dev": true, + "peer": true }, "picocolors": { "version": "1.0.0", @@ -77158,14 +79336,14 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "optional": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "optional": true, "requires": { @@ -77192,6 +79370,7 @@ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, + "peer": true, "requires": { "find-up": "^3.0.0" }, @@ -77201,6 +79380,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "peer": true, "requires": { "locate-path": "^3.0.0" } @@ -77210,6 +79390,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "peer": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -77220,6 +79401,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "peer": true, "requires": { "p-limit": "^2.0.0" } @@ -77228,7 +79410,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "dev": true, + "peer": true } } }, @@ -77279,6 +79462,7 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, + "peer": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", @@ -77290,6 +79474,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "requires": { "ms": "^2.1.1" } @@ -77340,6 +79525,7 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.1.tgz", "integrity": "sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==", "dev": true, + "peer": true, "requires": { "lilconfig": "^2.0.4", "yaml": "^1.10.2" @@ -77503,7 +79689,8 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true + "dev": true, + "peer": true }, "pretty-error": { "version": "2.1.2", @@ -77574,6 +79761,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", "dev": true, + "peer": true, "requires": { "asap": "~2.0.6" } @@ -77813,7 +80001,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true + "dev": true, + "peer": true }, "qs": { "version": "6.10.3", @@ -77862,13 +80051,15 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true + "dev": true, + "peer": true }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, + "peer": true, "requires": { "performance-now": "^2.1.0" } @@ -77978,6 +80169,7 @@ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", "dev": true, + "peer": true, "requires": { "core-js": "^3.19.2", "object-assign": "^4.1.1", @@ -78014,6 +80206,7 @@ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -78046,6 +80239,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -78055,6 +80249,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -78065,6 +80260,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -78073,19 +80269,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "dev": true, + "peer": true }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "peer": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -78095,19 +80294,22 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "loader-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "dev": true + "dev": true, + "peer": true }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "peer": true, "requires": { "p-locate": "^5.0.0" } @@ -78117,6 +80319,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "peer": true, "requires": { "yocto-queue": "^0.1.0" } @@ -78126,6 +80329,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "peer": true, "requires": { "p-limit": "^3.0.2" } @@ -78135,6 +80339,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -78222,7 +80427,8 @@ "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "dev": true + "dev": true, + "peer": true }, "react-fast-compare": { "version": "2.0.4", @@ -78582,6 +80788,7 @@ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", @@ -78638,6 +80845,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -78652,6 +80860,7 @@ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, + "peer": true, "requires": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", @@ -78688,6 +80897,7 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, + "peer": true, "requires": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -78700,6 +80910,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -78714,6 +80925,7 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -78725,6 +80937,7 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, + "peer": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", @@ -78757,7 +80970,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -78766,6 +80980,7 @@ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", "dev": true, + "peer": true, "requires": { "@sinclair/typebox": "^0.24.1" } @@ -78775,6 +80990,7 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, + "peer": true, "requires": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", @@ -78785,7 +81001,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -78794,6 +81011,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, + "peer": true, "requires": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", @@ -78806,6 +81024,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, + "peer": true, "requires": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", @@ -78818,6 +81037,7 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -78840,7 +81060,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -78849,6 +81070,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "peer": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -78862,6 +81084,7 @@ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", "dev": true, + "peer": true, "requires": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", @@ -78879,6 +81102,7 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "peer": true, "requires": { "@sinonjs/commons": "^1.7.0" } @@ -78887,13 +81111,15 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true + "dev": true, + "peer": true }, "@types/yargs": { "version": "16.0.5", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, + "peer": true, "requires": { "@types/yargs-parser": "*" } @@ -78902,13 +81128,15 @@ "version": "8.7.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true + "dev": true, + "peer": true }, "acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, + "peer": true, "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -78918,7 +81146,8 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "dev": true, + "peer": true } } }, @@ -78927,6 +81156,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -78936,6 +81166,7 @@ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.19.1", "caniuse-lite": "^1.0.30001297", @@ -78950,6 +81181,7 @@ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, + "peer": true, "requires": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", @@ -78966,6 +81198,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, + "peer": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -78978,6 +81211,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, + "peer": true, "requires": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" @@ -78988,6 +81222,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -78997,13 +81232,15 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true + "dev": true, + "peer": true }, "clean-css": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.3.tgz", "integrity": "sha512-qjywD7LvpZJ5+E16lf00GnMVUX5TEVBcKW1/vtGPgAerHwRwE4JP4p1Y40zbLnup2ZfWsd30P2bHdoAKH93XxA==", "dev": true, + "peer": true, "requires": { "source-map": "~0.6.0" }, @@ -79012,7 +81249,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79021,6 +81259,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -79029,19 +81268,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "peer": true }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true + "dev": true, + "peer": true }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, + "peer": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -79055,6 +81297,7 @@ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.2.tgz", "integrity": "sha512-hOb1LFjRR+8ocA071xUSmg5VslJ8NGo/I2qpUpdeAYyBVCgupS5O8SEVo4SxEMYyFBNodBkzG3T1iqW9HCXxew==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -79064,6 +81307,7 @@ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", "dev": true, + "peer": true, "requires": { "timsort": "^0.3.0" } @@ -79073,6 +81317,7 @@ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.3.tgz", "integrity": "sha512-0gDYWEKaGacwxCqvQ3Ypg6wGdD1AztbMm5h1JsactG2hP2eiflj808QITmuWBpE7sjSEVrAlZhPTVd/nNMj/hQ==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -79082,6 +81327,7 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, + "peer": true, "requires": { "icss-utils": "^5.1.0", "postcss": "^8.2.15", @@ -79098,6 +81344,7 @@ "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", "dev": true, + "peer": true, "requires": { "cssnano": "^5.0.6", "jest-worker": "^27.0.2", @@ -79112,6 +81359,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -79124,6 +81372,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.3" } @@ -79133,6 +81382,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -79144,7 +81394,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79153,6 +81404,7 @@ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz", "integrity": "sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==", "dev": true, + "peer": true, "requires": {} }, "css-select": { @@ -79160,6 +81412,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, + "peer": true, "requires": { "boolbase": "^1.0.0", "css-what": "^5.1.0", @@ -79173,6 +81426,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, + "peer": true, "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -79182,7 +81436,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79190,13 +81445,15 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true + "dev": true, + "peer": true }, "cssnano": { "version": "5.0.16", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.16.tgz", "integrity": "sha512-ryhRI9/B9VFCwPbb1z60LLK5/ldoExi7nwdnJzpkLZkm2/r7j2X3jfY+ZvDVJhC/0fPZlrAguYdHNFg0iglPKQ==", "dev": true, + "peer": true, "requires": { "cssnano-preset-default": "^5.1.11", "lilconfig": "^2.0.3", @@ -79208,6 +81465,7 @@ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.11.tgz", "integrity": "sha512-ETet5hqHxmzQq2ynXMOQofKuLm7VOjMiOB7E2zdtm/hSeCKlD9fabzIUV4GoPcRyJRHi+4kGf0vsfGYbQ4nmPw==", "dev": true, + "peer": true, "requires": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^3.0.1", @@ -79245,19 +81503,22 @@ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.1.tgz", "integrity": "sha512-VNCHL364lh++/ono+S3j9NlUK+d97KNkxI77NlqZU2W3xd2/qmyN61dsa47pTpb55zuU4G4lI7qFjAXZJH1OAQ==", "dev": true, + "peer": true, "requires": {} }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "dev": true, + "peer": true }, "data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, + "peer": true, "requires": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -79268,13 +81529,15 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "dev": true, + "peer": true }, "default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "peer": true, "requires": { "execa": "^5.0.0" } @@ -79284,6 +81547,7 @@ "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, + "peer": true, "requires": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -79300,6 +81564,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, + "peer": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -79310,13 +81575,15 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true + "dev": true, + "peer": true }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, + "peer": true, "requires": { "webidl-conversions": "^5.0.0" }, @@ -79325,7 +81592,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79334,6 +81602,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, + "peer": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -79344,19 +81613,22 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true + "dev": true, + "peer": true }, "emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true + "dev": true, + "peer": true }, "eslint-webpack-plugin": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", "dev": true, + "peer": true, "requires": { "@types/eslint": "^7.28.2", "jest-worker": "^27.3.1", @@ -79370,6 +81642,7 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -79382,6 +81655,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "peer": true, "requires": { "websocket-driver": ">=0.5.1" } @@ -79391,6 +81665,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "peer": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -79401,6 +81676,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "requires": { "is-glob": "^4.0.3" } @@ -79409,13 +81685,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "peer": true }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, + "peer": true, "requires": { "whatwg-encoding": "^1.0.5" } @@ -79424,13 +81702,15 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", - "dev": true + "dev": true, + "peer": true }, "html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, + "peer": true, "requires": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -79446,6 +81726,7 @@ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", "dev": true, + "peer": true, "requires": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -79459,6 +81740,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz", "integrity": "sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g==", "dev": true, + "peer": true, "requires": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -79472,6 +81754,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "peer": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -79481,25 +81764,29 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "peer": true, "requires": {} }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true + "dev": true, + "peer": true }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "dev": true, + "peer": true }, "jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, + "peer": true, "requires": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -79511,6 +81798,7 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "execa": "^5.0.0", @@ -79522,6 +81810,7 @@ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -79549,6 +81838,7 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, + "peer": true, "requires": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -79569,6 +81859,7 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", @@ -79601,6 +81892,7 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, + "peer": true, "requires": { "detect-newline": "^3.0.0" } @@ -79610,6 +81902,7 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -79623,6 +81916,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -79638,6 +81932,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -79652,6 +81947,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", @@ -79673,6 +81969,7 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, + "peer": true, "requires": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" @@ -79683,6 +81980,7 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -79700,6 +81998,7 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -79709,13 +82008,15 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true + "dev": true, + "peer": true }, "jest-resolve-dependencies": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", @@ -79727,6 +82028,7 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, + "peer": true, "requires": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", @@ -79756,6 +82058,7 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, + "peer": true, "requires": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -79786,6 +82089,7 @@ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -79796,6 +82100,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, + "peer": true, "requires": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -79826,6 +82131,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -79840,6 +82146,7 @@ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "dev": true, + "peer": true, "requires": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", @@ -79855,6 +82162,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", "dev": true, + "peer": true, "requires": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -79868,7 +82176,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79877,6 +82186,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", "dev": true, + "peer": true, "requires": { "@jest/console": "^28.1.3", "@jest/types": "^28.1.3", @@ -79889,6 +82199,7 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", "dev": true, + "peer": true, "requires": { "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -79903,6 +82214,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.19.tgz", "integrity": "sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ==", "dev": true, + "peer": true, "requires": { "@types/yargs-parser": "*" } @@ -79911,19 +82223,22 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true + "dev": true, + "peer": true }, "emittery": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true + "dev": true, + "peer": true }, "jest-message-util": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.12.13", "@jest/types": "^28.1.3", @@ -79940,7 +82255,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -79948,13 +82264,15 @@ "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true + "dev": true, + "peer": true }, "jest-util": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", "dev": true, + "peer": true, "requires": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -79969,6 +82287,7 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", "dev": true, + "peer": true, "requires": { "@jest/test-result": "^28.1.3", "@jest/types": "^28.1.3", @@ -79985,6 +82304,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "peer": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -79995,6 +82315,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "peer": true, "requires": { "ansi-regex": "^5.0.1" } @@ -80006,6 +82327,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", "dev": true, + "peer": true, "requires": { "@jest/schemas": "^28.1.3", "ansi-regex": "^5.0.1", @@ -80017,13 +82339,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true + "dev": true, + "peer": true }, "string-length": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", "dev": true, + "peer": true, "requires": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" @@ -80033,7 +82357,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", - "dev": true + "dev": true, + "peer": true } } }, @@ -80042,6 +82367,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "peer": true, "requires": { "ansi-regex": "^6.0.1" }, @@ -80050,7 +82376,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true + "dev": true, + "peer": true } } } @@ -80061,6 +82388,7 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, + "peer": true, "requires": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", @@ -80076,6 +82404,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "peer": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -80087,6 +82416,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -80098,6 +82428,7 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, + "peer": true, "requires": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -80133,6 +82464,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, + "peer": true, "requires": {} } } @@ -80141,13 +82473,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -80157,6 +82491,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -80168,6 +82503,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "peer": true, "requires": { "p-locate": "^5.0.0" } @@ -80176,19 +82512,22 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "peer": true }, "node-forge": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", - "dev": true + "dev": true, + "peer": true }, "nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, + "peer": true, "requires": { "boolbase": "^1.0.0" } @@ -80198,6 +82537,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "peer": true, "requires": { "yocto-queue": "^0.1.0" } @@ -80207,6 +82547,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "peer": true, "requires": { "p-limit": "^3.0.2" } @@ -80216,6 +82557,7 @@ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, + "peer": true, "requires": { "@types/retry": "^0.12.0", "retry": "^0.13.1" @@ -80226,6 +82568,7 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dev": true, + "peer": true, "requires": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", @@ -80237,6 +82580,7 @@ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.2" } @@ -80246,6 +82590,7 @@ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", "dev": true, + "peer": true, "requires": {} }, "postcss-calc": { @@ -80253,6 +82598,7 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.3.tgz", "integrity": "sha512-EGM2EBBWqP57N0E7N7WOLT116PJ39dwHVU01WO4XPPQLJfkL2xVgkMZ+TZvCfapj/uJH07UEfKHQNPHzSw/14Q==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.0.2" @@ -80263,6 +82609,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.1.tgz", "integrity": "sha512-62OBIXCjRXpQZcFOYIXwXBlpAVWrYk8ek1rcjvMING4Q2cf0ipyN9qT+BhHA6HmftGSEnFQu2qgKO3gMscl3Rw==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80272,6 +82619,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.2.tgz", "integrity": "sha512-gyx8RgqSmGVK156NAdKcsfkY3KPGHhKqvHTL3hhveFrBBToguKFzhyiuk3cljH6L4fJ0Kv+JENuPXs1Wij27Zw==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80281,6 +82629,7 @@ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80290,6 +82639,7 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.4.tgz", "integrity": "sha512-rYlC5015aNqVQt/B6Cy156g7sH5tRUJGmT9xeagYthtKehetbKx7jHxhyLpulP4bs4vbp8u/B2rac0J7S7qPQg==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -80302,6 +82652,7 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.3.tgz", "integrity": "sha512-fVkjHm2T0PSMqXUCIhHNWVGjhB9mHEWX2GboVs7j3iCgr6FpIl9c/IdXy0PHWZSQ9LFTRgmj98amxJE6KOnlsA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80311,6 +82662,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", "dev": true, + "peer": true, "requires": {} }, "postcss-custom-properties": { @@ -80318,6 +82670,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.3.tgz", "integrity": "sha512-rtu3otIeY532PnEuuBrIIe+N+pcdbX/7JMZfrcL09wc78YayrHw5E8UkDfvnlOhEUrI4ptCuzXQfj+Or6spbGA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80327,6 +82680,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.4" } @@ -80336,6 +82690,7 @@ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.3.tgz", "integrity": "sha512-qiPm+CNAlgXiMf0J5IbBBEXA9l/Q5HGsNGkL3znIwT2ZFRLGY9U2fTUpa4lqCUXQOxaLimpacHeQC80BD2qbDw==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -80345,6 +82700,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.2.tgz", "integrity": "sha512-6VQ3pYTsJHEsN2Bic88Aa7J/Brn4Bv8j/rqaFQZkH+pcVkKYwxCIvoMQkykEW7fBjmofdTnQgcivt5CCBJhtrg==", "dev": true, + "peer": true, "requires": {} }, "postcss-discard-duplicates": { @@ -80352,6 +82708,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.2.tgz", "integrity": "sha512-LKY81YjUjc78p6rbXIsnppsaFo8XzCoMZkXVILJU//sK0DgPkPSpuq/cZvHss3EtdKvWNYgWzQL+wiJFtEET4g==", "dev": true, + "peer": true, "requires": {} }, "postcss-discard-empty": { @@ -80359,6 +82716,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.2.tgz", "integrity": "sha512-SxBsbTjlsKUvZLL+dMrdWauuNZU8TBq5IOL/DHa6jBUSXFEwmDqeXRfTIK/FQpPTa8MJMxEHjSV3UbiuyLARPQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-discard-overridden": { @@ -80366,6 +82724,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.3.tgz", "integrity": "sha512-yRTXknIZA4k8Yo4FiF1xbsLj/VBxfXEWxJNIrtIy6HC9KQ4xJxcPtoaaskh6QptCGrrcGnhKsTsENTRPZOBu4g==", "dev": true, + "peer": true, "requires": {} }, "postcss-double-position-gradients": { @@ -80373,6 +82732,7 @@ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.0.4.tgz", "integrity": "sha512-qz+s5vhKJlsHw8HjSs+HVk2QGFdRyC68KGRQGX3i+GcnUjhWhXQEmCXW6siOJkZ1giu0ddPwSO6I6JdVVVPoog==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80382,6 +82742,7 @@ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.4.tgz", "integrity": "sha512-0ltahRTPtXSIlEZFv7zIvdEib7HN0ZbUQxrxIKn8KbiRyhALo854I/CggU5lyZe6ZBvSTJ6Al2vkZecI2OhneQ==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80391,6 +82752,7 @@ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-focus-visible": { @@ -80398,6 +82760,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.3.tgz", "integrity": "sha512-ozOsg+L1U8S+rxSHnJJiET6dNLyADcPHhEarhhtCI9DBLGOPG/2i4ddVoFch9LzrBgb8uDaaRI4nuid2OM82ZA==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -80407,6 +82770,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.3.tgz", "integrity": "sha512-fk9y2uFS6/Kpp7/A9Hz9Z4rlFQ8+tzgBcQCXAFSrXFGAbKx+4ZZOmmfHuYjCOMegPWoz0pnC6fNzi8j7Xyqp5Q==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -80416,6 +82780,7 @@ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", "dev": true, + "peer": true, "requires": {} }, "postcss-gap-properties": { @@ -80423,6 +82788,7 @@ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz", "integrity": "sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==", "dev": true, + "peer": true, "requires": {} }, "postcss-image-set-function": { @@ -80430,6 +82796,7 @@ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.4.tgz", "integrity": "sha512-BlEo9gSTj66lXjRNByvkMK9dEdEGFXRfGjKRi9fo8s0/P3oEk74cAoonl/utiM50E2OPVb/XSu+lWvdW4KtE/Q==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80439,6 +82806,7 @@ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-js": { @@ -80446,6 +82814,7 @@ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", "dev": true, + "peer": true, "requires": { "camelcase-css": "^2.0.1" } @@ -80455,6 +82824,7 @@ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.0.3.tgz", "integrity": "sha512-MH4tymWmefdZQ7uVG/4icfLjAQmH6o2NRYyVh2mKoB4RXJp9PjsyhZwhH4ouaCQHvg+qJVj3RzeAR1EQpIlXZA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80464,6 +82834,7 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, + "peer": true, "requires": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", @@ -80475,6 +82846,7 @@ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.3.tgz", "integrity": "sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-media-minmax": { @@ -80482,6 +82854,7 @@ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-merge-longhand": { @@ -80489,6 +82862,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.5.tgz", "integrity": "sha512-R2BCPJJ/U2oh1uTWEYn9CcJ7MMcQ1iIbj9wfr2s/zHu5om5MP/ewKdaunpfJqR1WYzqCsgnXuRoVXPAzxdqy8g==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.0.2" @@ -80499,6 +82873,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.5.tgz", "integrity": "sha512-3Oa26/Pb9VOFVksJjFG45SNoe4nhGvJ2Uc6TlRimqF8uhfOCEhVCaJ3rvEat5UFOn2UZqTY5Da8dFgCh3Iq0Ug==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -80511,6 +82886,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.3.tgz", "integrity": "sha512-bC45rVzEwsLhv/cL1eCjoo2OOjbSk9I7HKFBYnBvtyuIZlf7uMipMATXtA0Fc3jwPo3wuPIW1jRJWKzflMh1sA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80520,6 +82896,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.5.tgz", "integrity": "sha512-/YjvXs8PepsoiZAIpjstOO4IHKwFAqYNqbA1yVdqklM84tbUUneh6omJxGlRlF3mi6K5Pa067Mg6IwqEnYC8Zg==", "dev": true, + "peer": true, "requires": { "colord": "^2.9.1", "cssnano-utils": "^3.0.1", @@ -80531,6 +82908,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.4.tgz", "integrity": "sha512-Z0vjod9lRZEmEPfEmA2sCfjbfEEFKefMD3RDIQSUfXK4LpCyWkX1CniUgyNvnjJFLDPSxtgKzozhHhPHKoeGkg==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "cssnano-utils": "^3.0.1", @@ -80542,6 +82920,7 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.2.tgz", "integrity": "sha512-gpn1nJDMCf3g32y/7kl+jsdamhiYT+/zmEt57RoT9GmzlixBNRPohI7k8UIHelLABhdLf3MSZhtM33xuH5eQOQ==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.5" } @@ -80551,6 +82930,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, + "peer": true, "requires": {} }, "postcss-modules-local-by-default": { @@ -80558,6 +82938,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, + "peer": true, "requires": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -80569,6 +82950,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.4" } @@ -80578,6 +82960,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "peer": true, "requires": { "icss-utils": "^5.0.0" } @@ -80587,6 +82970,7 @@ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.6" } @@ -80596,6 +82980,7 @@ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -80605,6 +82990,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", "dev": true, + "peer": true, "requires": { "@csstools/normalize.css": "*", "postcss-browser-comments": "^4", @@ -80616,6 +83002,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.2.tgz", "integrity": "sha512-fEMhYXzO8My+gC009qDc/3bgnFP8Fv1Ic8uw4ec4YTlhIOw63tGPk1YFd7fk9bZUf1DAbkhiL/QPWs9JLqdF2g==", "dev": true, + "peer": true, "requires": {} }, "postcss-normalize-display-values": { @@ -80623,6 +83010,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.2.tgz", "integrity": "sha512-RxXoJPUR0shSjkMMzgEZDjGPrgXUVYyWA/YwQRicb48H15OClPuaDR7tYokLAlGZ2tCSENEN5WxjgxSD5m4cUw==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80632,6 +83020,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.3.tgz", "integrity": "sha512-U+rmhjrNBvIGYqr/1tD4wXPFFMKUbXsYXvlUCzLi0tOCUS6LoeEAnmVXXJY/MEB/1CKZZwBSs2tmzGawcygVBA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80641,6 +83030,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.3.tgz", "integrity": "sha512-uk1+xYx0AMbA3nLSNhbDrqbf/rx+Iuq5tVad2VNyaxxJzx79oGieJ6D9F6AfOL2GtiIbP7vTYlpYHtG+ERFXTg==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80650,6 +83040,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.3.tgz", "integrity": "sha512-Mf2V4JbIDboNGQhW6xW0YREDiYXoX3WrD3EjKkjvnpAJ6W4qqjLnK/c9aioyVFaWWHVdP5zVRw/9DI5S3oLDFw==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80659,6 +83050,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.2.tgz", "integrity": "sha512-Ao0PP6MoYsRU1LxeVUW740ioknvdIUmfr6uAA3xWlQJ9s69/Tupy8qwhuKG3xWfl+KvLMAP9p2WXF9cwuk/7Bg==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80668,6 +83060,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.3.tgz", "integrity": "sha512-uNC7BmS/7h6to2UWa4RFH8sOTzu2O9dVWPE/F9Vm9GdhONiD/c1kNaCLbmsFHlKWcEx7alNUChQ+jH/QAlqsQw==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "postcss-value-parser": "^4.2.0" @@ -80678,6 +83071,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz", "integrity": "sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg==", "dev": true, + "peer": true, "requires": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" @@ -80688,6 +83082,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.3.tgz", "integrity": "sha512-333JWRnX655fSoUbufJ10HJop3c8mrpKkCCUnEmgz/Cb/QEtW+/TMZwDAUt4lnwqP6tCCk0x0b58jqvDgiQm/A==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80697,6 +83092,7 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.4.tgz", "integrity": "sha512-taKtGDZtyYUMVYkg+MuJeBUiTF6cGHZmo/qcW7ibvW79UlyKuSHbo6dpCIiqI+j9oJsXWzP+ovIxoyLDOeQFdw==", "dev": true, + "peer": true, "requires": { "cssnano-utils": "^3.0.1", "postcss-value-parser": "^4.2.0" @@ -80707,6 +83103,7 @@ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz", "integrity": "sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==", "dev": true, + "peer": true, "requires": {} }, "postcss-page-break": { @@ -80714,6 +83111,7 @@ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", "dev": true, + "peer": true, "requires": {} }, "postcss-place": { @@ -80721,6 +83119,7 @@ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.3.tgz", "integrity": "sha512-tDQ3m+GYoOar+KoQgj+pwPAvGHAp/Sby6vrFiyrELrMKQJ4AejL0NcS0mm296OKKYA2SRg9ism/hlT/OLhBrdQ==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80730,6 +83129,7 @@ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", "dev": true, + "peer": true, "requires": { "autoprefixer": "^10.4.2", "browserslist": "^4.19.1", @@ -80771,6 +83171,7 @@ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.0.2.tgz", "integrity": "sha512-CG35J1COUH7OOBgpw5O+0koOLUd5N4vUGKUqSAuIe4GiuLHWU96Pqp+UPC8QITTd12zYAFx76pV7qWT/0Aj/TA==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.8" } @@ -80780,6 +83181,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0" @@ -80790,6 +83192,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.3.tgz", "integrity": "sha512-yDnTUab5i7auHiNwdcL1f+pBnqQFf+7eC4cbC7D8Lc1FkvNZhtpkdad+9U4wDdFb84haupMf0rA/Zc5LcTe/3A==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.2.0" } @@ -80799,6 +83202,7 @@ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", "dev": true, + "peer": true, "requires": {} }, "postcss-selector-not": { @@ -80806,6 +83210,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", "dev": true, + "peer": true, "requires": { "balanced-match": "^1.0.0" } @@ -80815,6 +83220,7 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", "dev": true, + "peer": true, "requires": { "postcss-value-parser": "^4.1.0", "svgo": "^2.7.0" @@ -80825,6 +83231,7 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.3.tgz", "integrity": "sha512-V5tX2hadSSn+miVCluuK1IDGy+7jAXSOfRZ2DQ+s/4uQZb/orDYBjH0CHgFrXsRw78p4QTuEFA9kI6C956UnHQ==", "dev": true, + "peer": true, "requires": { "postcss-selector-parser": "^6.0.5" } @@ -80834,6 +83241,7 @@ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, + "peer": true, "requires": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -80843,13 +83251,15 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "peer": true }, "renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, + "peer": true, "requires": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -80862,13 +83272,15 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true + "dev": true, + "peer": true }, "sass-loader": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, + "peer": true, "requires": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -80879,6 +83291,7 @@ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, + "peer": true, "requires": { "xmlchars": "^2.2.0" } @@ -80888,6 +83301,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -80899,6 +83313,7 @@ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", "dev": true, + "peer": true, "requires": { "node-forge": "^1.2.0" } @@ -80908,6 +83323,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -80917,6 +83333,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "peer": true, "requires": { "randombytes": "^2.1.0" } @@ -80926,6 +83343,7 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "peer": true, "requires": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -80936,13 +83354,15 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "dev": true, + "peer": true }, "source-map-loader": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", "dev": true, + "peer": true, "requires": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", @@ -80954,6 +83374,7 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", "dev": true, + "peer": true, "requires": {} }, "stylehacks": { @@ -80961,6 +83382,7 @@ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.2.tgz", "integrity": "sha512-114zeJdOpTrbQYRD4OU5UWJ99LKUaqCPJTU1HQ/n3q3BwmllFN8kHENaLnOeqVq6AhXrWfxHNZTl33iJ4oy3cQ==", "dev": true, + "peer": true, "requires": { "browserslist": "^4.16.6", "postcss-selector-parser": "^6.0.4" @@ -80971,6 +83393,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -80980,6 +83403,7 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, + "peer": true, "requires": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -80994,7 +83418,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true + "dev": true, + "peer": true } } }, @@ -81003,6 +83428,7 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.17.tgz", "integrity": "sha512-OiHUsmOKQQEg/ocXaLIjk/kOz8EK2jF6iPuc1bQ4NsmhYl7sk70UDsGV02AJvBAAiJhinPCkDR8egT9qY+ulCw==", "dev": true, + "peer": true, "requires": { "arg": "^5.0.1", "chalk": "^4.1.2", @@ -81030,33 +83456,15 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } + "peer": true }, "terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", "dev": true, + "peer": true, "requires": { "jest-worker": "^27.4.1", "schema-utils": "^3.1.1", @@ -81069,7 +83477,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -81078,6 +83487,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, + "peer": true, "requires": { "punycode": "^2.1.1" } @@ -81094,13 +83504,15 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true + "dev": true, + "peer": true }, "w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, + "peer": true, "requires": { "xml-name-validator": "^3.0.0" } @@ -81109,13 +83521,15 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true + "dev": true, + "peer": true }, "webpack-dev-middleware": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", "dev": true, + "peer": true, "requires": { "colorette": "^2.0.10", "memfs": "^3.2.2", @@ -81129,6 +83543,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -81141,6 +83556,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.3" } @@ -81150,6 +83566,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -81164,6 +83581,7 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", "dev": true, + "peer": true, "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -81201,6 +83619,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -81213,6 +83632,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.3" } @@ -81221,13 +83641,15 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true + "dev": true, + "peer": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -81240,6 +83662,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "peer": true, "requires": { "ansi-regex": "^6.0.1" } @@ -81251,6 +83674,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "peer": true, "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -81262,6 +83686,7 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, + "peer": true, "requires": { "iconv-lite": "0.4.24" }, @@ -81271,6 +83696,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "peer": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -81281,13 +83707,15 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "dev": true, + "peer": true }, "whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, + "peer": true, "requires": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -81298,7 +83726,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "dev": true, + "peer": true } } }, @@ -81629,6 +84058,7 @@ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", "dev": true, + "peer": true, "requires": { "minimatch": "^3.0.5" } @@ -81719,9 +84149,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { "version": "0.15.1", @@ -81746,7 +84176,8 @@ "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true + "dev": true, + "peer": true }, "regexp.prototype.flags": { "version": "1.4.3", @@ -82679,6 +85110,7 @@ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, + "peer": true, "requires": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -82692,6 +85124,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -82701,6 +85134,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, + "peer": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -82711,7 +85145,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -82781,6 +85216,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -82788,38 +85224,15 @@ "terser": "^5.0.0" }, "dependencies": { - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, + "peer": true, "requires": { "randombytes": "^2.1.0" } - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } } } }, @@ -83188,7 +85601,8 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", - "dev": true + "dev": true, + "peer": true }, "sass": { "version": "1.52.3", @@ -83211,7 +85625,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "dev": true, + "peer": true }, "saxes": { "version": "6.0.0", @@ -83251,7 +85666,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true + "dev": true, + "peer": true }, "selenium-webdriver": { "version": "4.1.2", @@ -83373,6 +85789,7 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, + "peer": true, "requires": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -83388,6 +85805,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "peer": true, "requires": { "ms": "2.0.0" } @@ -83397,6 +85815,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, + "peer": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -83408,19 +85827,22 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "peer": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "peer": true }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "peer": true } } }, @@ -83524,7 +85946,8 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "dev": true, + "peer": true }, "should": { "version": "13.2.3", @@ -83934,6 +86357,7 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "peer": true, "requires": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -83947,6 +86371,7 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "peer": true, "requires": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -84098,7 +86523,8 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "dev": true, + "peer": true }, "stdopt": { "version": "2.2.0", @@ -84366,6 +86792,7 @@ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "peer": true, "requires": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -84390,7 +86817,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "dev": true + "dev": true, + "peer": true }, "strip-eof": { "version": "1.0.0", @@ -84571,23 +86999,6 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", @@ -84607,15 +87018,6 @@ "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", "dev": true }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -84628,44 +87030,6 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, "postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", @@ -84684,39 +87048,12 @@ "dev": true, "requires": {} }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, "write-file-atomic": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", @@ -84887,6 +87224,7 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "dev": true, + "peer": true, "requires": { "chalk": "^2.4.1", "coa": "^2.0.2", @@ -84908,6 +87246,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "peer": true, "requires": { "sprintf-js": "~1.0.2" } @@ -84917,6 +87256,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "peer": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -85131,13 +87471,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true + "dev": true, + "peer": true }, "tempy": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", "dev": true, + "peer": true, "requires": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", @@ -85149,7 +87491,8 @@ "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true + "dev": true, + "peer": true } } }, @@ -85158,33 +87501,35 @@ "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, + "peer": true, "requires": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "dependencies": { + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -85205,18 +87550,6 @@ "webpack-sources": "^1.4.3" }, "dependencies": { - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -85242,18 +87575,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } } } }, @@ -85283,7 +87604,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true + "dev": true, + "peer": true }, "throttle-debounce": { "version": "3.0.1", @@ -85336,7 +87658,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "dev": true, + "peer": true }, "timers-browserify": { "version": "2.0.12", @@ -85357,6 +87680,13 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true, + "peer": true + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", "dev": true }, "tiny-warning": { @@ -85492,11 +87822,10 @@ "dev": true }, "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true }, "trim-trailing-lines": { "version": "1.1.4", @@ -85514,7 +87843,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "dev": true + "dev": true, + "peer": true }, "ts-dedent": { "version": "2.1.1", @@ -85821,6 +88151,7 @@ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, + "peer": true, "requires": { "crypto-random-string": "^2.0.0" } @@ -85957,7 +88288,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true + "dev": true, + "peer": true }, "unset-value": { "version": "1.0.0", @@ -86159,6 +88491,7 @@ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, + "peer": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", @@ -86312,6 +88645,317 @@ "unist-util-stringify-position": "^2.0.0" } }, + "vite": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dev": true, + "requires": { + "esbuild": "^0.16.3", + "fsevents": "~2.3.2", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "rollup": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.10.0.tgz", + "integrity": "sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + } + } + }, + "vite-plugin-checker": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.5.3.tgz", + "integrity": "sha512-upPESKsQTypC2S7LPjxu9HknOymNSToAAHTYSFHb0at5GKLcN1QGMAR5Hb+7KqZclGMVniXAj7QdhZv+fTx83Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "npm-run-path": "^4.0.1", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vite-plugin-svgr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.4.0.tgz", + "integrity": "sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.2", + "@svgr/core": "^6.5.1" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "dev": true, + "requires": {} + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "dev": true, + "requires": {} + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "dev": true, + "requires": {} + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "dev": true, + "requires": {} + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "dev": true, + "requires": {} + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "dev": true, + "requires": {} + }, + "@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dev": true, + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + } + }, + "@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dev": true, + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + } + }, + "@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dev": true, + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + } + } + }, + "vite-tsconfig-paths": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.0.3.tgz", + "integrity": "sha512-gRO2Q/tOkV+9kMht5tz90+IaEKvW2zCnvwJV3tp2ruPNZOTM5rF+yXorJT4ggmAMYEaJ3nyXjx5P5jY5FwiZ+A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^2.0.1" + } + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -86342,11 +88986,77 @@ } } }, + "vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true + }, + "vscode-languageclient": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", + "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "dev": true, + "requires": { + "minimatch": "^3.0.5", + "semver": "^7.3.4", + "vscode-languageserver-protocol": "3.16.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.16.0" + } + }, + "vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "requires": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, + "peer": true, "requires": { "browser-process-hrtime": "^1.0.0" } @@ -86648,6 +89358,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "peer": true, "requires": { "minimalistic-assert": "^1.0.0" } @@ -86724,12 +89435,6 @@ "dev": true, "requires": {} }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -86788,18 +89493,6 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, "terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -86883,6 +89576,7 @@ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", "dev": true, + "peer": true, "requires": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" @@ -86892,19 +89586,22 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true + "dev": true, + "peer": true }, "webpack-sources": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", "dev": true, + "peer": true, "requires": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" @@ -86912,16 +89609,6 @@ } } }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -86997,7 +89684,8 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true + "dev": true, + "peer": true }, "whatwg-mimetype": { "version": "3.0.0", @@ -87037,6 +89725,32 @@ "is-symbol": "^1.0.3" } }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -87055,12 +89769,6 @@ "string-width": "^4.0.0" } }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -87078,6 +89786,7 @@ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", "dev": true, + "peer": true, "requires": { "idb": "^6.1.4", "workbox-core": "6.4.2" @@ -87087,7 +89796,8 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==", - "dev": true + "dev": true, + "peer": true } } }, @@ -87096,6 +89806,7 @@ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87105,6 +89816,7 @@ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", "dev": true, + "peer": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -87151,6 +89863,7 @@ "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.2.tgz", "integrity": "sha512-JdEazx7qiVqTBzzBl5rolRwl5cmhihjfIcpqRzIZjtT6b18liVmDn/VlWpqW4C/qP2hrFFMLRV1wlex8ZVBPTg==", "dev": true, + "peer": true, "requires": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", @@ -87162,6 +89875,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -87174,6 +89888,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "peer": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -87185,13 +89900,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "peer": true }, "source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, + "peer": true, "requires": { "whatwg-url": "^7.0.0" } @@ -87201,6 +89918,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, + "peer": true, "requires": { "punycode": "^2.1.0" } @@ -87209,19 +89927,22 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true + "dev": true, + "peer": true }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "dev": true, + "peer": true }, "whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, + "peer": true, "requires": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -87235,6 +89956,7 @@ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87243,13 +89965,15 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==", - "dev": true + "dev": true, + "peer": true }, "workbox-expiration": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", "dev": true, + "peer": true, "requires": { "idb": "^6.1.4", "workbox-core": "6.4.2" @@ -87259,7 +89983,8 @@ "version": "6.1.5", "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==", - "dev": true + "dev": true, + "peer": true } } }, @@ -87268,6 +89993,7 @@ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", "dev": true, + "peer": true, "requires": { "workbox-background-sync": "6.4.2", "workbox-core": "6.4.2", @@ -87280,6 +90006,7 @@ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87289,6 +90016,7 @@ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2", "workbox-routing": "6.4.2", @@ -87300,6 +90028,7 @@ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87309,6 +90038,7 @@ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", "dev": true, + "peer": true, "requires": { "workbox-cacheable-response": "6.4.2", "workbox-core": "6.4.2", @@ -87323,6 +90053,7 @@ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87332,6 +90063,7 @@ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2" } @@ -87341,6 +90073,7 @@ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", "dev": true, + "peer": true, "requires": { "workbox-core": "6.4.2", "workbox-routing": "6.4.2" @@ -87350,13 +90083,15 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==", - "dev": true + "dev": true, + "peer": true }, "workbox-webpack-plugin": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", "dev": true, + "peer": true, "requires": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", @@ -87371,6 +90106,7 @@ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", "dev": true, + "peer": true, "requires": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.4.2" diff --git a/airbyte-webapp/package.json b/airbyte-webapp/package.json index b5f62ab1726be..9c902627e05d5 100644 --- a/airbyte-webapp/package.json +++ b/airbyte-webapp/package.json @@ -8,11 +8,11 @@ "scripts": { "prepare": "cd .. && husky install airbyte-webapp/.husky", "prestart": "npm run generate-client", - "start": "node -r ./scripts/dev-overwrites.js ./node_modules/.bin/craco start", + "start": "node -r ./scripts/dev-overwrites.js ./node_modules/.bin/vite", "prestart:cloud": "npm run generate-client", - "start:cloud": "AB_ENV=${AB_ENV-frontend-dev} node -r ./scripts/environment.js -r ./scripts/dev-overwrites.js ./node_modules/.bin/craco start", + "start:cloud": "AB_ENV=${AB_ENV-frontend-dev} node -r ./scripts/environment.js -r ./scripts/dev-overwrites.js ./node_modules/.bin/vite", "prebuild": "npm run generate-client", - "build": "BUILD_PATH='./build/app' craco build", + "build": "vite build", "pretest": "npm run generate-client", "test": "jest --watch", "test:ci": "jest --watchAll=false --silent", @@ -21,7 +21,7 @@ "storybook": "start-storybook -p 9009 --quiet", "build:storybook": "build-storybook -o 'build/storybook'", "lint": "eslint --ext js,ts,tsx src", - "stylelint": "stylelint \"**/*.{css,scss}\"", + "stylelint": "stylelint 'src/**/*.{css,scss}'", "stylelint-check": "stylelint-config-prettier-scss-check", "license-check": "node ./scripts/license-check.js", "generate-client": "orval", @@ -93,7 +93,6 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@craco/craco": "^7.0.0-alpha.7", "@storybook/addon-essentials": "^6.5.7", "@storybook/builder-webpack5": "^6.5.7", "@storybook/manager-webpack5": "^6.5.7", @@ -125,14 +124,16 @@ "@types/unist": "^2.0.5", "@typescript-eslint/eslint-plugin": "^5.27.1", "@typescript-eslint/parser": "^5.27.1", + "@vitejs/plugin-basic-ssl": "^1.0.1", + "@vitejs/plugin-react": "^3.0.1", "babel-jest": "^29.3.1", "dotenv": "^16.0.3", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^8.6.0", "eslint-config-react-app": "^7.0.1", "eslint-plugin-css-modules": "^2.11.0", "eslint-plugin-jest": "^26.5.3", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-unused-imports": "^2.0.0", "express": "^4.18.1", "husky": "^8.0.1", @@ -140,11 +141,11 @@ "jest-environment-jsdom": "^29.3.1", "license-checker": "^25.0.1", "lint-staged": "^12.3.7", - "mini-css-extract-plugin": "^2.6.1", + "meow": "^9.0.0", "node-fetch": "^2.6.7", + "optionator": "^0.9.1", "orval": "^6.11.0-alpha.10", "prettier": "^2.6.2", - "react-scripts": "^5.0.1", "react-select-event": "^5.5.0", "storybook-addon-mock": "^2.4.1", "stylelint": "^14.9.1", @@ -156,7 +157,11 @@ "timezone-mock": "^1.3.4", "tmpl": "^1.0.5", "ts-node": "^10.8.1", - "typescript": "^4.7.3" + "typescript": "^4.7.3", + "vite": "^4.0.4", + "vite-plugin-checker": "^0.5.3", + "vite-plugin-svgr": "^2.4.0", + "vite-tsconfig-paths": "^4.0.3" }, "overrides": { "minimatch": "^3.0.5" diff --git a/airbyte-webapp/packages/vite-plugins/doc-middleware.ts b/airbyte-webapp/packages/vite-plugins/doc-middleware.ts new file mode 100644 index 0000000000000..15ea716b37a0e --- /dev/null +++ b/airbyte-webapp/packages/vite-plugins/doc-middleware.ts @@ -0,0 +1,27 @@ +import type { Connect, Plugin } from "vite"; + +import express from "express"; + +export function docMiddleware(): Plugin { + return { + name: "airbyte/doc-middleware", + configureServer(server) { + // Serve the docs used in the sidebar. During building Gradle will copy those into the docker image + // Relavant gradle task :airbyte-webapp:copyDocs + server.middlewares.use( + "/docs/integrations", + express.static(`${__dirname}/../../../docs/integrations`) as Connect.NextHandleFunction + ); + // workaround for adblockers to serve google ads docs in development + server.middlewares.use( + "/docs/integrations/sources/gglad.md", + express.static(`${__dirname}/../../../docs/integrations/sources/google-ads.md`) as Connect.NextHandleFunction + ); + // Server assets that can be used during. Related gradle task: :airbyte-webapp:copyDocAssets + server.middlewares.use( + "/docs/.gitbook", + express.static(`${__dirname}/../../../docs/.gitbook`) as Connect.NextHandleFunction + ); + }, + }; +} diff --git a/airbyte-webapp/packages/vite-plugins/index.ts b/airbyte-webapp/packages/vite-plugins/index.ts new file mode 100644 index 0000000000000..3a37b33207086 --- /dev/null +++ b/airbyte-webapp/packages/vite-plugins/index.ts @@ -0,0 +1,2 @@ +export { patchReactVirtualized } from "./patch-react-virtualized"; +export { docMiddleware } from "./doc-middleware"; diff --git a/airbyte-webapp/packages/vite-plugins/patch-react-virtualized.ts b/airbyte-webapp/packages/vite-plugins/patch-react-virtualized.ts new file mode 100644 index 0000000000000..76d345c2113a5 --- /dev/null +++ b/airbyte-webapp/packages/vite-plugins/patch-react-virtualized.ts @@ -0,0 +1,29 @@ +import type { Plugin } from "vite"; + +import fs from "fs"; +import path from "path"; + +// Patches the react-virtualized library which is pulled in by react-lazylog to remove +// a broken import in it. See https://github.com/bvaughn/react-virtualized/issues/1632 +const WRONG_CODE = `import { bpfrpt_proptype_WindowScroller } from "../WindowScroller.js";`; +export function patchReactVirtualized(): Plugin { + return { + name: "airbyte/patch-react-virtualized", + // Note: we cannot use the `transform` hook here + // because libraries are pre-bundled in vite directly, + // plugins aren't able to hack that step currently. + // so instead we manually edit the file in node_modules. + // all we need is to find the timing before pre-bundling. + configResolved() { + const file = require + .resolve("react-lazylog/node_modules/react-virtualized") + .replace( + path.join("dist", "commonjs", "index.js"), + path.join("dist", "es", "WindowScroller", "utils", "onScroll.js") + ); + const code = fs.readFileSync(file, "utf-8"); + const modified = code.replace(WRONG_CODE, ""); + fs.writeFileSync(file, modified); + }, + }; +} diff --git a/airbyte-webapp/src/components/connection/CatalogTree/next/BulkEditPanel.test.tsx b/airbyte-webapp/src/components/connection/CatalogTree/next/BulkEditPanel.test.tsx index 8fadfbbd9d904..ab9dcc6cd860d 100644 --- a/airbyte-webapp/src/components/connection/CatalogTree/next/BulkEditPanel.test.tsx +++ b/airbyte-webapp/src/components/connection/CatalogTree/next/BulkEditPanel.test.tsx @@ -186,7 +186,7 @@ const renderBulkEditPanel = () => describe("", () => { beforeAll(() => { - // @ts-ignore + // @ts-expect-error Okay for test ReactDOM.createPortal = (element) => { return element; }; diff --git a/airbyte-webapp/src/config/defaultConfig.ts b/airbyte-webapp/src/config/defaultConfig.ts index 140c3537cc5ed..d4c08aff96c24 100644 --- a/airbyte-webapp/src/config/defaultConfig.ts +++ b/airbyte-webapp/src/config/defaultConfig.ts @@ -4,8 +4,8 @@ const defaultConfig: Config = { segment: { enabled: true, token: "" }, healthCheckInterval: 20000, version: "dev", - apiUrl: `${window.location.protocol}//${window.location.hostname}:8001/api`, - connectorBuilderApiUrl: `${window.location.protocol}//${window.location.hostname}:8003`, + apiUrl: `http://${window.location.hostname}:8001/api`, + connectorBuilderApiUrl: `http://${window.location.hostname}:8003`, integrationUrl: "/docs", oauthRedirectUrl: `${window.location.protocol}//${window.location.host}`, }; diff --git a/airbyte-webapp/src/config/types.ts b/airbyte-webapp/src/config/types.ts index 0a2b8e3f75b0b..514d4b5ff917e 100644 --- a/airbyte-webapp/src/config/types.ts +++ b/airbyte-webapp/src/config/types.ts @@ -15,7 +15,6 @@ declare global { REACT_APP_INTEGRATION_DOCS_URLS?: string; SEGMENT_TOKEN?: string; LAUNCHDARKLY_KEY?: string; - analytics: SegmentAnalytics.AnalyticsJS; } } diff --git a/airbyte-webapp/src/hooks/services/Feature/FeatureService.tsx b/airbyte-webapp/src/hooks/services/Feature/FeatureService.tsx index 778df64f7e5ba..d34d2e9ba9c13 100644 --- a/airbyte-webapp/src/hooks/services/Feature/FeatureService.tsx +++ b/airbyte-webapp/src/hooks/services/Feature/FeatureService.tsx @@ -46,6 +46,10 @@ export const FeatureService: React.FC + import { useEffect } from "react"; // if token is undefined calls to segment will be a no-op. diff --git a/airbyte-webapp/src/react-app-env.d.ts b/airbyte-webapp/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc6b2c..0000000000000 --- a/airbyte-webapp/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/airbyte-webapp/src/setupProxy.js b/airbyte-webapp/src/setupProxy.js deleted file mode 100644 index c2ce4122da9f8..0000000000000 --- a/airbyte-webapp/src/setupProxy.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - -/** - * This file is used by create-react-app to configure the express instance used - * to serve files during development. - */ -const express = require("express"); - -module.exports = (app) => { - // Set the CSP header in development to detect potential breakages. - // This should always match the header in airbyte-webapp/nginx/default.conf.template - app.use((req, resp, next) => { - resp.header("Content-Security-Policy", "script-src * 'unsafe-inline'; worker-src self blob:;"); - next(); - }); - // Serve the doc markdowns and assets that are also bundled into the docker image - app.use("/docs/integrations", express.static(`${__dirname}/../../docs/integrations`)); - // workaround for adblockers to serve google ads docs in development - app.use( - "/docs/integrations/sources/gglad.md", - express.static(`${__dirname}/../../docs/integrations/sources/google-ads.md`) - ); - app.use("/docs/.gitbook", express.static(`${__dirname}/../../docs/.gitbook`)); -}; diff --git a/airbyte-webapp/src/types/react-app-env.d.ts b/airbyte-webapp/src/types/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc6b2c..0000000000000 --- a/airbyte-webapp/src/types/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/airbyte-webapp/src/types/rehype-urls.d.ts b/airbyte-webapp/src/types/rehype-urls.d.ts index fdb16590f8b9d..94f2316f72e1e 100644 --- a/airbyte-webapp/src/types/rehype-urls.d.ts +++ b/airbyte-webapp/src/types/rehype-urls.d.ts @@ -1,2 +1 @@ -/// declare module "rehype-urls"; diff --git a/airbyte-webapp/src/views/common/StoreProvider.tsx b/airbyte-webapp/src/views/common/StoreProvider.tsx index 6c1ad6a3e6118..3b228e0ec411f 100644 --- a/airbyte-webapp/src/views/common/StoreProvider.tsx +++ b/airbyte-webapp/src/views/common/StoreProvider.tsx @@ -15,7 +15,11 @@ const queryClient = new QueryClient({ const StoreProvider: React.FC> = ({ children }) => ( - + {children} ); diff --git a/airbyte-webapp/src/vite-env.d.ts b/airbyte-webapp/src/vite-env.d.ts new file mode 100644 index 0000000000000..11f02fe2a0061 --- /dev/null +++ b/airbyte-webapp/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/airbyte-webapp/tsconfig.json b/airbyte-webapp/tsconfig.json index 2648d04312fe5..ec543a1239f2a 100644 --- a/airbyte-webapp/tsconfig.json +++ b/airbyte-webapp/tsconfig.json @@ -1,11 +1,12 @@ { "compilerOptions": { - "target": "es5", + "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], + "types": ["vite/client", "vite-plugin-svgr/client"], "baseUrl": "src", "allowJs": false, "skipLibCheck": true, - "esModuleInterop": true, + "esModuleInterop": false, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, diff --git a/airbyte-webapp/vite.config.ts b/airbyte-webapp/vite.config.ts new file mode 100644 index 0000000000000..17bd40e531551 --- /dev/null +++ b/airbyte-webapp/vite.config.ts @@ -0,0 +1,81 @@ +import path from "path"; + +import basicSsl from "@vitejs/plugin-basic-ssl"; +import react from "@vitejs/plugin-react"; +import { loadEnv, UserConfig } from "vite"; +import { defineConfig } from "vite"; +import checker from "vite-plugin-checker"; +import svgrPlugin from "vite-plugin-svgr"; +import viteTsconfigPaths from "vite-tsconfig-paths"; + +import { docMiddleware, patchReactVirtualized } from "./packages/vite-plugins"; + +export default defineConfig(({ mode }) => { + // Load variables from all .env files + process.env = { + ...process.env, + ...loadEnv(mode, __dirname, ""), + }; + + // Environment variables that should be available in the frontend + const frontendEnvVariables = loadEnv(mode, __dirname, ["REACT_APP_"]); + // Create an object of defines that will shim all required process.env variables. + const processEnv = { + "process.env.NODE_ENV": JSON.stringify(mode), + ...Object.fromEntries( + Object.entries(frontendEnvVariables).map(([key, value]) => [`process.env.${key}`, JSON.stringify(value)]) + ), + }; + + const config: UserConfig = { + plugins: [ + basicSsl(), + react(), + viteTsconfigPaths(), + svgrPlugin(), + checker({ + // Enable checks while building the app (not just in dev mode) + enableBuild: true, + overlay: { + initialIsOpen: false, + position: "br", + // Align error popover button with the react-query dev tool button + badgeStyle: "transform: translate(-135px,-11px)", + }, + eslint: { lintCommand: `eslint --max-warnings=0 --ext js,ts,tsx src` }, + stylelint: { + lintCommand: 'stylelint "src/**/*.{css,scss}"', + // We need to overwrite this during development, since otherwise `files` are wrongly + // still containing the quotes around them, which they shouldn't + dev: { overrideConfig: { files: "src/**/*.{css,scss}" } }, + }, + typescript: true, + }), + patchReactVirtualized(), + docMiddleware(), + ], + // Use `REACT_APP_` as a prefix for environment variables that should be accessible from within FE code. + envPrefix: ["REACT_APP_"], + build: { + outDir: "build/app", + }, + server: { + port: Number(process.env.PORT) || 3000, + strictPort: true, + headers: { + "Content-Security-Policy": "script-src * 'unsafe-inline'; worker-src self blob:;", + }, + }, + define: { + ...processEnv, + }, + resolve: { + alias: { + // Allow @use "scss/" imports in SASS + scss: path.resolve(__dirname, "./src/scss"), + }, + }, + }; + + return config; +}); From 1e42895b586101bf6debb2c1ee214d2014f1d24d Mon Sep 17 00:00:00 2001 From: Jonathan Pearlin Date: Mon, 23 Jan 2023 15:10:34 -0500 Subject: [PATCH 40/56] Update to latest Micronaut release (#21742) --- deps.toml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/deps.toml b/deps.toml index 0fa2bd639d690..14c346569df40 100644 --- a/deps.toml +++ b/deps.toml @@ -20,7 +20,10 @@ jooq = "3.13.4" junit-jupiter = "5.9.1" log4j = "2.17.2" lombok = "1.18.24" -micronaut = "3.8.1" +micronaut = "3.8.2" +micronaut-data = "3.9.4" +micronaut-jaxrs = "3.4.0" +micronaut-security = "3.9.2" micronaut-test = "3.8.0" platform-testcontainers = "1.17.3" postgresql = "42.3.5" @@ -103,6 +106,7 @@ platform-testcontainers-postgresql = { module = "org.testcontainers:postgresql", postgresql = { module = "org.postgresql:postgresql", version.ref = "postgresql" } quartz-scheduler = { module = "org.quartz-scheduler:quartz", version = "2.3.2" } reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "reactor" } +reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "reactor" } s3 = { module = "software.amazon.awssdk:s3", version = "2.16.84" } slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", version = "4.7.3" } @@ -117,21 +121,22 @@ jakarta-inject = { module = "jakarta.annotation:jakarta.annotation-api", version javax-transaction = { module = "javax.transaction:javax.transaction-api", version = "1.3" } micronaut-bom = { module = "io.micronaut:micronaut-bom", version.ref = "micronaut" } micronaut-cache-caffeine = { module = "io.micronaut.cache:micronaut-cache-caffeine", version = "3.5.0"} -micronaut-data-processor = { module = "io.micronaut.data:micronaut-data-processor", version = "3.9.4" } -micronaut-data-tx = { module = "io.micronaut.data:micronaut-data-tx", version = "3.9.4" } +micronaut-data-processor = { module = "io.micronaut.data:micronaut-data-processor", version.ref = "micronaut-data" } +micronaut-data-tx = { module = "io.micronaut.data:micronaut-data-tx", version.ref = "micronaut-data" } micronaut-flyway = { module = "io.micronaut.flyway:micronaut-flyway", version = "5.4.1" } micronaut-inject = { module = "io.micronaut:micronaut-inject" } +micronaut-http = { module = "io.micronaut:micronaut-http", version.ref = "micronaut" } micronaut-http-client = { module = "io.micronaut:micronaut-http-client" } -micronaut-http-server-netty = { module = "io.micronaut:micronaut-http-server-netty" } +micronaut-http-server-netty = { module = "io.micronaut:micronaut-http-server-netty", version.ref = "micronaut" } micronaut-inject-java = { module = "io.micronaut:micronaut-inject-java", version.ref = "micronaut" } -micronaut-jaxrs-processor = { module = "io.micronaut.jaxrs:micronaut-jaxrs-processor", version = "3.4.0" } -micronaut-jaxrs-server = { module = "io.micronaut.jaxrs:micronaut-jaxrs-server", version = "3.4.0" } +micronaut-jaxrs-processor = { module = "io.micronaut.jaxrs:micronaut-jaxrs-processor", version.ref = "micronaut-jaxrs" } +micronaut-jaxrs-server = { module = "io.micronaut.jaxrs:micronaut-jaxrs-server", version.ref = "micronaut-jaxrs" } micronaut-jdbc = { module = "io.micronaut.sql:micronaut-jdbc", version = "4.7.2" } micronaut-jdbc-hikari = { module = "io.micronaut.sql:micronaut-jdbc-hikari" } micronaut-jooq = { module = "io.micronaut.sql:micronaut-jooq" } micronaut-management = { module = "io.micronaut:micronaut-management" } micronaut-runtime = { module = "io.micronaut:micronaut-runtime" } -micronaut-security = { module = "io.micronaut.security:micronaut-security", version = "3.9.0" } +micronaut-security = { module = "io.micronaut.security:micronaut-security", version.ref = "micronaut-security" } micronaut-test-core = { module = "io.micronaut.test:micronaut-test-core", version.ref = "micronaut-test" } micronaut-test-junit5 = { module = "io.micronaut.test:micronaut-test-junit5", version.ref = "micronaut-test" } micronaut-validation = { module = "io.micronaut:micronaut-validation" } From eb2d980d7a0c1afcd982d5e16f78a4b13294f305 Mon Sep 17 00:00:00 2001 From: Catherine Noll Date: Mon, 23 Jan 2023 15:12:16 -0500 Subject: [PATCH 41/56] [Connector Builder Server] add endpoint to resolve $refs and $options (#21565) --- .../generated/apis/default_api_interface.py | 26 +++ .../generated/models/resolve_manifest.py | 24 +++ .../models/resolve_manifest_request_body.py | 24 +++ .../connector_builder/impl/default_api.py | 43 +++- airbyte-connector-builder-server/setup.py | 2 +- .../src/main/openapi/openapi.yaml | 37 ++++ .../impl/test_default_api.py | 193 ++++++++++++++++++ 7 files changed, 340 insertions(+), 9 deletions(-) create mode 100644 airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest.py create mode 100644 airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest_request_body.py diff --git a/airbyte-connector-builder-server/connector_builder/generated/apis/default_api_interface.py b/airbyte-connector-builder-server/connector_builder/generated/apis/default_api_interface.py index 70e031d41df93..1af2b51cff7ee 100644 --- a/airbyte-connector-builder-server/connector_builder/generated/apis/default_api_interface.py +++ b/airbyte-connector-builder-server/connector_builder/generated/apis/default_api_interface.py @@ -27,6 +27,8 @@ from connector_builder.generated.models.invalid_input_exception_info import InvalidInputExceptionInfo from connector_builder.generated.models.known_exception_info import KnownExceptionInfo +from connector_builder.generated.models.resolve_manifest import ResolveManifest +from connector_builder.generated.models.resolve_manifest_request_body import ResolveManifestRequestBody from connector_builder.generated.models.stream_read import StreamRead from connector_builder.generated.models.stream_read_request_body import StreamReadRequestBody from connector_builder.generated.models.streams_list_read import StreamsListRead @@ -65,6 +67,15 @@ async def read_stream( Reads a specific stream in the source. TODO in a later phase - only read a single slice of data. """ + @abstractmethod + async def resolve_manifest( + self, + resolve_manifest_request_body: ResolveManifestRequestBody = Body(None, description=""), + ) -> ResolveManifest: + """ + Given a JSON manifest, returns a JSON manifest with all of the $refs and $options resolved and flattened + """ + def _assert_signature_is_set(method: Callable) -> None: """ @@ -143,5 +154,20 @@ def initialize_router(api: DefaultApi) -> APIRouter: response_model_by_alias=True, ) + _assert_signature_is_set(api.resolve_manifest) + router.add_api_route( + "/v1/manifest/resolve", + endpoint=api.resolve_manifest, + methods=["POST"], + responses={ + 200: {"model": ResolveManifest, "description": "Successful operation"}, + 400: {"model": KnownExceptionInfo, "description": "Exception occurred; see message for details."}, + 422: {"model": InvalidInputExceptionInfo, "description": "Input failed validation"}, + }, + tags=["default"], + summary="Given a JSON manifest, returns a JSON manifest with all of the $refs and $options resolved and flattened", + response_model_by_alias=True, + ) + return router diff --git a/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest.py b/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest.py new file mode 100644 index 0000000000000..81bcc339a5373 --- /dev/null +++ b/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest.py @@ -0,0 +1,24 @@ +# coding: utf-8 + +from __future__ import annotations +from datetime import date, datetime # noqa: F401 + +import re # noqa: F401 +from typing import Any, Dict, List, Optional # noqa: F401 + +from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401 + + +class ResolveManifest(BaseModel): + """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + + Do not edit the class manually. + + ResolveManifest - a model defined in OpenAPI + + manifest: The manifest of this ResolveManifest. + """ + + manifest: Dict[str, Any] + +ResolveManifest.update_forward_refs() diff --git a/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest_request_body.py b/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest_request_body.py new file mode 100644 index 0000000000000..91aded8ec5239 --- /dev/null +++ b/airbyte-connector-builder-server/connector_builder/generated/models/resolve_manifest_request_body.py @@ -0,0 +1,24 @@ +# coding: utf-8 + +from __future__ import annotations +from datetime import date, datetime # noqa: F401 + +import re # noqa: F401 +from typing import Any, Dict, List, Optional # noqa: F401 + +from pydantic import AnyUrl, BaseModel, EmailStr, validator # noqa: F401 + + +class ResolveManifestRequestBody(BaseModel): + """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + + Do not edit the class manually. + + ResolveManifestRequestBody - a model defined in OpenAPI + + manifest: The manifest of this ResolveManifestRequestBody. + """ + + manifest: Dict[str, Any] + +ResolveManifestRequestBody.update_forward_refs() diff --git a/airbyte-connector-builder-server/connector_builder/impl/default_api.py b/airbyte-connector-builder-server/connector_builder/impl/default_api.py index ef7ad588c3e7f..973defc09c418 100644 --- a/airbyte-connector-builder-server/connector_builder/impl/default_api.py +++ b/airbyte-connector-builder-server/connector_builder/impl/default_api.py @@ -10,10 +10,13 @@ from urllib.parse import parse_qs, urljoin, urlparse from airbyte_cdk.models import AirbyteLogMessage, AirbyteMessage, Type +from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource from airbyte_cdk.utils.schema_inferrer import SchemaInferrer from connector_builder.generated.apis.default_api_interface import DefaultApi from connector_builder.generated.models.http_request import HttpRequest from connector_builder.generated.models.http_response import HttpResponse +from connector_builder.generated.models.resolve_manifest import ResolveManifest +from connector_builder.generated.models.resolve_manifest_request_body import ResolveManifestRequestBody from connector_builder.generated.models.stream_read import StreamRead from connector_builder.generated.models.stream_read_pages import StreamReadPages from connector_builder.generated.models.stream_read_request_body import StreamReadRequestBody @@ -104,7 +107,8 @@ async def list_streams(self, streams_list_request_body: StreamsListRequestBody = ) except Exception as error: self.logger.error( - f"Could not list streams with with error: {error.args[0]} - {DefaultApiImpl._get_stacktrace_as_string(error)}") + f"Could not list streams with with error: {error.args[0]} - {DefaultApiImpl._get_stacktrace_as_string(error)}" + ) raise HTTPException(status_code=400, detail=f"Could not list streams with with error: {error.args[0]}") return StreamsListRead(streams=stream_list_read) @@ -128,9 +132,9 @@ async def read_stream(self, stream_read_request_body: StreamReadRequestBody = Bo log_messages = [] try: for message_group in self._get_message_groups( - adapter.read_stream(stream_read_request_body.stream, stream_read_request_body.config), - schema_inferrer, - record_limit, + adapter.read_stream(stream_read_request_body.stream, stream_read_request_body.config), + schema_inferrer, + record_limit, ): if isinstance(message_group, AirbyteLogMessage): log_messages.append({"message": message_group.message}) @@ -144,11 +148,34 @@ async def read_stream(self, stream_read_request_body: StreamReadRequestBody = Bo detail=f"Could not perform read with with error: {error.args[0]}", ) - return StreamRead(logs=log_messages, slices=[single_slice], - inferred_schema=schema_inferrer.get_stream_schema(stream_read_request_body.stream)) + return StreamRead( + logs=log_messages, slices=[single_slice], inferred_schema=schema_inferrer.get_stream_schema(stream_read_request_body.stream) + ) + + async def resolve_manifest( + self, resolve_manifest_request_body: ResolveManifestRequestBody = Body(None, description="") + ) -> ResolveManifest: + """ + Using the provided manifest, resolves $refs and $options and returns the resulting manifest to the client. + :param manifest_resolve_request_body: Input manifest whose $refs and $options will be resolved + :return: Airbyte record messages produced by the sync grouped by slice and page + """ + try: + return ResolveManifest( + manifest=ManifestDeclarativeSource( + resolve_manifest_request_body.manifest, construct_using_pydantic_models=True + ).resolved_manifest + ) + except Exception as error: + self.logger.error(f"Could not resolve manifest with error: {error.args[0]} - {self._get_stacktrace_as_string(error)}") + raise HTTPException( + status_code=400, + detail=f"Could not resolve manifest with error: {error.args[0]}", + ) - def _get_message_groups(self, messages: Iterator[AirbyteMessage], schema_inferrer: SchemaInferrer, limit: int) -> Iterable[ - Union[StreamReadPages, AirbyteLogMessage]]: + def _get_message_groups( + self, messages: Iterator[AirbyteMessage], schema_inferrer: SchemaInferrer, limit: int + ) -> Iterable[Union[StreamReadPages, AirbyteLogMessage]]: """ Message groups are partitioned according to when request log messages are received. Subsequent response log messages and record messages belong to the prior request log message and when we encounter another request, append the latest diff --git a/airbyte-connector-builder-server/setup.py b/airbyte-connector-builder-server/setup.py index e25a3dab72266..d50fed19aee43 100644 --- a/airbyte-connector-builder-server/setup.py +++ b/airbyte-connector-builder-server/setup.py @@ -41,7 +41,7 @@ }, packages=find_packages(exclude=("unit_tests", "integration_tests", "docs")), package_data={}, - install_requires=["airbyte-cdk==0.21.0", "fastapi", "uvicorn"], + install_requires=["airbyte-cdk==0.22", "fastapi", "uvicorn"], python_requires=">=3.9.11", extras_require={ "tests": [ diff --git a/airbyte-connector-builder-server/src/main/openapi/openapi.yaml b/airbyte-connector-builder-server/src/main/openapi/openapi.yaml index 61a828e3fbf0e..a104000d0fcb1 100644 --- a/airbyte-connector-builder-server/src/main/openapi/openapi.yaml +++ b/airbyte-connector-builder-server/src/main/openapi/openapi.yaml @@ -69,6 +69,27 @@ paths: schema: type: string description: Connector manifest template string + /v1/manifest/resolve: + post: + summary: Given a JSON manifest, returns a JSON manifest with all of the $refs and $options resolved and flattened + operationId: resolveManifest + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ResolveManifestRequestBody" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ResolveManifest" + "400": + $ref: "#/components/responses/ExceptionResponse" + "422": + $ref: "#/components/responses/InvalidInputResponse" components: schemas: @@ -237,6 +258,22 @@ components: # description: list of slices that will be retrieved for this stream # items: # type: object + ResolveManifestRequestBody: + type: object + required: + - manifest + properties: + manifest: + type: object + description: The config-based connector manifest contents + ResolveManifest: + type: object + required: + - manifest + properties: + manifest: + type: object + description: The config-based connector manifest contents with $refs and $options resolved # The following exception structs were copied from airbyte-api/src/main/openapi/config.yaml InvalidInputProperty: diff --git a/airbyte-connector-builder-server/unit_tests/connector_builder/impl/test_default_api.py b/airbyte-connector-builder-server/unit_tests/connector_builder/impl/test_default_api.py index d9bbf6a07fa17..4dead48f3dad6 100644 --- a/airbyte-connector-builder-server/unit_tests/connector_builder/impl/test_default_api.py +++ b/airbyte-connector-builder-server/unit_tests/connector_builder/impl/test_default_api.py @@ -11,6 +11,8 @@ from airbyte_cdk.models import AirbyteLogMessage, AirbyteMessage, AirbyteRecordMessage, Level, Type from connector_builder.generated.models.http_request import HttpRequest from connector_builder.generated.models.http_response import HttpResponse +from connector_builder.generated.models.resolve_manifest import ResolveManifest +from connector_builder.generated.models.resolve_manifest_request_body import ResolveManifestRequestBody from connector_builder.generated.models.stream_read import StreamRead from connector_builder.generated.models.stream_read_pages import StreamReadPages from connector_builder.generated.models.stream_read_request_body import StreamReadRequestBody @@ -623,6 +625,197 @@ def test_create_response_from_log_message(log_message, expected_response): assert actual_response == expected_response +def test_resolve_manifest(): + _stream_name = "stream_with_custom_requester" + _stream_primary_key = "id" + _stream_url_base = "https://api.sendgrid.com" + _stream_options = {"name": _stream_name, "primary_key": _stream_primary_key, "url_base": _stream_url_base} + + manifest = { + "version": "version", + "definitions": { + "schema_loader": {"name": "{{ options.stream_name }}", "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml"}, + "retriever": { + "paginator": { + "type": "DefaultPaginator", + "page_size": 10, + "page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"}, + "page_token_option": {"inject_into": "path"}, + "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}"}, + }, + "requester": { + "path": "/v3/marketing/lists", + "authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config.apikey }}"}, + "request_parameters": {"page_size": 10}, + }, + "record_selector": {"extractor": {"field_pointer": ["result"]}}, + }, + }, + "streams": [ + { + "type": "DeclarativeStream", + "$options": _stream_options, + "schema_loader": {"$ref": "*ref(definitions.schema_loader)"}, + "retriever": "*ref(definitions.retriever)", + }, + ], + "check": {"type": "CheckStream", "stream_names": ["lists"]}, + } + + expected_resolved_manifest = { + "type": "DeclarativeSource", + "version": "version", + "definitions": { + "schema_loader": {"name": "{{ options.stream_name }}", "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml"}, + "retriever": { + "paginator": { + "type": "DefaultPaginator", + "page_size": 10, + "page_size_option": {"inject_into": "request_parameter", "field_name": "page_size"}, + "page_token_option": {"inject_into": "path"}, + "pagination_strategy": {"type": "CursorPagination", "cursor_value": "{{ response._metadata.next }}"}, + }, + "requester": { + "path": "/v3/marketing/lists", + "authenticator": {"type": "BearerAuthenticator", "api_token": "{{ config.apikey }}"}, + "request_parameters": {"page_size": 10}, + }, + "record_selector": {"extractor": {"field_pointer": ["result"]}}, + }, + }, + "streams": [ + { + "type": "DeclarativeStream", + "schema_loader": { + "type": "JsonFileSchemaLoader", + "name": "{{ options.stream_name }}", + "file_path": "./source_sendgrid/schemas/{{ options.name }}.yaml", + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "retriever": { + "type": "SimpleRetriever", + "paginator": { + "type": "DefaultPaginator", + "page_size": 10, + "page_size_option": { + "type": "RequestOption", + "inject_into": "request_parameter", + "field_name": "page_size", + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "page_token_option": { + "type": "RequestOption", + "inject_into": "path", + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "pagination_strategy": { + "type": "CursorPagination", + "cursor_value": "{{ response._metadata.next }}", + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "requester": { + "type": "HttpRequester", + "path": "/v3/marketing/lists", + "authenticator": { + "type": "BearerAuthenticator", + "api_token": "{{ config.apikey }}", + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "request_parameters": {"page_size": 10}, + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "record_selector": { + "type": "RecordSelector", + "extractor": { + "type": "DpathExtractor", + "field_pointer": ["result"], + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + "name": _stream_name, + "primary_key": _stream_primary_key, + "url_base": _stream_url_base, + "$options": _stream_options, + }, + ], + "check": {"type": "CheckStream", "stream_names": ["lists"]}, + } + + api = DefaultApiImpl(LowCodeSourceAdapter) + + loop = asyncio.get_event_loop() + actual_response: ResolveManifest = loop.run_until_complete(api.resolve_manifest(ResolveManifestRequestBody(manifest=manifest))) + assert actual_response.manifest == expected_resolved_manifest + + +def test_resolve_manifest_unresolvable_references(): + expected_status_code = 400 + + invalid_manifest = { + "version": "version", + "definitions": {}, + "streams": [ + {"type": "DeclarativeStream", "retriever": "*ref(definitions.retriever)"}, + ], + "check": {"type": "CheckStream", "stream_names": ["lists"]}, + } + + api = DefaultApiImpl(LowCodeSourceAdapter) + loop = asyncio.get_event_loop() + with pytest.raises(HTTPException) as actual_exception: + loop.run_until_complete(api.resolve_manifest(ResolveManifestRequestBody(manifest=invalid_manifest))) + + assert "Undefined reference *ref(definitions.retriever)" in actual_exception.value.detail + assert actual_exception.value.status_code == expected_status_code + + +def test_resolve_manifest_invalid(): + expected_status_code = 400 + invalid_manifest = {"version": "version"} + + api = DefaultApiImpl(LowCodeSourceAdapter) + loop = asyncio.get_event_loop() + with pytest.raises(HTTPException) as actual_exception: + loop.run_until_complete(api.resolve_manifest(ResolveManifestRequestBody(manifest=invalid_manifest))) + + assert "Could not resolve manifest with error" in actual_exception.value.detail + assert actual_exception.value.status_code == expected_status_code + + def make_mock_adapter_cls(return_value: Iterator) -> MagicMock: mock_source_adapter_cls = MagicMock() mock_source_adapter = MagicMock() From 7b57968cc110cd8d9294dcd39c437a20d4b61f8d Mon Sep 17 00:00:00 2001 From: Michael Siega <109092231+mfsiega-airbyte@users.noreply.github.com> Date: Mon, 23 Jan 2023 21:18:58 +0100 Subject: [PATCH 42/56] fix query to get most recent actor catalog fetch event for some sources (#21726) * fix query to get most recent actor catalog fetch event for some sources * fix format * fix pmd * handle case where we fetch sources for an empty list --- .../config/persistence/ConfigRepository.java | 15 ++++--- .../ConfigRepositoryE2EReadWriteTest.java | 41 +++++++++++++++++++ .../airbyte/config/persistence/MockData.java | 23 +++++++---- 3 files changed, 66 insertions(+), 13 deletions(-) diff --git a/airbyte-config/config-persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java b/airbyte-config/config-persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java index 6865993a0126f..19f810f6d6cd2 100644 --- a/airbyte-config/config-persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java +++ b/airbyte-config/config-persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java @@ -1348,19 +1348,22 @@ public Optional getMostRecentActorCatalogFetchEventForSo return records.stream().findFirst().map(DbConverter::buildActorCatalogFetchEvent); } - // todo (cgardens) - following up on why this arg is not used in this comment: - // https://github.com/airbytehq/airbyte/pull/18125/files#r1027377700 @SuppressWarnings({"unused", "SqlNoDataSourceInspection"}) public Map getMostRecentActorCatalogFetchEventForSources(final List sourceIds) throws IOException { // noinspection SqlResolve + if (sourceIds.isEmpty()) { + return Collections.emptyMap(); + } return database.query(ctx -> ctx.fetch( """ - select actor_catalog_id, actor_id, created_at from - (select actor_catalog_id, actor_id, created_at, rank() over (partition by actor_id order by created_at desc) as creation_order_rank + select distinct actor_catalog_id, actor_id, created_at from + (select actor_catalog_id, actor_id, created_at, row_number() over (partition by actor_id order by created_at desc) as creation_order_row_number from public.actor_catalog_fetch_event + where actor_id in ({0}) ) table_with_rank - where creation_order_rank = 1; - """)) + where creation_order_row_number = 1; + """, + DSL.list(sourceIds.stream().map(DSL::value).collect(Collectors.toList())))) .stream().map(DbConverter::buildActorCatalogFetchEvent) .collect(Collectors.toMap(ActorCatalogFetchEvent::getActorId, record -> record)); } diff --git a/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java b/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java index d7cbf6f56c456..ba3d6be057e8b 100644 --- a/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java +++ b/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java @@ -564,6 +564,13 @@ void testGetMostRecentActorCatalogFetchEventForSource() throws SQLException, IOE fetchEvent2.getActorId(), fetchEvent2.getActorCatalogId(), now); + // Insert a second identical copy to verify that the query can handle duplicates since the records + // are not guaranteed to be unique. + insertCatalogFetchEvent( + ctx, + fetchEvent2.getActorId(), + fetchEvent2.getActorCatalogId(), + now); return null; }); @@ -590,6 +597,40 @@ void testGetMostRecentActorCatalogFetchEventForSources() throws SQLException, IO return null; }); + final Map result = + configRepository.getMostRecentActorCatalogFetchEventForSources(List.of(MockData.SOURCE_ID_1, + MockData.SOURCE_ID_2)); + + assertEquals(MockData.ACTOR_CATALOG_ID_1, result.get(MockData.SOURCE_ID_1).getActorCatalogId()); + assertEquals(MockData.ACTOR_CATALOG_ID_3, result.get(MockData.SOURCE_ID_2).getActorCatalogId()); + assertEquals(0, configRepository.getMostRecentActorCatalogFetchEventForSources(Collections.emptyList()).size()); + } + + @Test + void testGetMostRecentActorCatalogFetchEventWithDuplicates() throws SQLException, IOException { + // Tests that we can handle two fetch events in the db with the same actor id, actor catalog id, and + // timestamp e.g., from duplicate discoveries. + for (final ActorCatalog actorCatalog : MockData.actorCatalogs()) { + writeActorCatalog(database, Collections.singletonList(actorCatalog)); + } + + database.transaction(ctx -> { + // Insert the fetch events twice. + MockData.actorCatalogFetchEventsForAggregationTest().forEach(actorCatalogFetchEvent -> { + insertCatalogFetchEvent( + ctx, + actorCatalogFetchEvent.getActorCatalogFetchEvent().getActorId(), + actorCatalogFetchEvent.getActorCatalogFetchEvent().getActorCatalogId(), + actorCatalogFetchEvent.getCreatedAt()); + insertCatalogFetchEvent( + ctx, + actorCatalogFetchEvent.getActorCatalogFetchEvent().getActorId(), + actorCatalogFetchEvent.getActorCatalogFetchEvent().getActorCatalogId(), + actorCatalogFetchEvent.getCreatedAt()); + }); + return null; + }); + final Map result = configRepository.getMostRecentActorCatalogFetchEventForSources(List.of(MockData.SOURCE_ID_1, MockData.SOURCE_ID_2)); diff --git a/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/MockData.java b/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/MockData.java index a6117a08af06e..80d2be2d1a4a4 100644 --- a/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/MockData.java +++ b/airbyte-config/config-persistence/src/test/java/io/airbyte/config/persistence/MockData.java @@ -140,6 +140,8 @@ public class MockData { private static final UUID WEBHOOK_CONFIG_ID = UUID.randomUUID(); private static final String WEBHOOK_OPERATION_EXECUTION_URL = "test-webhook-url"; private static final String WEBHOOK_OPERATION_EXECUTION_BODY = "test-webhook-body"; + public static final String CONFIG_HASH = "1394"; + public static final String CONNECTOR_VERSION = "1.2.0"; public static List standardWorkspaces() { final Notification notification = new Notification() @@ -656,8 +658,8 @@ public static List actorCatalogFetchEventsSameSource() { .withId(ACTOR_CATALOG_FETCH_EVENT_ID_2) .withActorCatalogId(ACTOR_CATALOG_ID_2) .withActorId(SOURCE_ID_1) - .withConfigHash("1394") - .withConnectorVersion("1.2.0"); + .withConfigHash(CONFIG_HASH) + .withConnectorVersion(CONNECTOR_VERSION); return Arrays.asList(actorCatalogFetchEvent1, actorCatalogFetchEvent2); } @@ -683,18 +685,25 @@ public static List actorCatalogFetchEven .withId(ACTOR_CATALOG_FETCH_EVENT_ID_2) .withActorCatalogId(ACTOR_CATALOG_ID_2) .withActorId(SOURCE_ID_2) - .withConfigHash("1394") - .withConnectorVersion("1.2.0"); + .withConfigHash(CONFIG_HASH) + .withConnectorVersion(CONNECTOR_VERSION); final ActorCatalogFetchEvent actorCatalogFetchEvent3 = new ActorCatalogFetchEvent() .withId(ACTOR_CATALOG_FETCH_EVENT_ID_3) .withActorCatalogId(ACTOR_CATALOG_ID_3) .withActorId(SOURCE_ID_2) - .withConfigHash("1394") - .withConnectorVersion("1.2.0"); + .withConfigHash(CONFIG_HASH) + .withConnectorVersion(CONNECTOR_VERSION); + final ActorCatalogFetchEvent actorCatalogFetchEvent4 = new ActorCatalogFetchEvent() + .withId(ACTOR_CATALOG_FETCH_EVENT_ID_3) + .withActorCatalogId(ACTOR_CATALOG_ID_3) + .withActorId(SOURCE_ID_3) + .withConfigHash(CONFIG_HASH) + .withConnectorVersion(CONNECTOR_VERSION); return Arrays.asList( new ActorCatalogFetchEventWithCreationDate(actorCatalogFetchEvent1, now), new ActorCatalogFetchEventWithCreationDate(actorCatalogFetchEvent2, yesterday), - new ActorCatalogFetchEventWithCreationDate(actorCatalogFetchEvent3, now)); + new ActorCatalogFetchEventWithCreationDate(actorCatalogFetchEvent3, now), + new ActorCatalogFetchEventWithCreationDate(actorCatalogFetchEvent4, now)); } public static List workspaceServiceAccounts() { From b7685a7cd6d28813f9579edb78609916eca803a3 Mon Sep 17 00:00:00 2001 From: Conor Date: Mon, 23 Jan 2023 14:30:00 -0600 Subject: [PATCH 43/56] authenticate when calling setup-python (#21741) --- .github/workflows/gradle.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 64e581499f49b..31a52a2adfbf9 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -124,6 +124,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - name: Set up CI Gradle Properties run: | @@ -229,6 +230,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - name: Install Pyenv run: python3 -m pip install virtualenv==16.7.9 --user @@ -412,6 +414,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - name: Set up CI Gradle Properties run: | @@ -535,6 +538,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - name: Delete default old docker and replace it with a new one shell: bash @@ -666,6 +670,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - uses: actions/setup-node@v3 with: @@ -800,6 +805,7 @@ jobs: if: always() with: python-version: "3.9" + token: ${{ env.PAT }} - name: Publish Platform Test Results uses: EnricoMi/publish-unit-test-result-action@v2 @@ -945,6 +951,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - name: Install unzip shell: bash @@ -1021,6 +1028,7 @@ jobs: if: always() with: python-version: "3.9" + token: ${{ env.PAT }} - name: Publish Kube Test Results id: kube-results @@ -1191,6 +1199,7 @@ jobs: - uses: actions/setup-python@v4 with: python-version: "3.9" + token: ${{ env.PAT }} - uses: actions/setup-java@v1 with: From 3b1864f288b5a7a2834ff36ab9d47c77188dadd4 Mon Sep 17 00:00:00 2001 From: "Krishna (kc) Glick" Date: Mon, 23 Jan 2023 16:06:12 -0500 Subject: [PATCH 44/56] Checkboxes in dropdowns now correctly visually update when clicked (#21725) * preventDefault was necessary to make the checkboxes work * e -> event to reduce file diff --- airbyte-webapp/src/components/ui/DropDown/components/Option.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/airbyte-webapp/src/components/ui/DropDown/components/Option.tsx b/airbyte-webapp/src/components/ui/DropDown/components/Option.tsx index 49fcd9c812998..41ee0a538c749 100644 --- a/airbyte-webapp/src/components/ui/DropDown/components/Option.tsx +++ b/airbyte-webapp/src/components/ui/DropDown/components/Option.tsx @@ -65,6 +65,8 @@ export const DropDownOption: React.FC = (props) => { // for cases where the Dropdown is a child of a clickable parent such as a table row. props.selectOption(props.data); event.stopPropagation(); + // The checkbox does not work properly without this + event.preventDefault(); }} > From 2a714648e5839b13e153993a7ccff6a8a819d5b3 Mon Sep 17 00:00:00 2001 From: Serhii Lazebnyi <53845333+lazebnyi@users.noreply.github.com> Date: Mon, 23 Jan 2023 23:11:59 +0100 Subject: [PATCH 45/56] Enable high strictness level (#21618) --- .../connectors/source-zendesk-talk/README.md | 6 +- .../acceptance-test-config.yml | 66 +++++++++------ .../integration_tests/abnormal_state.json | 24 ++++-- .../integration_tests/expected_records.jsonl | 81 +++++++++++++++++++ 4 files changed, 145 insertions(+), 32 deletions(-) create mode 100644 airbyte-integrations/connectors/source-zendesk-talk/integration_tests/expected_records.jsonl diff --git a/airbyte-integrations/connectors/source-zendesk-talk/README.md b/airbyte-integrations/connectors/source-zendesk-talk/README.md index a414b1323f5ec..45f10e19d37a5 100644 --- a/airbyte-integrations/connectors/source-zendesk-talk/README.md +++ b/airbyte-integrations/connectors/source-zendesk-talk/README.md @@ -49,7 +49,7 @@ and place them into `secrets/config.json`. python main.py spec python main.py check --config secrets/config.json python main.py discover --config secrets/config.json -python main.py read --config secrets/config.json --catalog sample_files/configured_catalog.json +python main.py read --config secrets/config.json --catalog integration_tests/configured_catalog.json ``` ### Locally running the connector docker image @@ -57,7 +57,7 @@ python main.py read --config secrets/config.json --catalog sample_files/configur #### Build First, make sure you build the latest Docker image: ``` -docker build . -t airbyte/zendesk-talk:dev +docker build . -t airbyte/source-zendesk-talk:dev ``` You can also build the connector image via Gradle: @@ -79,7 +79,7 @@ docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/sample_files:/sample_files Make sure to familiarize yourself with [pytest test discovery](https://docs.pytest.org/en/latest/goodpractices.html#test-discovery) to know how your test files and methods should be named. First install test dependencies into your virtual environment: ``` -pip install .[tests] +pip install .'[tests]' ``` ### Unit Tests To run unit tests locally, from the connector directory run: diff --git a/airbyte-integrations/connectors/source-zendesk-talk/acceptance-test-config.yml b/airbyte-integrations/connectors/source-zendesk-talk/acceptance-test-config.yml index a4cb208d9cd7d..56e2156d43c62 100644 --- a/airbyte-integrations/connectors/source-zendesk-talk/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-zendesk-talk/acceptance-test-config.yml @@ -2,32 +2,52 @@ # for more information about how to configure these tests # intentionally left out explicit configured_catalog.json to test all streams from discovery connector_image: airbyte/source-zendesk-talk:dev -tests: +test_strictness_level: "high" +acceptance_tests: spec: - - spec_path: "source_zendesk_talk/spec.json" + tests: + - spec_path: "source_zendesk_talk/spec.json" connection: - - config_path: "secrets/config.json" - status: "succeed" - - config_path: "integration_tests/invalid_config.json" - status: "failed" - - config_path: "secrets/config_old.json" - status: "succeed" + tests: + - config_path: "secrets/config.json" + status: "succeed" + - config_path: "integration_tests/invalid_config.json" + status: "failed" + - config_path: "secrets/config_old.json" + status: "succeed" discovery: - - config_path: "secrets/config.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.3" - - config_path: "secrets/config_old.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.3" + tests: + - config_path: "secrets/config.json" + backward_compatibility_tests_config: + disable_for_version: "0.1.3" + - config_path: "secrets/config_old.json" + backward_compatibility_tests_config: + disable_for_version: "0.1.3" basic_read: - - config_path: "secrets/config.json" + tests: + - config_path: "secrets/config.json" + expect_records: + path: "integration_tests/expected_records.jsonl" + extra_fields: no + exact_order: no + extra_records: yes + empty_streams: + - name: "account_overview" + bypass_reason: "The objects can mutate quite often." + - name: "agents_overview" + bypass_reason: "The objects can mutate quite often." + - name: "current_queue_activity" + bypass_reason: "The objects can mutate quite often." incremental: - - config_path: "secrets/config.json" - future_state_path: "integration_tests/abnormal_state.json" + tests: + - config_path: "secrets/config.json" + future_state: + future_state_path: "integration_tests/abnormal_state.json" full_refresh: - - config_path: "secrets/config.json" - configured_catalog_path: "integration_tests/configured_catalog.json" - ignored_fields: - account_overview: ["current_timestamp"] - agents_overview: ["current_timestamp"] - current_queue_activity: ["current_timestamp"] + tests: + - config_path: "secrets/config.json" + configured_catalog_path: "integration_tests/configured_catalog.json" + ignored_fields: + account_overview: ["current_timestamp"] + agents_overview: ["current_timestamp"] + current_queue_activity: ["current_timestamp"] diff --git a/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/abnormal_state.json index 6c8e657de0642..26862a32c0efe 100644 --- a/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/abnormal_state.json @@ -1,8 +1,20 @@ -{ - "calls": { - "updated_at": "2121-01-01T00:00:00Z" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": "2121-01-01T00:00:00Z" + }, + "stream_descriptor": { "name": "calls" } + } }, - "call_legs": { - "updated_at": "2121-01-01T00:00:00Z" + { + "type": "STREAM", + "stream": { + "stream_state": { + "updated_at": "2121-01-01T00:00:00Z" + }, + "stream_descriptor": { "name": "call_legs" } + } } -} +] diff --git a/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/expected_records.jsonl new file mode 100644 index 0000000000000..5e1deb1cca938 --- /dev/null +++ b/airbyte-integrations/connectors/source-zendesk-talk/integration_tests/expected_records.jsonl @@ -0,0 +1,81 @@ +{"stream": "addresses", "data": {"id": 360000047935, "name": "Fake Zendesk 1001", "street": "1019 Market Street", "zip": "94103", "city": "San Francisco", "state": null, "province": "California", "country_code": "US", "provider_reference": "AD89734a096af9bab5eb8d364a00e03859"}, "emitted_at": 1674159463524} +{"stream": "addresses", "data": {"id": 360000049316, "name": "Fake Zendesk 1000", "street": "1019 Market Street", "zip": "94103", "city": "San Francisco", "state": null, "province": "California", "country_code": "US", "provider_reference": "AD15e4b6ac73c4e727e2b00c29963d8e06"}, "emitted_at": 1674159463524} +{"stream": "addresses", "data": {"id": 360000049296, "name": "Fake Zendesk 999", "street": "1019 Market Street", "zip": "94103", "city": "San Francisco", "state": null, "province": "California", "country_code": "US", "provider_reference": "ADad90fc569206d6cbe5f5a6f160c01516"}, "emitted_at": 1674159463525} +{"stream": "addresses", "data": {"id": 360000047915, "name": "Fake Zendesk 998", "street": "1019 Market Street", "zip": "94103", "city": "San Francisco", "state": null, "province": "California", "country_code": "US", "provider_reference": "ADa89d87601b4f38b45ca172ba36bc4c36"}, "emitted_at": 1674159463525} +{"stream": "addresses", "data": {"id": 360000049276, "name": "Fake Zendesk 997", "street": "1019 Market Street", "zip": "94103", "city": "San Francisco", "state": null, "province": "California", "country_code": "US", "provider_reference": "AD1b03f6250ae793c562f9290a47404e5b"}, "emitted_at": 1674159463525} +{"stream": "agents_activity", "data": {"name": "Team Airbyte", "agent_id": 360786799676, "via": "client", "avatar_url": "https://d3v-airbyte.zendesk.com/images/2016/default-avatar-80.png", "forwarding_number": null, "average_talk_time": 0, "calls_accepted": 0, "calls_denied": 0, "calls_missed": 0, "online_time": 0, "available_time": 0, "total_call_duration": 0, "total_talk_time": 0, "total_wrap_up_time": 0, "away_time": 0, "call_status": null, "agent_state": "offline", "transfers_only_time": 0, "average_wrap_up_time": 0, "accepted_transfers": 0, "started_transfers": 0, "calls_put_on_hold": 0, "average_hold_time": 0, "total_hold_time": 0, "started_third_party_conferences": 0, "accepted_third_party_conferences": 0}, "emitted_at": 1674159464163} +{"stream": "calls", "data": {"id": 360088814475, "created_at": "2021-04-01T13:42:47Z", "updated_at": "2021-04-01T14:23:15Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "failed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 18, "exceeded_queue_wait_time": null, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": null, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": null, "ivr_routed_to": null, "callback": null, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["silence"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472100} +{"stream": "calls", "data": {"id": 360120314196, "created_at": "2021-10-20T15:16:31Z", "updated_at": "2021-10-20T15:56:54Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 8, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472101} +{"stream": "calls", "data": {"id": 360121169675, "created_at": "2021-10-20T15:16:42Z", "updated_at": "2021-10-20T15:57:03Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 7, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472101} +{"stream": "calls", "data": {"id": 360121166995, "created_at": "2021-10-20T13:22:25Z", "updated_at": "2021-10-20T16:22:34Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 6, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472102} +{"stream": "calls", "data": {"id": 360120313416, "created_at": "2021-10-20T14:34:26Z", "updated_at": "2021-10-20T17:34:36Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 349, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 6, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472102} +{"stream": "calls", "data": {"id": 360121168815, "created_at": "2021-10-20T14:40:05Z", "updated_at": "2021-10-20T17:40:25Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 17, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472102} +{"stream": "calls", "data": {"id": 360120313656, "created_at": "2021-10-20T14:49:50Z", "updated_at": "2021-10-20T17:50:02Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 5, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472103} +{"stream": "calls", "data": {"id": 360120313676, "created_at": "2021-10-20T14:50:08Z", "updated_at": "2021-10-20T17:50:16Z", "agent_id": null, "call_charge": "0.003", "consultation_time": 0, "completion_status": "completed", "customer_id": null, "customer_requested_voicemail": false, "direction": "outbound", "duration": 6, "exceeded_queue_wait_time": false, "hold_time": 0, "minutes_billed": 1, "outside_business_hours": false, "phone_number_id": 360000121575, "phone_number": "+12059531462", "ticket_id": null, "time_to_answer": null, "voicemail": false, "wait_time": 0, "wrap_up_time": 0, "ivr_time_spent": null, "ivr_hops": null, "ivr_destination_group_name": null, "talk_time": 0, "ivr_routed_to": null, "callback": false, "callback_source": null, "default_group": false, "ivr_action": null, "overflowed": false, "overflowed_to": null, "recording_control_interactions": 0, "recording_time": 0, "not_recording_time": 0, "call_recording_consent": "always", "call_recording_consent_action": null, "call_recording_consent_keypress": null, "call_group_id": null, "call_channel": null, "quality_issues": ["none"], "line": "+12059531462", "line_id": 360000121575, "line_type": "phone"}, "emitted_at": 1674159472103} +{"stream": "call_legs", "data": {"id": 360167085115, "created_at": "2021-04-01T13:42:47Z", "updated_at": "2021-04-01T14:23:14Z", "agent_id": 360786799676, "user_id": 0, "duration": 18, "hold_time": 0, "wrap_up_time": 0, "available_via": "browser", "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": 1, "call_charge": "0.003", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["silence"], "call_id": 360088814475, "type": "agent"}, "emitted_at": 1674159475493} +{"stream": "call_legs", "data": {"id": 360222253536, "created_at": "2021-10-20T13:22:27Z", "updated_at": "2021-10-20T14:02:47Z", "agent_id": 0, "user_id": null, "duration": 4, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["none"], "call_id": 360121166995, "type": "customer"}, "emitted_at": 1674159475493} +{"stream": "call_legs", "data": {"id": 360223248835, "created_at": "2021-10-20T14:34:28Z", "updated_at": "2021-10-20T14:40:20Z", "agent_id": 0, "user_id": null, "duration": 347, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["information_not_available"], "call_id": 360120313416, "type": "customer"}, "emitted_at": 1674159475494} +{"stream": "call_legs", "data": {"id": 360222256556, "created_at": "2021-10-20T14:50:30Z", "updated_at": "2021-10-20T14:55:21Z", "agent_id": 0, "user_id": null, "duration": 286, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["information_not_available"], "call_id": 360120313696, "type": "customer"}, "emitted_at": 1674159475494} +{"stream": "call_legs", "data": {"id": 360223248815, "created_at": "2021-10-20T14:34:12Z", "updated_at": "2021-10-20T15:14:34Z", "agent_id": 0, "user_id": null, "duration": 9, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["none"], "call_id": 360120313376, "type": "customer"}, "emitted_at": 1674159475495} +{"stream": "call_legs", "data": {"id": 360222257236, "created_at": "2021-10-20T15:16:08Z", "updated_at": "2021-10-20T15:20:17Z", "agent_id": 0, "user_id": null, "duration": 247, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["information_not_available"], "call_id": 360121169655, "type": "customer"}, "emitted_at": 1674159475495} +{"stream": "call_legs", "data": {"id": 360222256136, "created_at": "2021-10-20T14:40:08Z", "updated_at": "2021-10-20T15:20:35Z", "agent_id": 0, "user_id": null, "duration": 14, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["none"], "call_id": 360121168815, "type": "customer"}, "emitted_at": 1674159475495} +{"stream": "call_legs", "data": {"id": 360223249615, "created_at": "2021-10-20T14:49:52Z", "updated_at": "2021-10-20T15:30:06Z", "agent_id": 0, "user_id": null, "duration": 3, "hold_time": 0, "wrap_up_time": null, "available_via": null, "forwarded_to": null, "consultation_from": null, "transferred_from": null, "transferred_to": null, "minutes_billed": null, "call_charge": "0.0", "completion_status": "completed", "consultation_time": null, "talk_time": 0, "consultation_to": null, "conference_time": null, "conference_from": null, "conference_to": null, "quality_issues": ["none"], "call_id": 360120313656, "type": "customer"}, "emitted_at": 1674159475496} +{"stream": "greetings", "data": {"id": "voicemail_en", "name": "Default (voicemail on)", "category_id": 1, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_voicemail_greeting-2f8e559817bdaf572b7399ba19bd077943a99102eb79421fb37c45c6c209dc42.mp3", "audio_name": "voicemail_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479082} +{"stream": "greetings", "data": {"id": "voicemail_jp", "name": "Default (Japanese)", "category_id": 1, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_jp_voicemail_greeting-877bed4a67aa833401f1e6dd9e26cc18aeee83f39a88cf60aa939a5987292286.mp3", "audio_name": "voicemail_jp.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479082} +{"stream": "greetings", "data": {"id": "voicemail_none", "name": "None", "category_id": 1, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": null, "audio_name": "voicemail_none.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479082} +{"stream": "greetings", "data": {"id": "available_en", "name": "Default", "category_id": 2, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_available_greeting-4fc2c1e71ea75b4bf5b7dd32a7104e10e4e8bf24000201429d7c11a845784dc5.mp3", "audio_name": "available_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479083} +{"stream": "greetings", "data": {"id": "available_jp", "name": "Default (Japanese)", "category_id": 2, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_jp_available_greeting-046a59a7baffe238eb7370e7cf5fe7305371540474c93e0f30c731328b342174.mp3", "audio_name": "available_jp.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479084} +{"stream": "greetings", "data": {"id": "available_none", "name": "None", "category_id": 2, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": null, "audio_name": "available_none.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479084} +{"stream": "greetings", "data": {"id": "wait_en", "name": "Default", "category_id": 3, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_wait_greeting-9af4ed352eb6d50cf3f85aa7c41492be6ff1bab5228cc3cf0fbb8957738dbe40.mp3", "audio_name": "wait_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479085} +{"stream": "greetings", "data": {"id": "hold_en", "name": "Default", "category_id": 4, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_hold_greeting-9af4ed352eb6d50cf3f85aa7c41492be6ff1bab5228cc3cf0fbb8957738dbe40.mp3", "audio_name": "hold_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479086} +{"stream": "greetings", "data": {"id": "ivr_none", "name": "None", "category_id": 5, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": null, "audio_name": "ivr_none.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479086} +{"stream": "greetings", "data": {"id": "available_en_call_monitoring", "name": "Default (call monitoring)", "category_id": 2, "default": true, "default_lang": true, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_available_greeting_with_call_monitoring-efc19b939e4c5ceb8455db8e9754335806beb7bb9a28ce3571071a5a96871d76.mp3", "audio_name": "available_en_call_monitoring.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479087} +{"stream": "greetings", "data": {"id": "available_jp_call_monitoring", "name": "Default (Japanese call monitoring)", "category_id": 2, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_jp_available_greeting_with_call_monitoring-7268e49ae9cc8f2fc675c96dfed1af98c9d0e9ae77f90d773d3cd96aed5b9e58.mp3", "audio_name": "available_jp_call_monitoring.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479087} +{"stream": "greetings", "data": {"id": "callback_en", "name": "Default", "category_id": 6, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_callback_greeting_V2-bf2424b358a4faeaa828ccb69c967ad4074445229bbb0c73dd120700319de68a.mp3", "audio_name": "callback_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479088} +{"stream": "greetings", "data": {"id": "callback-confirmation_en", "name": "Default", "category_id": 7, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_callback_confirmation_greeting_V2-bf7b6a1645341aab989b52a1eb3425d51e41f906396e8b13d669256917697c79.mp3", "audio_name": "callback-confirmation_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479088} +{"stream": "greetings", "data": {"id": "callback_none", "name": "None", "category_id": 6, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": null, "audio_name": "callback_none.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479089} +{"stream": "greetings", "data": {"id": "callback-confirmation_none", "name": "None", "category_id": 7, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": null, "audio_name": "callback-confirmation_none.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479089} +{"stream": "greetings", "data": {"id": "available_en_voicemail_config", "name": "Default (voicemail off)", "category_id": 2, "default": true, "default_lang": true, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_available_greeting_no_voicemail-1b9769a85defcc80aac0ab62cbc99b8ecc72f8d0fbfd7165fead98dd49c21c4e.mp3", "audio_name": "available_en_voicemail_config.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479090} +{"stream": "greetings", "data": {"id": "available_jp_voicemail_config", "name": "Default (Japanese voicemail off)", "category_id": 2, "default": true, "default_lang": false, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_jp_available_greeting_no_voicemail-350a937a599dc9b3314d270602cb9e152ce2adeee1cb5b31b31f1995c8cc7882.mp3", "audio_name": "available_jp_voicemail_config.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479090} +{"stream": "greetings", "data": {"id": "voicemail_en_voicemail_config", "name": "Default (voicemail off)", "category_id": 1, "default": true, "default_lang": true, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_voicemail_off_greeting-37c1fef28743683024b42c5577e6eb1bce42aa3aabe1dd01c875c65fb0ec4b05.mp3", "audio_name": "voicemail_en_voicemail_config.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479091} +{"stream": "greetings", "data": {"id": "call-recording-opt-out_en", "name": "Opt-out consent greeting (default)", "category_id": 8, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_call_recording_opt_out-4ccf97e7c00fa861dc2905d23931fd94b6293416c7f1dc0db3b6d3fe1c2fcf33.mp3", "audio_name": "call-recording-opt-out_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479091} +{"stream": "greetings", "data": {"id": "call-recording-opt-in_en", "name": "Opt-in consent greeting (default)", "category_id": 9, "default": true, "default_lang": true, "active": true, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_call_recording_opt_in-e1054755d6c6b90661bdd8f5e8cff1beb73b1841ef515544f386b96e6ed4bad1.mp3", "audio_name": "call-recording-opt-in_en.mp3", "upload_id": null, "phone_number_ids": [360000121575], "ivr_ids": [], "has_sub_settings": false}, "emitted_at": 1674159479092} +{"stream": "greetings", "data": {"id": "available_en_digital_lines", "name": "Default (digital line)", "category_id": 2, "default": true, "default_lang": true, "active": false, "pending": false, "audio_url": "https://static.zdassets.com/voice/ef9da20555606d86a6f57f86f07ad1bfb0de132c/voice/assets/default_en_available_digital_line_greeting_2-1b9769a85defcc80aac0ab62cbc99b8ecc72f8d0fbfd7165fead98dd49c21c4e.mp3", "audio_name": "available_en_digital_lines.mp3", "upload_id": null, "phone_number_ids": [], "ivr_ids": [], "has_sub_settings": true}, "emitted_at": 1674159479093} +{"stream": "greeting_categories", "data": {"id": 1, "name": "voicemail"}, "emitted_at": 1674159479490} +{"stream": "greeting_categories", "data": {"id": 2, "name": "available"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 3, "name": "wait"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 4, "name": "hold"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 5, "name": "ivr"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 6, "name": "callback"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 7, "name": "callback_confirmation"}, "emitted_at": 1674159479491} +{"stream": "greeting_categories", "data": {"id": 8, "name": "call_recording_opt_out"}, "emitted_at": 1674159479492} +{"stream": "greeting_categories", "data": {"id": 9, "name": "call_recording_opt_in"}, "emitted_at": 1674159479492} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011856, "id": 360000018476, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000016516, "keypress": "5", "greeting": null, "action": "menu", "options": {"menu_id": 360000018476}, "option_text": "Main menu", "overflow_options": []}]}, "emitted_at": 1674159480308} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011876, "id": 360000018496, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000015935, "keypress": "0", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015955, "keypress": "2", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015975, "keypress": "3", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015995, "keypress": "4", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016015, "keypress": "6", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016035, "keypress": "8", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016436, "keypress": "1", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016456, "keypress": "5", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016476, "keypress": "7", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016496, "keypress": "9", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}]}, "emitted_at": 1674159480308} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011896, "id": 360000018516, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480309} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011916, "id": 360000018536, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480310} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011936, "id": 360000018556, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480310} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011956, "id": 360000018576, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480310} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011976, "id": 360000018596, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480310} +{"stream": "ivr_menus", "data": {"ivr_id": 360000011996, "id": 360000018616, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480311} +{"stream": "ivr_menus", "data": {"ivr_id": 360000012016, "id": 360000018636, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480311} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011856, "ivr_menu_id": 360000018476, "id": 360000018476, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000016516, "keypress": "5", "greeting": null, "action": "menu", "options": {"menu_id": 360000018476}, "option_text": "Main menu", "overflow_options": []}]}, "emitted_at": 1674159480341} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011876, "ivr_menu_id": 360000018496, "id": 360000018496, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000015935, "keypress": "0", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015955, "keypress": "2", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015975, "keypress": "3", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015995, "keypress": "4", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016015, "keypress": "6", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016035, "keypress": "8", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016436, "keypress": "1", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016456, "keypress": "5", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016476, "keypress": "7", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016496, "keypress": "9", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}]}, "emitted_at": 1674159480342} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011896, "ivr_menu_id": 360000018516, "id": 360000018516, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480343} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011916, "ivr_menu_id": 360000018536, "id": 360000018536, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480343} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011936, "ivr_menu_id": 360000018556, "id": 360000018556, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480345} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011956, "ivr_menu_id": 360000018576, "id": 360000018576, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480345} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011976, "ivr_menu_id": 360000018596, "id": 360000018596, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480346} +{"stream": "ivr_routes", "data": {"ivr_id": 360000011996, "ivr_menu_id": 360000018616, "id": 360000018616, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480347} +{"stream": "ivr_routes", "data": {"ivr_id": 360000012016, "ivr_menu_id": 360000018636, "id": 360000018636, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}, "emitted_at": 1674159480348} +{"stream": "ivrs", "data": {"id": 360000011856, "name": "Fake IVR Menu 3", "menus": [{"id": 360000018476, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000016516, "keypress": "5", "greeting": null, "action": "menu", "options": {"menu_id": 360000018476}, "option_text": "Main menu", "overflow_options": []}]}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480404} +{"stream": "ivrs", "data": {"id": 360000011876, "name": "Fake IVR Menu 5", "menus": [{"id": 360000018496, "name": "Main menu", "default": true, "greeting_id": null, "routes": [{"id": 360000015935, "keypress": "0", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015955, "keypress": "2", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015975, "keypress": "3", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000015995, "keypress": "4", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016015, "keypress": "6", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016035, "keypress": "8", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016436, "keypress": "1", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016456, "keypress": "5", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016476, "keypress": "7", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}, {"id": 360000016496, "keypress": "9", "greeting": null, "action": "group", "options": {"group_ids": [10001]}, "option_text": null, "overflow_options": []}]}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480405} +{"stream": "ivrs", "data": {"id": 360000011896, "name": "Fake IVR Menu 6", "menus": [{"id": 360000018516, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480406} +{"stream": "ivrs", "data": {"id": 360000011916, "name": "Fake IVR Menu 7", "menus": [{"id": 360000018536, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480406} +{"stream": "ivrs", "data": {"id": 360000011936, "name": "Fake IVR Menu 9", "menus": [{"id": 360000018556, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480407} +{"stream": "ivrs", "data": {"id": 360000011956, "name": "Fake IVR Menu 10", "menus": [{"id": 360000018576, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480407} +{"stream": "ivrs", "data": {"id": 360000011976, "name": "Fake IVR Menu 17", "menus": [{"id": 360000018596, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480407} +{"stream": "ivrs", "data": {"id": 360000011996, "name": "Fake IVR Menu 19", "menus": [{"id": 360000018616, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480408} +{"stream": "ivrs", "data": {"id": 360000012016, "name": "Fake IVR Menu 20", "menus": [{"id": 360000018636, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480408} +{"stream": "ivrs", "data": {"id": 360000012036, "name": "Fake IVR Menu 21", "menus": [{"id": 360000018656, "name": "Main menu", "default": true, "greeting_id": null, "routes": []}], "phone_number_ids": [], "phone_number_names": []}, "emitted_at": 1674159480408} +{"stream": "phone_numbers", "data": {"id": 360000121575, "country_code": "US", "created_at": "2020-12-14T18:44:31Z", "external": false, "number": "+12059531462", "name": "+1 (205) 953-1462", "nickname": null, "display_number": "+1 (205) 953-1462", "location": "AL", "toll_free": false, "transcription": true, "recorded": true, "call_recording_consent": "always", "group_ids": [], "default_group_id": null, "greeting_ids": [], "default_greeting_ids": ["voicemail_en", "available_en", "wait_en", "hold_en", "callback_en", "callback-confirmation_en", "call-recording-opt-out_en", "call-recording-opt-in_en"], "categorised_greetings": {"1": "voicemail_en", "2": "available_en", "3": "wait_en", "4": "hold_en", "6": "callback_en", "7": "callback-confirmation_en", "8": "call-recording-opt-out_en", "9": "call-recording-opt-in_en"}, "categorised_greetings_with_sub_settings": {"1": {"voicemail_on_outside_business_hours": "voicemail_en", "voicemail_on_inside_business_hours": "voicemail_en", "voicemail_off_inside_business_hours": "voicemail_en_voicemail_config", "voicemail_off_outside_business_hours": "voicemail_en_voicemail_config"}, "2": {"voicemail_on": "available_en", "voicemail_off": "available_en_voicemail_config"}, "3": "wait_en", "4": "hold_en", "6": "callback_en", "7": "callback-confirmation_en", "8": "call-recording-opt-out_en", "9": "call-recording-opt-in_en"}, "sms_group_id": null, "capabilities": {"sms": true, "mms": true, "voice": true, "emergency_address": true}, "sms_enabled": false, "voice_enabled": true, "priority": 0, "outbound_enabled": true, "line_type": "phone", "ivr_id": null, "schedule_id": null, "failover_number": null}, "emitted_at": 1674159481130} From 72134ac30089f408a7c8ec88b68a36768c502d36 Mon Sep 17 00:00:00 2001 From: midavadim Date: Tue, 24 Jan 2023 00:28:18 +0200 Subject: [PATCH 46/56] added test_strictness_level: high (#21615) --- .../acceptance-test-config.yml | 4 +- .../integration_tests/abnormal_state.json | 28 +- .../integration_tests/expected_records.txt | 427 ++++++++++++++++++ 3 files changed, 444 insertions(+), 15 deletions(-) create mode 100644 airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt diff --git a/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml b/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml index 91335962bc087..b3cdc21cc4455 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-surveymonkey/acceptance-test-config.yml @@ -1,4 +1,5 @@ connector_image: airbyte/source-surveymonkey:dev +test_strictness_level: high acceptance_tests: spec: tests: @@ -15,7 +16,8 @@ acceptance_tests: basic_read: tests: - config_path: "secrets/config.json" - configured_catalog_path: "integration_tests/configured_catalog.json" + expect_records: + path: "integration_tests/expected_records.txt" incremental: tests: - config_path: "secrets/config.json" diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json index 93204c4f0c708..30c1a1bd3ea9c 100644 --- a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/abnormal_state.json @@ -2,7 +2,7 @@ { "type": "STREAM", "stream": { - "stream_state": { "date_modified": "2050-06-10T11:02:01" }, + "stream_state": { "date_modified": "2023-01-19T10:02:01" }, "stream_descriptor": { "name": "surveys" } } }, @@ -10,19 +10,19 @@ "type": "STREAM", "stream": { "stream_state": { - "306079584": { "date_modified": "2050-06-08T18:17:18+00:00" }, - "307785429": { "date_modified": "2050-06-10T10:59:43+00:00" }, - "307785444": { "date_modified": "2050-06-10T11:00:19+00:00" }, - "307785394": { "date_modified": "2050-06-10T11:00:59+00:00" }, - "307785402": { "date_modified": "2050-06-10T11:01:31+00:00" }, - "307785408": { "date_modified": "2050-06-10T11:02:08+00:00" }, - "307785448": { "date_modified": "2050-06-10T11:02:49+00:00" }, - "307784834": { "date_modified": "2050-06-10T11:03:45+00:00" }, - "307784863": { "date_modified": "2050-06-10T11:04:29+00:00" }, - "307784846": { "date_modified": "2050-06-10T11:05:05+00:00" }, - "307784856": { "date_modified": "2050-06-10T11:05:44+00:00" }, - "307785388": { "date_modified": "2050-06-10T11:06:20+00:00" }, - "307785415": { "date_modified": "2050-06-10T11:06:43+00:00" } + "306079584": { "date_modified": "2023-01-19T10:17:18+00:00" }, + "307785429": { "date_modified": "2023-01-19T10:59:43+00:00" }, + "307785444": { "date_modified": "2023-01-19T10:00:19+00:00" }, + "307785394": { "date_modified": "2023-01-19T10:00:59+00:00" }, + "307785402": { "date_modified": "2023-01-19T10:01:31+00:00" }, + "307785408": { "date_modified": "2023-01-19T10:02:08+00:00" }, + "307785448": { "date_modified": "2023-01-19T10:02:49+00:00" }, + "307784834": { "date_modified": "2023-01-19T10:03:45+00:00" }, + "307784863": { "date_modified": "2023-01-19T10:04:29+00:00" }, + "307784846": { "date_modified": "2023-01-19T10:05:05+00:00" }, + "307784856": { "date_modified": "2023-01-19T10:05:44+00:00" }, + "307785388": { "date_modified": "2023-01-19T10:06:20+00:00" }, + "307785415": { "date_modified": "2023-01-19T10:06:43+00:00" } }, "stream_descriptor": { "name": "survey_responses" } } diff --git a/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt new file mode 100644 index 0000000000000..b62dd05555155 --- /dev/null +++ b/airbyte-integrations/connectors/source-surveymonkey/integration_tests/expected_records.txt @@ -0,0 +1,427 @@ +{"stream":"surveys","data":{"title":"Market Research - Product Testing Template","nickname":"","language":"en","folder_id":"0","category":"market_research","question_count":13,"page_count":1,"response_count":13,"date_created":"2021-05-07T06:18:00","date_modified":"2021-06-08T18:09:00","id":"306079584","buttons_text":{"next_button":"Next >>","prev_button":"<< Prev","done_button":"Done","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/306079584","analyze_url":"https://www.surveymonkey.com/analyze/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","edit_url":"https://www.surveymonkey.com/create/?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","summary_url":"https://www.surveymonkey.com/summary/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=8T1PwDGoJHE1lbkxjUnaGitKu8jxWzyoclw9fNsShflPlk6MYIzwJ2NgjlBw_2B7iV"},"emitted_at":1674149644633} +{"stream":"surveys","data":{"title":"yswa8kobijei1mkwaqxgy","nickname":"7b4p9vssf810mslcd0eqpcg9s7p0h","language":"it","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T10:59:00","id":"307785429","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785429","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=YRpP3kxXMi2aJkgYoeyZrvuErii13mQ5DRN67Vm4WJ5avIMZ6YvzI_2Bc3FpERJDqx"},"emitted_at":1674149645341} +{"stream":"surveys","data":{"title":"wsfqk1di34d","nickname":"3pax9qjasev22ofir5dm4x45s","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:00:00","id":"307785444","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785444","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=8fhTDITxRdeFQ_2BLWzVWxsJSU0nfgGgIbcvuAJ6C8LCdfivLn4FPj6xZP2o8_2FINMc"},"emitted_at":1674149646672} +{"stream":"surveys","data":{"title":"vpoha5euc66vp","nickname":"etv0tds1e45","language":"en","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:19:00","date_modified":"2021-06-10T11:01:00","id":"307785394","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785394","analyze_url":"https://www.surveymonkey.com/analyze/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D","edit_url":"https://www.surveymonkey.com/create/?sm=5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D","summary_url":"https://www.surveymonkey.com/summary/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=RPtFlMc_2B10dLjP_2BMbJ9eseMZkg_2FE5of5WUErPhwmC57Ij1xz0JOW7uC8i49BGEl8"},"emitted_at":1674149647495} +{"stream":"surveys","data":{"title":"s2d9px7cdril0v7789ab4f","nickname":"wnhin1ctnss8ebdgjef","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:02:00","id":"307785402","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785402","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=RId_2BH4A8CUUX6zNvnFnfsb3wKFGuv8kLhz_2BApiG6Mbvu_2BLypJpz_2BM9EfoUuRXBcL"},"emitted_at":1674149648694} +{"stream":"surveys","data":{"title":"muxx41av9mp","nickname":"hfs5uo9cw1ce3j7rn7n8ncu88myc","language":"de","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:02:00","id":"307785408","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785408","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=aPPwgAP8stOxnud8WXi8VHKMrUtKIqvd7JhVnp1f0Ucqjb7cbMATzGizMgcLO_2BzA"},"emitted_at":1674149650050} +{"stream":"surveys","data":{"title":"2iokp4jvp9ru5","nickname":"j2a0kxhq8lmawfqjkg0hx","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":21,"date_created":"2021-06-09T21:07:00","date_modified":"2021-06-10T11:03:00","id":"307784834","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307784834","analyze_url":"https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D","edit_url":"https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D","summary_url":"https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=5ovW9LrIPsdAlqAloFxtr_2BhNVquSJyqeGOsrEnkZn56chkdLSKQISgfvIUejUonU"},"emitted_at":1674149651284} +{"stream":"surveys","data":{"title":"9cnwcmdn39ox","nickname":"vih7eeixclb","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":18,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:03:00","id":"307785448","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785448","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=CJF1TcWP7MthjVWkHhiX8ggWVFe484BBhGYkoi2XqDCTB9FcR1nlBSJ_2FeL47hNDV"},"emitted_at":1674149652147} +{"stream":"surveys","data":{"title":"i2bm4lqt5hxv614n4jcl0guxt5ehgf","nickname":"ti241ke4qo1i8iyqgpo0u6b2","language":"de","folder_id":"0","category":"","question_count":2,"page_count":3,"response_count":20,"date_created":"2021-06-09T21:07:00","date_modified":"2021-06-10T11:04:00","id":"307784863","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307784863","analyze_url":"https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D","edit_url":"https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D","summary_url":"https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=kSWrVa29zWxvAB20ibAMkgPUDRBw_2B_2BTV0eX3oRPIEDNdxc2vxtOGJkQUGITIEart"},"emitted_at":1674149653219} +{"stream":"surveys","data":{"title":"j057iyqgxlotswo070","nickname":"wxuyqq4cgmfo69ik778r","language":"ru","folder_id":"0","category":"","question_count":6,"page_count":3,"response_count":20,"date_created":"2021-06-09T21:07:00","date_modified":"2021-06-10T11:05:00","id":"307784846","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307784846","analyze_url":"https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D","edit_url":"https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D","summary_url":"https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=c5YOr2YH8sSXNlr7K0Tsuhs54aXml2seWFuXS8MIqk7n5MinBfQ7OjzW_2BtjWV1Cv"},"emitted_at":1674149653897} +{"stream":"surveys","data":{"title":"u7r02s47jr","nickname":"ye7fubxhua91ce0fxm","language":"ru","folder_id":"0","category":"","question_count":3,"page_count":3,"response_count":20,"date_created":"2021-06-09T21:07:00","date_modified":"2021-06-10T11:05:00","id":"307784856","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307784856","analyze_url":"https://www.surveymonkey.com/analyze/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D","edit_url":"https://www.surveymonkey.com/create/?sm=moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D","summary_url":"https://www.surveymonkey.com/summary/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=hW7YBNPL4euOVIMWVdvchE0xWtfXGoQrT7wUyFAtDel65HbgmAwoV7JJRkkkFmhn"},"emitted_at":1674149655178} +{"stream":"surveys","data":{"title":"igpfp2yfsw90df6nxbsb49v","nickname":"h23gl22ulmfsyt4q7xt","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":20,"date_created":"2021-06-09T21:19:00","date_modified":"2021-06-10T11:06:00","id":"307785388","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785388","analyze_url":"https://www.surveymonkey.com/analyze/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D","edit_url":"https://www.surveymonkey.com/create/?sm=5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D","summary_url":"https://www.surveymonkey.com/summary/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=khUJQv9z4_2FXXzGUox57WEUPwppIr8YqRqVru77WpakX1HW8hHMmGXZiDGslFZym6"},"emitted_at":1674149655888} +{"stream":"surveys","data":{"title":"b9jo5h23l7pa","nickname":"qhs5vg2qi0o4arsjiwy2ay00n82n","language":"ru","folder_id":"0","category":"","question_count":10,"page_count":3,"response_count":20,"date_created":"2021-06-09T21:20:00","date_modified":"2021-06-10T11:07:00","id":"307785415","buttons_text":{"next_button":"Nex >>>>>","prev_button":"Nix <<<<<","done_button":"Nax_Don_Gon!","exit_button":""},"is_owner":true,"footer":true,"theme_id":"4510354","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/307785415","analyze_url":"https://www.surveymonkey.com/analyze/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D","edit_url":"https://www.surveymonkey.com/create/?sm=BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D","summary_url":"https://www.surveymonkey.com/summary/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=YVdtL_2BP5oiGTrfksyofvENkBr7v87Xfh8hbcJr8rbqgesWvwJjz5N1F7pCSRcDoy"},"emitted_at":1674149657223} +{"stream":"surveys","data":{"title":"jjj","nickname":"","language":"en","folder_id":"0","category":"","question_count":0,"page_count":1,"response_count":0,"date_created":"2023-01-17T09:17:00","date_modified":"2023-01-17T09:17:00","id":"510388524","buttons_text":{"next_button":"Next","prev_button":"Prev","done_button":"Done","exit_button":""},"is_owner":true,"footer":true,"theme_id":"10292568","custom_variables":{},"href":"https://api.surveymonkey.com/v3/surveys/510388524","analyze_url":"https://www.surveymonkey.com/analyze/VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D","edit_url":"https://www.surveymonkey.com/create/?sm=VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D","collect_url":"https://www.surveymonkey.com/collect/list?sm=VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D","summary_url":"https://www.surveymonkey.com/summary/VXMmVNBbmOp9KTSvXdhjIr3FHnqleAX32lr9MLBIOE0_3D","preview":"https://www.surveymonkey.com/r/Preview/?sm=TPlNncbuCs17cvxwjuS74VC03_2FOcqpP_2F03m2gerTSI_2FQvLWoY2yn_2FWxLDmxYOp5L"},"emitted_at":1674149658247} +{"stream":"survey_responses","data":{"id":"12706126725","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"124.123.178.184","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=hNu3QJYf07WiUPOwxCYcARURFGB3ruOrs9slcTHVhmhgDhoNJ0k7w3jCvo0nLM40","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706126725","total_time":62,"date_modified":"2021-06-01T17:40:54+00:00","date_created":"2021-06-01T17:39:51+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706126725","pages":[{"id":"165250506","questions":[{"id":"652286715","answers":[{"choice_id":"4285525064"}]},{"id":"652286721","answers":[{"choice_id":"4285525084"}]},{"id":"652286716","answers":[{"choice_id":"4285525070"}]},{"id":"652286718","answers":[{"choice_id":"4285525079"}]},{"id":"652286722","answers":[{"choice_id":"4285525089"}]},{"id":"652286717","answers":[{"choice_id":"4285525074"}]},{"id":"652286723","answers":[{"choice_id":"4285525095"}]},{"id":"652286714","answers":[{"choice_id":"4285525058","row_id":"4285525061","choice_metadata":{"weight":"0"}}]}]}]},"emitted_at":1674149660097} +{"stream":"survey_responses","data":{"id":"12706152767","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"37.229.17.15","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=YIZz5DiXEDES47ARxTbRPzAA9ZOwCjcN_2FDSFTYGWgCVPQCo_2B3EeLirGlON5_2BjrX5","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706152767","total_time":55,"date_modified":"2021-06-01T17:50:03+00:00","date_created":"2021-06-01T17:49:08+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706152767","pages":[{"id":"165250506","questions":[{"id":"652286726","answers":[{"tag_data":[],"text":"fuck this"}]},{"id":"652286715","answers":[{"choice_id":"4285525067"}]},{"id":"652286721","answers":[{"choice_id":"4285525087"}]},{"id":"652286716","answers":[{"choice_id":"4285525072"}]},{"id":"652286718","answers":[{"choice_id":"4285525081"}]},{"id":"652286722","answers":[{"choice_id":"4285525091"}]},{"id":"652286717","answers":[{"choice_id":"4285525077"}]},{"id":"652286723","answers":[{"choice_id":"4285525097"}]},{"id":"652286714","answers":[{"choice_id":"4285525052","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"waste of time"}]}]}]},"emitted_at":1674149660099} +{"stream":"survey_responses","data":{"id":"12706159691","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"157.48.231.67","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=P4z1eeLex6p2OQEYYXRJKBxPyHk6ljkOskXPds2olEToYrU_2FwTZWAyllEtgJRyQL","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706159691","total_time":104,"date_modified":"2021-06-01T17:52:27+00:00","date_created":"2021-06-01T17:50:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706159691","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525086"}]},{"id":"652286716","answers":[{"choice_id":"4285525071"}]},{"id":"652286718","answers":[{"choice_id":"4285525079"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525076"}]},{"id":"652286723","answers":[{"choice_id":"4285525095"}]},{"id":"652286714","answers":[{"choice_id":"4285525055","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]}]}]},"emitted_at":1674149660100} +{"stream":"survey_responses","data":{"id":"12706182356","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"76.14.176.236","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=oRBufZrmuNVZW5ou_2B4ZICuFqW6p3uYPmpjTb5IJ5Zf_2BH4FPoHKfnz_2BSC_2FR_2FpxWNq","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706182356","total_time":36,"date_modified":"2021-06-01T18:00:12+00:00","date_created":"2021-06-01T17:59:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706182356","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286715","answers":[{"choice_id":"4285525063"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525072"}]},{"id":"652286718","answers":[{"choice_id":"4285525082"}]},{"id":"652286722","answers":[{"choice_id":"4285525092"}]},{"id":"652286717","answers":[{"choice_id":"4285525077"}]},{"id":"652286723","answers":[{"choice_id":"4285525097"}]},{"id":"652286714","answers":[{"choice_id":"4285525060","row_id":"4285525061","choice_metadata":{"weight":"100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"gekkiadsuigasdf;oij sefhello 🍐🍐🍐🍐🍐"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"good"}]}]}]},"emitted_at":1674149660102} +{"stream":"survey_responses","data":{"id":"12706201784","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"49.37.158.6","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MD0lXMX2bJm93XLiSKWuW2p52_2BwlWpayf88naadbuO5wITz0TijA3kwSis907xu1","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706201784","total_time":183,"date_modified":"2021-06-01T18:06:11+00:00","date_created":"2021-06-01T18:03:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706201784","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"Colour"}]},{"id":"652286715","answers":[{"choice_id":"4285525064"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525070"}]},{"id":"652286718","answers":[{"choice_id":"4285525079"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525076"}]},{"id":"652286723","answers":[{"choice_id":"4285525097"}]},{"id":"652286714","answers":[{"choice_id":"4285525055","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"Nothing"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"I don't know"}]}]}]},"emitted_at":1674149660104} +{"stream":"survey_responses","data":{"id":"12706203862","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"49.205.239.133","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=sNkTdEY_2FEibixIxcUhotq6hQ3muFVlLkg0cE531VDB5Ya2U21pwazZRwwSXFqqtK","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706203862","total_time":114,"date_modified":"2021-06-01T18:06:49+00:00","date_created":"2021-06-01T18:04:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706203862","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"because pets should not be tied,they should have their own freedom to move"}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525071"}]},{"id":"652286718","answers":[{"choice_id":"4285525080"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525076"}]},{"id":"652286723","answers":[{"choice_id":"4285525096"}]},{"id":"652286714","answers":[{"choice_id":"4285525055","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]}]}]},"emitted_at":1674149660106} +{"stream":"survey_responses","data":{"id":"12706264166","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"27.6.69.132","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=OboVhBA1nCZ4ejfYCmJ6WDu5SxhIUnnNn2dCz_2BTqxksFnjOSpy88MtS4B5Wbpk_2BW","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706264166","total_time":309,"date_modified":"2021-06-01T18:27:03+00:00","date_created":"2021-06-01T18:21:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706264166","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"🤔"}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525070"}]},{"id":"652286718","answers":[{"choice_id":"4285525081"}]},{"id":"652286722","answers":[{"choice_id":"4285525091"}]},{"id":"652286717","answers":[{"choice_id":"4285525076"}]},{"id":"652286723","answers":[{"choice_id":"4285525096"}]},{"id":"652286714","answers":[{"choice_id":"4285525058","row_id":"4285525061","choice_metadata":{"weight":"0"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"🦴"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"💪"}]}]}]},"emitted_at":1674149660108} +{"stream":"survey_responses","data":{"id":"12706274940","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"49.205.116.166","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=D1IcNXq6BKOBmkySTfHcUfHuH3_2Fa0aniMPQEG23UrQ16iSsyx8ye2hPRQt3C61Jd","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706274940","total_time":105,"date_modified":"2021-06-01T18:30:56+00:00","date_created":"2021-06-01T18:29:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706274940","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"Didn't like the product"}]},{"id":"652286715","answers":[{"choice_id":"4285525067"}]},{"id":"652286721","answers":[{"choice_id":"4285525087"}]},{"id":"652286716","answers":[{"choice_id":"4285525072"}]},{"id":"652286718","answers":[{"choice_id":"4285525081"}]},{"id":"652286722","answers":[{"choice_id":"4285525092"}]},{"id":"652286717","answers":[{"choice_id":"4285525077"}]},{"id":"652286723","answers":[{"choice_id":"4285525097"}]},{"id":"652286714","answers":[{"choice_id":"4285525050","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"Nothing"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"Better don't try to work on it"}]}]}]},"emitted_at":1674149660110} +{"stream":"survey_responses","data":{"id":"12706353147","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"176.37.67.33","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=qwY5AKZSqBd7DfoZDGr4x_2FJr28RhtoeaQ7_2F6VBS1G3yK_2FPH86sPCcFs1zACVlbMO","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706353147","total_time":162,"date_modified":"2021-06-01T18:58:44+00:00","date_created":"2021-06-01T18:56:02+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706353147","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"I like logo."}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525071"}]},{"id":"652286718","answers":[{"choice_id":"4285525081"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525076"}]},{"id":"652286723","answers":[{"choice_id":"4285525096"}]},{"id":"652286714","answers":[{"choice_id":"4285525056","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"Logo."}]},{"id":"652286720","answers":[{"tag_data":[],"text":"Nothing."}]}]}]},"emitted_at":1674149660111} +{"stream":"survey_responses","data":{"id":"12707255568","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"157.48.145.117","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3XYG_2F55lVJgeQ0_2FWG3xyRxOF5gCKFR0p1HPkdv1iiMZ1h5MIYxNR12enFBgK9TCS","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12707255568","total_time":263,"date_modified":"2021-06-02T01:13:33+00:00","date_created":"2021-06-02T01:09:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12707255568","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"I love puppies but hate heart symbol"}]},{"id":"652286715","answers":[{"choice_id":"4285525063"}]},{"id":"652286721","answers":[{"choice_id":"4285525084"}]},{"id":"652286716","answers":[{"choice_id":"4285525070"}]},{"id":"652286718","answers":[{"choice_id":"4285525080"}]},{"id":"652286722","answers":[{"choice_id":"4285525089"}]},{"id":"652286717","answers":[{"choice_id":"4285525075"}]},{"id":"652286723","answers":[{"choice_id":"4285525095"}]},{"id":"652286714","answers":[{"choice_id":"4285525056","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"It's for animals"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"Approach to customer"}]}]}]},"emitted_at":1674149660112} +{"stream":"survey_responses","data":{"id":"12707566461","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"106.195.73.137","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=FskCSEofrdcabC7MVfRNtzeiZ4C4kiwx_2FpBdpRfIsd5SgVGi4N9znXMS9exRXf27","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12707566461","total_time":233,"date_modified":"2021-06-02T04:06:48+00:00","date_created":"2021-06-02T04:02:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12707566461","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525084"}]},{"id":"652286716","answers":[{"choice_id":"4285525069"}]},{"id":"652286718","answers":[{"choice_id":"4285525080"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525075"}]},{"id":"652286723","answers":[{"choice_id":"4285525096"}]},{"id":"652286714","answers":[{"choice_id":"4285525058","row_id":"4285525061","choice_metadata":{"weight":"0"}}]}]}]},"emitted_at":1674149660113} +{"stream":"survey_responses","data":{"id":"12709748835","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.196.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=x5BdjfYWF_2B2dRs9qPRcHJ_2BqMN8Dpfn_2FfhKhtD7G8W4_2BX9ECDWh9wAXjYd4mxXk_2F_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12709748835","total_time":127,"date_modified":"2021-06-02T18:14:19+00:00","date_created":"2021-06-02T18:12:12+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12709748835","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"because"}]},{"id":"652286715","answers":[{"choice_id":"4285525063"}]},{"id":"652286721","answers":[{"choice_id":"4285525084"}]},{"id":"652286716","answers":[{"choice_id":"4285525069"}]},{"id":"652286718","answers":[{"choice_id":"4285525079"}]},{"id":"652286722","answers":[{"choice_id":"4285525089"}]},{"id":"652286717","answers":[{"choice_id":"4285525074"}]},{"id":"652286723","answers":[{"choice_id":"4285525095"}]},{"id":"652286714","answers":[{"choice_id":"4285525060","row_id":"4285525061","choice_metadata":{"weight":"100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"u"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"f"}]}]}]},"emitted_at":1674149660114} +{"stream":"survey_responses","data":{"id":"12706107193","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"49.37.150.53","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405437100","survey_id":"306079584","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=7vMzRy38ln3J_2FJiU8YD1uve9yI6cAQIQ_2FuVxRipS_2FyB57w9vo9xpgShOuFWVcoI2","analyze_url":"https://www.surveymonkey.com/analyze/browse/5jPPwKLnlqevaUQom_2BgYAWJWlrKNA2ZFTOYrMBrqW2c_3D?respondent_id=12706107193","total_time":607550,"date_modified":"2021-06-08T18:17:17+00:00","date_created":"2021-06-01T17:31:26+00:00","href":"https://api.surveymonkey.com/v3/surveys/306079584/responses/12706107193","pages":[{"id":"165250506","questions":[{"id":"652286724","answers":[{"row_id":"4285525098"}]},{"id":"652286725","answers":[{"row_id":"4285525102"}]},{"id":"652286726","answers":[{"tag_data":[],"text":"It seems in that way"}]},{"id":"652286715","answers":[{"choice_id":"4285525065"}]},{"id":"652286721","answers":[{"choice_id":"4285525085"}]},{"id":"652286716","answers":[{"choice_id":"4285525071"}]},{"id":"652286718","answers":[{"choice_id":"4285525081"}]},{"id":"652286722","answers":[{"choice_id":"4285525090"}]},{"id":"652286717","answers":[{"choice_id":"4285525075"}]},{"id":"652286723","answers":[{"choice_id":"4285525096"}]},{"id":"652286714","answers":[{"choice_id":"4285525050","row_id":"4285525061","choice_metadata":{"weight":"-100"}}]},{"id":"652286719","answers":[{"tag_data":[],"text":"Nothing much"}]},{"id":"652286720","answers":[{"tag_data":[],"text":"Will include Tagline"}]}]}]},"emitted_at":1674149660116} +{"stream":"survey_responses","data":{"id":"12731040927","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=YORvkBiLvNm2647vGYxs1GGGoUjDrz_2FRfIWw1i07UtykH_2BBJHDTB3ujkOPfyAxqP","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731040927","total_time":31,"date_modified":"2021-06-10T08:46:53+00:00","date_created":"2021-06-10T08:46:22+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731040927","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175368"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175533"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175742"}]},{"id":"667461937","answers":[{"choice_id":"4385175749"}]},{"id":"667461986","answers":[{"choice_id":"4385175881"}]}]}]},"emitted_at":1674149661798} +{"stream":"survey_responses","data":{"id":"12731055204","recipient_id":"","collection_mode":"default","response_status":"partial","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":["168831413","168831415","168831437"],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=tcbSSptg67E5MmPiY_2BCTC0GEk5rcm_2FHHcASKwxBGLOX_2BBByesO_2Fh848B_2FqaaVF8d","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731055204","total_time":15,"date_modified":"2021-06-10T08:54:22+00:00","date_created":"2021-06-10T08:54:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731055204","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[]}]},"emitted_at":1674149661798} +{"stream":"survey_responses","data":{"id":"12731069666","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=tHWbA6E0Q6UEylVBreS0XaGKh3GcjDQu_2FBytp_2F_2FcCSkYTgRKkVt3jyyhUFoh6T_2Bs","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731069666","total_time":33,"date_modified":"2021-06-10T09:02:19+00:00","date_created":"2021-06-10T09:01:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731069666","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175380"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175733"}]},{"id":"667461934","answers":[{"choice_id":"4385175736"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175752"}]},{"id":"667461986","answers":[{"choice_id":"4385175878"}]}]}]},"emitted_at":1674149661799} +{"stream":"survey_responses","data":{"id":"12731085951","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=c_2B3Xk1rn3Lhz9GqaPNSRmjd03YiGx88BQu_2BtAvHiMmp5a0BR68kWLCOfALzBwKH4","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731085951","total_time":31,"date_modified":"2021-06-10T09:10:05+00:00","date_created":"2021-06-10T09:09:34+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731085951","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175368"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175533"}]},{"id":"667461902","answers":[{"choice_id":"4385175564"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175732"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175745"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661799} +{"stream":"survey_responses","data":{"id":"12731102076","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=s_2BQLUH6Nb049vqmxYdKTQlIV_2FCXzxmRR5F_2B_2Fe9FaqXRh3H_2FZAFF51mqyI3e8s666","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731102076","total_time":32,"date_modified":"2021-06-10T09:17:44+00:00","date_created":"2021-06-10T09:17:12+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731102076","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175381"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175535"}]},{"id":"667461902","answers":[{"choice_id":"4385175561"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175739"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175745"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661799} +{"stream":"survey_responses","data":{"id":"12731118899","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=hRALwRgDjAOTNk8Hpt0wWWn9X3xurqWW9vynXjPkvIvI4Xofu_2FJSgEVwtWK23vLd","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731118899","total_time":31,"date_modified":"2021-06-10T09:25:25+00:00","date_created":"2021-06-10T09:24:53+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731118899","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175533"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175734"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175742"}]},{"id":"667461937","answers":[{"choice_id":"4385175745"}]},{"id":"667461986","answers":[{"choice_id":"4385175878"}]}]}]},"emitted_at":1674149661800} +{"stream":"survey_responses","data":{"id":"12731135865","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=OEPuy4AY_2B47LLaYrOMe90r_2BJdHiKxv12FpoQr0N94GGA0TFN7l7tk5QH14HD_2FaBy","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731135865","total_time":31,"date_modified":"2021-06-10T09:33:08+00:00","date_created":"2021-06-10T09:32:37+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731135865","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175368"}]},{"id":"667461861","answers":[{"choice_id":"4385175381"}]},{"id":"667461876","answers":[{"choice_id":"4385175449"}]},{"id":"667461897","answers":[{"choice_id":"4385175535"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175742"}]},{"id":"667461937","answers":[{"choice_id":"4385175748"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661800} +{"stream":"survey_responses","data":{"id":"12731153599","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=KPgqZwkF7GLrzwtQWhwpZBCuPbq_2F_2BuXfuUXpCBXX1y_2BwKBvvXi7s1ob9AMVJymCk","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731153599","total_time":31,"date_modified":"2021-06-10T09:40:49+00:00","date_created":"2021-06-10T09:40:18+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731153599","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175561"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175732"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175751"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661800} +{"stream":"survey_responses","data":{"id":"12731170943","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=e6QtiM7XZfbHB3Ln1ifDr6Ct8PD0j6Nikh_2BTvBikLVfpeCSzS5WYkg2D_2BDVygAee","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731170943","total_time":31,"date_modified":"2021-06-10T09:48:36+00:00","date_created":"2021-06-10T09:48:04+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731170943","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175733"}]},{"id":"667461934","answers":[{"choice_id":"4385175736"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175748"}]},{"id":"667461986","answers":[{"choice_id":"4385175879"}]}]}]},"emitted_at":1674149661801} +{"stream":"survey_responses","data":{"id":"12731188992","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VATG0VEAVLLh8CTsnDoMZ_2FR3ida2C_2FIqVwt3FHGuc0GRu_2BA6Qa9E4Ewd3iEHt5YQ","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731188992","total_time":35,"date_modified":"2021-06-10T09:56:51+00:00","date_created":"2021-06-10T09:56:15+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731188992","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175381"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175533"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175738"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175749"}]},{"id":"667461986","answers":[{"choice_id":"4385175881"}]}]}]},"emitted_at":1674149661801} +{"stream":"survey_responses","data":{"id":"12731208790","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=KH_2Bhsc8oIpTdaX60RIwFQ1SDyudOf2_2B61W7cPCZGGXEKsY5_2FN_2BA_2B_2FXh0DeOOdA7F","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731208790","total_time":32,"date_modified":"2021-06-10T10:05:01+00:00","date_created":"2021-06-10T10:04:28+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731208790","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175368"}]},{"id":"667461861","answers":[{"choice_id":"4385175380"}]},{"id":"667461876","answers":[{"choice_id":"4385175449"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175752"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661801} +{"stream":"survey_responses","data":{"id":"12731228560","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vbsxUKDxxVbnJW7Gng6Y5VblTyjW_2F29grieRYQImUaIVF77GuhY3KDlqPsNfIlx6","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731228560","total_time":31,"date_modified":"2021-06-10T10:12:51+00:00","date_created":"2021-06-10T10:12:19+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731228560","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175380"}]},{"id":"667461876","answers":[{"choice_id":"4385175449"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175561"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175737"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175749"}]},{"id":"667461986","answers":[{"choice_id":"4385175882"}]}]}]},"emitted_at":1674149661801} +{"stream":"survey_responses","data":{"id":"12731247619","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=8lyrgf9sVRbhXAHse5glKYEJoYMvqlR2TNQIhI8Ycw716W_2FHlQeX6Ru4SKObInXR","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731247619","total_time":31,"date_modified":"2021-06-10T10:20:41+00:00","date_created":"2021-06-10T10:20:09+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731247619","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175535"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175734"}]},{"id":"667461934","answers":[{"choice_id":"4385175736"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175747"}]},{"id":"667461986","answers":[{"choice_id":"4385175881"}]}]}]},"emitted_at":1674149661802} +{"stream":"survey_responses","data":{"id":"12731266056","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=tkqgGP2ApNTakGiA0JrfYbKgIZElTj6_2FPaJ_2FDj0QNjpJDKCexid0Z_2Bq8vZoam1vK","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731266056","total_time":31,"date_modified":"2021-06-10T10:28:20+00:00","date_created":"2021-06-10T10:27:49+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731266056","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175381"}]},{"id":"667461876","answers":[{"choice_id":"4385175449"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175732"}]},{"id":"667461934","answers":[{"choice_id":"4385175738"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175747"}]},{"id":"667461986","answers":[{"choice_id":"4385175882"}]}]}]},"emitted_at":1674149661802} +{"stream":"survey_responses","data":{"id":"12731286200","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=nYsBr3IsP19O_2BhTeV_2BWGnAdXc_2FFsnqMT6maJ0BS3QD9FqjkWLrNYzzEqKsT7c191","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731286200","total_time":35,"date_modified":"2021-06-10T10:36:27+00:00","date_created":"2021-06-10T10:35:52+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731286200","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175367"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175564"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175738"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175752"}]},{"id":"667461986","answers":[{"choice_id":"4385175878"}]}]}]},"emitted_at":1674149661802} +{"stream":"survey_responses","data":{"id":"12731305366","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=iIxE7kshwG8vR6T6c2D0swVsNTfDLqcBVkfrnf_2FGZBTuoHjMm9ksd3LbOIXuF6lp","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731305366","total_time":34,"date_modified":"2021-06-10T10:44:10+00:00","date_created":"2021-06-10T10:43:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731305366","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175366"}]},{"id":"667461861","answers":[{"choice_id":"4385175380"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175533"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175732"}]},{"id":"667461934","answers":[{"choice_id":"4385175736"}]},{"id":"667461936","answers":[{"choice_id":"4385175741"}]},{"id":"667461937","answers":[{"choice_id":"4385175749"}]},{"id":"667461986","answers":[{"choice_id":"4385175879"}]}]}]},"emitted_at":1674149661803} +{"stream":"survey_responses","data":{"id":"12731325134","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=cUq2_2BSagT6pk152_2BsGjjMAAQ2Qq0R0cxleIxEdHEEVKwV5oPCvktmmnTV82pa5S_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731325134","total_time":31,"date_modified":"2021-06-10T10:52:02+00:00","date_created":"2021-06-10T10:51:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731325134","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175369"}]},{"id":"667461861","answers":[{"choice_id":"4385175382"}]},{"id":"667461876","answers":[{"choice_id":"4385175447"}]},{"id":"667461897","answers":[{"choice_id":"4385175535"}]},{"id":"667461902","answers":[{"choice_id":"4385175559"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175735"}]},{"id":"667461934","answers":[{"choice_id":"4385175739"}]},{"id":"667461936","answers":[{"choice_id":"4385175742"}]},{"id":"667461937","answers":[{"choice_id":"4385175751"}]},{"id":"667461986","answers":[{"choice_id":"4385175878"}]}]}]},"emitted_at":1674149661803} +{"stream":"survey_responses","data":{"id":"12731344038","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843657","survey_id":"307785429","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=F_2BuWfRunQKdf1g0xuu4mTzXMCAlXia21_2BnF47p_2FbjU4QII1hLaE3Xo6tWdfbzKqr","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxoENnL6uEj_2FlAo5YSBwashU_3D?respondent_id=12731344038","total_time":31,"date_modified":"2021-06-10T10:59:42+00:00","date_created":"2021-06-10T10:59:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785429/responses/12731344038","pages":[{"id":"168831413","questions":[]},{"id":"168831415","questions":[{"id":"667461858","answers":[{"choice_id":"4385175368"}]},{"id":"667461861","answers":[{"choice_id":"4385175381"}]},{"id":"667461876","answers":[{"choice_id":"4385175448"}]},{"id":"667461897","answers":[{"choice_id":"4385175534"}]},{"id":"667461902","answers":[{"choice_id":"4385175563"}]}]},{"id":"168831437","questions":[{"id":"667461933","answers":[{"choice_id":"4385175733"}]},{"id":"667461934","answers":[{"choice_id":"4385175739"}]},{"id":"667461936","answers":[{"choice_id":"4385175740"}]},{"id":"667461937","answers":[{"choice_id":"4385175750"}]},{"id":"667461986","answers":[{"choice_id":"4385175880"}]}]}]},"emitted_at":1674149661803} +{"stream":"survey_responses","data":{"id":"12731042086","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=SvCebsqkF1mO3kCZX7XsmQ4ABz0LFCf_2FyW5N2JOLuGh5ixjzbj2i04SarOUiUgPa","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731042086","total_time":31,"date_modified":"2021-06-10T08:47:30+00:00","date_created":"2021-06-10T08:46:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731042086","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176724"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176739"}]},{"id":"667462084","answers":[{"choice_id":"4385176764"}]},{"id":"667462086","answers":[{"choice_id":"4385176919"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176960"}]},{"id":"667462096","answers":[{"choice_id":"4385176970"}]},{"id":"667462099","answers":[{"choice_id":"4385176977"}]},{"id":"667462100","answers":[{"choice_id":"4385176987"}]},{"id":"667462102","answers":[{"choice_id":"4385177005"}]}]}]},"emitted_at":1674149663364} +{"stream":"survey_responses","data":{"id":"12731056238","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=r7v44AE_2Bx_2Fam5dgCBnlUkUkL0aSWyzhJkIPWmmYa5VnqMtd4X2DBzf9U9erpnCvI","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731056238","total_time":31,"date_modified":"2021-06-10T08:55:13+00:00","date_created":"2021-06-10T08:54:41+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731056238","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176723"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176738"}]},{"id":"667462084","answers":[{"choice_id":"4385176763"}]},{"id":"667462086","answers":[{"choice_id":"4385176919"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176962"}]},{"id":"667462096","answers":[{"choice_id":"4385176970"}]},{"id":"667462099","answers":[{"choice_id":"4385176979"}]},{"id":"667462100","answers":[{"choice_id":"4385176986"}]},{"id":"667462102","answers":[{"choice_id":"4385177005"}]}]}]},"emitted_at":1674149663365} +{"stream":"survey_responses","data":{"id":"12731070937","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=_2FuS4ZECIFCnV4LLPEe6gryzUPrf_2FMB8MB51Cv5cU6IQGsWb_2FRIb0BOaRXRodLTAq","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731070937","total_time":32,"date_modified":"2021-06-10T09:02:57+00:00","date_created":"2021-06-10T09:02:25+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731070937","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176724"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176735"}]},{"id":"667462084","answers":[{"choice_id":"4385176767"}]},{"id":"667462086","answers":[{"choice_id":"4385176920"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176961"}]},{"id":"667462096","answers":[{"choice_id":"4385176975"}]},{"id":"667462099","answers":[{"choice_id":"4385176978"}]},{"id":"667462100","answers":[{"choice_id":"4385176990"}]},{"id":"667462102","answers":[{"choice_id":"4385177007"}]}]}]},"emitted_at":1674149663366} +{"stream":"survey_responses","data":{"id":"12731087215","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=eSF0qBZZ3aR1SHBtkTZz83mgEBvJuBfou_2BJGBoFPbxv5bluXZuIMKDaGn5x5xba5","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731087215","total_time":31,"date_modified":"2021-06-10T09:10:42+00:00","date_created":"2021-06-10T09:10:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731087215","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176721"}]},{"id":"667462079","answers":[{"choice_id":"4385176727"}]},{"id":"667462082","answers":[{"choice_id":"4385176736"}]},{"id":"667462084","answers":[{"choice_id":"4385176763"}]},{"id":"667462086","answers":[{"choice_id":"4385176918"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176962"}]},{"id":"667462096","answers":[{"choice_id":"4385176972"}]},{"id":"667462099","answers":[{"choice_id":"4385176983"}]},{"id":"667462100","answers":[{"choice_id":"4385176988"}]},{"id":"667462102","answers":[{"choice_id":"4385177007"}]}]}]},"emitted_at":1674149663367} +{"stream":"survey_responses","data":{"id":"12731103402","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=QOikOvuCCRFkDsJoRozKO9_2BNPZmp7mliotl5xt4QnStPgBKgrvz6GZ7vdHXf3eMG","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731103402","total_time":31,"date_modified":"2021-06-10T09:18:22+00:00","date_created":"2021-06-10T09:17:50+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731103402","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176721"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176736"}]},{"id":"667462084","answers":[{"choice_id":"4385176764"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176962"}]},{"id":"667462096","answers":[{"choice_id":"4385176974"}]},{"id":"667462099","answers":[{"choice_id":"4385176978"}]},{"id":"667462100","answers":[{"choice_id":"4385176987"}]},{"id":"667462102","answers":[{"choice_id":"4385177002"}]}]}]},"emitted_at":1674149663368} +{"stream":"survey_responses","data":{"id":"12731120214","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=sV4Oq2KXvMuxWQpflbd5L_2FyoB6ImaDnm9BFwJGk9W_2BwE7YWlvW6MsxaqaeWWY_2Fzh","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731120214","total_time":31,"date_modified":"2021-06-10T09:26:01+00:00","date_created":"2021-06-10T09:25:29+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731120214","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176723"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176734"}]},{"id":"667462084","answers":[{"choice_id":"4385176765"}]},{"id":"667462086","answers":[{"choice_id":"4385176920"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176960"}]},{"id":"667462096","answers":[{"choice_id":"4385176968"}]},{"id":"667462099","answers":[{"choice_id":"4385176976"}]},{"id":"667462100","answers":[{"choice_id":"4385176987"}]},{"id":"667462102","answers":[{"choice_id":"4385177009"}]}]}]},"emitted_at":1674149663368} +{"stream":"survey_responses","data":{"id":"12731137499","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Hy3W8rkVoiYFKw_2BdJM6cChYRJWAXaGTQTol4ykCh_2FxYDhPmBpC753rbLshVSZjNE","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731137499","total_time":31,"date_modified":"2021-06-10T09:33:45+00:00","date_created":"2021-06-10T09:33:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731137499","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176721"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176738"}]},{"id":"667462084","answers":[{"choice_id":"4385176766"}]},{"id":"667462086","answers":[{"choice_id":"4385176920"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176961"}]},{"id":"667462096","answers":[{"choice_id":"4385176970"}]},{"id":"667462099","answers":[{"choice_id":"4385176982"}]},{"id":"667462100","answers":[{"choice_id":"4385176988"}]},{"id":"667462102","answers":[{"choice_id":"4385177008"}]}]}]},"emitted_at":1674149663369} +{"stream":"survey_responses","data":{"id":"12731154912","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=BLjiuDSDI39GvYDURd_2FmEfCd9jRrZ5nLwAgWG65zJj2dA1DskdMkMBHVZjzLHkk6","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731154912","total_time":31,"date_modified":"2021-06-10T09:41:24+00:00","date_created":"2021-06-10T09:40:52+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731154912","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176723"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176738"}]},{"id":"667462084","answers":[{"choice_id":"4385176764"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176963"}]},{"id":"667462096","answers":[{"choice_id":"4385176970"}]},{"id":"667462099","answers":[{"choice_id":"4385176977"}]},{"id":"667462100","answers":[{"choice_id":"4385176988"}]},{"id":"667462102","answers":[{"choice_id":"4385177006"}]}]}]},"emitted_at":1674149663370} +{"stream":"survey_responses","data":{"id":"12731172230","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=jiMm_2FJVQj8fPN6i2HlASqxeTd4rx_2FcPoCLMAznqiCWgY_2B98x39SfA1kKHTo8CgEC","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731172230","total_time":31,"date_modified":"2021-06-10T09:49:12+00:00","date_created":"2021-06-10T09:48:40+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731172230","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176723"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176737"}]},{"id":"667462084","answers":[{"choice_id":"4385176767"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176963"}]},{"id":"667462096","answers":[{"choice_id":"4385176972"}]},{"id":"667462099","answers":[{"choice_id":"4385176977"}]},{"id":"667462100","answers":[{"choice_id":"4385176990"}]},{"id":"667462102","answers":[{"choice_id":"4385177006"}]}]}]},"emitted_at":1674149663370} +{"stream":"survey_responses","data":{"id":"12731190528","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VrEu2qgFZYPclcWCzyV5DO0WUUCjOIMFC77k1XLOofwOqYD5vHAej03viembeuF8","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731190528","total_time":35,"date_modified":"2021-06-10T09:57:32+00:00","date_created":"2021-06-10T09:56:57+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731190528","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176725"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176739"}]},{"id":"667462084","answers":[{"choice_id":"4385176763"}]},{"id":"667462086","answers":[{"choice_id":"4385176920"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176959"}]},{"id":"667462096","answers":[{"choice_id":"4385176972"}]},{"id":"667462099","answers":[{"choice_id":"4385176978"}]},{"id":"667462100","answers":[{"choice_id":"4385176987"}]},{"id":"667462102","answers":[{"choice_id":"4385177004"}]}]}]},"emitted_at":1674149663371} +{"stream":"survey_responses","data":{"id":"12731210366","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=xOrc7mbcYE0NFiqzEpenJPpJJ1OHiCt_2FUDSohMb9nmqttp0v1il2MNjb_2BRGE177T","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731210366","total_time":33,"date_modified":"2021-06-10T10:05:40+00:00","date_created":"2021-06-10T10:05:06+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731210366","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176722"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176739"}]},{"id":"667462084","answers":[{"choice_id":"4385176763"}]},{"id":"667462086","answers":[{"choice_id":"4385176919"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176961"}]},{"id":"667462096","answers":[{"choice_id":"4385176971"}]},{"id":"667462099","answers":[{"choice_id":"4385176977"}]},{"id":"667462100","answers":[{"choice_id":"4385176986"}]},{"id":"667462102","answers":[{"choice_id":"4385177003"}]}]}]},"emitted_at":1674149663371} +{"stream":"survey_responses","data":{"id":"12731230116","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=xmmEsbDmCA6Nvi6PKgkHAZR5hqRDTYPELB_2BIyMCUzF63brYH0R2ZrSJb9f_2BXtWRa","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731230116","total_time":32,"date_modified":"2021-06-10T10:13:28+00:00","date_created":"2021-06-10T10:12:55+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731230116","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176724"}]},{"id":"667462079","answers":[{"choice_id":"4385176727"}]},{"id":"667462082","answers":[{"choice_id":"4385176735"}]},{"id":"667462084","answers":[{"choice_id":"4385176765"}]},{"id":"667462086","answers":[{"choice_id":"4385176920"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176959"}]},{"id":"667462096","answers":[{"choice_id":"4385176973"}]},{"id":"667462099","answers":[{"choice_id":"4385176977"}]},{"id":"667462100","answers":[{"choice_id":"4385176988"}]},{"id":"667462102","answers":[{"choice_id":"4385177007"}]}]}]},"emitted_at":1674149663372} +{"stream":"survey_responses","data":{"id":"12731249077","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=1cQksQ2IA1zuU8mpR9JawSnSqr2zaPV1juVQ7ZEPrEqxr231kL_2F2eIW48UokyJBm","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731249077","total_time":31,"date_modified":"2021-06-10T10:21:17+00:00","date_created":"2021-06-10T10:20:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731249077","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176724"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176735"}]},{"id":"667462084","answers":[{"choice_id":"4385176764"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176963"}]},{"id":"667462096","answers":[{"choice_id":"4385176968"}]},{"id":"667462099","answers":[{"choice_id":"4385176982"}]},{"id":"667462100","answers":[{"choice_id":"4385176989"}]},{"id":"667462102","answers":[{"choice_id":"4385177008"}]}]}]},"emitted_at":1674149663373} +{"stream":"survey_responses","data":{"id":"12731267503","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=zOrptpJoo7QbXn1DoS0HIo4GcoAK8cIZ83MYidVo_2FuK_2FDvnnrsXK2SDzhyjssMdI","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731267503","total_time":31,"date_modified":"2021-06-10T10:28:56+00:00","date_created":"2021-06-10T10:28:25+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731267503","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176721"}]},{"id":"667462079","answers":[{"choice_id":"4385176727"}]},{"id":"667462082","answers":[{"choice_id":"4385176736"}]},{"id":"667462084","answers":[{"choice_id":"4385176765"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176961"}]},{"id":"667462096","answers":[{"choice_id":"4385176970"}]},{"id":"667462099","answers":[{"choice_id":"4385176983"}]},{"id":"667462100","answers":[{"choice_id":"4385176986"}]},{"id":"667462102","answers":[{"choice_id":"4385177003"}]}]}]},"emitted_at":1674149663373} +{"stream":"survey_responses","data":{"id":"12731287789","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=zXARfqNZgptvNWp9PboSVlElugTboBiAj_2FSG_2BkbD8e8OUJGsJ8FMRpMFap0qzcYY","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731287789","total_time":31,"date_modified":"2021-06-10T10:37:03+00:00","date_created":"2021-06-10T10:36:32+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731287789","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176726"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176735"}]},{"id":"667462084","answers":[{"choice_id":"4385176763"}]},{"id":"667462086","answers":[{"choice_id":"4385176918"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176965"}]},{"id":"667462096","answers":[{"choice_id":"4385176971"}]},{"id":"667462099","answers":[{"choice_id":"4385176981"}]},{"id":"667462100","answers":[{"choice_id":"4385176989"}]},{"id":"667462102","answers":[{"choice_id":"4385177004"}]}]}]},"emitted_at":1674149663374} +{"stream":"survey_responses","data":{"id":"12731307187","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=d07mxUJIp3BjkeFrp8gTQvz67vJrBUQWNX2tzrHPvkrZ0piZOPTQDKl_2BrNNjOvJO","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731307187","total_time":35,"date_modified":"2021-06-10T10:44:49+00:00","date_created":"2021-06-10T10:44:14+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731307187","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176724"}]},{"id":"667462079","answers":[{"choice_id":"4385176727"}]},{"id":"667462082","answers":[{"choice_id":"4385176734"}]},{"id":"667462084","answers":[{"choice_id":"4385176765"}]},{"id":"667462086","answers":[{"choice_id":"4385176921"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176964"}]},{"id":"667462096","answers":[{"choice_id":"4385176975"}]},{"id":"667462099","answers":[{"choice_id":"4385176982"}]},{"id":"667462100","answers":[{"choice_id":"4385176986"}]},{"id":"667462102","answers":[{"choice_id":"4385177004"}]}]}]},"emitted_at":1674149663374} +{"stream":"survey_responses","data":{"id":"12731326595","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=BCy4vPYrkiObJMS9B6GjZD2jwLTDr1luSZYtqGxH8zxGvmteSPixhqGNTTdp_2BRwb","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731326595","total_time":32,"date_modified":"2021-06-10T10:52:38+00:00","date_created":"2021-06-10T10:52:05+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731326595","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176722"}]},{"id":"667462079","answers":[{"choice_id":"4385176728"}]},{"id":"667462082","answers":[{"choice_id":"4385176739"}]},{"id":"667462084","answers":[{"choice_id":"4385176767"}]},{"id":"667462086","answers":[{"choice_id":"4385176918"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176959"}]},{"id":"667462096","answers":[{"choice_id":"4385176974"}]},{"id":"667462099","answers":[{"choice_id":"4385176981"}]},{"id":"667462100","answers":[{"choice_id":"4385176990"}]},{"id":"667462102","answers":[{"choice_id":"4385177003"}]}]}]},"emitted_at":1674149663375} +{"stream":"survey_responses","data":{"id":"12731345509","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843665","survey_id":"307785444","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=KmG9rTOuf2GcFWGtNhaBIfC5S80jehYrziix2nmuPzJw9_2FzLpaENGb_2F8j4NkPfTJ","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxrQYdYnKpzayiBZVWsmE3jE_3D?respondent_id=12731345509","total_time":31,"date_modified":"2021-06-10T11:00:18+00:00","date_created":"2021-06-10T10:59:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785444/responses/12731345509","pages":[{"id":"168831459","questions":[]},{"id":"168831461","questions":[{"id":"667462078","answers":[{"choice_id":"4385176725"}]},{"id":"667462079","answers":[{"choice_id":"4385176729"}]},{"id":"667462082","answers":[{"choice_id":"4385176734"}]},{"id":"667462084","answers":[{"choice_id":"4385176766"}]},{"id":"667462086","answers":[{"choice_id":"4385176919"}]}]},{"id":"168831467","questions":[{"id":"667462094","answers":[{"choice_id":"4385176964"}]},{"id":"667462096","answers":[{"choice_id":"4385176968"}]},{"id":"667462099","answers":[{"choice_id":"4385176983"}]},{"id":"667462100","answers":[{"choice_id":"4385176991"}]},{"id":"667462102","answers":[{"choice_id":"4385177005"}]}]}]},"emitted_at":1674149663375} +{"stream":"survey_responses","data":{"id":"12731043150","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=LKTTnPMSZ1aoM4WL0f1Ja7_2FdIZyTQ0DexNwU_2FFgEeZeT6B9T2m2HJuQjxPHn2OpZ","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731043150","total_time":36,"date_modified":"2021-06-10T08:48:12+00:00","date_created":"2021-06-10T08:47:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731043150","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173238"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173269"}]},{"id":"667461498","answers":[{"choice_id":"4385173412"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173457"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173482"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173525"}]}]}]},"emitted_at":1674149664904} +{"stream":"survey_responses","data":{"id":"12731057303","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Tj5vPzxUmWLsaqGk6A3N4tXy8F1lrXDh3cgduiFC1tcjk3fKqd5Jc_2FYl9kqbrtXl","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731057303","total_time":35,"date_modified":"2021-06-10T08:55:53+00:00","date_created":"2021-06-10T08:55:17+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731057303","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173237"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173414"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173457"}]},{"id":"667461516","answers":[{"choice_id":"4385173478"}]},{"id":"667461517","answers":[{"choice_id":"4385173481"}]},{"id":"667461521","answers":[{"choice_id":"4385173494"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664906} +{"stream":"survey_responses","data":{"id":"12731072147","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=bAFsDUmEPpCdobkl_2BIl_2F6rdICCatPVmCxnojDaOR9ZJwGzYj7h29WMvC195fRe31","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731072147","total_time":35,"date_modified":"2021-06-10T09:03:38+00:00","date_created":"2021-06-10T09:03:02+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731072147","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173240"}]},{"id":"667461473","answers":[{"choice_id":"4385173257"}]},{"id":"667461476","answers":[{"choice_id":"4385173268"}]},{"id":"667461498","answers":[{"choice_id":"4385173413"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173452"}]},{"id":"667461516","answers":[{"choice_id":"4385173476"}]},{"id":"667461517","answers":[{"choice_id":"4385173483"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664908} +{"stream":"survey_responses","data":{"id":"12731088506","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MrquTcpA82ItgrSQWG_2BswTK4ClFm9rTuG5GWb85hiLDvaK2dr6F7vrYvOlwqkkC6","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731088506","total_time":35,"date_modified":"2021-06-10T09:11:22+00:00","date_created":"2021-06-10T09:10:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731088506","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173236"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173269"}]},{"id":"667461498","answers":[{"choice_id":"4385173413"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173458"}]},{"id":"667461516","answers":[{"choice_id":"4385173475"}]},{"id":"667461517","answers":[{"choice_id":"4385173484"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173525"}]}]}]},"emitted_at":1674149664909} +{"stream":"survey_responses","data":{"id":"12731104696","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=RO8uULIefm7fQ9VJXKzxtKBfRj4g0rYOE0LRuSA8OT2GVPEFDFQFmSOII7UlshDk","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731104696","total_time":36,"date_modified":"2021-06-10T09:19:03+00:00","date_created":"2021-06-10T09:18:26+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731104696","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173240"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173414"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173457"}]},{"id":"667461516","answers":[{"choice_id":"4385173474"}]},{"id":"667461517","answers":[{"choice_id":"4385173481"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664911} +{"stream":"survey_responses","data":{"id":"12731121617","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Z_2BP_2BwLxa1Cmlcetqz6B1oaPvJSUU_2F5d018eOau5jIs8q4IlOyw7MT9YtxrlZnZHx","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731121617","total_time":37,"date_modified":"2021-06-10T09:26:44+00:00","date_created":"2021-06-10T09:26:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731121617","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173228"}]},{"id":"667461471","answers":[{"choice_id":"4385173237"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173268"}]},{"id":"667461498","answers":[{"choice_id":"4385173414"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173458"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173481"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664913} +{"stream":"survey_responses","data":{"id":"12731139029","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=R0ZtH7VCYs_2FMuOE8hZBLqJdLMcu2RDqvrV04C34ivpIzGYhRzaVoAG0LDF83Ln_2B2","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731139029","total_time":37,"date_modified":"2021-06-10T09:34:27+00:00","date_created":"2021-06-10T09:33:50+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731139029","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173239"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173269"}]},{"id":"667461498","answers":[{"choice_id":"4385173415"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173459"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173482"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664914} +{"stream":"survey_responses","data":{"id":"12731156353","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=t_2BeAHBUtkTES9TALR_2F4aDfYgtWlbqJv08b_2B6EYbplYKefvn8GrYTkoGugKOevrCn","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731156353","total_time":35,"date_modified":"2021-06-10T09:42:06+00:00","date_created":"2021-06-10T09:41:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731156353","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173237"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173416"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173455"}]},{"id":"667461516","answers":[{"choice_id":"4385173474"}]},{"id":"667461517","answers":[{"choice_id":"4385173481"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664916} +{"stream":"survey_responses","data":{"id":"12731173574","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=mVe08d8mokL6AWRdTdpFz7jaz6dJhmAV4ZlfpEH6B8OQwQXlC2RxAxy2Z_2BtSrLXG","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731173574","total_time":36,"date_modified":"2021-06-10T09:49:53+00:00","date_created":"2021-06-10T09:49:16+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731173574","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173241"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173414"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173458"}]},{"id":"667461516","answers":[{"choice_id":"4385173475"}]},{"id":"667461517","answers":[{"choice_id":"4385173486"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664917} +{"stream":"survey_responses","data":{"id":"12731192021","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=XFNknH0sj9IIdSvzYR75kcMldl4TuTz7kma3E7SGri2Rq_2FvcCRLj4ug5HOCnqMQz","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731192021","total_time":39,"date_modified":"2021-06-10T09:58:16+00:00","date_created":"2021-06-10T09:57:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731192021","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173239"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173416"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173456"}]},{"id":"667461516","answers":[{"choice_id":"4385173475"}]},{"id":"667461517","answers":[{"choice_id":"4385173481"}]},{"id":"667461521","answers":[{"choice_id":"4385173494"}]},{"id":"667461526","answers":[{"choice_id":"4385173523"}]}]}]},"emitted_at":1674149664919} +{"stream":"survey_responses","data":{"id":"12731211903","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=V3KUOw0NUFH27PiVeUNuTKv_2BkMDveRdHYnln_2FOZcYY0I7L0VIMlksx3CdNizHX_2BP","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731211903","total_time":36,"date_modified":"2021-06-10T10:06:21+00:00","date_created":"2021-06-10T10:05:44+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731211903","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173239"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173416"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173456"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173484"}]},{"id":"667461521","answers":[{"choice_id":"4385173494"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664921} +{"stream":"survey_responses","data":{"id":"12731231636","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=xv8ZLGu_2FUg9VAJ8hvx10oji6MvB1PbiAyA98qWpExvZvSaPKJ7cIFH8nZktkDKH0","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731231636","total_time":36,"date_modified":"2021-06-10T10:14:08+00:00","date_created":"2021-06-10T10:13:32+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731231636","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173226"}]},{"id":"667461471","answers":[{"choice_id":"4385173237"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173413"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173454"}]},{"id":"667461516","answers":[{"choice_id":"4385173475"}]},{"id":"667461517","answers":[{"choice_id":"4385173486"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173527"}]}]}]},"emitted_at":1674149664922} +{"stream":"survey_responses","data":{"id":"12731250495","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=juR_2BEnc_2BsJLlCc6Sg7p2Ql_2B4icSx_2BsZwo_2FU1RVgYxqI2OzngMKnAUlrdJUS39ewn","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731250495","total_time":36,"date_modified":"2021-06-10T10:21:58+00:00","date_created":"2021-06-10T10:21:21+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731250495","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173237"}]},{"id":"667461473","answers":[{"choice_id":"4385173257"}]},{"id":"667461476","answers":[{"choice_id":"4385173268"}]},{"id":"667461498","answers":[{"choice_id":"4385173415"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173459"}]},{"id":"667461516","answers":[{"choice_id":"4385173474"}]},{"id":"667461517","answers":[{"choice_id":"4385173486"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664924} +{"stream":"survey_responses","data":{"id":"12731268932","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vXLZxpfaNUwy1JRrQLJCNL0kcVa5U5M5FtCofSN4MCcTJt9om9nRi2D4C4xJeXUg","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731268932","total_time":35,"date_modified":"2021-06-10T10:29:36+00:00","date_created":"2021-06-10T10:29:00+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731268932","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173228"}]},{"id":"667461471","answers":[{"choice_id":"4385173242"}]},{"id":"667461473","answers":[{"choice_id":"4385173257"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173412"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173454"}]},{"id":"667461516","answers":[{"choice_id":"4385173475"}]},{"id":"667461517","answers":[{"choice_id":"4385173483"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173524"}]}]}]},"emitted_at":1674149664925} +{"stream":"survey_responses","data":{"id":"12731289280","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=M4Lzmv89J2ZSnoBKgwxsZqDP3em9icPdsBglzN7NQB_2BM5AQ1bWpjH53fB0IsVZi6","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731289280","total_time":36,"date_modified":"2021-06-10T10:37:44+00:00","date_created":"2021-06-10T10:37:08+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731289280","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173242"}]},{"id":"667461473","answers":[{"choice_id":"4385173258"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173416"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173454"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173485"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664927} +{"stream":"survey_responses","data":{"id":"12731308800","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=GQAEVhmAlwb5r_2FWfXNC_2Fqzqv5ULovU_2BGovk8oDp5nCvL2982DEXHbEhjSg4A3FdA","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731308800","total_time":39,"date_modified":"2021-06-10T10:45:33+00:00","date_created":"2021-06-10T10:44:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731308800","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173239"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173412"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173459"}]},{"id":"667461516","answers":[{"choice_id":"4385173473"}]},{"id":"667461517","answers":[{"choice_id":"4385173482"}]},{"id":"667461521","answers":[{"choice_id":"4385173494"}]},{"id":"667461526","answers":[{"choice_id":"4385173526"}]}]}]},"emitted_at":1674149664929} +{"stream":"survey_responses","data":{"id":"12731328082","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MwpXysDo7Lhe8X4oi_2BfwDcfgG4XMlnjXbj783SvdsQcVCLn0Y0mvT87cyq6wLtri","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731328082","total_time":36,"date_modified":"2021-06-10T10:53:17+00:00","date_created":"2021-06-10T10:52:41+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731328082","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173227"}]},{"id":"667461471","answers":[{"choice_id":"4385173241"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173271"}]},{"id":"667461498","answers":[{"choice_id":"4385173413"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173456"}]},{"id":"667461516","answers":[{"choice_id":"4385173477"}]},{"id":"667461517","answers":[{"choice_id":"4385173486"}]},{"id":"667461521","answers":[{"choice_id":"4385173492"}]},{"id":"667461526","answers":[{"choice_id":"4385173524"}]}]}]},"emitted_at":1674149664930} +{"stream":"survey_responses","data":{"id":"12731346960","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843672","survey_id":"307785394","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=i9GzbJPTq_2BCfXqXCYc91kWSkkbD40J_2FGL8hESaU68w7nuZXOyFZ7xNpNth1mmf72","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNt3d6AR0J1aeeTU4KsCULsx8_3D?respondent_id=12731346960","total_time":35,"date_modified":"2021-06-10T11:00:58+00:00","date_created":"2021-06-10T11:00:22+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785394/responses/12731346960","pages":[{"id":"168831344","questions":[]},{"id":"168831345","questions":[{"id":"667461468","answers":[{"choice_id":"4385173229"}]},{"id":"667461471","answers":[{"choice_id":"4385173241"}]},{"id":"667461473","answers":[{"choice_id":"4385173256"}]},{"id":"667461476","answers":[{"choice_id":"4385173270"}]},{"id":"667461498","answers":[{"choice_id":"4385173412"}]}]},{"id":"168831352","questions":[{"id":"667461513","answers":[{"choice_id":"4385173457"}]},{"id":"667461516","answers":[{"choice_id":"4385173476"}]},{"id":"667461517","answers":[{"choice_id":"4385173483"}]},{"id":"667461521","answers":[{"choice_id":"4385173493"}]},{"id":"667461526","answers":[{"choice_id":"4385173527"}]}]}]},"emitted_at":1674149664931} +{"stream":"survey_responses","data":{"id":"12731044345","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=RiSWqWbbXVsX_2BRIyudfJwY_2BODcC0aHC0L77gSNMTF5T_2BsPWUy2vlIWpXf01Hqy8k","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731044345","total_time":34,"date_modified":"2021-06-10T08:48:50+00:00","date_created":"2021-06-10T08:48:16+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731044345","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173538"}]},{"id":"667461530","answers":[{"choice_id":"4385173549"}]},{"id":"667461549","answers":[{"choice_id":"4385173661"}]},{"id":"667461551","answers":[{"choice_id":"4385173676"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173732"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174059"}]},{"id":"667461598","answers":[{"choice_id":"4385174182"}]}]}]},"emitted_at":1674149666541} +{"stream":"survey_responses","data":{"id":"12731058644","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=8fjqeuyiG6EvuMWbYy64yqPXBnCSWaEpW8DInIUYXRbFyqerWPCENf5izNrPGoNw","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731058644","total_time":33,"date_modified":"2021-06-10T08:56:31+00:00","date_created":"2021-06-10T08:55:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731058644","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173537"}]},{"id":"667461530","answers":[{"choice_id":"4385173550"}]},{"id":"667461549","answers":[{"choice_id":"4385173662"}]},{"id":"667461551","answers":[{"choice_id":"4385173677"}]},{"id":"667461553","answers":[{"choice_id":"4385173678"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173729"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174063"}]},{"id":"667461598","answers":[{"choice_id":"4385174183"}]}]}]},"emitted_at":1674149666543} +{"stream":"survey_responses","data":{"id":"12731073567","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ILVcHPPYp1qBeboZrnUw9zU8OfPDI3pBaSHE_2FPA1mcsZYgDgyEvD2DNJEXG50BwI","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731073567","total_time":34,"date_modified":"2021-06-10T09:04:16+00:00","date_created":"2021-06-10T09:03:42+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731073567","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173537"}]},{"id":"667461530","answers":[{"choice_id":"4385173552"}]},{"id":"667461549","answers":[{"choice_id":"4385173663"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173711"}]},{"id":"667461558","answers":[{"choice_id":"4385173734"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174066"}]},{"id":"667461598","answers":[{"choice_id":"4385174183"}]}]}]},"emitted_at":1674149666544} +{"stream":"survey_responses","data":{"id":"12731089919","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=WJVGjucUzW8fBD4StuC_2FFZoPB0pCtugYpTzgDrCOMnJyyzUp5Q2v55jJ8xqcAaJv","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731089919","total_time":33,"date_modified":"2021-06-10T09:12:00+00:00","date_created":"2021-06-10T09:11:26+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731089919","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173536"}]},{"id":"667461530","answers":[{"choice_id":"4385173551"}]},{"id":"667461549","answers":[{"choice_id":"4385173658"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173714"}]},{"id":"667461558","answers":[{"choice_id":"4385173728"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174060"}]},{"id":"667461598","answers":[{"choice_id":"4385174184"}]}]}]},"emitted_at":1674149666545} +{"stream":"survey_responses","data":{"id":"12731106311","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=pYr2BTIwVP0O3EzGC27aOOaCA0hnWvJ3FzJOiB_2Fhgw0UUSDh2QpQTcjrfXltZ8dv","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731106311","total_time":33,"date_modified":"2021-06-10T09:19:41+00:00","date_created":"2021-06-10T09:19:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731106311","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173537"}]},{"id":"667461530","answers":[{"choice_id":"4385173549"}]},{"id":"667461549","answers":[{"choice_id":"4385173663"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173680"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173712"}]},{"id":"667461558","answers":[{"choice_id":"4385173727"}]},{"id":"667461561","answers":[{"choice_id":"4385173757"}]},{"id":"667461580","answers":[{"choice_id":"4385174061"}]},{"id":"667461598","answers":[{"choice_id":"4385174186"}]}]}]},"emitted_at":1674149666546} +{"stream":"survey_responses","data":{"id":"12731123001","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=iMOq3PmDu_2Fpfu6Lqltp5VPoRV2azTczcfDSAY7AjMIzECAtQhUwU_2FNMCCwq_2BSvsN","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731123001","total_time":34,"date_modified":"2021-06-10T09:27:23+00:00","date_created":"2021-06-10T09:26:49+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731123001","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173540"}]},{"id":"667461530","answers":[{"choice_id":"4385173550"}]},{"id":"667461549","answers":[{"choice_id":"4385173658"}]},{"id":"667461551","answers":[{"choice_id":"4385173676"}]},{"id":"667461553","answers":[{"choice_id":"4385173682"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173727"}]},{"id":"667461561","answers":[{"choice_id":"4385173757"}]},{"id":"667461580","answers":[{"choice_id":"4385174059"}]},{"id":"667461598","answers":[{"choice_id":"4385174186"}]}]}]},"emitted_at":1674149666546} +{"stream":"survey_responses","data":{"id":"12731140625","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=QTesi81CB_2BwJ62wJ8op06oDEuscTPvq1ke99azBrWELfhmlgdyrrpw0NVegVV_2BE7","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731140625","total_time":33,"date_modified":"2021-06-10T09:35:05+00:00","date_created":"2021-06-10T09:34:32+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731140625","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173538"}]},{"id":"667461530","answers":[{"choice_id":"4385173553"}]},{"id":"667461549","answers":[{"choice_id":"4385173661"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173678"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173729"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174062"}]},{"id":"667461598","answers":[{"choice_id":"4385174185"}]}]}]},"emitted_at":1674149666547} +{"stream":"survey_responses","data":{"id":"12731157855","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Y_2BseyWnN45hqrdC63g5th2srbJCqZZuaaHgJaVUVwfuBPwNI2IdB2Dc1yEhLsRcy","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731157855","total_time":33,"date_modified":"2021-06-10T09:42:46+00:00","date_created":"2021-06-10T09:42:12+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731157855","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173536"}]},{"id":"667461530","answers":[{"choice_id":"4385173553"}]},{"id":"667461549","answers":[{"choice_id":"4385173661"}]},{"id":"667461551","answers":[{"choice_id":"4385173676"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173727"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174060"}]},{"id":"667461598","answers":[{"choice_id":"4385174183"}]}]}]},"emitted_at":1674149666548} +{"stream":"survey_responses","data":{"id":"12731175182","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=wvlpuaxYEnle4EG2hvBzqRUelWi_2BwXRQmZSU2ru959wJ7Ly3p7I9sg1wjhKu7Bm_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731175182","total_time":27,"date_modified":"2021-06-10T09:50:26+00:00","date_created":"2021-06-10T09:49:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731175182","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173713"}]},{"id":"667461558","answers":[{"choice_id":"4385173731"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174061"}]},{"id":"667461598","answers":[{"choice_id":"4385174186"}]}]}]},"emitted_at":1674149666549} +{"stream":"survey_responses","data":{"id":"12731193598","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=mqmf_2BkbhXVJbx4WQXC0_2F72pU_2FFf6FkOVA8_2F7REJy4j9HAEPKg_2BCPmL8F2wfc6SKi","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731193598","total_time":37,"date_modified":"2021-06-10T09:58:58+00:00","date_created":"2021-06-10T09:58:20+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731193598","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173539"}]},{"id":"667461530","answers":[{"choice_id":"4385173553"}]},{"id":"667461549","answers":[{"choice_id":"4385173657"}]},{"id":"667461551","answers":[{"choice_id":"4385173676"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173714"}]},{"id":"667461558","answers":[{"choice_id":"4385173733"}]},{"id":"667461561","answers":[{"choice_id":"4385173757"}]},{"id":"667461580","answers":[{"choice_id":"4385174065"}]},{"id":"667461598","answers":[{"choice_id":"4385174185"}]}]}]},"emitted_at":1674149666550} +{"stream":"survey_responses","data":{"id":"12731213708","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=FmbWXWfmfbsDK8MEuKSsHPviZSUYgchniK99dQeGSFpf_2BWnh6cTWlg0o5YRIRtn7","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731213708","total_time":33,"date_modified":"2021-06-10T10:06:59+00:00","date_created":"2021-06-10T10:06:25+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731213708","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173537"}]},{"id":"667461530","answers":[{"choice_id":"4385173550"}]},{"id":"667461549","answers":[{"choice_id":"4385173663"}]},{"id":"667461551","answers":[{"choice_id":"4385173677"}]},{"id":"667461553","answers":[{"choice_id":"4385173683"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173712"}]},{"id":"667461558","answers":[{"choice_id":"4385173729"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174061"}]},{"id":"667461598","answers":[{"choice_id":"4385174182"}]}]}]},"emitted_at":1674149666550} +{"stream":"survey_responses","data":{"id":"12731233283","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VRo6oIX2X5OOWhsAVRYKuhrXr5zszr6duv29Vq3RdwAJMtFNcQqAJk71Bi4Oq3Bo","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731233283","total_time":33,"date_modified":"2021-06-10T10:14:47+00:00","date_created":"2021-06-10T10:14:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731233283","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173540"}]},{"id":"667461530","answers":[{"choice_id":"4385173554"}]},{"id":"667461549","answers":[{"choice_id":"4385173656"}]},{"id":"667461551","answers":[{"choice_id":"4385173676"}]},{"id":"667461553","answers":[{"choice_id":"4385173679"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173715"}]},{"id":"667461558","answers":[{"choice_id":"4385173727"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174063"}]},{"id":"667461598","answers":[{"choice_id":"4385174185"}]}]}]},"emitted_at":1674149666551} +{"stream":"survey_responses","data":{"id":"12731252105","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=TQiDe8sSx4_2FuWzT1Lr7RKGOBO2iwOmTuPPOzcvcHL45tRjbdZSW9UHv6_2B2nLtY6n","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731252105","total_time":34,"date_modified":"2021-06-10T10:22:37+00:00","date_created":"2021-06-10T10:22:03+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731252105","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173537"}]},{"id":"667461530","answers":[{"choice_id":"4385173552"}]},{"id":"667461549","answers":[{"choice_id":"4385173659"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173682"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173712"}]},{"id":"667461558","answers":[{"choice_id":"4385173731"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174062"}]},{"id":"667461598","answers":[{"choice_id":"4385174182"}]}]}]},"emitted_at":1674149666552} +{"stream":"survey_responses","data":{"id":"12731270690","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ipONp_2F6FrM7HwOh1_2BpJXXqL65aZR6EN_2BmCdmmlM4Etuv_2BqfU5P8wsYtpW2_2BvsbR2","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731270690","total_time":33,"date_modified":"2021-06-10T10:30:16+00:00","date_created":"2021-06-10T10:29:42+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731270690","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173536"}]},{"id":"667461530","answers":[{"choice_id":"4385173550"}]},{"id":"667461549","answers":[{"choice_id":"4385173656"}]},{"id":"667461551","answers":[{"choice_id":"4385173677"}]},{"id":"667461553","answers":[{"choice_id":"4385173681"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173715"}]},{"id":"667461558","answers":[{"choice_id":"4385173734"}]},{"id":"667461561","answers":[{"choice_id":"4385173757"}]},{"id":"667461580","answers":[{"choice_id":"4385174064"}]},{"id":"667461598","answers":[{"choice_id":"4385174186"}]}]}]},"emitted_at":1674149666553} +{"stream":"survey_responses","data":{"id":"12731290962","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=eWOUaV5xBiUO9JblKm5rYeLfk2_2FPRiygYknRKYIPlBC3Vl9805OBGP8f2kjnm0r2","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731290962","total_time":33,"date_modified":"2021-06-10T10:38:22+00:00","date_created":"2021-06-10T10:37:48+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731290962","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173538"}]},{"id":"667461530","answers":[{"choice_id":"4385173553"}]},{"id":"667461549","answers":[{"choice_id":"4385173658"}]},{"id":"667461551","answers":[{"choice_id":"4385173675"}]},{"id":"667461553","answers":[{"choice_id":"4385173678"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173715"}]},{"id":"667461558","answers":[{"choice_id":"4385173729"}]},{"id":"667461561","answers":[{"choice_id":"4385173757"}]},{"id":"667461580","answers":[{"choice_id":"4385174066"}]},{"id":"667461598","answers":[{"choice_id":"4385174182"}]}]}]},"emitted_at":1674149666555} +{"stream":"survey_responses","data":{"id":"12731310541","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=wFNF4x4oPfyHaT5uvGstRuK1DUDfrHJyxBXB95bRgrB_2FdJojFuoGIhxA0BIH0XSO","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731310541","total_time":37,"date_modified":"2021-06-10T10:46:14+00:00","date_created":"2021-06-10T10:45:37+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731310541","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173540"}]},{"id":"667461530","answers":[{"choice_id":"4385173551"}]},{"id":"667461549","answers":[{"choice_id":"4385173661"}]},{"id":"667461551","answers":[{"choice_id":"4385173677"}]},{"id":"667461553","answers":[{"choice_id":"4385173682"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173712"}]},{"id":"667461558","answers":[{"choice_id":"4385173732"}]},{"id":"667461561","answers":[{"choice_id":"4385173756"}]},{"id":"667461580","answers":[{"choice_id":"4385174059"}]},{"id":"667461598","answers":[{"choice_id":"4385174184"}]}]}]},"emitted_at":1674149666556} +{"stream":"survey_responses","data":{"id":"12731329746","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vGkpaT5QedSZDkH1LkdPEMwKHIlyZ2mKjKyt8tgek5uzfoU30oxZnac34WvjYm1h","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731329746","total_time":33,"date_modified":"2021-06-10T10:53:55+00:00","date_created":"2021-06-10T10:53:21+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731329746","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[{"id":"667461529","answers":[{"choice_id":"4385173540"}]},{"id":"667461530","answers":[{"choice_id":"4385173551"}]},{"id":"667461549","answers":[{"choice_id":"4385173661"}]},{"id":"667461551","answers":[{"choice_id":"4385173677"}]},{"id":"667461553","answers":[{"choice_id":"4385173682"}]}]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173711"}]},{"id":"667461558","answers":[{"choice_id":"4385173732"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174059"}]},{"id":"667461598","answers":[{"choice_id":"4385174182"}]}]}]},"emitted_at":1674149666557} +{"stream":"survey_responses","data":{"id":"12731348717","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843682","survey_id":"307785402","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vuWK6q7Hz9dNybRoH2rP8Ux0qNc_2B0E3lMUmtDlPUbslKbHc7FranQhTJxg_2BIo3Pw","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxuFqiaqWbXDPfS4KhzQnJ4c_3D?respondent_id=12731348717","total_time":26,"date_modified":"2021-06-10T11:01:30+00:00","date_created":"2021-06-10T11:01:03+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785402/responses/12731348717","pages":[{"id":"168831357","questions":[]},{"id":"168831358","questions":[]},{"id":"168831365","questions":[{"id":"667461555","answers":[{"choice_id":"4385173714"}]},{"id":"667461558","answers":[{"choice_id":"4385173729"}]},{"id":"667461561","answers":[{"choice_id":"4385173755"}]},{"id":"667461580","answers":[{"choice_id":"4385174059"}]},{"id":"667461598","answers":[{"choice_id":"4385174186"}]}]}]},"emitted_at":1674149666558} +{"stream":"survey_responses","data":{"id":"12731045521","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=0SWEpDfTb_2FAVFz7Ddryxk5koNgVExk8Oke4TJ8tz6QD5Eqc7uoqHQWRcLUi7yOAb","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731045521","total_time":32,"date_modified":"2021-06-10T08:49:26+00:00","date_created":"2021-06-10T08:48:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731045521","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174255"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174372"}]},{"id":"667461651","answers":[{"choice_id":"4385174482"}]},{"id":"667461652","answers":[{"choice_id":"4385174496"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174649"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668076} +{"stream":"survey_responses","data":{"id":"12731059832","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vhiMNZdaQtV6_2FPkJM_2BP8UtinkM87qYXz4VjmfwvWnjK1NFrLnN1P_2FH3w9GU7JUxX","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731059832","total_time":32,"date_modified":"2021-06-10T08:57:08+00:00","date_created":"2021-06-10T08:56:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731059832","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174485"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174635"}]},{"id":"667461676","answers":[{"choice_id":"4385174644"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668077} +{"stream":"survey_responses","data":{"id":"12731074829","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ZUZi7r7io9fCwXP7l4K5oirdqpAhNEdbesFS73p617lSOzxuK5oKGDsqiK8zdA8E","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731074829","total_time":31,"date_modified":"2021-06-10T09:04:52+00:00","date_created":"2021-06-10T09:04:20+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731074829","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174255"}]},{"id":"667461628","answers":[{"choice_id":"4385174360"}]},{"id":"667461630","answers":[{"choice_id":"4385174372"}]},{"id":"667461651","answers":[{"choice_id":"4385174485"}]},{"id":"667461652","answers":[{"choice_id":"4385174498"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174599"}]},{"id":"667461670","answers":[{"choice_id":"4385174622"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174645"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668077} +{"stream":"survey_responses","data":{"id":"12731091270","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=eL4vDkGrDZfi5BiJC001E_2FoL_2Bo1mAtZxB97VuOw0Ue7x2Y_2Fvj9cWXWEFAG1_2For6z","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731091270","total_time":33,"date_modified":"2021-06-10T09:12:38+00:00","date_created":"2021-06-10T09:12:05+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731091270","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174360"}]},{"id":"667461630","answers":[{"choice_id":"4385174372"}]},{"id":"667461651","answers":[{"choice_id":"4385174483"}]},{"id":"667461652","answers":[{"choice_id":"4385174493"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174623"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174646"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668078} +{"stream":"survey_responses","data":{"id":"12731107632","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VzELV_2Bc1GPJfJsXsRIabrQVAi9_2BSDOS6F_2B68zR_2BP4u98MGtxvy_2BeSOjCh5s1HKa5","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731107632","total_time":32,"date_modified":"2021-06-10T09:20:17+00:00","date_created":"2021-06-10T09:19:44+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731107632","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174254"}]},{"id":"667461628","answers":[{"choice_id":"4385174360"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174483"}]},{"id":"667461652","answers":[{"choice_id":"4385174496"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174636"}]},{"id":"667461676","answers":[{"choice_id":"4385174649"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668078} +{"stream":"survey_responses","data":{"id":"12731124423","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=QIT1tkBlcTVTBkkHm7dpbWllNNXyBriN0RSobCplWUm5LoJpA_2FC93B5N8fFbc0Zs","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731124423","total_time":31,"date_modified":"2021-06-10T09:28:00+00:00","date_created":"2021-06-10T09:27:28+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731124423","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174362"}]},{"id":"667461630","answers":[{"choice_id":"4385174371"}]},{"id":"667461651","answers":[{"choice_id":"4385174484"}]},{"id":"667461652","answers":[{"choice_id":"4385174498"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174620"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174645"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668078} +{"stream":"survey_responses","data":{"id":"12731142107","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=URkLmYAmILJkZgOzrwRncRyLAGrxL_2FGHdeqmjSqrSYjS_2F7cjqy4e3nBWqRsOOv0r","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731142107","total_time":31,"date_modified":"2021-06-10T09:35:42+00:00","date_created":"2021-06-10T09:35:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731142107","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174482"}]},{"id":"667461652","answers":[{"choice_id":"4385174498"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174601"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174636"}]},{"id":"667461676","answers":[{"choice_id":"4385174643"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668079} +{"stream":"survey_responses","data":{"id":"12731159230","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=O0O262_2ByzCPZXGbz3NLSBdAJfB9rNAyLSz4YX4ubxd_2BIrVIo2jJ_2Bzk8KQNxCcjXb","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731159230","total_time":31,"date_modified":"2021-06-10T09:43:20+00:00","date_created":"2021-06-10T09:42:49+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731159230","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174371"}]},{"id":"667461651","answers":[{"choice_id":"4385174482"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174623"}]},{"id":"667461674","answers":[{"choice_id":"4385174636"}]},{"id":"667461676","answers":[{"choice_id":"4385174643"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668079} +{"stream":"survey_responses","data":{"id":"12731176347","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=LVM3eoF2xyKmckO7bkvBEw0i_2FoajMZMA_2Fc_2FVcI95ReDdVUuQQ_2Babxm1nILbPUISC","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731176347","total_time":33,"date_modified":"2021-06-10T09:51:04+00:00","date_created":"2021-06-10T09:50:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731176347","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174253"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174486"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174649"}]},{"id":"667461686","answers":[{"choice_id":"4385174676"}]}]}]},"emitted_at":1674149668079} +{"stream":"survey_responses","data":{"id":"12731195152","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=SDlGK5Xxc7lpBehXWM_2B47eY24yPtwGB4NBBehIidUXtChXAXOgjA_2F8CxAHW97nUA","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731195152","total_time":35,"date_modified":"2021-06-10T09:59:39+00:00","date_created":"2021-06-10T09:59:03+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731195152","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174253"}]},{"id":"667461628","answers":[{"choice_id":"4385174360"}]},{"id":"667461630","answers":[{"choice_id":"4385174372"}]},{"id":"667461651","answers":[{"choice_id":"4385174485"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174635"}]},{"id":"667461676","answers":[{"choice_id":"4385174647"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668080} +{"stream":"survey_responses","data":{"id":"12731215248","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ft3pzaYpicC1h6Ah26Wj0wRkCmTK1Yu7BTxxTQ0po_2FC00oJaK3YHuX9XV5WB5T60","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731215248","total_time":32,"date_modified":"2021-06-10T10:07:34+00:00","date_created":"2021-06-10T10:07:02+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731215248","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174253"}]},{"id":"667461628","answers":[{"choice_id":"4385174360"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174485"}]},{"id":"667461652","answers":[{"choice_id":"4385174493"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174599"}]},{"id":"667461670","answers":[{"choice_id":"4385174623"}]},{"id":"667461674","answers":[{"choice_id":"4385174635"}]},{"id":"667461676","answers":[{"choice_id":"4385174646"}]},{"id":"667461686","answers":[{"choice_id":"4385174676"}]}]}]},"emitted_at":1674149668080} +{"stream":"survey_responses","data":{"id":"12731234853","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=2W_2B7kOeuvhHSN7s0oUQZQwt3iySUHWLv5qq0xw8gojd0RWsFcAMM6NILAk_2FZJbdX","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731234853","total_time":31,"date_modified":"2021-06-10T10:15:23+00:00","date_created":"2021-06-10T10:14:51+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731234853","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174372"}]},{"id":"667461651","answers":[{"choice_id":"4385174485"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174601"}]},{"id":"667461670","answers":[{"choice_id":"4385174622"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174650"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668080} +{"stream":"survey_responses","data":{"id":"12731253651","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=0yectjqXWcCHTMhyv3pd4HqlpH_2FjslmIWhw59V07Em7ASx_2FsHGk5ZFvSKThLEb3f","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731253651","total_time":31,"date_modified":"2021-06-10T10:23:12+00:00","date_created":"2021-06-10T10:22:41+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731253651","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174362"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174482"}]},{"id":"667461652","answers":[{"choice_id":"4385174497"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174636"}]},{"id":"667461676","answers":[{"choice_id":"4385174646"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668081} +{"stream":"survey_responses","data":{"id":"12731272195","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=owJREFrbM6_2Fu6fqPiWbW3rJ15U9q9DLJ_2BlAZMq6Gi_2BGKjQ2AGiWVNE5RBM_2FKLyMs","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731272195","total_time":31,"date_modified":"2021-06-10T10:30:52+00:00","date_created":"2021-06-10T10:30:20+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731272195","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174255"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174371"}]},{"id":"667461651","answers":[{"choice_id":"4385174482"}]},{"id":"667461652","answers":[{"choice_id":"4385174495"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174600"}]},{"id":"667461670","answers":[{"choice_id":"4385174623"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174646"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668081} +{"stream":"survey_responses","data":{"id":"12731292534","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=zAYnDyr9Dxd9Em4YpxVpKH7_2BtJbsMFiI0bH89dH2LhhokCrBrNjKYFI0nacFEIpq","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731292534","total_time":32,"date_modified":"2021-06-10T10:38:57+00:00","date_created":"2021-06-10T10:38:25+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731292534","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174254"}]},{"id":"667461628","answers":[{"choice_id":"4385174362"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174483"}]},{"id":"667461652","answers":[{"choice_id":"4385174494"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174599"}]},{"id":"667461670","answers":[{"choice_id":"4385174623"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174649"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668081} +{"stream":"survey_responses","data":{"id":"12731312208","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=uSGoF1sumsyf_2B3iBhadh_2F73k_2BM0dxEwFfAlWl70AwraHwQHcfj64cL0FUt9StbRx","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731312208","total_time":34,"date_modified":"2021-06-10T10:46:52+00:00","date_created":"2021-06-10T10:46:18+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731312208","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174255"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174371"}]},{"id":"667461651","answers":[{"choice_id":"4385174486"}]},{"id":"667461652","answers":[{"choice_id":"4385174495"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174635"}]},{"id":"667461676","answers":[{"choice_id":"4385174643"}]},{"id":"667461686","answers":[{"choice_id":"4385174677"}]}]}]},"emitted_at":1674149668082} +{"stream":"survey_responses","data":{"id":"12731331308","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vQGF4JMphBOwv8kJxOmtjdRG81lTGr7CW73feMGxDEMLSwybystpUFV76KKxYQR6","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731331308","total_time":31,"date_modified":"2021-06-10T10:54:29+00:00","date_created":"2021-06-10T10:53:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731331308","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174253"}]},{"id":"667461628","answers":[{"choice_id":"4385174362"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174486"}]},{"id":"667461652","answers":[{"choice_id":"4385174498"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174598"}]},{"id":"667461670","answers":[{"choice_id":"4385174620"}]},{"id":"667461674","answers":[{"choice_id":"4385174636"}]},{"id":"667461676","answers":[{"choice_id":"4385174644"}]},{"id":"667461686","answers":[{"choice_id":"4385174676"}]}]}]},"emitted_at":1674149668082} +{"stream":"survey_responses","data":{"id":"12731350053","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843688","survey_id":"307785408","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=uQGI1ouCt3TwYg_2F0OjcapOOokxhfAvoP3vsYcJntZXz4yNaoZRXNQePI1o27JEfS","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxvvr7YEM4YZ5j7dMDUtBHEw_3D?respondent_id=12731350053","total_time":32,"date_modified":"2021-06-10T11:02:07+00:00","date_created":"2021-06-10T11:01:34+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785408/responses/12731350053","pages":[{"id":"168831381","questions":[]},{"id":"168831382","questions":[{"id":"667461606","answers":[{"choice_id":"4385174252"}]},{"id":"667461628","answers":[{"choice_id":"4385174361"}]},{"id":"667461630","answers":[{"choice_id":"4385174370"}]},{"id":"667461651","answers":[{"choice_id":"4385174483"}]},{"id":"667461652","answers":[{"choice_id":"4385174496"}]}]},{"id":"168831388","questions":[{"id":"667461666","answers":[{"choice_id":"4385174599"}]},{"id":"667461670","answers":[{"choice_id":"4385174621"}]},{"id":"667461674","answers":[{"choice_id":"4385174634"}]},{"id":"667461676","answers":[{"choice_id":"4385174646"}]},{"id":"667461686","answers":[{"choice_id":"4385174678"}]}]}]},"emitted_at":1674149668082} +{"stream":"survey_responses","data":{"id":"12730895819","recipient_id":"","collection_mode":"default","response_status":"partial","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":["168830049","168830050","168830060"],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=2awnrk_2BH5OxFP_2BQgeiHHjR9yR3bHHngtP06WJ08L7vUw_2Bi4HP_2BoIM_2Fzdi4XZBg4c","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12730895819","total_time":3851,"date_modified":"2021-06-10T08:30:24+00:00","date_created":"2021-06-10T07:26:12+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12730895819","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455130","answers":[{"choice_id":"4385137345"}]},{"id":"667455161","answers":[{"choice_id":"4385137473"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137493"}]}]},{"id":"168830060","questions":[]}]},"emitted_at":1674149669531} +{"stream":"survey_responses","data":{"id":"12731026318","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=9zPtrl88F3NYIsYeyGVBOAH8xcbXCyfUnb5wJmafeNnqKu0OuTBMd3AMA70CA0Dd","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731026318","total_time":42,"date_modified":"2021-06-10T08:38:55+00:00","date_created":"2021-06-10T08:38:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731026318","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137324"}]},{"id":"667455130","answers":[{"choice_id":"4385137342"}]},{"id":"667455161","answers":[{"choice_id":"4385137468"}]},{"id":"667455172","answers":[{"choice_id":"4385137486"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137702"}]},{"id":"667455205","answers":[{"choice_id":"4385137743"}]},{"id":"667455210","answers":[{"choice_id":"4385137776"}]},{"id":"667455212","answers":[{"choice_id":"4385137797"}]},{"id":"667455215","answers":[{"choice_id":"4385137810"}]}]}]},"emitted_at":1674149669532} +{"stream":"survey_responses","data":{"id":"12731034119","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=_2F1iWQXdsu69adcyLuCe0CWLGDC2dm6Mi6UQBAgHHW5tqLGpm6S8VgnyogtlqQcF4","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731034119","total_time":38,"date_modified":"2021-06-10T08:43:18+00:00","date_created":"2021-06-10T08:42:40+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731034119","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137328"}]},{"id":"667455130","answers":[{"choice_id":"4385137342"}]},{"id":"667455161","answers":[{"choice_id":"4385137470"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137742"}]},{"id":"667455210","answers":[{"choice_id":"4385137782"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137813"}]}]}]},"emitted_at":1674149669532} +{"stream":"survey_responses","data":{"id":"12731048348","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=teZL209m07VmwPLhipUVAeikuCFifwYD7Xbn856h7nliTsJok_2BJ8cUsANlBG1x09","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731048348","total_time":37,"date_modified":"2021-06-10T08:51:05+00:00","date_created":"2021-06-10T08:50:27+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731048348","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137324"}]},{"id":"667455130","answers":[{"choice_id":"4385137345"}]},{"id":"667455161","answers":[{"choice_id":"4385137472"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137780"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137812"}]}]}]},"emitted_at":1674149669532} +{"stream":"survey_responses","data":{"id":"12731062826","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=iBwqqk7dTblJHtZ5UWdoNXNfZvamq_2FWqVX9lPmgcaEk_2FJSEZbpEjvTDEp1kntA4I","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731062826","total_time":37,"date_modified":"2021-06-10T08:58:47+00:00","date_created":"2021-06-10T08:58:09+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731062826","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137325"}]},{"id":"667455130","answers":[{"choice_id":"4385137341"}]},{"id":"667455161","answers":[{"choice_id":"4385137473"}]},{"id":"667455172","answers":[{"choice_id":"4385137485"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137782"}]},{"id":"667455212","answers":[{"choice_id":"4385137794"}]},{"id":"667455215","answers":[{"choice_id":"4385137813"}]}]}]},"emitted_at":1674149669533} +{"stream":"survey_responses","data":{"id":"12731078267","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=EWvr594gc6fTNOWCnzJcr1awvjtYrfcHOS1dCZlEmJOVdekL3kH9fN015tpi7AVW","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731078267","total_time":37,"date_modified":"2021-06-10T09:06:31+00:00","date_created":"2021-06-10T09:05:53+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731078267","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137329"}]},{"id":"667455130","answers":[{"choice_id":"4385137342"}]},{"id":"667455161","answers":[{"choice_id":"4385137468"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137495"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137775"}]},{"id":"667455212","answers":[{"choice_id":"4385137796"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669533} +{"stream":"survey_responses","data":{"id":"12731094627","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=UEDBFTIm3XGLxP7HF9d4l806UiymFhRau6MyuUYkfb1y7zOR96xOkRxERkrOJ9ca","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731094627","total_time":38,"date_modified":"2021-06-10T09:14:16+00:00","date_created":"2021-06-10T09:13:38+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731094627","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137329"}]},{"id":"667455130","answers":[{"choice_id":"4385137345"}]},{"id":"667455161","answers":[{"choice_id":"4385137470"}]},{"id":"667455172","answers":[{"choice_id":"4385137486"}]},{"id":"667455179","answers":[{"choice_id":"4385137495"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137743"}]},{"id":"667455210","answers":[{"choice_id":"4385137780"}]},{"id":"667455212","answers":[{"choice_id":"4385137792"}]},{"id":"667455215","answers":[{"choice_id":"4385137810"}]}]}]},"emitted_at":1674149669533} +{"stream":"survey_responses","data":{"id":"12731111090","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=X3JQr1B6y2spk9th1IPF0YF8VQxsZUEffTzik0RdvFtFl2SnrnJQRca_2BDoV2r4mq","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731111090","total_time":38,"date_modified":"2021-06-10T09:21:54+00:00","date_created":"2021-06-10T09:21:16+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731111090","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137326"}]},{"id":"667455130","answers":[{"choice_id":"4385137341"}]},{"id":"667455161","answers":[{"choice_id":"4385137474"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137493"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137775"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669534} +{"stream":"survey_responses","data":{"id":"12731127763","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ETzE9VL934Fk2aBcNUUcKaSh2V3EZHIzNm7GmAoHdznlQgZLuN90AHX13K3n6CVD","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731127763","total_time":37,"date_modified":"2021-06-10T09:29:36+00:00","date_created":"2021-06-10T09:28:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731127763","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137325"}]},{"id":"667455130","answers":[{"choice_id":"4385137341"}]},{"id":"667455161","answers":[{"choice_id":"4385137472"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137496"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137702"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137775"}]},{"id":"667455212","answers":[{"choice_id":"4385137797"}]},{"id":"667455215","answers":[{"choice_id":"4385137813"}]}]}]},"emitted_at":1674149669534} +{"stream":"survey_responses","data":{"id":"12731145509","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VdEi6nthWHwzn1S6g9Ejj36ATaNJTgGRTvPg9OSgXQX3v7zuJ7b8kUW4JpPgoH8N","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731145509","total_time":37,"date_modified":"2021-06-10T09:37:18+00:00","date_created":"2021-06-10T09:36:40+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731145509","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137324"}]},{"id":"667455130","answers":[{"choice_id":"4385137344"}]},{"id":"667455161","answers":[{"choice_id":"4385137473"}]},{"id":"667455172","answers":[{"choice_id":"4385137486"}]},{"id":"667455179","answers":[{"choice_id":"4385137492"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137743"}]},{"id":"667455210","answers":[{"choice_id":"4385137782"}]},{"id":"667455212","answers":[{"choice_id":"4385137795"}]},{"id":"667455215","answers":[{"choice_id":"4385137810"}]}]}]},"emitted_at":1674149669534} +{"stream":"survey_responses","data":{"id":"12731162853","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=SpVNwOtvMvqHvq3zHMXNhDHSmc7HA4m3XTWJpvcSJxvt1b1rvgGaOej3oC_2BolYPy","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731162853","total_time":38,"date_modified":"2021-06-10T09:45:01+00:00","date_created":"2021-06-10T09:44:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731162853","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137328"}]},{"id":"667455130","answers":[{"choice_id":"4385137340"}]},{"id":"667455161","answers":[{"choice_id":"4385137469"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137492"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137743"}]},{"id":"667455210","answers":[{"choice_id":"4385137777"}]},{"id":"667455212","answers":[{"choice_id":"4385137795"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669535} +{"stream":"survey_responses","data":{"id":"12731180052","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=JiwKhmlzAA4BE2G7wLdiXM8p7qGKqy7FVolioM_2BFHLNo4MIvbtO7U2T2MtIhjHQT","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731180052","total_time":40,"date_modified":"2021-06-10T09:52:49+00:00","date_created":"2021-06-10T09:52:09+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731180052","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137324"}]},{"id":"667455130","answers":[{"choice_id":"4385137342"}]},{"id":"667455161","answers":[{"choice_id":"4385137468"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137702"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137775"}]},{"id":"667455212","answers":[{"choice_id":"4385137794"}]},{"id":"667455215","answers":[{"choice_id":"4385137812"}]}]}]},"emitted_at":1674149669535} +{"stream":"survey_responses","data":{"id":"12731198914","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=4lczf0MNm2lOpWvmpCXz8qaQFfYxrkqDyo3Na6JqZ3SoyW9vfVtRkWihGPcm3TJ9","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731198914","total_time":37,"date_modified":"2021-06-10T10:01:22+00:00","date_created":"2021-06-10T10:00:44+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731198914","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137329"}]},{"id":"667455130","answers":[{"choice_id":"4385137345"}]},{"id":"667455161","answers":[{"choice_id":"4385137472"}]},{"id":"667455172","answers":[{"choice_id":"4385137485"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137776"}]},{"id":"667455212","answers":[{"choice_id":"4385137795"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669535} +{"stream":"survey_responses","data":{"id":"12731219287","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=BuKPZoR_2B7yhJkjbyRrpCv9Xsryak851Sl2u8K17_2FsYnSAZUFHdu4fJB0umnx5Y9_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731219287","total_time":37,"date_modified":"2021-06-10T10:09:13+00:00","date_created":"2021-06-10T10:08:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731219287","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137327"}]},{"id":"667455130","answers":[{"choice_id":"4385137341"}]},{"id":"667455161","answers":[{"choice_id":"4385137470"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137494"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137776"}]},{"id":"667455212","answers":[{"choice_id":"4385137792"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669536} +{"stream":"survey_responses","data":{"id":"12731238577","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=gYK41YcmDya_2Bvsx_2BqjLe992H7r6ORc6kyUL3YhAqx78syU1tTY9dv_2Fn92J5xM033","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731238577","total_time":37,"date_modified":"2021-06-10T10:16:59+00:00","date_created":"2021-06-10T10:16:21+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731238577","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137327"}]},{"id":"667455130","answers":[{"choice_id":"4385137340"}]},{"id":"667455161","answers":[{"choice_id":"4385137472"}]},{"id":"667455172","answers":[{"choice_id":"4385137485"}]},{"id":"667455179","answers":[{"choice_id":"4385137496"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137702"}]},{"id":"667455205","answers":[{"choice_id":"4385137741"}]},{"id":"667455210","answers":[{"choice_id":"4385137778"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137810"}]}]}]},"emitted_at":1674149669536} +{"stream":"survey_responses","data":{"id":"12731257342","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=gXcd4_2B0crZ3JHyflBVCFpzaABCmJO9PKQzLnjMuvOHPsOS0sIISJZjVscMHtusHw","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731257342","total_time":37,"date_modified":"2021-06-10T10:24:47+00:00","date_created":"2021-06-10T10:24:10+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731257342","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137324"}]},{"id":"667455130","answers":[{"choice_id":"4385137340"}]},{"id":"667455161","answers":[{"choice_id":"4385137471"}]},{"id":"667455172","answers":[{"choice_id":"4385137486"}]},{"id":"667455179","answers":[{"choice_id":"4385137495"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137782"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137813"}]}]}]},"emitted_at":1674149669536} +{"stream":"survey_responses","data":{"id":"12731276322","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=fdG3OylITjbhJlFfCAIGHmTQ6YpdyOcILnp8DliR5bm9qPSRMG6AkkWm3Gu2gJoP","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731276322","total_time":41,"date_modified":"2021-06-10T10:32:36+00:00","date_created":"2021-06-10T10:31:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731276322","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137328"}]},{"id":"667455130","answers":[{"choice_id":"4385137340"}]},{"id":"667455161","answers":[{"choice_id":"4385137468"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137495"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137702"}]},{"id":"667455205","answers":[{"choice_id":"4385137742"}]},{"id":"667455210","answers":[{"choice_id":"4385137776"}]},{"id":"667455212","answers":[{"choice_id":"4385137793"}]},{"id":"667455215","answers":[{"choice_id":"4385137812"}]}]}]},"emitted_at":1674149669537} +{"stream":"survey_responses","data":{"id":"12731296299","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=PijLaybIFW4zp3WXn6Qn_2Bes5snwJCUJdhdklhMDUCFNxV8kYJTspV5CKmi9JxcxR","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731296299","total_time":28,"date_modified":"2021-06-10T10:40:25+00:00","date_created":"2021-06-10T10:39:56+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731296299","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137742"}]},{"id":"667455210","answers":[{"choice_id":"4385137778"}]},{"id":"667455212","answers":[{"choice_id":"4385137795"}]},{"id":"667455215","answers":[{"choice_id":"4385137812"}]}]}]},"emitted_at":1674149669537} +{"stream":"survey_responses","data":{"id":"12731316167","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=DdWwrUlBvSWJMjuKWSDCTJGmzJlZPpJ9HEf_2F_2BW1pzPCQ9WlJ7Su0kQcly_2B_2F6O8il","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731316167","total_time":37,"date_modified":"2021-06-10T10:48:31+00:00","date_created":"2021-06-10T10:47:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731316167","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137327"}]},{"id":"667455130","answers":[{"choice_id":"4385137342"}]},{"id":"667455161","answers":[{"choice_id":"4385137469"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137492"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137700"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137776"}]},{"id":"667455212","answers":[{"choice_id":"4385137797"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669537} +{"stream":"survey_responses","data":{"id":"12731335082","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=JT5nsI3dl0SB9aaAvObos67DXY6qy_2FDXI1TTpgeEv1m3sqvcxy3MhVQQlApbsDQN","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731335082","total_time":37,"date_modified":"2021-06-10T10:56:07+00:00","date_created":"2021-06-10T10:55:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731335082","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137325"}]},{"id":"667455130","answers":[{"choice_id":"4385137340"}]},{"id":"667455161","answers":[{"choice_id":"4385137473"}]},{"id":"667455172","answers":[{"choice_id":"4385137487"}]},{"id":"667455179","answers":[{"choice_id":"4385137493"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137742"}]},{"id":"667455210","answers":[{"choice_id":"4385137782"}]},{"id":"667455212","answers":[{"choice_id":"4385137794"}]},{"id":"667455215","answers":[{"choice_id":"4385137810"}]}]}]},"emitted_at":1674149669538} +{"stream":"survey_responses","data":{"id":"12731354013","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829319","survey_id":"307784834","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VD2H3n1aqESl1LrF5U_2B7SlCYCH1VXiN11NQ44aSykUk8VdT8zluzTaiFP1WRilVh","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwf91XTSWLx4XNlQvyUVl4Y_3D?respondent_id=12731354013","total_time":37,"date_modified":"2021-06-10T11:03:44+00:00","date_created":"2021-06-10T11:03:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784834/responses/12731354013","pages":[{"id":"168830049","questions":[]},{"id":"168830050","questions":[{"id":"667455128","answers":[{"choice_id":"4385137325"}]},{"id":"667455130","answers":[{"choice_id":"4385137344"}]},{"id":"667455161","answers":[{"choice_id":"4385137473"}]},{"id":"667455172","answers":[{"choice_id":"4385137488"}]},{"id":"667455179","answers":[{"choice_id":"4385137493"}]}]},{"id":"168830060","questions":[{"id":"667455202","answers":[{"choice_id":"4385137701"}]},{"id":"667455205","answers":[{"choice_id":"4385137740"}]},{"id":"667455210","answers":[{"choice_id":"4385137781"}]},{"id":"667455212","answers":[{"choice_id":"4385137792"}]},{"id":"667455215","answers":[{"choice_id":"4385137811"}]}]}]},"emitted_at":1674149669538} +{"stream":"survey_responses","data":{"id":"12731046667","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3m5bJqYOPzi9hTHWeQaMVChOOH_2FutIpC1GCzcEhDLsPuEi5IsDvCVew50TpjMJ7_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731046667","total_time":36,"date_modified":"2021-06-10T08:50:07+00:00","date_created":"2021-06-10T08:49:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731046667","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177138"}]},{"id":"667462126","answers":[{"choice_id":"4385177155"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177213"}]},{"id":"667462138","answers":[{"choice_id":"4385177216"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177393"}]}]}]},"emitted_at":1674149671253} +{"stream":"survey_responses","data":{"id":"12731061053","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=RliJfymKsHA5ERiuKeRola_2B_2F2kldmGpI58KjGRQTMy_2F7NOeFnJ8VaeyjrQYqefuv","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731061053","total_time":36,"date_modified":"2021-06-10T08:57:50+00:00","date_created":"2021-06-10T08:57:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731061053","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177068"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177139"}]},{"id":"667462126","answers":[{"choice_id":"4385177158"}]},{"id":"667462130","answers":[{"choice_id":"4385177171"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177217"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177395"}]}]}]},"emitted_at":1674149671254} +{"stream":"survey_responses","data":{"id":"12731076167","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Fbm6tEId2O2bNT8H0BJ8ZuinueLnpLoMwgotsY_2BRD_2FzbvCnhEaxZHye5e5bkXF_2B0","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731076167","total_time":36,"date_modified":"2021-06-10T09:05:33+00:00","date_created":"2021-06-10T09:04:57+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731076167","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177097"}]},{"id":"667462122","answers":[{"choice_id":"4385177142"}]},{"id":"667462126","answers":[{"choice_id":"4385177153"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177210"}]},{"id":"667462138","answers":[{"choice_id":"4385177220"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177392"}]}]}]},"emitted_at":1674149671256} +{"stream":"survey_responses","data":{"id":"12731092606","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=FSRkUyOqh9XslZbpVGw5556THT2fSckee67DmK8vg8QM5E_2BIPpatzKJNVF6E4pI2","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731092606","total_time":36,"date_modified":"2021-06-10T09:13:19+00:00","date_created":"2021-06-10T09:12:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731092606","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177066"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177138"}]},{"id":"667462126","answers":[{"choice_id":"4385177153"}]},{"id":"667462130","answers":[{"choice_id":"4385177173"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177213"}]},{"id":"667462138","answers":[{"choice_id":"4385177215"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177399"}]}]}]},"emitted_at":1674149671258} +{"stream":"survey_responses","data":{"id":"12731109051","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=hFBXkisB3CTNYQ4UTLe_2FgTWjKwcR0l_2Fk9xXG2L2eiiv2m1A4IK6anbX8e98lxI_2BJ","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731109051","total_time":36,"date_modified":"2021-06-10T09:20:57+00:00","date_created":"2021-06-10T09:20:21+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731109051","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177068"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177139"}]},{"id":"667462126","answers":[{"choice_id":"4385177156"}]},{"id":"667462130","answers":[{"choice_id":"4385177171"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177220"}]},{"id":"667462170","answers":[{"choice_id":"4385177383"}]},{"id":"667462172","answers":[{"choice_id":"4385177398"}]}]}]},"emitted_at":1674149671259} +{"stream":"survey_responses","data":{"id":"12731125773","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=IitR8qwcQJhjvJZGpnRnQ51uSFMITWI_2Fj71B7P5SgZeC4E3yXEi1_2B_2FMm5wo_2BDV8h","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731125773","total_time":37,"date_modified":"2021-06-10T09:28:41+00:00","date_created":"2021-06-10T09:28:04+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731125773","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177066"}]},{"id":"667462114","answers":[{"choice_id":"4385177099"}]},{"id":"667462122","answers":[{"choice_id":"4385177142"}]},{"id":"667462126","answers":[{"choice_id":"4385177158"}]},{"id":"667462130","answers":[{"choice_id":"4385177171"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177203"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177220"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177392"}]}]}]},"emitted_at":1674149671261} +{"stream":"survey_responses","data":{"id":"12731143496","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=afwrrGApCHDKe6n5FTBrtOaHsGGtP_2BhesVrwRj_2FP25EjYCQxzsAC6aAkUchVScSv","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731143496","total_time":36,"date_modified":"2021-06-10T09:36:22+00:00","date_created":"2021-06-10T09:35:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731143496","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177066"}]},{"id":"667462114","answers":[{"choice_id":"4385177097"}]},{"id":"667462122","answers":[{"choice_id":"4385177138"}]},{"id":"667462126","answers":[{"choice_id":"4385177154"}]},{"id":"667462130","answers":[{"choice_id":"4385177174"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177201"}]},{"id":"667462136","answers":[{"choice_id":"4385177213"}]},{"id":"667462138","answers":[{"choice_id":"4385177216"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177392"}]}]}]},"emitted_at":1674149671263} +{"stream":"survey_responses","data":{"id":"12731160592","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=gi5j6iOFt63bX7t4yH9tggXGZlHkMPjNnRuEfb_2BfIFrcSwpamxUO_2B9Y0WXX9oSHD","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731160592","total_time":35,"date_modified":"2021-06-10T09:44:01+00:00","date_created":"2021-06-10T09:43:25+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731160592","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177065"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177142"}]},{"id":"667462126","answers":[{"choice_id":"4385177156"}]},{"id":"667462130","answers":[{"choice_id":"4385177174"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177203"}]},{"id":"667462136","answers":[{"choice_id":"4385177210"}]},{"id":"667462138","answers":[{"choice_id":"4385177219"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177398"}]}]}]},"emitted_at":1674149671264} +{"stream":"survey_responses","data":{"id":"12731177842","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Mdft9tg4e78_2Fa7lJAhODrqVOjXTcfF0kM1rlL9FH_2B4OFTc8svhyUTN194QTJecZV","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731177842","total_time":38,"date_modified":"2021-06-10T09:51:48+00:00","date_created":"2021-06-10T09:51:09+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731177842","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177068"}]},{"id":"667462114","answers":[{"choice_id":"4385177097"}]},{"id":"667462122","answers":[{"choice_id":"4385177141"}]},{"id":"667462126","answers":[{"choice_id":"4385177155"}]},{"id":"667462130","answers":[{"choice_id":"4385177174"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177220"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177398"}]}]}]},"emitted_at":1674149671266} +{"stream":"survey_responses","data":{"id":"12731196644","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=j0mjP6Z7LrcWGOboY6jmQkq3eLodG5VEJ1xjmK_2FVYi4g_2BLXzw2TXVIZDXlMQfSce","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731196644","total_time":38,"date_modified":"2021-06-10T10:00:23+00:00","date_created":"2021-06-10T09:59:44+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731196644","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177096"}]},{"id":"667462122","answers":[{"choice_id":"4385177141"}]},{"id":"667462126","answers":[{"choice_id":"4385177153"}]},{"id":"667462130","answers":[{"choice_id":"4385177174"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177218"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177393"}]}]}]},"emitted_at":1674149671267} +{"stream":"survey_responses","data":{"id":"12731216845","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=42BF5q8j9sIJ7FZW3oHucGLBgLbhnDLuy54e3nC1dr_2BV65av2cB1XpRMxXE8qLrk","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731216845","total_time":35,"date_modified":"2021-06-10T10:08:14+00:00","date_created":"2021-06-10T10:07:38+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731216845","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177066"}]},{"id":"667462114","answers":[{"choice_id":"4385177099"}]},{"id":"667462122","answers":[{"choice_id":"4385177139"}]},{"id":"667462126","answers":[{"choice_id":"4385177158"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177215"}]},{"id":"667462170","answers":[{"choice_id":"4385177383"}]},{"id":"667462172","answers":[{"choice_id":"4385177392"}]}]}]},"emitted_at":1674149671269} +{"stream":"survey_responses","data":{"id":"12731236327","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=NqwagvKjeHPRtNo1Xjgzhlf20oC0V9pmZhKn9M_2FI7d0WQpLl5SvMJmpPx_2FMR8WOA","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731236327","total_time":36,"date_modified":"2021-06-10T10:16:03+00:00","date_created":"2021-06-10T10:15:27+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731236327","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177066"}]},{"id":"667462114","answers":[{"choice_id":"4385177099"}]},{"id":"667462122","answers":[{"choice_id":"4385177138"}]},{"id":"667462126","answers":[{"choice_id":"4385177153"}]},{"id":"667462130","answers":[{"choice_id":"4385177171"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177212"}]},{"id":"667462138","answers":[{"choice_id":"4385177214"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177394"}]}]}]},"emitted_at":1674149671270} +{"stream":"survey_responses","data":{"id":"12731255115","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=68xsdhMhxZnM6kEBzq6YOW2Pcy65CdGFnjt47M9pu1JOngmURrmW_2BioZOUdc5iwt","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731255115","total_time":35,"date_modified":"2021-06-10T10:23:53+00:00","date_created":"2021-06-10T10:23:17+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731255115","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177095"}]},{"id":"667462122","answers":[{"choice_id":"4385177141"}]},{"id":"667462126","answers":[{"choice_id":"4385177158"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177202"}]},{"id":"667462136","answers":[{"choice_id":"4385177211"}]},{"id":"667462138","answers":[{"choice_id":"4385177218"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177395"}]}]}]},"emitted_at":1674149671272} +{"stream":"survey_responses","data":{"id":"12731273731","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=5V96fOaPSetDK7aFZp_2BQMlsfP5WVMuaklhLOVJzxjkLao_2BG1CUfWUAOvXCoIqzu7","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731273731","total_time":35,"date_modified":"2021-06-10T10:31:32+00:00","date_created":"2021-06-10T10:30:56+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731273731","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177065"}]},{"id":"667462114","answers":[{"choice_id":"4385177096"}]},{"id":"667462122","answers":[{"choice_id":"4385177140"}]},{"id":"667462126","answers":[{"choice_id":"4385177155"}]},{"id":"667462130","answers":[{"choice_id":"4385177171"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177203"}]},{"id":"667462136","answers":[{"choice_id":"4385177210"}]},{"id":"667462138","answers":[{"choice_id":"4385177215"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177398"}]}]}]},"emitted_at":1674149671273} +{"stream":"survey_responses","data":{"id":"12731294056","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=yqW6gwVkcj7CYuN1hQxBNE2_2BGnnSO_2FMoG_2FJOr_2Bl9LOFwGfvlISTxAL6DegDXn5gw","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731294056","total_time":36,"date_modified":"2021-06-10T10:39:38+00:00","date_created":"2021-06-10T10:39:02+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731294056","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177096"}]},{"id":"667462122","answers":[{"choice_id":"4385177142"}]},{"id":"667462126","answers":[{"choice_id":"4385177154"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177213"}]},{"id":"667462138","answers":[{"choice_id":"4385177214"}]},{"id":"667462170","answers":[{"choice_id":"4385177383"}]},{"id":"667462172","answers":[{"choice_id":"4385177393"}]}]}]},"emitted_at":1674149671275} +{"stream":"survey_responses","data":{"id":"12731313837","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=D85HuJHtbiPW1vl_2FIvU2ocvUVCdJggW_2F0WR5WpMSLCGZaGIg8UdLj54drv_2FcmRMz","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731313837","total_time":37,"date_modified":"2021-06-10T10:47:34+00:00","date_created":"2021-06-10T10:46:57+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731313837","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177067"}]},{"id":"667462114","answers":[{"choice_id":"4385177097"}]},{"id":"667462122","answers":[{"choice_id":"4385177139"}]},{"id":"667462126","answers":[{"choice_id":"4385177156"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177200"}]},{"id":"667462136","answers":[{"choice_id":"4385177212"}]},{"id":"667462138","answers":[{"choice_id":"4385177220"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177395"}]}]}]},"emitted_at":1674149671276} +{"stream":"survey_responses","data":{"id":"12731332767","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=hztkSX5ztC9RUhcoXXjOEZsT0_2BjH5f6tNA9Fh0afPXTD4285Qb8YReTOBLbelKig","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731332767","total_time":35,"date_modified":"2021-06-10T10:55:09+00:00","date_created":"2021-06-10T10:54:33+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731332767","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177068"}]},{"id":"667462114","answers":[{"choice_id":"4385177096"}]},{"id":"667462122","answers":[{"choice_id":"4385177139"}]},{"id":"667462126","answers":[{"choice_id":"4385177158"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177204"}]},{"id":"667462136","answers":[{"choice_id":"4385177210"}]},{"id":"667462138","answers":[{"choice_id":"4385177217"}]},{"id":"667462170","answers":[{"choice_id":"4385177382"}]},{"id":"667462172","answers":[{"choice_id":"4385177398"}]}]}]},"emitted_at":1674149671277} +{"stream":"survey_responses","data":{"id":"12731351604","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829931","survey_id":"307785448","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=4s6X1KZyt2TAwDeH6zLlLbhI1hJkumblOrBysCkO3gPTDp7tdY9BOD_2FvWkRVgEAz","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxi9bVow7JzoPHlGgDld6S4o_3D?respondent_id=12731351604","total_time":36,"date_modified":"2021-06-10T11:02:48+00:00","date_created":"2021-06-10T11:02:12+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785448/responses/12731351604","pages":[{"id":"168831470","questions":[]},{"id":"168831471","questions":[{"id":"667462113","answers":[{"choice_id":"4385177068"}]},{"id":"667462114","answers":[{"choice_id":"4385177098"}]},{"id":"667462122","answers":[{"choice_id":"4385177138"}]},{"id":"667462126","answers":[{"choice_id":"4385177154"}]},{"id":"667462130","answers":[{"choice_id":"4385177172"}]}]},{"id":"168831478","questions":[{"id":"667462135","answers":[{"choice_id":"4385177200"}]},{"id":"667462136","answers":[{"choice_id":"4385177213"}]},{"id":"667462138","answers":[{"choice_id":"4385177218"}]},{"id":"667462170","answers":[{"choice_id":"4385177381"}]},{"id":"667462172","answers":[{"choice_id":"4385177397"}]}]}]},"emitted_at":1674149671278} +{"stream":"survey_responses","data":{"id":"12731027651","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=fTFc6V6Lifr7HoJ_2Bl_2Bc74bpg_2B9JRwagJN_2FN3k2RwdJ8CrOldvM08uLZMXEGk5uR_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731027651","total_time":29,"date_modified":"2021-06-10T08:39:30+00:00","date_created":"2021-06-10T08:39:01+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731027651","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138588"}]},{"id":"667455351","answers":[{"choice_id":"4385138599"}]},{"id":"667455358","answers":[{"choice_id":"4385138621"}]},{"id":"667455370","answers":[{"choice_id":"4385138707"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139062"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139232"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672891} +{"stream":"survey_responses","data":{"id":"12731035521","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=P3yPukgvQbdQ0TVJQrLvSnRv3NllOsosNLSuGp34tGmMRN3SsXsVqXxRkHoUAZzR","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731035521","total_time":27,"date_modified":"2021-06-10T08:43:50+00:00","date_created":"2021-06-10T08:43:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731035521","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138593"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138623"}]},{"id":"667455370","answers":[{"choice_id":"4385138700"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139018"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139231"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672893} +{"stream":"survey_responses","data":{"id":"12731049611","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=1ZxbynfKwvppvatsw2rpbv64I6YRz_2BRUyTcv8dLIbh63fwCm_2Fl9TFtbLXUoePm1q","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731049611","total_time":27,"date_modified":"2021-06-10T08:51:37+00:00","date_created":"2021-06-10T08:51:09+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731049611","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138588"}]},{"id":"667455351","answers":[{"choice_id":"4385138598"}]},{"id":"667455358","answers":[{"choice_id":"4385138623"}]},{"id":"667455370","answers":[{"choice_id":"4385138701"}]},{"id":"667455395","answers":[{"choice_id":"4385138782"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139017"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139232"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672895} +{"stream":"survey_responses","data":{"id":"12731064110","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Vxei42yDMEVFSnyt9M3fpCOreC5nzmSKyEY9iwPt1QtQFzPyFiaGMuw2XQKlF4Tu","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731064110","total_time":27,"date_modified":"2021-06-10T08:59:20+00:00","date_created":"2021-06-10T08:58:52+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731064110","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138591"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138620"}]},{"id":"667455370","answers":[{"choice_id":"4385138706"}]},{"id":"667455395","answers":[{"choice_id":"4385138782"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139013"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139112"}]},{"id":"667455463","answers":[{"choice_id":"4385139231"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672897} +{"stream":"survey_responses","data":{"id":"12731079723","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=pucu83BOi19Z2n_2Bq7Cmuq6GrV4auydnhRuXlDsCZ5DwqqAhRkuX0GL8i_2FXCRgVnb","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731079723","total_time":27,"date_modified":"2021-06-10T09:07:03+00:00","date_created":"2021-06-10T09:06:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731079723","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138589"}]},{"id":"667455351","answers":[{"choice_id":"4385138599"}]},{"id":"667455358","answers":[{"choice_id":"4385138622"}]},{"id":"667455370","answers":[{"choice_id":"4385138707"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139111"}]},{"id":"667455463","answers":[{"choice_id":"4385139235"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672898} +{"stream":"survey_responses","data":{"id":"12731096120","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=cmwD6t6spTjvPh8zt8wpzOowMPktBxJBhl8ROXhWK7NsNRfaf9VJ51wtPZfMsbPJ","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731096120","total_time":27,"date_modified":"2021-06-10T09:14:48+00:00","date_created":"2021-06-10T09:14:21+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731096120","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138593"}]},{"id":"667455351","answers":[{"choice_id":"4385138597"}]},{"id":"667455358","answers":[{"choice_id":"4385138623"}]},{"id":"667455370","answers":[{"choice_id":"4385138706"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139235"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672900} +{"stream":"survey_responses","data":{"id":"12731112612","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=tYfRsLpnvLXiDU1aSXTH5nIXnauCRjmyXNWWEYT8RsVkytyEn7W9JT8TX_2FQ_2FZXmm","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731112612","total_time":27,"date_modified":"2021-06-10T09:22:26+00:00","date_created":"2021-06-10T09:21:59+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731112612","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138593"}]},{"id":"667455351","answers":[{"choice_id":"4385138595"}]},{"id":"667455358","answers":[{"choice_id":"4385138625"}]},{"id":"667455370","answers":[{"choice_id":"4385138700"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139014"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139110"}]},{"id":"667455463","answers":[{"choice_id":"4385139230"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672901} +{"stream":"survey_responses","data":{"id":"12731129209","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Smvc_2Fhq34btK33i0b1sGxYeWInTkfyhJ_2BYMIBz_2B0I9Z2ZIyvlPNu3h_2B65f84DuA0","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731129209","total_time":27,"date_modified":"2021-06-10T09:30:08+00:00","date_created":"2021-06-10T09:29:41+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731129209","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138588"}]},{"id":"667455351","answers":[{"choice_id":"4385138597"}]},{"id":"667455358","answers":[{"choice_id":"4385138622"}]},{"id":"667455370","answers":[{"choice_id":"4385138704"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139015"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139111"}]},{"id":"667455463","answers":[{"choice_id":"4385139234"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672903} +{"stream":"survey_responses","data":{"id":"12731147035","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=U9JFMHqI683O1sqxW8mLF_2FgU_2F7fYGjSSm6LScE6pu2LDPRKAAVQXvZThLKDp2GXJ","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731147035","total_time":27,"date_modified":"2021-06-10T09:37:50+00:00","date_created":"2021-06-10T09:37:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731147035","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138589"}]},{"id":"667455351","answers":[{"choice_id":"4385138595"}]},{"id":"667455358","answers":[{"choice_id":"4385138625"}]},{"id":"667455370","answers":[{"choice_id":"4385138703"}]},{"id":"667455395","answers":[{"choice_id":"4385138781"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139017"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139110"}]},{"id":"667455463","answers":[{"choice_id":"4385139236"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672904} +{"stream":"survey_responses","data":{"id":"12731164403","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=0jJiVT47Abo_2BkHRNm2_2FqakaCDR5LNaVs9r5z_2BNCgUb1UPEiUm95gFyEF3xtdkYv3","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731164403","total_time":27,"date_modified":"2021-06-10T09:45:34+00:00","date_created":"2021-06-10T09:45:06+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731164403","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138593"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138626"}]},{"id":"667455370","answers":[{"choice_id":"4385138701"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139018"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139235"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672906} +{"stream":"survey_responses","data":{"id":"12731181688","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=UQZSADafI1w57hYP_2FS2NflQKw4HeCD0bqS8NFrI480xqhT_2BmBKvsbhwZESEP6bWH","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731181688","total_time":33,"date_modified":"2021-06-10T09:53:29+00:00","date_created":"2021-06-10T09:52:55+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731181688","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138592"}]},{"id":"667455351","answers":[{"choice_id":"4385138598"}]},{"id":"667455358","answers":[{"choice_id":"4385138622"}]},{"id":"667455370","answers":[{"choice_id":"4385138707"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139013"}]},{"id":"667455439","answers":[{"choice_id":"4385139062"}]},{"id":"667455443","answers":[{"choice_id":"4385139112"}]},{"id":"667455463","answers":[{"choice_id":"4385139230"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672907} +{"stream":"survey_responses","data":{"id":"12731200697","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Z_2FtAEFehOtxFbKh3vENz8bUgBufRs3dp1FPH_2BaixcDbpWdxRX3s0ydAEfVu_2F_2FV9k","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731200697","total_time":27,"date_modified":"2021-06-10T10:01:55+00:00","date_created":"2021-06-10T10:01:27+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731200697","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138589"}]},{"id":"667455351","answers":[{"choice_id":"4385138598"}]},{"id":"667455358","answers":[{"choice_id":"4385138622"}]},{"id":"667455370","answers":[{"choice_id":"4385138706"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139013"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139112"}]},{"id":"667455463","answers":[{"choice_id":"4385139233"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672909} +{"stream":"survey_responses","data":{"id":"12731221002","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=YYEQ9YPblwXypUXP9UsD2QOQI_2B52u8EQSph1_2FmToJDM9mtFZbqeiOLVv8CbSN_2BdL","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731221002","total_time":27,"date_modified":"2021-06-10T10:09:45+00:00","date_created":"2021-06-10T10:09:18+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731221002","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138592"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138620"}]},{"id":"667455370","answers":[{"choice_id":"4385138702"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139017"}]},{"id":"667455439","answers":[{"choice_id":"4385139062"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139233"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672910} +{"stream":"survey_responses","data":{"id":"12731240798","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=4ZdZmIl45awCiUkNXcRb9vC0pYIZMfHtCv3apho2x9McRs1lDMv5yNnqz4z3VnSP","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731240798","total_time":27,"date_modified":"2021-06-10T10:17:43+00:00","date_created":"2021-06-10T10:17:16+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731240798","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138590"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138620"}]},{"id":"667455370","answers":[{"choice_id":"4385138703"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139018"}]},{"id":"667455439","answers":[{"choice_id":"4385139062"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139230"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672912} +{"stream":"survey_responses","data":{"id":"12731258961","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=emSG54_2BrHmGYvPyc21uSnPZeh8nU2iPahv_2B21isNydKP_2Bl4t3C_2B821nvNucSSxD_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731258961","total_time":27,"date_modified":"2021-06-10T10:25:19+00:00","date_created":"2021-06-10T10:24:52+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731258961","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138588"}]},{"id":"667455351","answers":[{"choice_id":"4385138596"}]},{"id":"667455358","answers":[{"choice_id":"4385138624"}]},{"id":"667455370","answers":[{"choice_id":"4385138701"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139062"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139235"}]},{"id":"667455466","answers":[{"choice_id":"4385139245"}]}]}]},"emitted_at":1674149672913} +{"stream":"survey_responses","data":{"id":"12731278204","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=IqIG55XKRRDg9SlyFaGnS3M3bEcCu3Kc0adBsNxgJoXgsm_2FSsAZO5dQiHmAg137N","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731278204","total_time":29,"date_modified":"2021-06-10T10:33:09+00:00","date_created":"2021-06-10T10:32:40+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731278204","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138589"}]},{"id":"667455351","answers":[{"choice_id":"4385138596"}]},{"id":"667455358","answers":[{"choice_id":"4385138621"}]},{"id":"667455370","answers":[{"choice_id":"4385138705"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139113"}]},{"id":"667455463","answers":[{"choice_id":"4385139232"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672914} +{"stream":"survey_responses","data":{"id":"12731297693","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=4YsTEO_2Ft1AqmjnchtBZcCuBm0IyfVnOc8GnFYBmeTI3DsacLLtX6HINSLOXrSTvD","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731297693","total_time":27,"date_modified":"2021-06-10T10:40:58+00:00","date_created":"2021-06-10T10:40:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731297693","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138588"}]},{"id":"667455351","answers":[{"choice_id":"4385138598"}]},{"id":"667455358","answers":[{"choice_id":"4385138626"}]},{"id":"667455370","answers":[{"choice_id":"4385138704"}]},{"id":"667455395","answers":[{"choice_id":"4385138780"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139015"}]},{"id":"667455439","answers":[{"choice_id":"4385139063"}]},{"id":"667455443","answers":[{"choice_id":"4385139111"}]},{"id":"667455463","answers":[{"choice_id":"4385139230"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672916} +{"stream":"survey_responses","data":{"id":"12731317951","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=0MbtsVOF4vEh5Xcf2H_2B4YhWcgeBtjnt_2BlJxPWFG88HIYuNIOdDcQkUMEv2VCZHUT","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731317951","total_time":27,"date_modified":"2021-06-10T10:49:06+00:00","date_created":"2021-06-10T10:48:39+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731317951","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138589"}]},{"id":"667455351","answers":[{"choice_id":"4385138596"}]},{"id":"667455358","answers":[{"choice_id":"4385138624"}]},{"id":"667455370","answers":[{"choice_id":"4385138702"}]},{"id":"667455395","answers":[{"choice_id":"4385138779"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139018"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139109"}]},{"id":"667455463","answers":[{"choice_id":"4385139236"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672917} +{"stream":"survey_responses","data":{"id":"12731336744","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=jRZyZbcPITg018MLWZvCHAcG0IsxU_2BF2d4PQO0uZu8xhWEPv58hIqjKkEBTk1g1x","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731336744","total_time":27,"date_modified":"2021-06-10T10:56:40+00:00","date_created":"2021-06-10T10:56:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731336744","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138591"}]},{"id":"667455351","answers":[{"choice_id":"4385138596"}]},{"id":"667455358","answers":[{"choice_id":"4385138623"}]},{"id":"667455370","answers":[{"choice_id":"4385138702"}]},{"id":"667455395","answers":[{"choice_id":"4385138781"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139016"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139113"}]},{"id":"667455463","answers":[{"choice_id":"4385139234"}]},{"id":"667455466","answers":[{"choice_id":"4385139246"}]}]}]},"emitted_at":1674149672918} +{"stream":"survey_responses","data":{"id":"12731356183","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843442","survey_id":"307784863","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=j2Vv3hWWCKKX8TGm3kD6g4UQCdPiw0tyfJlXlm3Yr4aHlHW_2FZ_2FCSgfXWR8mLWGn0","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XGwAs0GsZ1qsocisThgUFPk0_3D?respondent_id=12731356183","total_time":28,"date_modified":"2021-06-10T11:04:28+00:00","date_created":"2021-06-10T11:04:00+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784863/responses/12731356183","pages":[{"id":"168830093","questions":[]},{"id":"168830094","questions":[{"id":"667455348","answers":[{"choice_id":"4385138593"}]},{"id":"667455351","answers":[{"choice_id":"4385138600"}]},{"id":"667455358","answers":[{"choice_id":"4385138621"}]},{"id":"667455370","answers":[{"choice_id":"4385138702"}]},{"id":"667455395","answers":[{"choice_id":"4385138782"}]}]},{"id":"168830108","questions":[{"id":"667455427","answers":[{"choice_id":"4385139018"}]},{"id":"667455439","answers":[{"choice_id":"4385139064"}]},{"id":"667455443","answers":[{"choice_id":"4385139110"}]},{"id":"667455463","answers":[{"choice_id":"4385139233"}]},{"id":"667455466","answers":[{"choice_id":"4385139244"}]}]}]},"emitted_at":1674149672919} +{"stream":"survey_responses","data":{"id":"12731028687","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=dUjh6A_2FaiaLmSiByVq0EnrrvhqLUItqI0TokJUP8jl9SbUi5cd6hNui1hNqGv56Z","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731028687","total_time":33,"date_modified":"2021-06-10T08:40:08+00:00","date_created":"2021-06-10T08:39:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731028687","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137907"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137947"}]},{"id":"667455263","answers":[{"choice_id":"4385138061"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138109"}]},{"id":"667455272","answers":[{"choice_id":"4385138133"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138210"}]},{"id":"667455293","answers":[{"choice_id":"4385138240"}]}]}]},"emitted_at":1674149674733} +{"stream":"survey_responses","data":{"id":"12731036487","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=5ir6yV1yx1xcxnDqd5CbKT7hxkDCbqeG_2BHctWsXeZb015fsixx9pWXx0NgTuAnPh","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731036487","total_time":31,"date_modified":"2021-06-10T08:44:28+00:00","date_created":"2021-06-10T08:43:56+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731036487","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137911"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137935"}]},{"id":"667455245","answers":[{"choice_id":"4385137946"}]},{"id":"667455263","answers":[{"choice_id":"4385138064"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138110"}]},{"id":"667455272","answers":[{"choice_id":"4385138126"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138210"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674733} +{"stream":"survey_responses","data":{"id":"12731050647","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=5b_2BmMZNzhREunXwy6FMGNiacjaGpQeXb3F9yW3dcaVweZLGQY8t0kgV3XBTUneNG","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731050647","total_time":31,"date_modified":"2021-06-10T08:52:13+00:00","date_created":"2021-06-10T08:51:41+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731050647","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137907"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137933"}]},{"id":"667455245","answers":[{"choice_id":"4385137949"}]},{"id":"667455263","answers":[{"choice_id":"4385138063"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138108"}]},{"id":"667455272","answers":[{"choice_id":"4385138126"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138216"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674734} +{"stream":"survey_responses","data":{"id":"12731065101","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ivYcxChrgUjC39ad0me9CZw6BmVAkTQjhWy6e7bR1QV_2BZ7rOJIplHeJnM7IdV0ev","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731065101","total_time":31,"date_modified":"2021-06-10T08:59:55+00:00","date_created":"2021-06-10T08:59:24+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731065101","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137908"}]},{"id":"667455240","answers":[{"choice_id":"4385137925"}]},{"id":"667455243","answers":[{"choice_id":"4385137933"}]},{"id":"667455245","answers":[{"choice_id":"4385137949"}]},{"id":"667455263","answers":[{"choice_id":"4385138061"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138113"}]},{"id":"667455272","answers":[{"choice_id":"4385138131"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138216"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674734} +{"stream":"survey_responses","data":{"id":"12731080861","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3uxM3bC1ju6y0ZbYbgP_2BvgFNEF0MBf07Z1sR5msqxiFnqdE8BnFPnrip62Dyzq_2FJ","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731080861","total_time":31,"date_modified":"2021-06-10T09:07:39+00:00","date_created":"2021-06-10T09:07:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731080861","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137906"}]},{"id":"667455240","answers":[{"choice_id":"4385137924"}]},{"id":"667455243","answers":[{"choice_id":"4385137931"}]},{"id":"667455245","answers":[{"choice_id":"4385137944"}]},{"id":"667455263","answers":[{"choice_id":"4385138061"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138111"}]},{"id":"667455272","answers":[{"choice_id":"4385138129"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138209"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674734} +{"stream":"survey_responses","data":{"id":"12731097254","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=zCaGCrPMhDj216XESYkQCRoFWd5JT94Z_2F_2Bns224Ht4yvHiBMzA0R869PAJ_2FrE_2F_2BS","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731097254","total_time":31,"date_modified":"2021-06-10T09:15:24+00:00","date_created":"2021-06-10T09:14:52+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731097254","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137904"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137936"}]},{"id":"667455245","answers":[{"choice_id":"4385137950"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138110"}]},{"id":"667455272","answers":[{"choice_id":"4385138131"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138216"}]},{"id":"667455293","answers":[{"choice_id":"4385138239"}]}]}]},"emitted_at":1674149674735} +{"stream":"survey_responses","data":{"id":"12731113718","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=VoxvgtLVPESmmstl7tMZG_2BuMDM0Aa9E5fCEa86a_2BuXZa6pilvyY520S9G1tWgrRY","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731113718","total_time":31,"date_modified":"2021-06-10T09:23:02+00:00","date_created":"2021-06-10T09:22:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731113718","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137907"}]},{"id":"667455240","answers":[{"choice_id":"4385137925"}]},{"id":"667455243","answers":[{"choice_id":"4385137935"}]},{"id":"667455245","answers":[{"choice_id":"4385137949"}]},{"id":"667455263","answers":[{"choice_id":"4385138063"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138110"}]},{"id":"667455272","answers":[{"choice_id":"4385138130"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138210"}]},{"id":"667455293","answers":[{"choice_id":"4385138241"}]}]}]},"emitted_at":1674149674735} +{"stream":"survey_responses","data":{"id":"12731130369","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=z7UD89cfARngMPT8rraMXX6AgkCQ7ffFPZ0s_2BXsx7CQathuufUT_2FM9g_2B2Y8fjZzA","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731130369","total_time":31,"date_modified":"2021-06-10T09:30:44+00:00","date_created":"2021-06-10T09:30:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731130369","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137905"}]},{"id":"667455240","answers":[{"choice_id":"4385137927"}]},{"id":"667455243","answers":[{"choice_id":"4385137934"}]},{"id":"667455245","answers":[{"choice_id":"4385137947"}]},{"id":"667455263","answers":[{"choice_id":"4385138064"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138111"}]},{"id":"667455272","answers":[{"choice_id":"4385138130"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138213"}]},{"id":"667455293","answers":[{"choice_id":"4385138239"}]}]}]},"emitted_at":1674149674735} +{"stream":"survey_responses","data":{"id":"12731148248","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ju0hkPiuicpj80ml6Hl_2F22nPizQlWQLGiYwxc_2FDGxTXzgomNhfw66UPrCE0D636O","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731148248","total_time":33,"date_modified":"2021-06-10T09:38:28+00:00","date_created":"2021-06-10T09:37:55+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731148248","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137907"}]},{"id":"667455240","answers":[{"choice_id":"4385137927"}]},{"id":"667455243","answers":[{"choice_id":"4385137936"}]},{"id":"667455245","answers":[{"choice_id":"4385137949"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138112"}]},{"id":"667455272","answers":[{"choice_id":"4385138130"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138214"}]},{"id":"667455293","answers":[{"choice_id":"4385138242"}]}]}]},"emitted_at":1674149674735} +{"stream":"survey_responses","data":{"id":"12731165533","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=CJNhekEYhzbzSqz1R0VHxVjTmJ866MvLYw4aVPGTNOnsy33BOg1S1_2F_2Faesq41w0h","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731165533","total_time":32,"date_modified":"2021-06-10T09:46:10+00:00","date_created":"2021-06-10T09:45:38+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731165533","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137909"}]},{"id":"667455240","answers":[{"choice_id":"4385137927"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137945"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138110"}]},{"id":"667455272","answers":[{"choice_id":"4385138128"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138213"}]},{"id":"667455293","answers":[{"choice_id":"4385138240"}]}]}]},"emitted_at":1674149674736} +{"stream":"survey_responses","data":{"id":"12731183192","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=bEWAYVF9toetHEI2_2BOwwwWoYM7U4BuBikNpbjp7LRt5pr8geoSPYOEqTu3ySeLJ0","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731183192","total_time":35,"date_modified":"2021-06-10T09:54:12+00:00","date_created":"2021-06-10T09:53:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731183192","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137911"}]},{"id":"667455240","answers":[{"choice_id":"4385137924"}]},{"id":"667455243","answers":[{"choice_id":"4385137935"}]},{"id":"667455245","answers":[{"choice_id":"4385137949"}]},{"id":"667455263","answers":[{"choice_id":"4385138063"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138111"}]},{"id":"667455272","answers":[{"choice_id":"4385138127"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138216"}]},{"id":"667455293","answers":[{"choice_id":"4385138241"}]}]}]},"emitted_at":1674149674736} +{"stream":"survey_responses","data":{"id":"12731202203","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=cVfxg1YUnkHWG5xh95O_2FZH6JrXJKyH7dK1jz4klmqpr6kkJW4Nyg6pAF9RU6K8Yo","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731202203","total_time":33,"date_modified":"2021-06-10T10:02:33+00:00","date_created":"2021-06-10T10:02:00+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731202203","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137908"}]},{"id":"667455240","answers":[{"choice_id":"4385137925"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137947"}]},{"id":"667455263","answers":[{"choice_id":"4385138064"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138109"}]},{"id":"667455272","answers":[{"choice_id":"4385138133"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138214"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674736} +{"stream":"survey_responses","data":{"id":"12731222304","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=YIMZ6ZxwVSC8E_2FINoIUPvqiJVxX2_2B7h72mIiWrB82xJdDZqY_2BGZdCN_2FCfsiwQr_2Bv","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731222304","total_time":31,"date_modified":"2021-06-10T10:10:21+00:00","date_created":"2021-06-10T10:09:50+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731222304","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137909"}]},{"id":"667455240","answers":[{"choice_id":"4385137925"}]},{"id":"667455243","answers":[{"choice_id":"4385137937"}]},{"id":"667455245","answers":[{"choice_id":"4385137948"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138108"}]},{"id":"667455272","answers":[{"choice_id":"4385138131"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138209"}]},{"id":"667455293","answers":[{"choice_id":"4385138243"}]}]}]},"emitted_at":1674149674737} +{"stream":"survey_responses","data":{"id":"12731242020","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Qg5RZVMhJ6CDLIoNt_2Fdza6f_2FQJjxJXII1xxBSj3_2Fq6BnYaKChCZI73piSP5nhUtB","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731242020","total_time":31,"date_modified":"2021-06-10T10:18:19+00:00","date_created":"2021-06-10T10:17:48+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731242020","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137904"}]},{"id":"667455240","answers":[{"choice_id":"4385137924"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137948"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138109"}]},{"id":"667455272","answers":[{"choice_id":"4385138127"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138211"}]},{"id":"667455293","answers":[{"choice_id":"4385138239"}]}]}]},"emitted_at":1674149674737} +{"stream":"survey_responses","data":{"id":"12731260237","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=mm7m2qJMFmTa3oybMk65fiRc3YyuaqIC4txcJF43fNUph71wneRBif0eIJvUBTcs","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731260237","total_time":31,"date_modified":"2021-06-10T10:25:55+00:00","date_created":"2021-06-10T10:25:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731260237","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137906"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137948"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138112"}]},{"id":"667455272","answers":[{"choice_id":"4385138126"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138211"}]},{"id":"667455293","answers":[{"choice_id":"4385138241"}]}]}]},"emitted_at":1674149674737} +{"stream":"survey_responses","data":{"id":"12731279578","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=FEjSAqhsmwQRvI0nIbXznSQrW_2Fs9Zok9WSmUIEpPh_2Ftrvxkif6aWXIcsv7S3npp4","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731279578","total_time":34,"date_modified":"2021-06-10T10:33:48+00:00","date_created":"2021-06-10T10:33:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731279578","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137911"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137934"}]},{"id":"667455245","answers":[{"choice_id":"4385137951"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138113"}]},{"id":"667455272","answers":[{"choice_id":"4385138130"}]},{"id":"667455276","answers":[{"choice_id":"4385138156"}]},{"id":"667455290","answers":[{"choice_id":"4385138212"}]},{"id":"667455293","answers":[{"choice_id":"4385138241"}]}]}]},"emitted_at":1674149674738} +{"stream":"survey_responses","data":{"id":"12731299025","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3IJV7_2FsHEFUvR3AFurcV71Uh5BITVe91sCc8NyxnqEaGN7SJCiiuPB87bmvoaGw1","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731299025","total_time":34,"date_modified":"2021-06-10T10:41:36+00:00","date_created":"2021-06-10T10:41:02+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731299025","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137905"}]},{"id":"667455240","answers":[{"choice_id":"4385137927"}]},{"id":"667455243","answers":[{"choice_id":"4385137936"}]},{"id":"667455245","answers":[{"choice_id":"4385137950"}]},{"id":"667455263","answers":[{"choice_id":"4385138062"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138109"}]},{"id":"667455272","answers":[{"choice_id":"4385138130"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138215"}]},{"id":"667455293","answers":[{"choice_id":"4385138239"}]}]}]},"emitted_at":1674149674738} +{"stream":"survey_responses","data":{"id":"12731319249","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=GlfLviGx8LUycI0kX0T8cF_2FFpkVAIQj5obyoRevuZv4czryRkMD2PZvND9Sb17Up","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731319249","total_time":33,"date_modified":"2021-06-10T10:49:44+00:00","date_created":"2021-06-10T10:49:11+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731319249","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137909"}]},{"id":"667455240","answers":[{"choice_id":"4385137924"}]},{"id":"667455243","answers":[{"choice_id":"4385137931"}]},{"id":"667455245","answers":[{"choice_id":"4385137944"}]},{"id":"667455263","answers":[{"choice_id":"4385138064"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138109"}]},{"id":"667455272","answers":[{"choice_id":"4385138133"}]},{"id":"667455276","answers":[{"choice_id":"4385138157"}]},{"id":"667455290","answers":[{"choice_id":"4385138210"}]},{"id":"667455293","answers":[{"choice_id":"4385138239"}]}]}]},"emitted_at":1674149674738} +{"stream":"survey_responses","data":{"id":"12731338028","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=H_2BVgWdKB0xr0jY94jPfEAo0VmKxhUUF4pufmYQx4fDmquorp1yOG5FlQBPgiHLrx","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731338028","total_time":31,"date_modified":"2021-06-10T10:57:15+00:00","date_created":"2021-06-10T10:56:44+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731338028","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137911"}]},{"id":"667455240","answers":[{"choice_id":"4385137927"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137950"}]},{"id":"667455263","answers":[{"choice_id":"4385138060"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138111"}]},{"id":"667455272","answers":[{"choice_id":"4385138131"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138215"}]},{"id":"667455293","answers":[{"choice_id":"4385138241"}]}]}]},"emitted_at":1674149674739} +{"stream":"survey_responses","data":{"id":"12731357558","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405829776","survey_id":"307784846","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=tfLWR7lVR8G3JC7jFc4srAqfLvwuFEvSW_2Ffbm1CZxKHZ6J8nad7_2FnXzcLHhgXchk","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG0D0cevwMQIvVNwWzg_2Bmm4o_3D?respondent_id=12731357558","total_time":31,"date_modified":"2021-06-10T11:05:04+00:00","date_created":"2021-06-10T11:04:32+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784846/responses/12731357558","pages":[{"id":"168830067","questions":[]},{"id":"168830068","questions":[{"id":"667455236","answers":[{"choice_id":"4385137904"}]},{"id":"667455240","answers":[{"choice_id":"4385137926"}]},{"id":"667455243","answers":[{"choice_id":"4385137932"}]},{"id":"667455245","answers":[{"choice_id":"4385137950"}]},{"id":"667455263","answers":[{"choice_id":"4385138060"}]}]},{"id":"168830074","questions":[{"id":"667455268","answers":[{"choice_id":"4385138108"}]},{"id":"667455272","answers":[{"choice_id":"4385138126"}]},{"id":"667455276","answers":[{"choice_id":"4385138155"}]},{"id":"667455290","answers":[{"choice_id":"4385138214"}]},{"id":"667455293","answers":[{"choice_id":"4385138240"}]}]}]},"emitted_at":1674149674739} +{"stream":"survey_responses","data":{"id":"12731029969","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=APV_2FZ7VTm09gZj5b0f0NUIlksURZJjTLWSe4fg4_2FRKA8y93l4UjzYAPkgAla3AIo","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731029969","total_time":32,"date_modified":"2021-06-10T08:40:52+00:00","date_created":"2021-06-10T08:40:19+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731029969","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138286"}]},{"id":"667455301","answers":[{"choice_id":"4385138291"}]},{"id":"667455314","answers":[{"choice_id":"4385138316"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138427"}]},{"id":"667455328","answers":[{"choice_id":"4385138437"}]},{"id":"667455329","answers":[{"choice_id":"4385138442"}]},{"id":"667455332","answers":[{"choice_id":"4385138468"}]}]}]},"emitted_at":1674149675861} +{"stream":"survey_responses","data":{"id":"12731037636","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=iToNu2Xqp1PZ2VPT32fencmUbPumpf00lYTMhCdGbbG2LXZSZ277leTsfXYDwFtv","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731037636","total_time":32,"date_modified":"2021-06-10T08:45:07+00:00","date_created":"2021-06-10T08:44:34+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731037636","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138286"}]},{"id":"667455301","answers":[{"choice_id":"4385138288"}]},{"id":"667455314","answers":[{"choice_id":"4385138315"}]},{"id":"667455318","answers":[{"choice_id":"4385138389"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138413"}]},{"id":"667455325","answers":[{"choice_id":"4385138424"}]},{"id":"667455328","answers":[{"choice_id":"4385138432"}]},{"id":"667455329","answers":[{"choice_id":"4385138446"}]},{"id":"667455332","answers":[{"choice_id":"4385138501"}]}]}]},"emitted_at":1674149675863} +{"stream":"survey_responses","data":{"id":"12731051876","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=QRhskGxFdS_2BJr5Lu32xTKbFyIMZUHZjCRh3x_2Bw039aa_2BRtw9tyy6pHa1Lf_2FC57ic","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731051876","total_time":32,"date_modified":"2021-06-10T08:52:52+00:00","date_created":"2021-06-10T08:52:19+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731051876","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138287"}]},{"id":"667455301","answers":[{"choice_id":"4385138294"}]},{"id":"667455314","answers":[{"choice_id":"4385138318"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138416"}]},{"id":"667455325","answers":[{"choice_id":"4385138422"}]},{"id":"667455328","answers":[{"choice_id":"4385138439"}]},{"id":"667455329","answers":[{"choice_id":"4385138446"}]},{"id":"667455332","answers":[{"choice_id":"4385138500"}]}]}]},"emitted_at":1674149675865} +{"stream":"survey_responses","data":{"id":"12731066155","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=McbGtSUJW9mHgwplanqgtYWhK7utHcK1iZyh5FsyiMXjBFayK7UQxIRtfgwtM_2Bca","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731066155","total_time":31,"date_modified":"2021-06-10T09:00:33+00:00","date_created":"2021-06-10T09:00:01+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731066155","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138283"}]},{"id":"667455301","answers":[{"choice_id":"4385138293"}]},{"id":"667455314","answers":[{"choice_id":"4385138317"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138423"}]},{"id":"667455328","answers":[{"choice_id":"4385138438"}]},{"id":"667455329","answers":[{"choice_id":"4385138442"}]},{"id":"667455332","answers":[{"choice_id":"4385138502"}]}]}]},"emitted_at":1674149675866} +{"stream":"survey_responses","data":{"id":"12731082183","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=IG3sd3Y0qV_2FQGladjE04s9jje9y8SwVJC2bX5QbuekXXduCLZZ2TedtTVTZU5dGc","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731082183","total_time":32,"date_modified":"2021-06-10T09:08:18+00:00","date_created":"2021-06-10T09:07:46+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731082183","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138278"}]},{"id":"667455299","answers":[{"choice_id":"4385138284"}]},{"id":"667455301","answers":[{"choice_id":"4385138288"}]},{"id":"667455314","answers":[{"choice_id":"4385138318"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138416"}]},{"id":"667455325","answers":[{"choice_id":"4385138423"}]},{"id":"667455328","answers":[{"choice_id":"4385138438"}]},{"id":"667455329","answers":[{"choice_id":"4385138446"}]},{"id":"667455332","answers":[{"choice_id":"4385138499"}]}]}]},"emitted_at":1674149675868} +{"stream":"survey_responses","data":{"id":"12731098436","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MV4ZWqb4qCvpVsm9l8DE5bPr9uyUbMzuYGBxSnRcZ1REiHW2ugohyYyDG7vYEDPl","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731098436","total_time":31,"date_modified":"2021-06-10T09:16:00+00:00","date_created":"2021-06-10T09:15:28+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731098436","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138284"}]},{"id":"667455301","answers":[{"choice_id":"4385138291"}]},{"id":"667455314","answers":[{"choice_id":"4385138320"}]},{"id":"667455318","answers":[{"choice_id":"4385138389"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138421"}]},{"id":"667455328","answers":[{"choice_id":"4385138439"}]},{"id":"667455329","answers":[{"choice_id":"4385138443"}]},{"id":"667455332","answers":[{"choice_id":"4385138501"}]}]}]},"emitted_at":1674149675869} +{"stream":"survey_responses","data":{"id":"12731115074","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=BHzC6lqHgVLzZ1lCVMXIDPuMoH8yVGnrQsGh6WbIIUI3nRO_2F6cMb_2BuTaApRu6hdt","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731115074","total_time":31,"date_modified":"2021-06-10T09:23:39+00:00","date_created":"2021-06-10T09:23:07+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731115074","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138287"}]},{"id":"667455301","answers":[{"choice_id":"4385138290"}]},{"id":"667455314","answers":[{"choice_id":"4385138318"}]},{"id":"667455318","answers":[{"choice_id":"4385138387"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138416"}]},{"id":"667455325","answers":[{"choice_id":"4385138422"}]},{"id":"667455328","answers":[{"choice_id":"4385138432"}]},{"id":"667455329","answers":[{"choice_id":"4385138441"}]},{"id":"667455332","answers":[{"choice_id":"4385138499"}]}]}]},"emitted_at":1674149675871} +{"stream":"survey_responses","data":{"id":"12731131693","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=WYN2n8yADqGUJHwNtkRzDB8UgTsiinkFRQKNlRO2tOl_2FgYSeg5AwgcAfpVBqPc9Z","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731131693","total_time":31,"date_modified":"2021-06-10T09:31:22+00:00","date_created":"2021-06-10T09:30:50+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731131693","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138278"}]},{"id":"667455299","answers":[{"choice_id":"4385138287"}]},{"id":"667455301","answers":[{"choice_id":"4385138292"}]},{"id":"667455314","answers":[{"choice_id":"4385138317"}]},{"id":"667455318","answers":[{"choice_id":"4385138387"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138423"}]},{"id":"667455328","answers":[{"choice_id":"4385138438"}]},{"id":"667455329","answers":[{"choice_id":"4385138444"}]},{"id":"667455332","answers":[{"choice_id":"4385138503"}]}]}]},"emitted_at":1674149675872} +{"stream":"survey_responses","data":{"id":"12731149596","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=I4wWuuErezAO1McHSX4e_2FC_2BNPLPDMiVmc0o7Q21l2qpRsReL4GXorsYqqLman2mF","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731149596","total_time":31,"date_modified":"2021-06-10T09:39:04+00:00","date_created":"2021-06-10T09:38:32+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731149596","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138286"}]},{"id":"667455301","answers":[{"choice_id":"4385138288"}]},{"id":"667455314","answers":[{"choice_id":"4385138319"}]},{"id":"667455318","answers":[{"choice_id":"4385138388"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138415"}]},{"id":"667455325","answers":[{"choice_id":"4385138422"}]},{"id":"667455328","answers":[{"choice_id":"4385138434"}]},{"id":"667455329","answers":[{"choice_id":"4385138444"}]},{"id":"667455332","answers":[{"choice_id":"4385138498"}]}]}]},"emitted_at":1674149675874} +{"stream":"survey_responses","data":{"id":"12731167001","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=oF11Z5EpZ0lcqLyzezPfZ7YyRd8_2FNkQHaVMTUl3_2B_2FvwfgV5z5JscZwGxgOXTCvE_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731167001","total_time":32,"date_modified":"2021-06-10T09:46:50+00:00","date_created":"2021-06-10T09:46:17+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731167001","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138282"}]},{"id":"667455301","answers":[{"choice_id":"4385138295"}]},{"id":"667455314","answers":[{"choice_id":"4385138320"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138426"}]},{"id":"667455328","answers":[{"choice_id":"4385138434"}]},{"id":"667455329","answers":[{"choice_id":"4385138441"}]},{"id":"667455332","answers":[{"choice_id":"4385138502"}]}]}]},"emitted_at":1674149675875} +{"stream":"survey_responses","data":{"id":"12731184662","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=2m4cTOSjC_2FTrSbvTeTRqC4CdH_2F10I0y0VrEPTPWCsU9zVgHoB7Jj9EFyjh7Eso8A","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731184662","total_time":35,"date_modified":"2021-06-10T09:54:53+00:00","date_created":"2021-06-10T09:54:17+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731184662","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138284"}]},{"id":"667455301","answers":[{"choice_id":"4385138292"}]},{"id":"667455314","answers":[{"choice_id":"4385138315"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138412"}]},{"id":"667455325","answers":[{"choice_id":"4385138421"}]},{"id":"667455328","answers":[{"choice_id":"4385138438"}]},{"id":"667455329","answers":[{"choice_id":"4385138441"}]},{"id":"667455332","answers":[{"choice_id":"4385138498"}]}]}]},"emitted_at":1674149675877} +{"stream":"survey_responses","data":{"id":"12731204167","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MDNWDmNrUDODNjQjATix_2BWBUiXJqVC8POKFh8fvebZujKwgJ_2B6XlCVEKCced6L16","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731204167","total_time":32,"date_modified":"2021-06-10T10:03:16+00:00","date_created":"2021-06-10T10:02:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731204167","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138287"}]},{"id":"667455301","answers":[{"choice_id":"4385138292"}]},{"id":"667455314","answers":[{"choice_id":"4385138315"}]},{"id":"667455318","answers":[{"choice_id":"4385138388"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138423"}]},{"id":"667455328","answers":[{"choice_id":"4385138432"}]},{"id":"667455329","answers":[{"choice_id":"4385138447"}]},{"id":"667455332","answers":[{"choice_id":"4385138499"}]}]}]},"emitted_at":1674149675878} +{"stream":"survey_responses","data":{"id":"12731223860","recipient_id":"","collection_mode":"default","response_status":"partial","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":["168830082","168830083","168830087"],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=cwttWQdofPxpfAkwREhinTUX2Ac_2BMviHT6jlan_2BWYlBpX3h0gEfYptMi_2F2sF_2FIut","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731223860","total_time":16,"date_modified":"2021-06-10T10:10:45+00:00","date_created":"2021-06-10T10:10:28+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731223860","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138282"}]},{"id":"667455301","answers":[{"choice_id":"4385138292"}]},{"id":"667455314","answers":[{"choice_id":"4385138317"}]},{"id":"667455318","answers":[{"choice_id":"4385138388"}]}]},{"id":"168830087","questions":[]}]},"emitted_at":1674149675879} +{"stream":"survey_responses","data":{"id":"12731243435","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=kl6SOoj4lel7HllGtpDwHTPILQJujXr_2Bpkcndfg_2FPQpyHzOR6XWv1saPjDTiOeH4","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731243435","total_time":31,"date_modified":"2021-06-10T10:18:55+00:00","date_created":"2021-06-10T10:18:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731243435","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138283"}]},{"id":"667455301","answers":[{"choice_id":"4385138288"}]},{"id":"667455314","answers":[{"choice_id":"4385138317"}]},{"id":"667455318","answers":[{"choice_id":"4385138389"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138414"}]},{"id":"667455325","answers":[{"choice_id":"4385138426"}]},{"id":"667455328","answers":[{"choice_id":"4385138434"}]},{"id":"667455329","answers":[{"choice_id":"4385138441"}]},{"id":"667455332","answers":[{"choice_id":"4385138468"}]}]}]},"emitted_at":1674149675881} +{"stream":"survey_responses","data":{"id":"12731261675","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=5CaWLgB4g6FYPekVOqKYg2mpmDFcRgFD_2FvNGi7Xqozpk2f_2BA5WGRd_2F8q5jr1Jwan","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731261675","total_time":31,"date_modified":"2021-06-10T10:26:32+00:00","date_created":"2021-06-10T10:26:01+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731261675","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138282"}]},{"id":"667455301","answers":[{"choice_id":"4385138290"}]},{"id":"667455314","answers":[{"choice_id":"4385138315"}]},{"id":"667455318","answers":[{"choice_id":"4385138389"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138416"}]},{"id":"667455325","answers":[{"choice_id":"4385138423"}]},{"id":"667455328","answers":[{"choice_id":"4385138434"}]},{"id":"667455329","answers":[{"choice_id":"4385138445"}]},{"id":"667455332","answers":[{"choice_id":"4385138500"}]}]}]},"emitted_at":1674149675882} +{"stream":"survey_responses","data":{"id":"12731281414","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=q5Ky3UvnlTpc15S78mm8JQSFeuSBuv8iuZCnl9MZYl_2BB5nkG8L9uJmUl1JNNtwyv","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731281414","total_time":34,"date_modified":"2021-06-10T10:34:33+00:00","date_created":"2021-06-10T10:33:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731281414","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138279"}]},{"id":"667455299","answers":[{"choice_id":"4385138282"}]},{"id":"667455301","answers":[{"choice_id":"4385138293"}]},{"id":"667455314","answers":[{"choice_id":"4385138316"}]},{"id":"667455318","answers":[{"choice_id":"4385138388"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138412"}]},{"id":"667455325","answers":[{"choice_id":"4385138427"}]},{"id":"667455328","answers":[{"choice_id":"4385138439"}]},{"id":"667455329","answers":[{"choice_id":"4385138445"}]},{"id":"667455332","answers":[{"choice_id":"4385138468"}]}]}]},"emitted_at":1674149675884} +{"stream":"survey_responses","data":{"id":"12731300699","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ATEXrllobiYc9DU6PcEpkS_2F8617dJW0dLGMQupo4QwGEGwqFQJ7m6Bks7oWF7Rae","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731300699","total_time":34,"date_modified":"2021-06-10T10:42:18+00:00","date_created":"2021-06-10T10:41:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731300699","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138282"}]},{"id":"667455301","answers":[{"choice_id":"4385138295"}]},{"id":"667455314","answers":[{"choice_id":"4385138315"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138416"}]},{"id":"667455325","answers":[{"choice_id":"4385138427"}]},{"id":"667455328","answers":[{"choice_id":"4385138433"}]},{"id":"667455329","answers":[{"choice_id":"4385138442"}]},{"id":"667455332","answers":[{"choice_id":"4385138503"}]}]}]},"emitted_at":1674149675885} +{"stream":"survey_responses","data":{"id":"12731320713","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=319qghptwfcFVSVtQrSzrw_2BQzR8BlHJbviMDirTnupaGrVddWmTDjhG7R3Tkvb5J","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731320713","total_time":31,"date_modified":"2021-06-10T10:50:19+00:00","date_created":"2021-06-10T10:49:48+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731320713","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138283"}]},{"id":"667455301","answers":[{"choice_id":"4385138293"}]},{"id":"667455314","answers":[{"choice_id":"4385138317"}]},{"id":"667455318","answers":[{"choice_id":"4385138386"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138415"}]},{"id":"667455325","answers":[{"choice_id":"4385138426"}]},{"id":"667455328","answers":[{"choice_id":"4385138433"}]},{"id":"667455329","answers":[{"choice_id":"4385138444"}]},{"id":"667455332","answers":[{"choice_id":"4385138499"}]}]}]},"emitted_at":1674149675886} +{"stream":"survey_responses","data":{"id":"12731339540","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=unN8NiMSyoHjiCeMXzhPxCruuBwPKAXbf1kk1TZxnnc04vi5qaipiErEFBUKU3Vw","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731339540","total_time":32,"date_modified":"2021-06-10T10:57:54+00:00","date_created":"2021-06-10T10:57:22+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731339540","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138287"}]},{"id":"667455301","answers":[{"choice_id":"4385138291"}]},{"id":"667455314","answers":[{"choice_id":"4385138318"}]},{"id":"667455318","answers":[{"choice_id":"4385138387"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138412"}]},{"id":"667455325","answers":[{"choice_id":"4385138426"}]},{"id":"667455328","answers":[{"choice_id":"4385138432"}]},{"id":"667455329","answers":[{"choice_id":"4385138444"}]},{"id":"667455332","answers":[{"choice_id":"4385138498"}]}]}]},"emitted_at":1674149675888} +{"stream":"survey_responses","data":{"id":"12731359116","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843460","survey_id":"307784856","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=t_2BHFU_2BkwbG0L8cOxkJuYSUIt0ArFixObCD15GpXjKrp4kEQv20jOpUIgPXB30R0f","analyze_url":"https://www.surveymonkey.com/analyze/browse/moGgts_2Bl1LYlJ1mbVw6XG6cfdBSOknoT0fzVp7iTUO4_3D?respondent_id=12731359116","total_time":32,"date_modified":"2021-06-10T11:05:43+00:00","date_created":"2021-06-10T11:05:11+00:00","href":"https://api.surveymonkey.com/v3/surveys/307784856/responses/12731359116","pages":[{"id":"168830082","questions":[]},{"id":"168830083","questions":[{"id":"667455297","answers":[{"choice_id":"4385138277"}]},{"id":"667455299","answers":[{"choice_id":"4385138284"}]},{"id":"667455301","answers":[{"choice_id":"4385138290"}]},{"id":"667455314","answers":[{"choice_id":"4385138319"}]},{"id":"667455318","answers":[{"choice_id":"4385138387"}]}]},{"id":"168830087","questions":[{"id":"667455323","answers":[{"choice_id":"4385138412"}]},{"id":"667455325","answers":[{"choice_id":"4385138426"}]},{"id":"667455328","answers":[{"choice_id":"4385138434"}]},{"id":"667455329","answers":[{"choice_id":"4385138441"}]},{"id":"667455332","answers":[{"choice_id":"4385138501"}]}]}]},"emitted_at":1674149675889} +{"stream":"survey_responses","data":{"id":"12731031048","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=oj7KuTDJShqSiV97LkSV6uvYXz_2BBmc1ocrvgJB_2F6EIN4dNLEz7QkUKli1frVW9z_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731031048","total_time":32,"date_modified":"2021-06-10T08:41:28+00:00","date_created":"2021-06-10T08:40:56+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731031048","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172937"}]},{"id":"667461433","answers":[{"choice_id":"4385172950"}]},{"id":"667461439","answers":[{"choice_id":"4385172991"}]},{"id":"667461441","answers":[{"choice_id":"4385173023"}]},{"id":"667461444","answers":[{"choice_id":"4385173041"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173088"}]},{"id":"667461454","answers":[{"choice_id":"4385173103"}]},{"id":"667461456","answers":[{"choice_id":"4385173115"}]},{"id":"667461462","answers":[{"choice_id":"4385173170"}]}]}]},"emitted_at":1674149677137} +{"stream":"survey_responses","data":{"id":"12731038731","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=NvnexeVe1TL2cbU10b8utpSHSxTK1HTwbsncQeCDCuIJKnwvRo58aul3yetztS1_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731038731","total_time":31,"date_modified":"2021-06-10T08:45:43+00:00","date_created":"2021-06-10T08:45:11+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731038731","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172935"}]},{"id":"667461433","answers":[{"choice_id":"4385172953"}]},{"id":"667461439","answers":[{"choice_id":"4385172990"}]},{"id":"667461441","answers":[{"choice_id":"4385173021"}]},{"id":"667461444","answers":[{"choice_id":"4385173041"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173104"}]},{"id":"667461456","answers":[{"choice_id":"4385173116"}]},{"id":"667461462","answers":[{"choice_id":"4385173170"}]}]}]},"emitted_at":1674149677139} +{"stream":"survey_responses","data":{"id":"12731053047","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=TWL1aXuGzW_2Bld3kwRCla449GewPFQF3JFwcpsO1LndH1s3tFfKtesgelUuLTCGR6","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731053047","total_time":31,"date_modified":"2021-06-10T08:53:29+00:00","date_created":"2021-06-10T08:52:57+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731053047","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172937"}]},{"id":"667461433","answers":[{"choice_id":"4385172948"}]},{"id":"667461439","answers":[{"choice_id":"4385172991"}]},{"id":"667461441","answers":[{"choice_id":"4385173020"}]},{"id":"667461444","answers":[{"choice_id":"4385173045"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173088"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173114"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677141} +{"stream":"survey_responses","data":{"id":"12731067385","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3aXaERIhrxNROtqwHMzJ7BQrVYzI9ua7E_2FxCsZfjUOxvEf88Av09k8zGLpOFLBw_2B","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731067385","total_time":31,"date_modified":"2021-06-10T09:01:09+00:00","date_created":"2021-06-10T09:00:37+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731067385","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172934"}]},{"id":"667461433","answers":[{"choice_id":"4385172953"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173042"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173091"}]},{"id":"667461454","answers":[{"choice_id":"4385173104"}]},{"id":"667461456","answers":[{"choice_id":"4385173114"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677143} +{"stream":"survey_responses","data":{"id":"12731083422","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=kmKEpAG_2FngBuSmfP0e49vf6Q2YDpzhvzQyHTBrwvk0ZeV8Na8b5Evuz7N4wEaQuN","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731083422","total_time":32,"date_modified":"2021-06-10T09:08:54+00:00","date_created":"2021-06-10T09:08:22+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731083422","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172932"}]},{"id":"667461433","answers":[{"choice_id":"4385172953"}]},{"id":"667461439","answers":[{"choice_id":"4385172990"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173042"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173113"}]},{"id":"667461462","answers":[{"choice_id":"4385173169"}]}]}]},"emitted_at":1674149677144} +{"stream":"survey_responses","data":{"id":"12731099693","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=YgZuSogQMKDrPTmOoLetMqFtiUi_2BJHKxcATXloIoBnmzHLDvYmNSSoajIC4_2BX2qc","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731099693","total_time":31,"date_modified":"2021-06-10T09:16:36+00:00","date_created":"2021-06-10T09:16:04+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731099693","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172933"}]},{"id":"667461433","answers":[{"choice_id":"4385172951"}]},{"id":"667461439","answers":[{"choice_id":"4385172993"}]},{"id":"667461441","answers":[{"choice_id":"4385173023"}]},{"id":"667461444","answers":[{"choice_id":"4385173043"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173076"}]},{"id":"667461452","answers":[{"choice_id":"4385173090"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173113"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677147} +{"stream":"survey_responses","data":{"id":"12731116372","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=w67tX9wQ238KZ8cKM0cnTSfg3hzhdt35TpCZfm6_2B7K6B_2F0VZpeEefqMTVZQXnuVe","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731116372","total_time":31,"date_modified":"2021-06-10T09:24:15+00:00","date_created":"2021-06-10T09:23:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731116372","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172932"}]},{"id":"667461433","answers":[{"choice_id":"4385172948"}]},{"id":"667461439","answers":[{"choice_id":"4385172990"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173046"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173103"}]},{"id":"667461456","answers":[{"choice_id":"4385173117"}]},{"id":"667461462","answers":[{"choice_id":"4385173167"}]}]}]},"emitted_at":1674149677148} +{"stream":"survey_responses","data":{"id":"12731133155","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=KkixO6u45W2ICclAKrxKYNgJxrynUdDZxArXycLA_2FpZUBsG3FcMXHvqQmk3DsHGL","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731133155","total_time":31,"date_modified":"2021-06-10T09:31:58+00:00","date_created":"2021-06-10T09:31:27+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731133155","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172933"}]},{"id":"667461433","answers":[{"choice_id":"4385172948"}]},{"id":"667461439","answers":[{"choice_id":"4385172990"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173044"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173090"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677150} +{"stream":"survey_responses","data":{"id":"12731151051","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Ep0IYx019QcuhuuRrvANkBTw0Ti8WirkyKLpMo62qXxWHwkYGtgh9c143qYGmywG","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731151051","total_time":31,"date_modified":"2021-06-10T09:39:40+00:00","date_created":"2021-06-10T09:39:08+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731151051","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172937"}]},{"id":"667461433","answers":[{"choice_id":"4385172949"}]},{"id":"667461439","answers":[{"choice_id":"4385172993"}]},{"id":"667461441","answers":[{"choice_id":"4385173020"}]},{"id":"667461444","answers":[{"choice_id":"4385173046"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173076"}]},{"id":"667461452","answers":[{"choice_id":"4385173091"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173169"}]}]}]},"emitted_at":1674149677151} +{"stream":"survey_responses","data":{"id":"12731168310","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=HS7SOSb9j2AarAA_2BdLKuhIUhWoas6e_2BtUPh9aNHRDTHOTwcnvASYUjIFJk2Aha4I","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731168310","total_time":31,"date_modified":"2021-06-10T09:47:26+00:00","date_created":"2021-06-10T09:46:54+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731168310","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172933"}]},{"id":"667461433","answers":[{"choice_id":"4385172955"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173020"}]},{"id":"667461444","answers":[{"choice_id":"4385173047"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173106"}]},{"id":"667461456","answers":[{"choice_id":"4385173113"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677153} +{"stream":"survey_responses","data":{"id":"12731186075","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Cc0IypCRFbsr7v94sQfKFHhIf_2FH89oCDUARL5wWkYsguNXp0zyA6DxHEdm_2BNMhJ_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731186075","total_time":35,"date_modified":"2021-06-10T09:55:32+00:00","date_created":"2021-06-10T09:54:57+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731186075","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172932"}]},{"id":"667461433","answers":[{"choice_id":"4385172954"}]},{"id":"667461439","answers":[{"choice_id":"4385172992"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173041"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173088"}]},{"id":"667461454","answers":[{"choice_id":"4385173104"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173169"}]}]}]},"emitted_at":1674149677155} +{"stream":"survey_responses","data":{"id":"12731205704","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=nuK5QZZCJUv9YoeVqOpq22Tt3VOETEzxSzV_2Fk4xjbEXXiwUUe6gMiDzLVDs1IWo_2F","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731205704","total_time":31,"date_modified":"2021-06-10T10:03:50+00:00","date_created":"2021-06-10T10:03:19+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731205704","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172933"}]},{"id":"667461433","answers":[{"choice_id":"4385172948"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173023"}]},{"id":"667461444","answers":[{"choice_id":"4385173045"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173090"}]},{"id":"667461454","answers":[{"choice_id":"4385173104"}]},{"id":"667461456","answers":[{"choice_id":"4385173115"}]},{"id":"667461462","answers":[{"choice_id":"4385173168"}]}]}]},"emitted_at":1674149677156} +{"stream":"survey_responses","data":{"id":"12731225522","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=E977wLXc6H_2BfVEbR4rzSs1q6JCgk1O_2BeQ5Sr2f_2BEeSGpDaPDGuslUALFqPRPlZDW","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731225522","total_time":31,"date_modified":"2021-06-10T10:11:38+00:00","date_created":"2021-06-10T10:11:06+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731225522","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172935"}]},{"id":"667461433","answers":[{"choice_id":"4385172951"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173044"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173076"}]},{"id":"667461452","answers":[{"choice_id":"4385173091"}]},{"id":"667461454","answers":[{"choice_id":"4385173103"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173167"}]}]}]},"emitted_at":1674149677158} +{"stream":"survey_responses","data":{"id":"12731244870","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=3wY0IYE_2F0V4hMJO6Hd2YuVpnFpa2qt5soGs4KM6L3wgFb3k2BHMHLGtDGfFRCSfQ","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731244870","total_time":31,"date_modified":"2021-06-10T10:19:30+00:00","date_created":"2021-06-10T10:18:59+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731244870","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172932"}]},{"id":"667461433","answers":[{"choice_id":"4385172953"}]},{"id":"667461439","answers":[{"choice_id":"4385172993"}]},{"id":"667461441","answers":[{"choice_id":"4385173020"}]},{"id":"667461444","answers":[{"choice_id":"4385173040"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173091"}]},{"id":"667461454","answers":[{"choice_id":"4385173102"}]},{"id":"667461456","answers":[{"choice_id":"4385173116"}]},{"id":"667461462","answers":[{"choice_id":"4385173170"}]}]}]},"emitted_at":1674149677159} +{"stream":"survey_responses","data":{"id":"12731263131","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=StRkIgYeE5JwNLawW20wxeS_2FED8yP1J_2FHGw3CFhxGAXfN5lodZFoZ7n2CQYuFI4m","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731263131","total_time":31,"date_modified":"2021-06-10T10:27:08+00:00","date_created":"2021-06-10T10:26:37+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731263131","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172933"}]},{"id":"667461433","answers":[{"choice_id":"4385172951"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173021"}]},{"id":"667461444","answers":[{"choice_id":"4385173046"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173106"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173169"}]}]}]},"emitted_at":1674149677160} +{"stream":"survey_responses","data":{"id":"12731283031","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=J4cSx3UMmpoujky2cMr76AMl3Fslun9t7M7fr8ahVpWNGLwaW_2Bu8X3jQJkNttUcC","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731283031","total_time":34,"date_modified":"2021-06-10T10:35:10+00:00","date_created":"2021-06-10T10:34:36+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731283031","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172936"}]},{"id":"667461433","answers":[{"choice_id":"4385172948"}]},{"id":"667461439","answers":[{"choice_id":"4385172994"}]},{"id":"667461441","answers":[{"choice_id":"4385173021"}]},{"id":"667461444","answers":[{"choice_id":"4385173041"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173090"}]},{"id":"667461454","answers":[{"choice_id":"4385173103"}]},{"id":"667461456","answers":[{"choice_id":"4385173118"}]},{"id":"667461462","answers":[{"choice_id":"4385173169"}]}]}]},"emitted_at":1674149677161} +{"stream":"survey_responses","data":{"id":"12731302340","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ILLNvXOj_2BrxmX_2By2ZRAmTpFslgCTd_2Feoso7P36bgr0_2FDMlf4kKul9iF6Ox4uTGnl","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731302340","total_time":34,"date_modified":"2021-06-10T10:42:56+00:00","date_created":"2021-06-10T10:42:22+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731302340","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172937"}]},{"id":"667461433","answers":[{"choice_id":"4385172951"}]},{"id":"667461439","answers":[{"choice_id":"4385172994"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173042"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173091"}]},{"id":"667461454","answers":[{"choice_id":"4385173105"}]},{"id":"667461456","answers":[{"choice_id":"4385173114"}]},{"id":"667461462","answers":[{"choice_id":"4385173167"}]}]}]},"emitted_at":1674149677162} +{"stream":"survey_responses","data":{"id":"12731322211","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=4UUhK9SRY_2FM3fA_2FqkLCL5mS8aBtccVCgcBQMTDfpX84us_2FZDOkgCVuCexjzjooNm","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731322211","total_time":31,"date_modified":"2021-06-10T10:50:54+00:00","date_created":"2021-06-10T10:50:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731322211","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172935"}]},{"id":"667461433","answers":[{"choice_id":"4385172950"}]},{"id":"667461439","answers":[{"choice_id":"4385172995"}]},{"id":"667461441","answers":[{"choice_id":"4385173023"}]},{"id":"667461444","answers":[{"choice_id":"4385173047"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173090"}]},{"id":"667461454","answers":[{"choice_id":"4385173102"}]},{"id":"667461456","answers":[{"choice_id":"4385173115"}]},{"id":"667461462","answers":[{"choice_id":"4385173170"}]}]}]},"emitted_at":1674149677163} +{"stream":"survey_responses","data":{"id":"12731341043","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=K51RB0BiJ39RT0TzevECB3iQ54AUAqtSYC5AGG_2Fb3JiEOIV74uOcQhGpP_2B9Xzumv","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731341043","total_time":32,"date_modified":"2021-06-10T10:58:30+00:00","date_created":"2021-06-10T10:57:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731341043","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172932"}]},{"id":"667461433","answers":[{"choice_id":"4385172949"}]},{"id":"667461439","answers":[{"choice_id":"4385172991"}]},{"id":"667461441","answers":[{"choice_id":"4385173020"}]},{"id":"667461444","answers":[{"choice_id":"4385173042"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173078"}]},{"id":"667461452","answers":[{"choice_id":"4385173088"}]},{"id":"667461454","answers":[{"choice_id":"4385173106"}]},{"id":"667461456","answers":[{"choice_id":"4385173114"}]},{"id":"667461462","answers":[{"choice_id":"4385173170"}]}]}]},"emitted_at":1674149677164} +{"stream":"survey_responses","data":{"id":"12731360608","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843624","survey_id":"307785388","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=joQxJxoDIf61JZdELXuIeomTgZquDM7T76ksdKdRUHFrgw1Him4UO_2BbCMcv0tXrC","analyze_url":"https://www.surveymonkey.com/analyze/browse/5QHdVgvFd_2Bn4fvmj_2F1aNtwM9q4oP_2B3VqXy_2BeJTiumoQ_3D?respondent_id=12731360608","total_time":31,"date_modified":"2021-06-10T11:06:19+00:00","date_created":"2021-06-10T11:05:47+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785388/responses/12731360608","pages":[{"id":"168831335","questions":[]},{"id":"168831336","questions":[{"id":"667461429","answers":[{"choice_id":"4385172934"}]},{"id":"667461433","answers":[{"choice_id":"4385172951"}]},{"id":"667461439","answers":[{"choice_id":"4385172991"}]},{"id":"667461441","answers":[{"choice_id":"4385173022"}]},{"id":"667461444","answers":[{"choice_id":"4385173040"}]}]},{"id":"168831340","questions":[{"id":"667461449","answers":[{"choice_id":"4385173077"}]},{"id":"667461452","answers":[{"choice_id":"4385173089"}]},{"id":"667461454","answers":[{"choice_id":"4385173103"}]},{"id":"667461456","answers":[{"choice_id":"4385173113"}]},{"id":"667461462","answers":[{"choice_id":"4385173167"}]}]}]},"emitted_at":1674149677165} +{"stream":"survey_responses","data":{"id":"12731032160","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=k5_2BoYr8L1JivcJuf1rH2GX_2BHMQI9F9YIVUvhVjaOj1ZaTr1AN4RrYerLAgE0dex5","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731032160","total_time":30,"date_modified":"2021-06-10T08:42:04+00:00","date_created":"2021-06-10T08:41:34+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731032160","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174976"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175072"}]},{"id":"667461797","answers":[{"choice_id":"4385175099"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175117"}]},{"id":"667461805","answers":[{"choice_id":"4385175148"}]},{"id":"667461811","answers":[{"choice_id":"4385175199"}]},{"id":"667461833","answers":[{"choice_id":"4385175281"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678650} +{"stream":"survey_responses","data":{"id":"12731039882","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=ueh4txTCmZOSY56GbXU_2BI53xrA9e5AOQ2EOFNrDgskH2E4ZDeJ4HcDXDLxDPUl8L","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731039882","total_time":29,"date_modified":"2021-06-10T08:46:16+00:00","date_created":"2021-06-10T08:45:47+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731039882","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174972"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175072"}]},{"id":"667461797","answers":[{"choice_id":"4385175100"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175148"}]},{"id":"667461811","answers":[{"choice_id":"4385175200"}]},{"id":"667461833","answers":[{"choice_id":"4385175283"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678652} +{"stream":"survey_responses","data":{"id":"12731054183","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=6Utx9fT_2BqzHMlSdMksExZ0ph_2BvNfvb4CBc5S5YuvlA0kAV4HfmiM38IyZMLnHuoK","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731054183","total_time":29,"date_modified":"2021-06-10T08:54:02+00:00","date_created":"2021-06-10T08:53:33+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731054183","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174971"}]},{"id":"667461791","answers":[{"choice_id":"4385175055"}]},{"id":"667461794","answers":[{"choice_id":"4385175070"}]},{"id":"667461797","answers":[{"choice_id":"4385175102"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175120"}]},{"id":"667461805","answers":[{"choice_id":"4385175152"}]},{"id":"667461811","answers":[{"choice_id":"4385175200"}]},{"id":"667461833","answers":[{"choice_id":"4385175284"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678654} +{"stream":"survey_responses","data":{"id":"12731068596","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=Y_2BpA02_2Br_2B8t0cCK8Ua99SpTBk8YAUIPP5rIlV7TWE2bRQsxJ7Wy8nlQiPeSSH1Aj","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731068596","total_time":29,"date_modified":"2021-06-10T09:01:43+00:00","date_created":"2021-06-10T09:01:13+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731068596","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174974"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175070"}]},{"id":"667461797","answers":[{"choice_id":"4385175102"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175117"}]},{"id":"667461805","answers":[{"choice_id":"4385175147"}]},{"id":"667461811","answers":[{"choice_id":"4385175200"}]},{"id":"667461833","answers":[{"choice_id":"4385175279"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678656} +{"stream":"survey_responses","data":{"id":"12731084672","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=oDcOq8OB_2BpjrJzvV_2B78DTMP7bGXGg_2FFfY5m4CGX3bYG_2BHn3WUTPsqZIYhsLwynBU","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731084672","total_time":29,"date_modified":"2021-06-10T09:09:28+00:00","date_created":"2021-06-10T09:08:59+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731084672","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174970"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175097"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175115"}]},{"id":"667461805","answers":[{"choice_id":"4385175146"}]},{"id":"667461811","answers":[{"choice_id":"4385175200"}]},{"id":"667461833","answers":[{"choice_id":"4385175284"}]},{"id":"667461834","answers":[{"choice_id":"4385175294"}]}]}]},"emitted_at":1674149678658} +{"stream":"survey_responses","data":{"id":"12731100913","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=5kE4DYJKeO6DrzEs62N47RQ2rioxaIjqDc5G3RxsiNkZeZZ2L6PL09YQRzsKPf5P","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731100913","total_time":29,"date_modified":"2021-06-10T09:17:08+00:00","date_created":"2021-06-10T09:16:39+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731100913","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174701"}]},{"id":"667461777","answers":[{"choice_id":"4385174975"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175102"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175121"}]},{"id":"667461805","answers":[{"choice_id":"4385175148"}]},{"id":"667461811","answers":[{"choice_id":"4385175202"}]},{"id":"667461833","answers":[{"choice_id":"4385175279"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678659} +{"stream":"survey_responses","data":{"id":"12731117664","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=MK3EF7tVkhtzcIOL0XN0yqP2HY1_2Fqf1WCffD2MxDMDr4xww37ssvSgs9tAUezwLH","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731117664","total_time":29,"date_modified":"2021-06-10T09:24:48+00:00","date_created":"2021-06-10T09:24:19+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731117664","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174977"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175103"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175119"}]},{"id":"667461805","answers":[{"choice_id":"4385175147"}]},{"id":"667461811","answers":[{"choice_id":"4385175204"}]},{"id":"667461833","answers":[{"choice_id":"4385175279"}]},{"id":"667461834","answers":[{"choice_id":"4385175294"}]}]}]},"emitted_at":1674149678660} +{"stream":"survey_responses","data":{"id":"12731134542","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=vaKWu1zSFOcQlKfr2_2FhbI4n7QTTLkC4cwx4WG8fdzf9IVtI3MzE7e_2FRnH89alHIc","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731134542","total_time":29,"date_modified":"2021-06-10T09:32:32+00:00","date_created":"2021-06-10T09:32:03+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731134542","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174701"}]},{"id":"667461777","answers":[{"choice_id":"4385174973"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175070"}]},{"id":"667461797","answers":[{"choice_id":"4385175099"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175118"}]},{"id":"667461805","answers":[{"choice_id":"4385175149"}]},{"id":"667461811","answers":[{"choice_id":"4385175203"}]},{"id":"667461833","answers":[{"choice_id":"4385175284"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678661} +{"stream":"survey_responses","data":{"id":"12731152328","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=IVs8i7sYR_2FPHAlgRFsF_2FqtmR8VKhb4HLvOemx_2F_2Bx31hPXV_2FqSHT1WSMqyx9fGWRv","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731152328","total_time":29,"date_modified":"2021-06-10T09:40:14+00:00","date_created":"2021-06-10T09:39:45+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731152328","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174970"}]},{"id":"667461791","answers":[{"choice_id":"4385175056"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175103"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175152"}]},{"id":"667461811","answers":[{"choice_id":"4385175204"}]},{"id":"667461833","answers":[{"choice_id":"4385175282"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678662} +{"stream":"survey_responses","data":{"id":"12731169686","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=I6lNoZHdDu_2FqdBBrqWGXmuNL5Ezwzz6bS8n4LrSLKUFZ5_2FTaf8k7MnS_2FxWjh5UYN","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731169686","total_time":29,"date_modified":"2021-06-10T09:48:00+00:00","date_created":"2021-06-10T09:47:30+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731169686","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174701"}]},{"id":"667461777","answers":[{"choice_id":"4385174973"}]},{"id":"667461791","answers":[{"choice_id":"4385175056"}]},{"id":"667461794","answers":[{"choice_id":"4385175070"}]},{"id":"667461797","answers":[{"choice_id":"4385175102"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175152"}]},{"id":"667461811","answers":[{"choice_id":"4385175200"}]},{"id":"667461833","answers":[{"choice_id":"4385175282"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678663} +{"stream":"survey_responses","data":{"id":"12731187603","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=FiK9D4oAC52vzwBrNjbYa9wHiLT6nJc_2BvhbFVDpRqaS4N9_2FeTfbrKcUlu1iDPmLr","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731187603","total_time":32,"date_modified":"2021-06-10T09:56:10+00:00","date_created":"2021-06-10T09:55:38+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731187603","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174701"}]},{"id":"667461777","answers":[{"choice_id":"4385174970"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175070"}]},{"id":"667461797","answers":[{"choice_id":"4385175101"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175150"}]},{"id":"667461811","answers":[{"choice_id":"4385175201"}]},{"id":"667461833","answers":[{"choice_id":"4385175281"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678664} +{"stream":"survey_responses","data":{"id":"12731207265","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=DxJNIKLDsZB0jSdF3mQJziPzHSc1QhKVEAwTlaWxpmlfbYqie5vDH6pcFcXka8HP","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731207265","total_time":29,"date_modified":"2021-06-10T10:04:24+00:00","date_created":"2021-06-10T10:03:55+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731207265","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174976"}]},{"id":"667461791","answers":[{"choice_id":"4385175055"}]},{"id":"667461794","answers":[{"choice_id":"4385175071"}]},{"id":"667461797","answers":[{"choice_id":"4385175102"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175121"}]},{"id":"667461805","answers":[{"choice_id":"4385175150"}]},{"id":"667461811","answers":[{"choice_id":"4385175203"}]},{"id":"667461833","answers":[{"choice_id":"4385175280"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678665} +{"stream":"survey_responses","data":{"id":"12731227055","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=hifnhc2BvbuUJ2eC5tqTz1sgyzN6BVSqhHrOZMc67UAWrZ86iRSDesnY2EqLW3sf","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731227055","total_time":30,"date_modified":"2021-06-10T10:12:13+00:00","date_created":"2021-06-10T10:11:43+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731227055","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174974"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175096"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175121"}]},{"id":"667461805","answers":[{"choice_id":"4385175148"}]},{"id":"667461811","answers":[{"choice_id":"4385175202"}]},{"id":"667461833","answers":[{"choice_id":"4385175279"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678666} +{"stream":"survey_responses","data":{"id":"12731246288","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=9TFIXzJKIgVd5dHU3k_2BM3i00wcrMbvDj3vBf1YYe_2FDh5Hv2kyiiZ13WyXCNq5Og9","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731246288","total_time":29,"date_modified":"2021-06-10T10:20:04+00:00","date_created":"2021-06-10T10:19:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731246288","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174974"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175098"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175117"}]},{"id":"667461805","answers":[{"choice_id":"4385175151"}]},{"id":"667461811","answers":[{"choice_id":"4385175198"}]},{"id":"667461833","answers":[{"choice_id":"4385175284"}]},{"id":"667461834","answers":[{"choice_id":"4385175294"}]}]}]},"emitted_at":1674149678667} +{"stream":"survey_responses","data":{"id":"12731264698","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=s1IbylETE10QgXtryui0Bdz_2Bj5IU5LzqBMHDbnhunQHBP5CedlG7l56df1BhmnL2","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731264698","total_time":29,"date_modified":"2021-06-10T10:27:44+00:00","date_created":"2021-06-10T10:27:15+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731264698","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174977"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175096"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175119"}]},{"id":"667461805","answers":[{"choice_id":"4385175146"}]},{"id":"667461811","answers":[{"choice_id":"4385175199"}]},{"id":"667461833","answers":[{"choice_id":"4385175281"}]},{"id":"667461834","answers":[{"choice_id":"4385175294"}]}]}]},"emitted_at":1674149678668} +{"stream":"survey_responses","data":{"id":"12731284644","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=gRmE1HF_2BBq7nrEqx2yWW8g0zVXXWYXVJ2u7ohGYqL6fyVTm6aN1WqlcfWrYGOvpl","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731284644","total_time":32,"date_modified":"2021-06-10T10:35:47+00:00","date_created":"2021-06-10T10:35:15+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731284644","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174972"}]},{"id":"667461791","answers":[{"choice_id":"4385175055"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175098"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175146"}]},{"id":"667461811","answers":[{"choice_id":"4385175202"}]},{"id":"667461833","answers":[{"choice_id":"4385175283"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678668} +{"stream":"survey_responses","data":{"id":"12731303856","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=R15XZO_2FAOou8IYPELNzZWNvHyYHz5f2yg5XY9DyTPB_2F1F9zoalgsQcLiDzAzYgfp","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731303856","total_time":31,"date_modified":"2021-06-10T10:43:31+00:00","date_created":"2021-06-10T10:43:00+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731303856","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174972"}]},{"id":"667461791","answers":[{"choice_id":"4385175056"}]},{"id":"667461794","answers":[{"choice_id":"4385175072"}]},{"id":"667461797","answers":[{"choice_id":"4385175101"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175115"}]},{"id":"667461805","answers":[{"choice_id":"4385175148"}]},{"id":"667461811","answers":[{"choice_id":"4385175198"}]},{"id":"667461833","answers":[{"choice_id":"4385175284"}]},{"id":"667461834","answers":[{"choice_id":"4385175296"}]}]}]},"emitted_at":1674149678669} +{"stream":"survey_responses","data":{"id":"12731323720","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=EiMwydLUjYosaJKqAS7XvTZYSRk1ONKVDTvKy287UbU9nHh4OUTunOiBk4lTOMIX","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731323720","total_time":29,"date_modified":"2021-06-10T10:51:27+00:00","date_created":"2021-06-10T10:50:58+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731323720","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174700"}]},{"id":"667461777","answers":[{"choice_id":"4385174977"}]},{"id":"667461791","answers":[{"choice_id":"4385175057"}]},{"id":"667461794","answers":[{"choice_id":"4385175071"}]},{"id":"667461797","answers":[{"choice_id":"4385175103"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175119"}]},{"id":"667461805","answers":[{"choice_id":"4385175152"}]},{"id":"667461811","answers":[{"choice_id":"4385175201"}]},{"id":"667461833","answers":[{"choice_id":"4385175282"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678670} +{"stream":"survey_responses","data":{"id":"12731342570","recipient_id":"","collection_mode":"default","response_status":"completed","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":[],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=26PW15rB0RZChb0Db5YdoDywvKkwI95rERJAB_2BeZi_2F8EbRztchqEvwih9zygXayj","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731342570","total_time":30,"date_modified":"2021-06-10T10:59:05+00:00","date_created":"2021-06-10T10:58:35+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731342570","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174701"}]},{"id":"667461777","answers":[{"choice_id":"4385174971"}]},{"id":"667461791","answers":[{"choice_id":"4385175056"}]},{"id":"667461794","answers":[{"choice_id":"4385175073"}]},{"id":"667461797","answers":[{"choice_id":"4385175099"}]}]},{"id":"168831402","questions":[{"id":"667461801","answers":[{"choice_id":"4385175116"}]},{"id":"667461805","answers":[{"choice_id":"4385175146"}]},{"id":"667461811","answers":[{"choice_id":"4385175202"}]},{"id":"667461833","answers":[{"choice_id":"4385175283"}]},{"id":"667461834","answers":[{"choice_id":"4385175295"}]}]}]},"emitted_at":1674149678670} +{"stream":"survey_responses","data":{"id":"12731362003","recipient_id":"","collection_mode":"default","response_status":"partial","custom_value":"","first_name":"","last_name":"","email_address":"","ip_address":"91.242.192.88","logic_path":{},"metadata":{"contact":{}},"page_path":["168831392","168831393","168831402"],"collector_id":"405843634","survey_id":"307785415","custom_variables":{},"edit_url":"https://www.surveymonkey.com/r/?sm=LFmWWSa5B0YPzIswFuEpoIxYrVHHhorNICipbTUhp6Z3p5apUZsA3ENZGZbaPFH0","analyze_url":"https://www.surveymonkey.com/analyze/browse/BPAkhAawaMN8C17tmmNFxjZ0KOiJJ3FCQU4krShVQhg_3D?respondent_id=12731362003","total_time":19,"date_modified":"2021-06-10T11:06:42+00:00","date_created":"2021-06-10T11:06:23+00:00","href":"https://api.surveymonkey.com/v3/surveys/307785415/responses/12731362003","pages":[{"id":"168831392","questions":[]},{"id":"168831393","questions":[{"id":"667461690","answers":[{"choice_id":"4385174702"}]},{"id":"667461777","answers":[{"choice_id":"4385174976"}]},{"id":"667461791","answers":[{"choice_id":"4385175058"}]},{"id":"667461794","answers":[{"choice_id":"4385175071"}]},{"id":"667461797","answers":[{"choice_id":"4385175099"}]}]},{"id":"168831402","questions":[]}]},"emitted_at":1674149678671} +{"stream":"survey_pages","data":{"title":"sy4ara","description":"Сурвейманки жлобы","position":1,"question_count":13,"id":"165250506","href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506"},"emitted_at":1674149681286} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831413","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831413"},"emitted_at":1674149682414} +{"stream":"survey_pages","data":{"title":"xsgqdhdakh7x","description":"wlju6xsgkxyig0s1","position":2,"question_count":5,"id":"168831415","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415"},"emitted_at":1674149682415} +{"stream":"survey_pages","data":{"title":"ajsn8v0tvicgt7u063","description":"dcwmhxdx6p8buu","position":3,"question_count":5,"id":"168831437","href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437"},"emitted_at":1674149682415} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831459","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831459"},"emitted_at":1674149683744} +{"stream":"survey_pages","data":{"title":"ijw0pw2tlfb0vd3","description":"k8tycaedxbl4","position":2,"question_count":5,"id":"168831461","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461"},"emitted_at":1674149683744} +{"stream":"survey_pages","data":{"title":"krd3l3bj7vaym6pc4","description":"oy458fugj0k","position":3,"question_count":5,"id":"168831467","href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467"},"emitted_at":1674149683745} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831344","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831344"},"emitted_at":1674149684444} +{"stream":"survey_pages","data":{"title":"q4fuvltqc6","description":"7kfibw7aer8mr937a3ko","position":2,"question_count":5,"id":"168831345","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345"},"emitted_at":1674149684445} +{"stream":"survey_pages","data":{"title":"p5sdpb0pus6","description":"o9gbkpmfik2x","position":3,"question_count":5,"id":"168831352","href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352"},"emitted_at":1674149684445} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831357","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831357"},"emitted_at":1674149685687} +{"stream":"survey_pages","data":{"title":"133nvr2cx99r","description":"shwtfx0edv","position":2,"question_count":5,"id":"168831358","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358"},"emitted_at":1674149685687} +{"stream":"survey_pages","data":{"title":"otgwn5b4wicdemu1q","description":"s3ndgrck3qr4898qwtgh","position":3,"question_count":5,"id":"168831365","href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365"},"emitted_at":1674149685687} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831381","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831381"},"emitted_at":1674149686909} +{"stream":"survey_pages","data":{"title":"ooj54g8q2thh","description":"8hrryr258se","position":2,"question_count":5,"id":"168831382","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382"},"emitted_at":1674149686909} +{"stream":"survey_pages","data":{"title":"mva5ojqgmx6wnv62as","description":"wq6q460p143mi0","position":3,"question_count":5,"id":"168831388","href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388"},"emitted_at":1674149686909} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830049","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830049"},"emitted_at":1674149687592} +{"stream":"survey_pages","data":{"title":"v3q97ckq2438fqkppcyn","description":"oforikk3wu4gin","position":2,"question_count":5,"id":"168830050","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050"},"emitted_at":1674149687593} +{"stream":"survey_pages","data":{"title":"t57ybjyll8fwgu39w","description":"ttlkuqp07ua6kpsh","position":3,"question_count":5,"id":"168830060","href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060"},"emitted_at":1674149687594} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831470","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831470"},"emitted_at":1674149688355} +{"stream":"survey_pages","data":{"title":"q3wpp1ufpi5r058o","description":"ay91aymge2vuacmrl9co","position":2,"question_count":5,"id":"168831471","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471"},"emitted_at":1674149688356} +{"stream":"survey_pages","data":{"title":"m345ab1u6tjjo4nn3d","description":"ec22umvdkhxd0ne575","position":3,"question_count":5,"id":"168831478","href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478"},"emitted_at":1674149688357} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830093","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830093"},"emitted_at":1674149689582} +{"stream":"survey_pages","data":{"title":"7t9dgejtlw5wsofbt","description":"mfqrejibgc831bp31","position":2,"question_count":5,"id":"168830094","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094"},"emitted_at":1674149689583} +{"stream":"survey_pages","data":{"title":"9kri0ao4fh8e3i0j2hms","description":"dh7qg9jc1k65x","position":3,"question_count":5,"id":"168830108","href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108"},"emitted_at":1674149689583} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830067","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830067"},"emitted_at":1674149690505} +{"stream":"survey_pages","data":{"title":"9vpm4e5ecjis5hge0p","description":"r6e38n2fp33skkjrl","position":2,"question_count":5,"id":"168830068","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068"},"emitted_at":1674149690506} +{"stream":"survey_pages","data":{"title":"nvv6kl2njpt5b1l2p","description":"rd2j09sxv4ssu976g","position":3,"question_count":5,"id":"168830074","href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074"},"emitted_at":1674149690506} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168830082","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830082"},"emitted_at":1674149691681} +{"stream":"survey_pages","data":{"title":"v1yxmq6n1ix","description":"aeoyc3hiak9vui1hevm","position":2,"question_count":5,"id":"168830083","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083"},"emitted_at":1674149691682} +{"stream":"survey_pages","data":{"title":"g84sqoltkc2jen8iaj0","description":"ss2439kly1u4j1k1","position":3,"question_count":5,"id":"168830087","href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087"},"emitted_at":1674149691682} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831335","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831335"},"emitted_at":1674149692346} +{"stream":"survey_pages","data":{"title":"k91l1laduo8","description":"4tmb1eke23bi1l2ev","position":2,"question_count":5,"id":"168831336","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336"},"emitted_at":1674149692347} +{"stream":"survey_pages","data":{"title":"gisj5ms868kxxv","description":"4g1iiqg0sa15pbk","position":3,"question_count":5,"id":"168831340","href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340"},"emitted_at":1674149692348} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"168831392","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831392"},"emitted_at":1674149693064} +{"stream":"survey_pages","data":{"title":"p71uerk2uh7k5","description":"92cb9d98j15jmfo","position":2,"question_count":5,"id":"168831393","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393"},"emitted_at":1674149693064} +{"stream":"survey_pages","data":{"title":"bqd6mn6bdgv5u1rnstkx","description":"e0jrpexyx6t","position":3,"question_count":5,"id":"168831402","href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402"},"emitted_at":1674149693065} +{"stream":"survey_pages","data":{"title":"","description":"","position":1,"question_count":0,"id":"36710109","href":"https://api.surveymonkey.com/v3/surveys/510388524/pages/36710109"},"emitted_at":1674149694191} +{"stream":"survey_questions","data":{"id":"652286724","position":1,"visible":true,"family":"click_map","subtype":"single","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Click on the area you like best about this product.","image":{"url":"https://surveymonkey-assets.s3.amazonaws.com/survey/306079584/20535460-8f99-41b0-ac96-b9f4f2aecb96.png"}}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286724","answers":{"rows":[{"position":1,"visible":true,"text":"Click 1","id":"4285525098"}]},"page_id":"165250506"},"emitted_at":1674149694470} +{"stream":"survey_questions","data":{"id":"652286725","position":2,"visible":true,"family":"click_map","subtype":"single","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Click on the area you like least about this product.","image":{"url":"https://surveymonkey-assets.s3.amazonaws.com/survey/306079584/79215d25-9dbc-4870-91cd-3a36778aae52.png"}}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286725","answers":{"rows":[{"position":1,"visible":true,"text":"Click 1","id":"4285525102"}]},"page_id":"165250506"},"emitted_at":1674149694470} +{"stream":"survey_questions","data":{"id":"652286726","position":3,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"Why did you make that selection?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286726","page_id":"165250506"},"emitted_at":1674149694471} +{"stream":"survey_questions","data":{"id":"652286715","position":4,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"What is your first reaction to the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286715","answers":{"choices":[{"position":1,"visible":true,"text":"Very positive","quiz_options":{"score":0},"id":"4285525063"},{"position":2,"visible":true,"text":"Somewhat positive","quiz_options":{"score":0},"id":"4285525064"},{"position":3,"visible":true,"text":"Neutral","quiz_options":{"score":0},"id":"4285525065"},{"position":4,"visible":true,"text":"Somewhat negative","quiz_options":{"score":0},"id":"4285525066"},{"position":5,"visible":true,"text":"Very negative","quiz_options":{"score":0},"id":"4285525067"}]},"page_id":"165250506"},"emitted_at":1674149694471} +{"stream":"survey_questions","data":{"id":"652286721","position":5,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How would you rate the quality of the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286721","answers":{"choices":[{"position":1,"visible":true,"text":"Very high quality","quiz_options":{"score":0},"id":"4285525083"},{"position":2,"visible":true,"text":"High quality","quiz_options":{"score":0},"id":"4285525084"},{"position":3,"visible":true,"text":"Neither high nor low quality","quiz_options":{"score":0},"id":"4285525085"},{"position":4,"visible":true,"text":"Low quality","quiz_options":{"score":0},"id":"4285525086"},{"position":5,"visible":true,"text":"Very low quality","quiz_options":{"score":0},"id":"4285525087"}]},"page_id":"165250506"},"emitted_at":1674149694472} +{"stream":"survey_questions","data":{"id":"652286716","position":6,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How innovative is the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286716","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely innovative","quiz_options":{"score":0},"id":"4285525068"},{"position":2,"visible":true,"text":"Very innovative","quiz_options":{"score":0},"id":"4285525069"},{"position":3,"visible":true,"text":"Somewhat innovative","quiz_options":{"score":0},"id":"4285525070"},{"position":4,"visible":true,"text":"Not so innovative","quiz_options":{"score":0},"id":"4285525071"},{"position":5,"visible":true,"text":"Not at all innovative","quiz_options":{"score":0},"id":"4285525072"}]},"page_id":"165250506"},"emitted_at":1674149694473} +{"stream":"survey_questions","data":{"id":"652286718","position":7,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"When you think about the product, do you think of it as something you need or don’t need?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286718","answers":{"choices":[{"position":1,"visible":true,"text":"Definitely need","quiz_options":{"score":0},"id":"4285525078"},{"position":2,"visible":true,"text":"Probably need","quiz_options":{"score":0},"id":"4285525079"},{"position":3,"visible":true,"text":"Neutral","quiz_options":{"score":0},"id":"4285525080"},{"position":4,"visible":true,"text":"Probably don’t need","quiz_options":{"score":0},"id":"4285525081"},{"position":5,"visible":true,"text":"Definitely don’t need","quiz_options":{"score":0},"id":"4285525082"}]},"page_id":"165250506"},"emitted_at":1674149694474} +{"stream":"survey_questions","data":{"id":"652286722","position":8,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How would you rate the value for money of the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286722","answers":{"choices":[{"position":1,"visible":true,"text":"Excellent","quiz_options":{"score":0},"id":"4285525088"},{"position":2,"visible":true,"text":"Above average","quiz_options":{"score":0},"id":"4285525089"},{"position":3,"visible":true,"text":"Average","quiz_options":{"score":0},"id":"4285525090"},{"position":4,"visible":true,"text":"Below average","quiz_options":{"score":0},"id":"4285525091"},{"position":5,"visible":true,"text":"Poor","quiz_options":{"score":0},"id":"4285525092"}]},"page_id":"165250506"},"emitted_at":1674149694474} +{"stream":"survey_questions","data":{"id":"652286717","position":9,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"If the product were available today, how likely would you be to buy the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286717","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely likely","quiz_options":{"score":0},"id":"4285525073"},{"position":2,"visible":true,"text":"Very likely","quiz_options":{"score":0},"id":"4285525074"},{"position":3,"visible":true,"text":"Somewhat likely","quiz_options":{"score":0},"id":"4285525075"},{"position":4,"visible":true,"text":"Not so likely","quiz_options":{"score":0},"id":"4285525076"},{"position":5,"visible":true,"text":"Not at all likely","quiz_options":{"score":0},"id":"4285525077"}]},"page_id":"165250506"},"emitted_at":1674149694475} +{"stream":"survey_questions","data":{"id":"652286723","position":10,"visible":true,"family":"single_choice","subtype":"vertical_two_col","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How likely are you to replace your current product with the product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286723","answers":{"choices":[{"position":1,"visible":true,"text":"Extremely likely ","quiz_options":{"score":0},"id":"4285525093"},{"position":2,"visible":true,"text":"Very likely ","quiz_options":{"score":0},"id":"4285525094"},{"position":3,"visible":true,"text":"Somewhat likely","quiz_options":{"score":0},"id":"4285525095"},{"position":4,"visible":true,"text":"Not so likely","quiz_options":{"score":0},"id":"4285525096"},{"position":5,"visible":true,"text":"Not at all likely","quiz_options":{"score":0},"id":"4285525097"}]},"page_id":"165250506"},"emitted_at":1674149694475} +{"stream":"survey_questions","data":{"id":"652286714","position":11,"visible":true,"family":"matrix","subtype":"rating","layout":{"bottom_spacing":0,"col_width":80,"col_width_format":"percent","left_spacing":0,"num_chars":null,"num_lines":null,"position":"new_row","right_spacing":0,"top_spacing":0,"width":100,"width_format":"percent"},"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"How likely is it that you would recommend our new product to a friend or colleague?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286714","answers":{"rows":[{"position":1,"visible":true,"text":"","id":"4285525061"}],"choices":[{"position":1,"visible":true,"text":"Not at all likely - 0","id":"4285525050","is_na":false,"weight":-100,"description":"Not at all likely"},{"position":2,"visible":true,"text":"1","id":"4285525051","is_na":false,"weight":-100,"description":""},{"position":3,"visible":true,"text":"2","id":"4285525052","is_na":false,"weight":-100,"description":""},{"position":4,"visible":true,"text":"3","id":"4285525053","is_na":false,"weight":-100,"description":""},{"position":5,"visible":true,"text":"4","id":"4285525054","is_na":false,"weight":-100,"description":""},{"position":6,"visible":true,"text":"5","id":"4285525055","is_na":false,"weight":-100,"description":""},{"position":7,"visible":true,"text":"6","id":"4285525056","is_na":false,"weight":-100,"description":""},{"position":8,"visible":true,"text":"7","id":"4285525057","is_na":false,"weight":0,"description":""},{"position":9,"visible":true,"text":"8","id":"4285525058","is_na":false,"weight":0,"description":""},{"position":10,"visible":true,"text":"9","id":"4285525059","is_na":false,"weight":100,"description":""},{"position":11,"visible":true,"text":"Extremely likely - 10","id":"4285525060","is_na":false,"weight":100,"description":"Extremely likely"}]},"page_id":"165250506"},"emitted_at":1674149694476} +{"stream":"survey_questions","data":{"id":"652286719","position":12,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"In your own words, what are the things that you like most about this new product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286719","page_id":"165250506"},"emitted_at":1674149694476} +{"stream":"survey_questions","data":{"id":"652286720","position":13,"visible":true,"family":"open_ended","subtype":"essay","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"In your own words, what are the things that you would most like to improve in this new product?"}],"href":"https://api.surveymonkey.com/v3/surveys/306079584/pages/165250506/questions/652286720","page_id":"165250506"},"emitted_at":1674149694477} +{"stream":"survey_questions","data":{"id":"667461858","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vprw9pgg3d xiygcvd0suru k7rews838g6qc ndsukv2 7sa31urnvoskixw c52sg4uoete874i"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461858","answers":{"choices":[{"position":1,"visible":true,"text":"m5kpo9621yynjey kdt5w6pkkit yqyocxqf yw1p3uh2e5b 7gtmvs4 6em5ugqat x6pmhcfrvq4pit t67pif54aj jbgure","quiz_options":{"score":0},"id":"4385175366"},{"position":2,"visible":true,"text":"usdfft kvi9yqh1m38w3m 6uxryyvhrk1 nfxlt gnhjy826e rqks3jjuyj9hd 3y8755o","quiz_options":{"score":0},"id":"4385175367"},{"position":3,"visible":true,"text":"m6xv3yca7 up9u0qwx23h2skj 0cjlw19k5emypgm awi5tg l9atp kv4jrd73y9","quiz_options":{"score":0},"id":"4385175368"},{"position":4,"visible":true,"text":"todhc7 krw2v8qa rt2iu19vhxyw1dp x6oav54yak4vj yu4le2fc7 fksvl ejbr7x2u69 k9n9n7g3f","quiz_options":{"score":0},"id":"4385175369"}]},"page_id":"168831415"},"emitted_at":1674149694578} +{"stream":"survey_questions","data":{"id":"667461861","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"rl3uabslq46p mnwh0fle3xfs ejupx8e26q55va svfm11o"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461861","answers":{"choices":[{"position":1,"visible":true,"text":"m6g15xqsuwpbh3 x0116lkpod 5vkgg7duiq23sp ot884xd67v6fv2q 1u2mpgo ttj3ehahbljf1j6 pwj46w1d","quiz_options":{"score":0},"id":"4385175380"},{"position":2,"visible":true,"text":"cuff7 mbn2k1hxd6n6 jg9kffdkccjh bpodqpt2wtxu 7x38qxmvg42ap qpv0cddfumvix s0vv161iytceelx","quiz_options":{"score":0},"id":"4385175381"},{"position":3,"visible":true,"text":"jm5q6yu4rn pl8wwv23lnxs ou5r8m3np4fis6 6wlatg yeh3kafns0 h8u0o8f yhqni064ev6","quiz_options":{"score":0},"id":"4385175382"}]},"page_id":"168831415"},"emitted_at":1674149694579} +{"stream":"survey_questions","data":{"id":"667461876","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"hn4xnf ox0joj4inoy6ja jh02428n qeqxm9nopevjca sccwladi v63ks6mdqf0h0 4pug94eya 5et1g3t4 exbryyy6hv9mvd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461876","answers":{"choices":[{"position":1,"visible":true,"text":"w6nvr mkrj8q1g 740smg3nda m3afibg8 224jb59fon975t w9t8ma","quiz_options":{"score":0},"id":"4385175447"},{"position":2,"visible":true,"text":"cerw942pk xv1wg4gk4l7jq q3grdgasaol 75ghj ppo6ivm3r hxodiktx9rxs","quiz_options":{"score":0},"id":"4385175448"},{"position":3,"visible":true,"text":"5os82a1jwgygye 61dhsf6v sgy0ui7ib78ws7f j3pymv","quiz_options":{"score":0},"id":"4385175449"}]},"page_id":"168831415"},"emitted_at":1674149694580} +{"stream":"survey_questions","data":{"id":"667461897","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5a32s3dhl a967a54aoj3cr ttu0uk4hu4h1 r360wdohq1x9xu7 qvqpg1eb6qg3 01ogn ucbhive fpwstwi6hre0ynb xu3c3txpma7eoh3"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461897","answers":{"choices":[{"position":1,"visible":true,"text":"6gngt 5w10n7fl47r07 68t8t79 66pqqth5urrw 1ve2kn385x0u9s 99vcfs08at","quiz_options":{"score":0},"id":"4385175533"},{"position":2,"visible":true,"text":"pnwrx dwj1dx dpdan1wpqs 9lhgks36 1w8a2utjbxas31t rlc1u51mdpjr 90tcj6i8ibicvxt q1ahtd2x doujpba kjjjdi0","quiz_options":{"score":0},"id":"4385175534"},{"position":3,"visible":true,"text":"wu74ewyb4grv fqb8h3yoldsn 0nxv5844yn0lpx jct7na y9sp3u ueq7vk83ix7g7sx f5sl73r2r29e84","quiz_options":{"score":0},"id":"4385175535"}]},"page_id":"168831415"},"emitted_at":1674149694581} +{"stream":"survey_questions","data":{"id":"667461902","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"sdek6wejcdn 82r223sfhy6xkm5 65gns2m7phi 0fx8dx5bp psvndjnn5b 5kki467 a8faadeid0gl13 x2t3e 03xco2 cf39nv9mdq3vj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831415/questions/667461902","answers":{"choices":[{"position":1,"visible":true,"text":"nfiq0 d7gwft9 8bhinfrsv6r6 k3vylofokamx3 9hrik k2ageb5amyj89a toli0yrsq bqbrcp","quiz_options":{"score":0},"id":"4385175559"},{"position":2,"visible":true,"text":"8c5qdiklqb8tb 5uhc6w1a1o9 er8h4w0mf779o 14nsksqs65j10","quiz_options":{"score":0},"id":"4385175561"},{"position":3,"visible":true,"text":"5wpggsufojm 4decq179m5 0brpk1la0kyno e8ctqi fxa4j0uo9atp","quiz_options":{"score":0},"id":"4385175563"},{"position":4,"visible":true,"text":"5it4y4q 49im15osxk2j0 j8twpv8j nei1egowtm9a lyrigqwu0eby tpg5o7kuvgn34l spdu5icxlc 2f4qf qb55g 8si14ri4bdw1v72","quiz_options":{"score":0},"id":"4385175564"}]},"page_id":"168831415"},"emitted_at":1674149694582} +{"stream":"survey_questions","data":{"id":"667461933","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"4vnmxluvh7a l8s5r0i5ck pa7pckqf tnah7fan76p38n8 m1i5r ea9ib0t823amcn k98290k23wh7qn"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461933","answers":{"choices":[{"position":1,"visible":true,"text":"aldwijo3p9mh3 v26dql0wbrctg0 98sqogqfmi2 558gsvip","quiz_options":{"score":0},"id":"4385175732"},{"position":2,"visible":true,"text":"c5fqe o43qm3oq9i 23qgoxg85 cg5hr5wj79469n 328j7ji1kugb 60jlwtbu4eoh63 alyho5","quiz_options":{"score":0},"id":"4385175733"},{"position":3,"visible":true,"text":"882jtclxvq15yk dgive oqhqdf a8a2rgxse4b8fw 87oeyfbk7 wcevsx 4mv1lyp6lyxysrm 3m8yayarq7wm 9bpmul9 el2j1j4yw","quiz_options":{"score":0},"id":"4385175734"},{"position":4,"visible":true,"text":"3so1buxa 88ypp61nq6bhi0 lwa2pfg6tg lra8e1r5bn4k umstgwdck9 wslq681gvn3g2f a20nr1eovr3 feo0p5bqbgrcvun np851e23cojfv1 uqlwg","quiz_options":{"score":0},"id":"4385175735"}]},"page_id":"168831437"},"emitted_at":1674149694582} +{"stream":"survey_questions","data":{"id":"667461934","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"k6ba3wdl 6c0nvj5es h0dttl3krobdcd va6klkdyf 79e2a lhmov"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461934","answers":{"choices":[{"position":1,"visible":true,"text":"h8dywnj ithq4el 98e20manw xxyp0f9oike55 t56arby dhmmxh4pehs","quiz_options":{"score":0},"id":"4385175736"},{"position":2,"visible":true,"text":"14p6263c 7khx2y rpjy6432cy7kkr 0po0vol3uk1cuf 1oejmy viircj9b nyw76yqpf","quiz_options":{"score":0},"id":"4385175737"},{"position":3,"visible":true,"text":"vtdf2x 2kme3 vhpqi5s82k7v4 1mjr5r jp0ox03i6t d5ef5228du3ck 536btd7etv","quiz_options":{"score":0},"id":"4385175738"},{"position":4,"visible":true,"text":"yt2e6nk6 v2wl4k047h1n5 civs8 tjjr7lkeay9i3","quiz_options":{"score":0},"id":"4385175739"}]},"page_id":"168831437"},"emitted_at":1674149694583} +{"stream":"survey_questions","data":{"id":"667461936","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"u1jbhrxyrg30ra9 qs6b5m237lag 7tlvv 05okuge2imipht bg813 hixvf9bd9n10gk lwxdjnajbu9gsra uyh3fjd40bs"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461936","answers":{"choices":[{"position":1,"visible":true,"text":"yl8yqqhtr9rxi 049x312 oogub1figyg4e tixix79g85hxi2l bin0fp5g goq3kwu2eaase x9mihu0erdhl9v4 4yausp34y2rgyx iwyfuo4b7yme8lr","quiz_options":{"score":0},"id":"4385175740"},{"position":2,"visible":true,"text":"gfqbxk8 3tosymacon00av uoxydvdy28 iuce5bjdvpg gwxdpkudg24ouk u2ns1u x10hujmiiy9l62i soln75a14nm8q0","quiz_options":{"score":0},"id":"4385175741"},{"position":3,"visible":true,"text":"j299iy64y804 k709a5kk9 yjsifyt4ksu b4fnp4a","quiz_options":{"score":0},"id":"4385175742"}]},"page_id":"168831437"},"emitted_at":1674149694584} +{"stream":"survey_questions","data":{"id":"667461937","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"06qgl j7f89g3 5ok0ilvhvpa ojcs6ixbovvf u6xympul0 o00vc 6bjg7jmvy9s 543ndxd jmugw njqhxa3phj4jd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461937","answers":{"choices":[{"position":1,"visible":true,"text":"5v1hangb7u0bj8 44xo3y4o inytm95s16m dvn5e2leb6sf7 hamaw8l538eph 6xuyp5030i538c 0ym6m831 duar0bo76 kl36ykf5w9ugh","quiz_options":{"score":0},"id":"4385175745"},{"position":2,"visible":true,"text":"3iiaxf5dgi tr6crqs i51ocgg ka1ri0ffd8xeh cv12807q5pq 7fmq8lxy7 5wuas7gcn4kln tv6mf3pqq4jm x3yfr sm7idq2nvoonk","quiz_options":{"score":0},"id":"4385175746"},{"position":3,"visible":true,"text":"mj5cmssx3htoni ld622ppaiqr uw63p1q4up3 lfxioj94gd3jky0 2tj631 5ql6116xsyp r5hwhy2","quiz_options":{"score":0},"id":"4385175747"},{"position":4,"visible":true,"text":"llb9oe7fk8v3w4q xpd66rgbyp9m 0opo19df7n6 scr70cg86pn o1qtr7rclqxjl kmpnf79790 6wmig6mjwflh2vq 1oe033jyd","quiz_options":{"score":0},"id":"4385175748"},{"position":5,"visible":true,"text":"pg851 mju7py cdp1jqcaeg66 3gv05ohwromt u0uot","quiz_options":{"score":0},"id":"4385175749"},{"position":6,"visible":true,"text":"mu0hn799v 4ch8i7j5o5tf8s 6rn9y0ft67mchc u5ds14s9 aj1qg26dwf41suc i1mdhdk","quiz_options":{"score":0},"id":"4385175750"},{"position":7,"visible":true,"text":"6w4xjejtc9j 50n12 u1cdbulvkqykvci x79sdq9y hmbem37x7 s7pwufdjnmn xo8qy81a3fjmv","quiz_options":{"score":0},"id":"4385175751"},{"position":8,"visible":true,"text":"k582dst vgjvse b2h3mxi dteo4p9lrtx m54ug","quiz_options":{"score":0},"id":"4385175752"}]},"page_id":"168831437"},"emitted_at":1674149694585} +{"stream":"survey_questions","data":{"id":"667461986","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"gjahy0fl7 fs6b3q6e7 rsvbmotgt9p7 w9l2l7 hvj8fhrqwc vays8 4yh7qch hjj5lx0 co6a5rqd 5pt79or0a7evc"}],"href":"https://api.surveymonkey.com/v3/surveys/307785429/pages/168831437/questions/667461986","answers":{"choices":[{"position":1,"visible":true,"text":"b7fbynqu hwhvtbqwbmxy 9bjgxs1 1e05mo toj685p5v w34e97j","quiz_options":{"score":0},"id":"4385175878"},{"position":2,"visible":true,"text":"n5e5yl9c6 yw12588olh swl7nwm1dl9n2l 9v7n8wursm6739 p67woq9u27w7p y3ge5y1iji819g7 uklmy7q8 7ocv68por","quiz_options":{"score":0},"id":"4385175879"},{"position":3,"visible":true,"text":"h08nyyi 1393hst fcdij6j yepfw2","quiz_options":{"score":0},"id":"4385175880"},{"position":4,"visible":true,"text":"rdme8pwwjl07 4ju4xn47ofvbj i31u4ty4f4 wteatx2 gc3nqgji pu9h7","quiz_options":{"score":0},"id":"4385175881"},{"position":5,"visible":true,"text":"jxkod8gx x8tcsxxle4f0lv4 vcmjicpk7v i19dxl3 3lvmmdkx","quiz_options":{"score":0},"id":"4385175882"}]},"page_id":"168831437"},"emitted_at":1674149694587} +{"stream":"survey_questions","data":{"id":"667462078","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vrwr5e5qwxqu4 mn9jcdpf 0e5u3k ansge 2hwkipig u0wn3acc2sct xnv4y8 3irjcv i0cgva8762tfosw"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462078","answers":{"choices":[{"position":1,"visible":true,"text":"55yvst1hihf4br ialhkcxm73fjln 1lelxuw93g0 nukml0","quiz_options":{"score":0},"id":"4385176721"},{"position":2,"visible":true,"text":"okdweedyn93 mua59r2l4haj orem637bgltyb 7jc2yral4o8qov j15ry fkkgjxdea rjd297yot eq57kefir4if3c 2l098 ech2y5fv","quiz_options":{"score":0},"id":"4385176722"},{"position":3,"visible":true,"text":"b3sgu7kkbjowg ux7qqyw41yb umfqpq6 dfgu4awr uy2i4j626 cb17jp5xal6","quiz_options":{"score":0},"id":"4385176723"},{"position":4,"visible":true,"text":"5igq4pw5ul la3i72sh30 uk24o0qi jh51hl9s3a43s 9tgq0ip8k1nev ar6it adgfobu491 f8qke95 o2f9u2ubb49t28c obyoj9cfsl","quiz_options":{"score":0},"id":"4385176724"},{"position":5,"visible":true,"text":"r73ge7qkd8mjfu d7kdhfmco d0pcoyqqyjrph4g 06xs83492x 5ajmrgy1 x4ev3aroh9q86r gwiu17g02i6h75c np3r62er4x5n 73hbkk43af 7f5b333hk7tkc","quiz_options":{"score":0},"id":"4385176725"},{"position":6,"visible":true,"text":"vo6u3 9gpy2s57xh u8dcib 4f8gbbng3wq0h36","quiz_options":{"score":0},"id":"4385176726"}]},"page_id":"168831461"},"emitted_at":1674149694691} +{"stream":"survey_questions","data":{"id":"667462079","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6d3w2gqt8056 h5vl4u3kcuvlqc lk2ip62d kpkowwj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462079","answers":{"choices":[{"position":1,"visible":true,"text":"agvpu24j1 g51hr01jbjsk vw6gq cftg9oeklijpda qbibhtf35pl4gtq wu48wsd5 c6jifqlyt4e","quiz_options":{"score":0},"id":"4385176727"},{"position":2,"visible":true,"text":"4kbb46n 0vmm0c4we qwaiv1f731l y8iaiu3bkcb6 loqrsy","quiz_options":{"score":0},"id":"4385176728"},{"position":3,"visible":true,"text":"rwm2cgejb qc4g9 7y68obgewd fou0um xh7dkb89o bfosq3 v9bdp7s9450","quiz_options":{"score":0},"id":"4385176729"}]},"page_id":"168831461"},"emitted_at":1674149694692} +{"stream":"survey_questions","data":{"id":"667462082","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"dvpu842k yh6g475bbwk75 qtkq7f5yd01igo ixldsnn uqbpr ngarg6pf f6ueafaq 4ch8dhr nqsm5uydajns9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462082","answers":{"choices":[{"position":1,"visible":true,"text":"hfrp92k576cl 4yjdkhqj0vr9 qx16a oc86p8hhonp5xs fn4lo1wmewe5n7 sue7kinfb6 8qpyh auccq7xlw1b","quiz_options":{"score":0},"id":"4385176734"},{"position":2,"visible":true,"text":"lqon4mp qhj98iee7o 37f50nvkrs3va 18vxkbch636kh yn8ih 8jxqpq03v 6j5lurdu7c17 knmjb3 0868hyuu7","quiz_options":{"score":0},"id":"4385176735"},{"position":3,"visible":true,"text":"obj26 pb0pwmt gxvk8isp04c42 77ocbs1 y7jyxsbl vbbtsy d1t8el31vu7x6d r44iyhr2y810o0o","quiz_options":{"score":0},"id":"4385176736"},{"position":4,"visible":true,"text":"yebv8qvq dd5qeecs45k 2un02jrywfqf1 u96tcry54cxiyu mnbgr2mqe a43wm7 1rnggj b99hudv2g0kgor","quiz_options":{"score":0},"id":"4385176737"},{"position":5,"visible":true,"text":"b6v1txm65a40 h1sah8 84enie0e 57clim 2eew4","quiz_options":{"score":0},"id":"4385176738"},{"position":6,"visible":true,"text":"d88o04mls0oddci d61gj k4acpqp r3ugg2t1e55s ldb3ll5gjkn ruerq4w4w95j649 c3bea007si4t 4jp1ctllptvfao2 m78584fllehmi b9fpb","quiz_options":{"score":0},"id":"4385176739"}]},"page_id":"168831461"},"emitted_at":1674149694692} +{"stream":"survey_questions","data":{"id":"667462084","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"n6y1nnlv45movkl vkjge u5wp4unnsf cp6y14e"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462084","answers":{"choices":[{"position":1,"visible":true,"text":"2ak2bbt6l 958nphvdetkv4 ycoevsx u49by0 eohbcorqyd2fk","quiz_options":{"score":0},"id":"4385176763"},{"position":2,"visible":true,"text":"6lnrx0h 8rtivmuwxpy8wv ebygucb3xu1m42 iyep7ijy4gu0mvl s1oco7cxc0","quiz_options":{"score":0},"id":"4385176764"},{"position":3,"visible":true,"text":"m5ysyahej9ffbl hiob9pqg7je5r oqyup1bmda i142y odbg2sgkibp5a5n","quiz_options":{"score":0},"id":"4385176765"},{"position":4,"visible":true,"text":"r56bqr7ts07qj7l 0odv2rxnmffpw ctmr30tp61ibr l64xab0cs nmqjd 21rw3b cy2xks0me55b05","quiz_options":{"score":0},"id":"4385176766"},{"position":5,"visible":true,"text":"wjnn6f 4at64hj rif45s1bu9asypf vmjw8wv55isa 87va6t705w","quiz_options":{"score":0},"id":"4385176767"}]},"page_id":"168831461"},"emitted_at":1674149694693} +{"stream":"survey_questions","data":{"id":"667462086","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ikhsonq7 fadyfis1w 1qmo7d2wgcq 5nht9h9j esydnd1m a5ehikxk6ypubk dtanss721p6"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831461/questions/667462086","answers":{"choices":[{"position":1,"visible":true,"text":"3p8dvrh6lr0 iejlsiah ch3n24c7d9tt 7w9rvdkxpqe8xh fo9jq7k8sa1 er31i44d633 xurs2ie khm8mmp5d8gc9 egn43 86jj22","quiz_options":{"score":0},"id":"4385176918"},{"position":2,"visible":true,"text":"r5qhjy06onu7loq n6htekeur 2xm1jh99 ibsp4oat8878fy 940xq9 n4tmuhn e5901s317nbq pevqvednus0ph8g","quiz_options":{"score":0},"id":"4385176919"},{"position":3,"visible":true,"text":"at4b6f9tud4tvpl uf1d5p jgci9m0u17qkj 8tmdkc9o lb7b63gth6 6ds89i5 uu91pd2ybc wwk60i ntwtf5enlg5h8o","quiz_options":{"score":0},"id":"4385176920"},{"position":4,"visible":true,"text":"ovrn2np gg0nxt88wji6fp ckphrf1l3 0um296qkhvgh","quiz_options":{"score":0},"id":"4385176921"}]},"page_id":"168831461"},"emitted_at":1674149694694} +{"stream":"survey_questions","data":{"id":"667462094","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uhxc9mpgrh9c9aa 05iqvfqi y8rip1qcmmxh b8jj5k cavri2y5 1sqge 7ywuxm3awoh ddul9pvje6dcr kggd2y4"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462094","answers":{"choices":[{"position":1,"visible":true,"text":"t30umxtof3b6e 9o88p i9hcrmm57pq42 16pnnhw idraibx70sby1i","quiz_options":{"score":0},"id":"4385176959"},{"position":2,"visible":true,"text":"xnxw9wa4fo 157vk4i0d 1m9fluu gmmy39m41 icu2b548yd9p3o 3yj0tyamvyjci1 1c19qkbuqb031r","quiz_options":{"score":0},"id":"4385176960"},{"position":3,"visible":true,"text":"ehjwxib3hha9 bjj11etv shhdikfh1iy0u nioigschrcpqi2 v7mgatm l98c4no7k9 bf2j11cmi1dgbt2 f8etga4g kg2w2yngt62","quiz_options":{"score":0},"id":"4385176961"},{"position":4,"visible":true,"text":"uyqt6g2o61rc wcwn8q7ohbhegr wtwkdefljgy uli9v6","quiz_options":{"score":0},"id":"4385176962"},{"position":5,"visible":true,"text":"7pg26slappuq1 aw3vsgc4317be eqe9a8v6s5whg0 dvrw9imoe o9wl91vi282 4h7f26","quiz_options":{"score":0},"id":"4385176963"},{"position":6,"visible":true,"text":"wjipnxgtewp8r ddtad8 yqo4rj5x657nge ykw2qghp3e r3tqrvk1m7l ir60pwi5g5 h7exqf4","quiz_options":{"score":0},"id":"4385176964"},{"position":7,"visible":true,"text":"aafwgbh80 ip6mgadg 8ls8v4ss2fk4y s19ti1jvfnaey g0v4qdn ifk0ve j2trlbjolhuc3 op07p93t1xsh0 kqiw7s ktofe9muryqxe","quiz_options":{"score":0},"id":"4385176965"}]},"page_id":"168831467"},"emitted_at":1674149694694} +{"stream":"survey_questions","data":{"id":"667462096","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"hh8r3c6evhaj2ug 34w4tpf8 b41jtyj tn7vh1hwl 7rrs5 p5rct6v9pg7k 7nw3etg9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462096","answers":{"choices":[{"position":1,"visible":true,"text":"4jlthohsbk gq1uy9yt 83htjom d5udup0g0jfsido a6nxtc2vkdn 7tfgt9 6e6wsq","quiz_options":{"score":0},"id":"4385176968"},{"position":2,"visible":true,"text":"nt9b0e1tk eq9ckgs2u2fiu probh n7929oe950jcs7c uvdxlffx66obu 6oschegtcq q2a7d hwp71gp7 s3b03f5p3g24h","quiz_options":{"score":0},"id":"4385176969"},{"position":3,"visible":true,"text":"u1p9r on01v021jli y4n4d2gpcbvk fe3y53pjwje6ms atckrpa2r44f 5lkaim1 coo8gs4mer wfbusogrereep 3r2i1qlkh6097d1","quiz_options":{"score":0},"id":"4385176970"},{"position":4,"visible":true,"text":"i4liv68323s xc5i56ba5pa osxulquad221n xbmov jnhv1ogkdw9","quiz_options":{"score":0},"id":"4385176971"},{"position":5,"visible":true,"text":"tlinp 6b4ig tcw2f9no5xm7stv qv6l4foeesgh","quiz_options":{"score":0},"id":"4385176972"},{"position":6,"visible":true,"text":"jfxlbnonc tee9khi75t0ah wr83dgnnsc0l pvyf5t266eq1ev","quiz_options":{"score":0},"id":"4385176973"},{"position":7,"visible":true,"text":"rv7aly5o19 y3hvj5byk uojji58u9thv w8dnv stba3pan 5yho9m1f3o097n7","quiz_options":{"score":0},"id":"4385176974"},{"position":8,"visible":true,"text":"0kmmyvxkq0ixg wmm2bnydk3xg nf2e5e3fn4e 0jd59 tu9bib d6i9t6 3ikku8yd42gnt 0uusc9kip2w","quiz_options":{"score":0},"id":"4385176975"}]},"page_id":"168831467"},"emitted_at":1674149694695} +{"stream":"survey_questions","data":{"id":"667462099","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"952l4noismh4 jwlr6yhgbpo 9waador5oikm xg4aqk0w5o08j 7bg3d02bw22df 84xdy6eq34snqhk h4ngqp6rpih4 9jevsisqvxcv"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462099","answers":{"choices":[{"position":1,"visible":true,"text":"lknhasa3eu03sf p1uflsed0h3sr q1b0gmga v8swv5rbv","quiz_options":{"score":0},"id":"4385176976"},{"position":2,"visible":true,"text":"u6hdwwqb4cc84s8 8jo8vmqx7 klsxteic7f 9m3mg59ov s7npsi1 89i5dq8chb 919k2r7u0t","quiz_options":{"score":0},"id":"4385176977"},{"position":3,"visible":true,"text":"xjpll0bpay536 2ex024o9rd 7boywqww rktvkxinf9fmoh 7d9cb06es933e jm2hsgge2cjy5jj 1ecnm8shkp a3flgyb gcf1622ijpsj ydnun9wos44","quiz_options":{"score":0},"id":"4385176978"},{"position":4,"visible":true,"text":"n7q0ogrerpn8dl qmip86lbe sl1xjutnlap7 3bov7 5fihf81ek49s 9p0f4 r1rptp","quiz_options":{"score":0},"id":"4385176979"},{"position":5,"visible":true,"text":"kwdbb5 hi349arw9 r2f0df eee097e k5035hpewmi6 ky0f9 kh7oio2u0bilxue 5l0moimxob7fid oeno82n5rkplm6i","quiz_options":{"score":0},"id":"4385176980"},{"position":6,"visible":true,"text":"finhomjk 48ciiw7x1g2f c50x4 9kenej45r","quiz_options":{"score":0},"id":"4385176981"},{"position":7,"visible":true,"text":"e7ravpe7reoe5il 9kgwh794cl9x0w snp3wnpq1ryga p4vpk03q7","quiz_options":{"score":0},"id":"4385176982"},{"position":8,"visible":true,"text":"ao3rdw8o5r0xvy x07pd7op60cce ylfrtqpvu81e3u 3f7jtv448v mfoeywlt","quiz_options":{"score":0},"id":"4385176983"}]},"page_id":"168831467"},"emitted_at":1674149694695} +{"stream":"survey_questions","data":{"id":"667462100","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"onm04qqjiu e5hh4bm1nrm 4lql830cednt4y m4vd6n kk1rvup ghucvtc uw8xrjg6 u6giu1qxo oywqk5fc4elxs"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462100","answers":{"choices":[{"position":1,"visible":true,"text":"n66vr4n4vn w57cw3jovcl9 9xhjvp8 mkuivep2954e71r","quiz_options":{"score":0},"id":"4385176986"},{"position":2,"visible":true,"text":"dncqrcm vkp1wf2u0d9j 9o2d4ag7rwt827i wo23d8v14j1e3p 8wty8ixwwhnc6 huw4we49ag40 fruxk5p9080lxhb hjvf468vja8rcxr","quiz_options":{"score":0},"id":"4385176987"},{"position":3,"visible":true,"text":"54u3kd450tpm i9jjwlr8r3xbduw 3k1ic1tg4 4tijdweafs ypprmy7wcpxeg yvvc4l19sd5p gmleu45","quiz_options":{"score":0},"id":"4385176988"},{"position":4,"visible":true,"text":"a1hrtqesu1ph 88spqcx6hyo7 dt64okx798gal cy3tbwljajmrr","quiz_options":{"score":0},"id":"4385176989"},{"position":5,"visible":true,"text":"ehg03 uyx121pwsyo 7rhvgcdfy2st8p 7ahaiboegtn5kd iu8bkj3imm3eo8d k2s2gg4g 2ys9hfx 8vpui26opm6n vsf5rfq6tqi2 jwxoe4suo4","quiz_options":{"score":0},"id":"4385176990"},{"position":6,"visible":true,"text":"c7lxx90luvc6y ogvbopnx 12v4swfg lofg3gcj dq1r6s8ptp5qho h04pqe67tbcnno xhyh0rp62kqkb dvtuwyu u89ppkdl876m","quiz_options":{"score":0},"id":"4385176991"}]},"page_id":"168831467"},"emitted_at":1674149694696} +{"stream":"survey_questions","data":{"id":"667462102","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bwurewbkcd12 acvusgq 3u00c224nnv iyfj31 i9qtkl9tolx2fjr"}],"href":"https://api.surveymonkey.com/v3/surveys/307785444/pages/168831467/questions/667462102","answers":{"choices":[{"position":1,"visible":true,"text":"m6ihyhdpxt1 0xf9391 y8wvcnlw tfvxn6m 0bswb5w5p4","quiz_options":{"score":0},"id":"4385177002"},{"position":2,"visible":true,"text":"2kdjxc93o enx72tbxki oj43409eg90kt1 5fbnj d8rvo5c7a7vrgf 3c66h1 guo3c x6uv8kl qy0ttl 8r8dgqope","quiz_options":{"score":0},"id":"4385177003"},{"position":3,"visible":true,"text":"h3292 dtp4cjf11njvbhh huvgv1 onie86 tvdr09jg2lvp","quiz_options":{"score":0},"id":"4385177004"},{"position":4,"visible":true,"text":"16ua2fvav 75q7b2odhv fbw0xrnfn 2t3ivdrphr agrq241x d447hwdy rxa3g9gwe23","quiz_options":{"score":0},"id":"4385177005"},{"position":5,"visible":true,"text":"1dl0nhl0bx 7v1hc ooiv3gogf nxecupy","quiz_options":{"score":0},"id":"4385177006"},{"position":6,"visible":true,"text":"97geexnx4ussry4 s2x8sduenrfgwq y4s8f5v e6nrx0st23b f1xq1ax2xwl6yl c1to792d3i l0aq9 92s0aix8l31n5 qnnn38brgah","quiz_options":{"score":0},"id":"4385177007"},{"position":7,"visible":true,"text":"cg3w94v47ecgrik hviug 5xub14 808gw4 g0j3vn 5y58dv7vn8r5 xg72mp91 2l4ubwdo1wrw0t6","quiz_options":{"score":0},"id":"4385177008"},{"position":8,"visible":true,"text":"t92n3lmvuxaf5o5 29jh4afc h2wvqr9xf1q4w 27xf5d9ij1on qvbuiu7 8oghx0dt3nr5 g1mw6f9y6 muu0hhili","quiz_options":{"score":0},"id":"4385177009"}]},"page_id":"168831467"},"emitted_at":1674149694697} +{"stream":"survey_questions","data":{"id":"667461468","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fn1i25upg io6aniuf yrrrp8vt07fo19 48d5ol09146s8m ldy0ebojp819g"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461468","answers":{"choices":[{"position":1,"visible":true,"text":"t56ghqeix s9huggwiub4 7tqxa1m0h7kj5 yk8r2 0f65tvl3fnpo 0gebiihpxcovnht","quiz_options":{"score":0},"id":"4385173226"},{"position":2,"visible":true,"text":"5o75tse0c okpssn319qiklp 5uyby90fx7n slfgxco07i ejp0kn xmr7ghykkxbypc","quiz_options":{"score":0},"id":"4385173227"},{"position":3,"visible":true,"text":"qe6tkjiccorb lxdmlb30 jmh6j4d6p vces42b344ry gbgmssamx0tvcs 785dl brkbvpl3ctq4nj2 yjjy0hh9b4sr yq2v7lhwtje33x2 7pbqmqgul4gqg","quiz_options":{"score":0},"id":"4385173228"},{"position":4,"visible":true,"text":"lyn712e8uyrrar 0qvy855feo 5l3egg 6t5uin58qrj1hj","quiz_options":{"score":0},"id":"4385173229"}]},"page_id":"168831345"},"emitted_at":1674149694802} +{"stream":"survey_questions","data":{"id":"667461471","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wcrsas 0v14j5i3e8eb2an ymydb45sqwsn g8j35s649o3rq g582wdp eoraxaf8dc7gf qtdw5a27iucmesj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461471","answers":{"choices":[{"position":1,"visible":true,"text":"nd18cy2gv u2bvpyki k0f38w8 qtlqut6ttsdyk83 pptqq84jmec6bfd a1aks3iy0i oykgg4gv0 busn0o8cc","quiz_options":{"score":0},"id":"4385173236"},{"position":2,"visible":true,"text":"mbd0ll7jes0qm 02w87s60 jslfxkj7yeh1 ol4yj 405yk1b kddsvxnk4hsw7 v1t7q9h8k26rt","quiz_options":{"score":0},"id":"4385173237"},{"position":3,"visible":true,"text":"jl49hsj6tjdf aq1njo56no2 f2gw9 eyqqekovg0c7ov kwwlc9b77 i4yu6aa7uxu","quiz_options":{"score":0},"id":"4385173238"},{"position":4,"visible":true,"text":"5v78pcotkwvvlr 7gvcf3xsd1s2 1y6oc8df 3n3f0 d3cg8ihr3ox9qdc rnyw7g 0lv7p6bka ia0p1tqjcew","quiz_options":{"score":0},"id":"4385173239"},{"position":5,"visible":true,"text":"xtha0tjj1 1j0vri su2xvilf9734 te51yhl03q558lc","quiz_options":{"score":0},"id":"4385173240"},{"position":6,"visible":true,"text":"w4st1 gljqfop06 2bu4fs7b fiia7kj22xl0i4v dl88vjnwo3pf","quiz_options":{"score":0},"id":"4385173241"},{"position":7,"visible":true,"text":"ivfna3y9ru jhxob vuncvdavfek1dsd 80ha2m2 8raod4lyb40 3r895onujni4onh xm9h0g6di g8e735xi ax62ju3eihf9a84","quiz_options":{"score":0},"id":"4385173242"}]},"page_id":"168831345"},"emitted_at":1674149694803} +{"stream":"survey_questions","data":{"id":"667461473","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"xc4wjnko0i6 g7p33u41n 1tjsntksw58hn4 ewweiwcgt 58rs9ek5qi1bgvx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461473","answers":{"choices":[{"position":1,"visible":true,"text":"t09fsskd08sl88r 36sh46a2jva sd91wxy 5dncy1vabsf yfkliw o2spc5k ud2oktdabb7bv l76he8ba3y6 1veap0sd vh2aeoqb5","quiz_options":{"score":0},"id":"4385173256"},{"position":2,"visible":true,"text":"fvdf828g92n4cr4 jt9qg8529uihyge n69seyn8haq ido6m3","quiz_options":{"score":0},"id":"4385173257"},{"position":3,"visible":true,"text":"4n2rpc6iv82cene b7pvp 9fakf0 qmfrbf3","quiz_options":{"score":0},"id":"4385173258"}]},"page_id":"168831345"},"emitted_at":1674149694804} +{"stream":"survey_questions","data":{"id":"667461476","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wojs6fb lri4g 9cd8kjrhy9rd3 j9s5e32o8i l82xpfkqgwhj jma6htdue e1kk3u071rcef 9ivvnisv asaqww"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461476","answers":{"choices":[{"position":1,"visible":true,"text":"j5lja4pu f0iq7pnkrk 9pra3hkah6abp 92wxt7ox6c dcukwklc k46geqe 2xk4g405p39t62 516tsgu xes5tkhjts","quiz_options":{"score":0},"id":"4385173268"},{"position":2,"visible":true,"text":"1l04q3mtxn75 t7ghyls2hqug j2hu42 uyoecoks6edsqns 57ya7vtyoyt u6k0gtnmf 1mm6wtektvp808 fkk89 qqprq k07oheboie1tfhs","quiz_options":{"score":0},"id":"4385173269"},{"position":3,"visible":true,"text":"9kvc37 gqyklsggws9 db070xge8y7fjr qmdym3ft1jp 5rh1txs","quiz_options":{"score":0},"id":"4385173270"},{"position":4,"visible":true,"text":"y9obh2bu8yk7e94 0ftyrjtcxhicd4 iobxi70wog4vf uokiplls1e ah0g8v mpsslhisijk lmomrov 07cfwh auqwaujyytig","quiz_options":{"score":0},"id":"4385173271"}]},"page_id":"168831345"},"emitted_at":1674149694805} +{"stream":"survey_questions","data":{"id":"667461498","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0tljucg0y3kh l2fh1q1i umeldoo665wgb 92c0k ldeevedeust7pg icrfpt7m1cq l6sfwhhk3vtql qpue297bcaeb7 yrn4gauy007n8q"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831345/questions/667461498","answers":{"choices":[{"position":1,"visible":true,"text":"8lcirsh0a t4ydqb06w0pqv 54k3qmnrjdyf j3ebgxwih2m4wa calo6wrbt 88n96xatpw3 hxaq56r brlwuuymmm jc5psliso3joc aoa41qwdhm0inny","quiz_options":{"score":0},"id":"4385173412"},{"position":2,"visible":true,"text":"bxc3u7guumu w525yaov3om5 3n0ld61 bhlpnw e252afl6giiia 56ybyswiyivgqs s1svdd30gf9kqks 522nxgw3obgj","quiz_options":{"score":0},"id":"4385173413"},{"position":3,"visible":true,"text":"dc3t2djjjqkvmfi cu7osl pxtlaevr117irr ji3qcr","quiz_options":{"score":0},"id":"4385173414"},{"position":4,"visible":true,"text":"qqr9ksi gob32wx p01fp4yqobput39 fryunx r020wh2ctxg 7hxy9g8m9m nuqel75h vwr1mjecaopo1hi o9fc3o","quiz_options":{"score":0},"id":"4385173415"},{"position":5,"visible":true,"text":"cf6162qvdywm crcubxjk5m5ju 7vhy5q5kj4j2q 5b55n9h w9v6c9n r7m6xx","quiz_options":{"score":0},"id":"4385173416"}]},"page_id":"168831345"},"emitted_at":1674149694806} +{"stream":"survey_questions","data":{"id":"667461513","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"18i8lhabavlr 32wsccj5f rx8pvk4unsgm7r s5x7es2uepdb 96xgtjo7voy08d7 n4e9p fayts khd1nb8pow rpjp6"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461513","answers":{"choices":[{"position":1,"visible":true,"text":"b0wj1y3wel57 ktqj3mdnpi dhr0k r3tasjvw 5mx1wclhjj","quiz_options":{"score":0},"id":"4385173452"},{"position":2,"visible":true,"text":"qott2n8w37qaai 1qn102yos4 imupcls4nm th4ob4","quiz_options":{"score":0},"id":"4385173453"},{"position":3,"visible":true,"text":"9uksb 862xwr8j1 6vxdyc4 goi32thkhq93 helvbkt266nnrw xvit2acd67olt pvvkx","quiz_options":{"score":0},"id":"4385173454"},{"position":4,"visible":true,"text":"ees3ivm7fphpd 9jj95pohh4 8sc972k8tyxk ge9j787 nxjkeee670jiec o36kcvbluxrp03 mb4e0et0qwqjxyc d13juonhq","quiz_options":{"score":0},"id":"4385173455"},{"position":5,"visible":true,"text":"294dtkjuyn ttbf6ikcy7s 84hmb t17hw 82aljhi8fwnf65 usuwl5d7ytrca x52ehyic447miq isobapv 3gkr1 2wphdit0p","quiz_options":{"score":0},"id":"4385173456"},{"position":6,"visible":true,"text":"nc1kush2rbxkqrr rhbdvjy xn4au2o0o94 xjq5ll","quiz_options":{"score":0},"id":"4385173457"},{"position":7,"visible":true,"text":"mh1igjt m7gteqlf8 q87g5gj n1g1w7s80","quiz_options":{"score":0},"id":"4385173458"},{"position":8,"visible":true,"text":"sfnq7n g13n21dx5cy aky2s t6h2y8j 5rbdufdcu7i ji8jgrcanxhxv piyrbdr72031gh6 7nna7 gn4gfqo3o 9tbatn8r","quiz_options":{"score":0},"id":"4385173459"}]},"page_id":"168831352"},"emitted_at":1674149694807} +{"stream":"survey_questions","data":{"id":"667461516","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"7gnta43 5s7jfw8axcw3tkf vkg8bmasyo6u 91wwhy c1pae9eu342 3tg0jl70wuoc9 yyxo4v8se myu4ls9xoaiqsep"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461516","answers":{"choices":[{"position":1,"visible":true,"text":"qfjo9n 5a7yv16lp71 ow2bbt3n2ke 0jb1xfpxf51s1u f4k77hkwmu wprku4 55311lxm0wcpw0 c53g4v24","quiz_options":{"score":0},"id":"4385173473"},{"position":2,"visible":true,"text":"j4n9jfdyr4cgs gfc0c a8trns3c4m 5mem4dona y097q wxpm5 q4gqos2ukx ufjxck1lmi1nn1","quiz_options":{"score":0},"id":"4385173474"},{"position":3,"visible":true,"text":"4kb04jje8c8d m12jddaa1iljt fr4qqhj 579w6 6u57xdn gaduvgl0u3 887ffq2vq9b58 q4r02mfsjdx6 3v8yskph8uyu srpxeiuxm0ber3","quiz_options":{"score":0},"id":"4385173475"},{"position":4,"visible":true,"text":"biom7l20wjpvl la1rwpf51ia1ex 23gosg8xvae87 ev2iaj4bo c2581d1re2 93rl9 tmj3467ajulb","quiz_options":{"score":0},"id":"4385173476"},{"position":5,"visible":true,"text":"om88wcjqp6f 5fn54j nmdg9 1sriyr pt6p1h4cm vkdmgxanhh 96847e1mgp l8b2t jl8oxa ifs1c","quiz_options":{"score":0},"id":"4385173477"},{"position":6,"visible":true,"text":"l8bo1yes158 w294970vmw33c yp6x582 6sa834 j86xhb qfm2f2 tj7gt7g xkgtymut","quiz_options":{"score":0},"id":"4385173478"}]},"page_id":"168831352"},"emitted_at":1674149694808} +{"stream":"survey_questions","data":{"id":"667461517","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uy1ifum6sjcimr he9dly7g it4v8exuhulo ffdod9aof90 9cdfum2phl11nin 5habw5hvuj9pqio ce6ftayekj"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461517","answers":{"choices":[{"position":1,"visible":true,"text":"gd5221owwi1 tjya80m2al3k62t xq0sa9fp leyp52b5ahghpaa","quiz_options":{"score":0},"id":"4385173481"},{"position":2,"visible":true,"text":"lk1rk9 94xju3kfoc1w5 8dybd90 9qdq98 rxu5edq9gs99 kks85ifc03qye","quiz_options":{"score":0},"id":"4385173482"},{"position":3,"visible":true,"text":"ykpin7yh wv14vdjfwf0l 295s1en8cwa2 s6vafhu1fops 8k2vvkt9pftfc2 d1jxuoudjb 614hx251hr6fouy x3w49ql1 7b50ohc76","quiz_options":{"score":0},"id":"4385173483"},{"position":4,"visible":true,"text":"dewxv4aajhaw yij71ndhch8 76bjhg71csdc4w 5gn1l cmu7yo vdn7mtuy 6oplwmikjyvv1bi l3kw7j","quiz_options":{"score":0},"id":"4385173484"},{"position":5,"visible":true,"text":"kuoin09q0 lm3vqjykpb ji7lrp5ylkt58 qb0mhh86kcgm crjjoqq gvfejauprgj mlsjegwm 7psv8r4tc4365j8 98t96g2ifjm","quiz_options":{"score":0},"id":"4385173485"},{"position":6,"visible":true,"text":"5c8y8 f7droof ha5vfclhyivm6kl bfylm txvwxasx1j9l qpyifm4y qwhcsobdo 3ui2qts 97h9i1v5jv5g7","quiz_options":{"score":0},"id":"4385173486"}]},"page_id":"168831352"},"emitted_at":1674149694809} +{"stream":"survey_questions","data":{"id":"667461521","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"pgb7ltsb96ed dep0echkqixfc l4rcb230c wl14ohr2hre1o fn94g0r87nde"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461521","answers":{"choices":[{"position":1,"visible":true,"text":"55yon1b4lyavl 6v6trvxwrc8 s1hwd2 d4hrxv9tbga9e0","quiz_options":{"score":0},"id":"4385173492"},{"position":2,"visible":true,"text":"x8ak4mn2 601o7cb6qnhxox2 k8q23 24nb8q6tx diuko kre6p82em vrf8yxch2 53klbp1xtber s29v8xwbiqm4s8 trwpy6qd1464q","quiz_options":{"score":0},"id":"4385173493"},{"position":3,"visible":true,"text":"s1pxp wsngl9et r2o40 18ltd3 r1b8qpyqskyx a94qup","quiz_options":{"score":0},"id":"4385173494"}]},"page_id":"168831352"},"emitted_at":1674149694810} +{"stream":"survey_questions","data":{"id":"667461526","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"q859nk 369qqyw7scs77jo 9ji0c9vow2uv yjucgiioytvwm x0x95w 222dyntjt8pue 1ndsg06k"}],"href":"https://api.surveymonkey.com/v3/surveys/307785394/pages/168831352/questions/667461526","answers":{"choices":[{"position":1,"visible":true,"text":"tnea3634 p2lnkyut0h yllu3g pufn062o 2etbix7jtgiqx4","quiz_options":{"score":0},"id":"4385173522"},{"position":2,"visible":true,"text":"0qf4fyco1ea itos8brey3wgkp xje8mlffe4m8wlv a9b44 jgmtf","quiz_options":{"score":0},"id":"4385173523"},{"position":3,"visible":true,"text":"hc4a1wgbqqryji 4x7enmw1nam8o1o yn3nxtni y7bwpr wm1oww66f5ox","quiz_options":{"score":0},"id":"4385173524"},{"position":4,"visible":true,"text":"0giuwu7l3v 5ufp8 u3mupcfr0 r8977cguqc2 hrfeq0ug7wo0 fjmkook g8up66tqb7shgg","quiz_options":{"score":0},"id":"4385173525"},{"position":5,"visible":true,"text":"xp5qsik ipf6q be83j63io 5kw68q bwb1mxf gt4l3besb ikfckl9f f3lgigcoib t8wa3hjgn00 csln5ikv2a","quiz_options":{"score":0},"id":"4385173526"},{"position":6,"visible":true,"text":"ai0mef32co1ohl qfwbhctboxq89ye u5v2kyq ebo7e 2u7q9yvlgd1oc 8uxx84l65n7lf0","quiz_options":{"score":0},"id":"4385173527"}]},"page_id":"168831352"},"emitted_at":1674149694811} +{"stream":"survey_questions","data":{"id":"667461529","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5c2dy1fcqn80 athbhqoadncx3n v1lt9m7799 6s154slj6ga"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461529","answers":{"choices":[{"position":1,"visible":true,"text":"rqa77mh3qxuc 6c5uywhchx1bgd f6or0t6s ds7hiuwb3bu9 u9x2d8hs 52pocgqntfeejo4 oaryhk woq1xb7akj","quiz_options":{"score":0},"id":"4385173536"},{"position":2,"visible":true,"text":"hxex6h1upkfw81 pad50wjl 8fo1fiqvtqfe 3xg4xms66g6l luckdtn1 udk8r284o iwpvh21 xotxpvww6p29 4gmqucj4 my8vynnaemow89q","quiz_options":{"score":0},"id":"4385173537"},{"position":3,"visible":true,"text":"jyb1qcl8o2gtte jlwtdhkxh65a9e q6xfymirg7g 24hkqyd0x0 9w4wb4dostk 6i8s8mh5 rxmq5y8ti r99xgye0urvl bdq2598nnha o6gaqqdvg5q","quiz_options":{"score":0},"id":"4385173538"},{"position":4,"visible":true,"text":"qtgjiim109 xoslnipbfe v28m271knt yquk8m2j96w6 xff8kw1 1jhr5l14","quiz_options":{"score":0},"id":"4385173539"},{"position":5,"visible":true,"text":"me39vca xqytbsfb 8uiad g1elq77xy1 tv88etyc gj1g8580e1lbmg4 bjnj4es","quiz_options":{"score":0},"id":"4385173540"}]},"page_id":"168831358"},"emitted_at":1674149694919} +{"stream":"survey_questions","data":{"id":"667461530","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"v2whrhb82ev kvvqlgl ek50nx1ar9 a7h4fo9xuaynt2"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461530","answers":{"choices":[{"position":1,"visible":true,"text":"e8nxccvdcdm 6wfcehdl1 o7g5ce64yvs efob6e 9bj7ny6aipb 4dc2wsqwtr6u24 xsxa081k8 4fyis3oyl9t42 lmu0hhgj4ok24m6 fg0p0lt","quiz_options":{"score":0},"id":"4385173549"},{"position":2,"visible":true,"text":"a5cw9gn7fy95q 8ui6bhr1j0djvtl sr2o8a3 kojha7w 1itxl7twgq avmrl2q5jbwds9 gva3tqhpgk8y5 v4aylod k5ci4cngn6h44jv","quiz_options":{"score":0},"id":"4385173550"},{"position":3,"visible":true,"text":"s3s7w5clw y2uvtas6qhvbk qc1vwrlyi2bk goqfgfe1 1ayx9l73nb78dq a0ykwprnx8gxm1 xn695vlym9rt4mk","quiz_options":{"score":0},"id":"4385173551"},{"position":4,"visible":true,"text":"c4qwlt8a dgnsqhqut5cy iq1htk kitbw 5mwuqxv92w70s c8hxelnesk 75craldvy4w","quiz_options":{"score":0},"id":"4385173552"},{"position":5,"visible":true,"text":"qp2pgo2f63 wmlcuryftjwedj yq0xo a1n5ayjf jikmqnf4mdbw 02r05wsu14a146b","quiz_options":{"score":0},"id":"4385173553"},{"position":6,"visible":true,"text":"ootl4 kp8ae6ggbjabg hgusbwsla83 rnl7dnuqo","quiz_options":{"score":0},"id":"4385173554"}]},"page_id":"168831358"},"emitted_at":1674149694920} +{"stream":"survey_questions","data":{"id":"667461549","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"sn8gp1r0uc1og wobjh 6x0e6t4wug m6466nxyawm k81p20 883oi8u wgeeiqdcmxwa1rt mc0fnojb"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461549","answers":{"choices":[{"position":1,"visible":true,"text":"wy826 0uog090ox923 2m3arldq 9v6wr7xwvxfk lbxye5v0svm7 93ji5 vkfvxgr7iy 1r09yxnkpjm23 0bbktk3rfg0bscf","quiz_options":{"score":0},"id":"4385173656"},{"position":2,"visible":true,"text":"krqy1l9f dj0wppa p93gk rvffc v6cfo0 o1areevq8 jbhm4t gcc224tu 3thelsk2","quiz_options":{"score":0},"id":"4385173657"},{"position":3,"visible":true,"text":"f1cpwqowl4ju9 43sdy2 qdqyqw17lxw2v enee166iohhy kq5khb6s r3pucoufnsh hrhcpt q4ukten6scjuvg ldvapiy bg61mb0pf8ofd5i","quiz_options":{"score":0},"id":"4385173658"},{"position":4,"visible":true,"text":"eq2hnewfaec e9jxrip xrrkl1wh3rbcx7 23t2bp5535o2e qwjbhf5051mi iqgykvmdvsbqr 8s3wwn8tqc513c 4q3a2gr6uhdvlc 7dr6m","quiz_options":{"score":0},"id":"4385173659"},{"position":5,"visible":true,"text":"jth67q sto4nhh23s op593ly6lw4p1o gxwnyfr4m99nbvc dplgcarhd m24hy6i1d n28tg7mytetk","quiz_options":{"score":0},"id":"4385173660"},{"position":6,"visible":true,"text":"rlo3t 7ppem2 bx29gt ucqxmy0 jm67u2dynhq iqfpiyufxif 8lm6ydc9u16rj y7ombxa0meqr2","quiz_options":{"score":0},"id":"4385173661"},{"position":7,"visible":true,"text":"vijhvdm7x6h6 4swh9tom vcr06ugp1hl6 50al5 3ndajrt9ilers 2gnm8il0h ry9dtv jqpu16b0ukt qsb5rqrnmglh arno84j1kroy3","quiz_options":{"score":0},"id":"4385173662"},{"position":8,"visible":true,"text":"3ujkb4krosaln 4lk1ckhounns7qy ap07a65ruvnjed vygxbabompj8dn op8annyrush8v p6t0nd2qi w4pp18y4x lljwuc ubknhjf31m6l1tu","quiz_options":{"score":0},"id":"4385173663"}]},"page_id":"168831358"},"emitted_at":1674149694920} +{"stream":"survey_questions","data":{"id":"667461551","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jf7fw46e14 vd9x8vs6f0av npyn7 ymxbaq24mqtvj bci1xcln9ch6302 eeghuyauh mjkw9hkx0oooduf 0ui0l93x 6m5tbpl yoplf8cqmbl"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461551","answers":{"choices":[{"position":1,"visible":true,"text":"rwk1x rtfy9upgpmj xkawlfe0vo8 3ounnnx3e9rl2d4 e8pqns3nwx pr5st9qy o6yi4klar9onlp innrgi2ua3f","quiz_options":{"score":0},"id":"4385173675"},{"position":2,"visible":true,"text":"pcupu8t3iodmw34 67g78ktu6rmr6nq 8nph4ohmv 9xtmtr2a7p9 6rb6h6","quiz_options":{"score":0},"id":"4385173676"},{"position":3,"visible":true,"text":"m6xlaj5xutmgw l08mgyjovq 6vk9sibk r9am0kbr 9qmm4d18mxnx u1sw4to 3a8ek ekp479980 hbuxaj2bf sbio7yw7","quiz_options":{"score":0},"id":"4385173677"}]},"page_id":"168831358"},"emitted_at":1674149694921} +{"stream":"survey_questions","data":{"id":"667461553","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"uue1b3 s4rj4 dawj4ao j5xhorntprj5p9s obfe7 y47vcjc s2gp2fh6 oysg9o5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831358/questions/667461553","answers":{"choices":[{"position":1,"visible":true,"text":"bf1i44 xxi5e2h7orevv2 d737wgpt4pu3 pmbeixrmvw1 ya3ww2x gpvmeo04nh5 sx2a7ey cv9ldq57qkus","quiz_options":{"score":0},"id":"4385173678"},{"position":2,"visible":true,"text":"ocmcxbjsqw o1vr3t 8fhpimedvui rn1hqm5m559bcq kw3138dxm77 vsdor8m v55p3f tn721 l4w4a6j3c","quiz_options":{"score":0},"id":"4385173679"},{"position":3,"visible":true,"text":"sme3nthgos 7c5bv0n80ymsa7 x02op26 jjum7w0s7lt2ll6","quiz_options":{"score":0},"id":"4385173680"},{"position":4,"visible":true,"text":"3p2mj4nlrsgu4d 8rygmmsqqxm2pl6 yshbvwq l5mcc5a kdpqvuul","quiz_options":{"score":0},"id":"4385173681"},{"position":5,"visible":true,"text":"o7ehnkg 134kywmgi wm8jcrpnl45if j86ffs6jfgcp 2e25qvayvwj18pp 3rduk lqjqyar2 xhq7yxb8i9ef6u","quiz_options":{"score":0},"id":"4385173682"},{"position":6,"visible":true,"text":"axh7312qg827nk s7tl78iwcr h1b6pv7hn6 o51sbag","quiz_options":{"score":0},"id":"4385173683"},{"position":7,"visible":true,"text":"onu50gtox9de40 v638eyavt886 mu6y85 6a54r1n9","quiz_options":{"score":0},"id":"4385173684"},{"position":8,"visible":true,"text":"0on3vhb3 94ujem74f4 0git5 fr73t6hds rfc4iyd4gwc","quiz_options":{"score":0},"id":"4385173685"}]},"page_id":"168831358"},"emitted_at":1674149694921} +{"stream":"survey_questions","data":{"id":"667461555","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8nym349ifndc4 1ergxvcs rg8nxji7wngvfo ha1fx7qgh0p4m 3tkgf"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461555","answers":{"choices":[{"position":1,"visible":true,"text":"r7wm8q65rf0ed wj7kk61hjpqrt nkjjva6busq fuhp9098sc6 8ro2p6ww","quiz_options":{"score":0},"id":"4385173711"},{"position":2,"visible":true,"text":"wjxlbkjgaps2 sep73b5ia8yj5 a9wr0gq 9o2wqf7du1v0tl 81u2apxnt ww3588h","quiz_options":{"score":0},"id":"4385173712"},{"position":3,"visible":true,"text":"8r7tkvpljdu 8a667c88iw vtasj a5vacvo6pbxwsw 8in6kb nv2yeug1x 3lv9de7rw8rtq","quiz_options":{"score":0},"id":"4385173713"},{"position":4,"visible":true,"text":"obyau9nl8c9 jj7tk8n3wv1gb qmiuhuql 1m01qx26c213r6 aj6u9iw459er mxax2id3o8iv riondp2tea3 ay77ba gpl30307 440clb21coauy","quiz_options":{"score":0},"id":"4385173714"},{"position":5,"visible":true,"text":"0wm0f2w wykr4 9lcofhvrxdiwlp0 u8yf3 p1bwwa","quiz_options":{"score":0},"id":"4385173715"}]},"page_id":"168831365"},"emitted_at":1674149694922} +{"stream":"survey_questions","data":{"id":"667461558","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0wjijbi1kwvxt h19om9 kjvx4 jqeprmna15i bwqfaihmlk0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461558","answers":{"choices":[{"position":1,"visible":true,"text":"q7y7hkgfgi1plk s1nwdd 0d7dt14f q604qs 47cwawfbo m1mmdsyi3fsp3l r0qma8q f5buoh","quiz_options":{"score":0},"id":"4385173727"},{"position":2,"visible":true,"text":"sn5hskkfn0ykw if30ikcbmfjsxj g6u5fay eauotfitd2 9cg6qkon 9t0l88ops7633","quiz_options":{"score":0},"id":"4385173728"},{"position":3,"visible":true,"text":"c678ymx 92bxd icea1i4p cjdl771k u37cuw rnjvrihdi89s2x a1vef","quiz_options":{"score":0},"id":"4385173729"},{"position":4,"visible":true,"text":"uqlmm5yk5 1v12y59qw hv82bo91a0leef 111gmwav8pnwe np5mfx6nsq6 cxgilxkmtvmm2kw 8mb5wiet5q wdbyo993 uh7kcfhy59 sebg3lik","quiz_options":{"score":0},"id":"4385173730"},{"position":5,"visible":true,"text":"uq2uqj20gchd ly2k4d4goq1 ehe66mwx ei0a0d4ggv0al9a 744s2h u254g40o5m 0i9o7dqjdkrtys","quiz_options":{"score":0},"id":"4385173731"},{"position":6,"visible":true,"text":"nyy288shht 3eibqfcm69se94 de2u01w0k5o 342ouq sb68ogkspj61j3p blbhcqok 8vdd2u7b2 su21c5iwou qgi1dj","quiz_options":{"score":0},"id":"4385173732"},{"position":7,"visible":true,"text":"fkidasstba rfn3erxiv282 vy0fqx 3acgtlyka1 mykyngnc 8u2kws4tp 35wst9aglv2 chbms5wm974 ajaygp8vjkhq","quiz_options":{"score":0},"id":"4385173733"},{"position":8,"visible":true,"text":"lmp71nc3bt 6eic0k8kacvx 17ititl v9u25fh1x78 vgfpglqvf6j ajv15gaccdsa elo40oe8ht75c","quiz_options":{"score":0},"id":"4385173734"}]},"page_id":"168831365"},"emitted_at":1674149694922} +{"stream":"survey_questions","data":{"id":"667461561","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"su1ullpk4 t553g unva8lk6wfw7 ipvkkika"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461561","answers":{"choices":[{"position":1,"visible":true,"text":"j463gx5a 1n4fa1q94 x4yw9ack6xoh u5l2fmvwlvktyw7 kpgulj5y49q d03pdq 0bl58ibk39hpe g6m66xw y8ajm5qk2uyu 02pbmuywb7h9m","quiz_options":{"score":0},"id":"4385173755"},{"position":2,"visible":true,"text":"4w8kyesurm3674 est71dh9qi23fw jbowojvmon40p jeggkq5soym 4dgqd70 6fx65rd2f94b5t lnsm1pjg0bypfv jt7d9jj","quiz_options":{"score":0},"id":"4385173756"},{"position":3,"visible":true,"text":"atun8p07f006myd wotd669048pp4 j2wa6v97pbj d7uvpqvrv7omvxw p8ef7giw88ft04 rgn3uwqgx08 rhe5yu0hg16b tdaflfh 2jpl4e","quiz_options":{"score":0},"id":"4385173757"}]},"page_id":"168831365"},"emitted_at":1674149694923} +{"stream":"survey_questions","data":{"id":"667461580","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"in0q9d6e580p28o 65hh3n3rbth4000 jowj89wgvpem9u lc918vs7s pt2r8mt n5t61mrm1nw i64uqjqjxw jhpgayjd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461580","answers":{"choices":[{"position":1,"visible":true,"text":"d1k3kg doxgp648opvyvwx o6xwbacsy2nvo oglkc2p5fegn l7cfksxmkd3ekk es7rvcb8t8v243","quiz_options":{"score":0},"id":"4385174059"},{"position":2,"visible":true,"text":"tc374t uo4de jkgh56fi 7ttvi102i5fbjw 78i6rml o5gekwgh5r rtxw6mrnqi9","quiz_options":{"score":0},"id":"4385174060"},{"position":3,"visible":true,"text":"mfwrrhume d5c5kcy7n32d ovt2xo d3cm1 shv19 r339qbp","quiz_options":{"score":0},"id":"4385174061"},{"position":4,"visible":true,"text":"l4pnl52o9gc 6q4ufrpc7q bw16kqt 6bagaclfl21f9 x92gg7slb2h gs7qxwmj6mg o81ntc46r8q3 3tkbuhrp0","quiz_options":{"score":0},"id":"4385174062"},{"position":5,"visible":true,"text":"9nbdwy6f06wn g2tdvcsqsg 74jmcd ulao4 i4f5y r3yn39fp vsxqmxocm59s10d 9l98r8lp7554 eek3weuw","quiz_options":{"score":0},"id":"4385174063"},{"position":6,"visible":true,"text":"l7am7i8hxiy u3ylucwt8lvms bl5ftdk19mxheie gt5x6 4eiq6 7an0oa731ay2p a9gyy1qsjse xif4ton3b hu5v6cg kuasc8ce9ihbjxi","quiz_options":{"score":0},"id":"4385174064"},{"position":7,"visible":true,"text":"iw5t0k3fr7tv454 lmsbkhfkfx6 vq5ds3yhq20b2 jom26vaad fu7w8 f0t9nanj2","quiz_options":{"score":0},"id":"4385174065"},{"position":8,"visible":true,"text":"18u6s9r5 na05j55lqd i6its t96py9n9q h03ueyjkfewy rhiv9a8nxh 3adtql0ksc9l2s","quiz_options":{"score":0},"id":"4385174066"}]},"page_id":"168831365"},"emitted_at":1674149694923} +{"stream":"survey_questions","data":{"id":"667461598","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fg2ok1k5x73j xi2i2leb9xip0jl nbjab ut48risbmg0 cmxjg1y14a b350n2yl90sq r2fpg 9u3fc44vd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785402/pages/168831365/questions/667461598","answers":{"choices":[{"position":1,"visible":true,"text":"6ia2cfy435ajc4 qwja8 186ntjx 8jshqf5 i32esbjh08 yhf12enewt5 8shld76x18d18 qw01jndxbuhj50 4mtgy6fbn7nfbs","quiz_options":{"score":0},"id":"4385174182"},{"position":2,"visible":true,"text":"e5phn4tqfq 5xee0uu5x v4lw52 hkhk8lpakvb 304yi j23bhqyat9h5c j52nrstj5cqo3q5","quiz_options":{"score":0},"id":"4385174183"},{"position":3,"visible":true,"text":"swapu0ru 89dqkvum0e2 ybf7xmg d0atxxfgpb3ag ylnjkwaufdj8 rj6dedrfte xkc6hqtimwg","quiz_options":{"score":0},"id":"4385174184"},{"position":4,"visible":true,"text":"n4l9n4wq5yas blbdmjmr nkhx7l gh95jmffy0p69j 8kg39ic3a05l41 dmjd7","quiz_options":{"score":0},"id":"4385174185"},{"position":5,"visible":true,"text":"du734l u98n1d5ovgxe 1i94woho8w2k u16an6dw ha0sc8v11aeep 1p9pawo5f6v 9s6ysd nv3v3","quiz_options":{"score":0},"id":"4385174186"}]},"page_id":"168831365"},"emitted_at":1674149694924} +{"stream":"survey_questions","data":{"id":"667461606","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"f9jgr myr928nokvyw5jg fqoan6w aqdnfas0gapwd 9hobof x7d7vy7xd9il kh6cd dteve1vnaoq6o uccii826ldkj1c"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461606","answers":{"choices":[{"position":1,"visible":true,"text":"1ak71apsl1lb2 dtgtym8ftk 52syq wtnfautgqxev t2sp9icu3465pll i4rhctmtx rh5yifue1 k91tlt","quiz_options":{"score":0},"id":"4385174252"},{"position":2,"visible":true,"text":"3t2uxb my2rtujx8njmbtm a2cyspuk yvfub6ofm8a9 819o7h8o eac0xea","quiz_options":{"score":0},"id":"4385174253"},{"position":3,"visible":true,"text":"4t3bj1jwi5bo ofhe7 cg6nbcys7lu v2qv7q11u48 7oowwv12fndqe","quiz_options":{"score":0},"id":"4385174254"},{"position":4,"visible":true,"text":"7etbg4thd4k k6d0nlv 02cobf bby0p2i","quiz_options":{"score":0},"id":"4385174255"}]},"page_id":"168831382"},"emitted_at":1674149695048} +{"stream":"survey_questions","data":{"id":"667461628","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"fx8h961tahe na1oufba ybjyqi qm6girwad8b1xq"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461628","answers":{"choices":[{"position":1,"visible":true,"text":"lakrew7c6qd wsih7a2nkq0no4 94gtxvs36 87wp1kbadg1l 1hkmpi6 2g1juofi5a fmmygrjehmcuygi 0bs6ka 2pj0gvmjpd6b","quiz_options":{"score":0},"id":"4385174360"},{"position":2,"visible":true,"text":"jjsfl l1sxtcih8fyeeof 6m9lk94qqmuaegl ki7wf11a9i93 xypqh9bjq1av7d1","quiz_options":{"score":0},"id":"4385174361"},{"position":3,"visible":true,"text":"eb4np f3xpqwjcv ypljmiu0y337 lu913m i9uet4t 6dvp7afcy3uqh 1xiu25 1qqn7cyv","quiz_options":{"score":0},"id":"4385174362"}]},"page_id":"168831382"},"emitted_at":1674149695048} +{"stream":"survey_questions","data":{"id":"667461630","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"576vlo18en3 1bxycqddfhn6v rsbd7a1e4bbyf ugieqgvywq4 g3qltn1jy8 0ebdn 78lxt9iwu1jx rbdjre1cujgtsq"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461630","answers":{"choices":[{"position":1,"visible":true,"text":"5k5p528j2o b9frywomc0 aukxrjdqt wiuvud9asln2f3w 6a4mdsa22mygo bnwh1sv 5l5s9ae rbo5hecsrd w0x40 6a86lloan5","quiz_options":{"score":0},"id":"4385174370"},{"position":2,"visible":true,"text":"o8jtnh4keupcl6 ff77c s862cc89 avdo6n25pw","quiz_options":{"score":0},"id":"4385174371"},{"position":3,"visible":true,"text":"vq7kbm97 p8svkwom2lo dg91j0 i570c 7gve09y 9xn2svsiu 22oh8ub7crysocm","quiz_options":{"score":0},"id":"4385174372"}]},"page_id":"168831382"},"emitted_at":1674149695049} +{"stream":"survey_questions","data":{"id":"667461651","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"799t8 uw9o03 89r6ndohi8r8bvs gv887i 14be70qd88w qgux0yh3"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461651","answers":{"choices":[{"position":1,"visible":true,"text":"dtvq3u jyp1h165k86n y0rkc4ich02nw qshv8da ppf7j9x raeq9k abqfxgd","quiz_options":{"score":0},"id":"4385174481"},{"position":2,"visible":true,"text":"i2muubbwbuf 3ffi5361bv wdoq2xkw2hsgpkj t45p9rr5mhi 8xwetg9 gc9u9p4hpmkkev do1ik5y 1439x s9k4vbcj4uaay8","quiz_options":{"score":0},"id":"4385174482"},{"position":3,"visible":true,"text":"0bwq2juhggn68 d2ioj rs8ybqs07gxkcri pgqiiha ir4cb94rbh71q u5mssukw nsyithmc5ismqc fyjxgqjx48fsdp dcua4s9spewq63","quiz_options":{"score":0},"id":"4385174483"},{"position":4,"visible":true,"text":"t3298cfyqx7toco rvkbw4338qk9 k5vd0u42if tkkkkm hfxufgj1i3f7vm8 69yd8hxcl5 swv8ipasty 4g6qsfyb0hdpa mx6s5tmxs","quiz_options":{"score":0},"id":"4385174484"},{"position":5,"visible":true,"text":"o7itx tcbcw8snyw 6jmor7biu7 x59bcw2hwr t94tgt axflfvftpmd0h 46td0yk 67ydkpti6t m3v2de7","quiz_options":{"score":0},"id":"4385174485"},{"position":6,"visible":true,"text":"u7s76bgo3nsbob i7yi958x br6wqw77f3mv b4f5yubeq q7ubaeju1t x5t0cx1bc25jhy acvms2 pggajefpr6 c7prvy9 6ain0uox3g3rd95","quiz_options":{"score":0},"id":"4385174486"}]},"page_id":"168831382"},"emitted_at":1674149695050} +{"stream":"survey_questions","data":{"id":"667461652","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ske92t16t19co1u 3qou5xj75ksuy 1rfxe q5tbfl9xa6dx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831382/questions/667461652","answers":{"choices":[{"position":1,"visible":true,"text":"gn0e03jdsij ops28 wxpn34 o9q6o9otb uxw5rwr5xh g855ayu37wsg","quiz_options":{"score":0},"id":"4385174493"},{"position":2,"visible":true,"text":"6yft8d7xv vwn2h vrlpr8r7ppbnfr vtvgbje916jf5 kv7g2ax 292bgj62fdk","quiz_options":{"score":0},"id":"4385174494"},{"position":3,"visible":true,"text":"iicugnyhyj 0t742iccrlgnc olaw2v e67g2xd1etgcq","quiz_options":{"score":0},"id":"4385174495"},{"position":4,"visible":true,"text":"55ganyc qk6vvo 1gfswk294 t4qxy0nirv3a y1wr6vmvd","quiz_options":{"score":0},"id":"4385174496"},{"position":5,"visible":true,"text":"5hjxv2qf8jr svkm4b90cs6n7u 44ewbk0getyk g6hhmaqvlcdj9g7 if6lqdknx rr5abg5ylw7ho2f rabuvef2t0k5x 0a7x5oqof9xhi8 o8tv6ke3ev7r","quiz_options":{"score":0},"id":"4385174497"},{"position":6,"visible":true,"text":"sy4uf cxu4rsabrlmaw kdov7 hx6ta8d4c0x290","quiz_options":{"score":0},"id":"4385174498"}]},"page_id":"168831382"},"emitted_at":1674149695051} +{"stream":"survey_questions","data":{"id":"667461666","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ssubl 48hjj9vj31v omr18dpic pp65f94 j35xxoh u04pidx8dp7i bo1ae4ptsntu3 o6v99q"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461666","answers":{"choices":[{"position":1,"visible":true,"text":"04s0qv msoghfkw0fr4hmq kdv92tuo2 l8htirpt 4h2nxjcla5rjor n1wy2w5","quiz_options":{"score":0},"id":"4385174598"},{"position":2,"visible":true,"text":"64o6m jya4p7twvvs ls75jv9lvf 8gr7y35au5hcqfq","quiz_options":{"score":0},"id":"4385174599"},{"position":3,"visible":true,"text":"x6ijo4tj5qrljkh dk5dmknmhn 3rm63 kdym4 bxjsru9kvh1 g2vp966a8nkh 6dhh6k99a88gt 9b7emois0ldfr swbnqor4k66","quiz_options":{"score":0},"id":"4385174600"},{"position":4,"visible":true,"text":"4uhchfo7n2wmrtx e211emk0v53w a7ckw5lg40n qrx8pw0r5xrph q8ndfdm5g08tex8","quiz_options":{"score":0},"id":"4385174601"}]},"page_id":"168831388"},"emitted_at":1674149695052} +{"stream":"survey_questions","data":{"id":"667461670","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lbje0ppud4so8xk ax7vnbef0l3fv7j alcnsi48jehkf8c 9fghb3uop 8qfnul9 w8d6lma9 ejcm4j9x604p t7b7dk"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461670","answers":{"choices":[{"position":1,"visible":true,"text":"i6exa76ck98 9pkrhl37j88s 8k6dvdhxg5axw3q 0dtn8xt6 ji1gm0qu 9pie3iotb","quiz_options":{"score":0},"id":"4385174620"},{"position":2,"visible":true,"text":"knjsfkea66j bp5sxiba qa1yvg m3vul 96hgbjtin7ux7","quiz_options":{"score":0},"id":"4385174621"},{"position":3,"visible":true,"text":"jf90cc rc80q71mvp1 8f3qlcc4pls wvixh60l7b","quiz_options":{"score":0},"id":"4385174622"},{"position":4,"visible":true,"text":"u8275ses4k sq0bax8 vbpfs7qwh yhbborapj3ai t6eo1n6o9rf uitrqawsi p2oe4x5ie","quiz_options":{"score":0},"id":"4385174623"}]},"page_id":"168831388"},"emitted_at":1674149695053} +{"stream":"survey_questions","data":{"id":"667461674","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"7xuudm hd85d2fbd49 hxo4gmsnhaxn53y r3oo0piiij5 hvifmm5 mfep196v1yi q9o6w9gksyedtgs o3y01cyw4ca91"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461674","answers":{"choices":[{"position":1,"visible":true,"text":"7h3hoeucihjd41o 4la76h8i8 8dgl2v5eub 962jah6wws8 qdtm85x9t3y96w5 mkq9yvj 81nsju0 koqkfhpe7pw","quiz_options":{"score":0},"id":"4385174634"},{"position":2,"visible":true,"text":"vpmf8jyppptscjq 3ujxkee7dye ggqm9tg9svjgx ashilo1ffin","quiz_options":{"score":0},"id":"4385174635"},{"position":3,"visible":true,"text":"nselknrgymf vq2vd1efu 3a9b7whs2k7bj5 nujxdbcbg8qcjp 2va7wdag r0k00wo6 bd5u5 btk0p","quiz_options":{"score":0},"id":"4385174636"}]},"page_id":"168831388"},"emitted_at":1674149695053} +{"stream":"survey_questions","data":{"id":"667461676","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0g353xw0tmg9uj yjpp4gp6d kkvtb90xqw7se5s 1rtjhd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461676","answers":{"choices":[{"position":1,"visible":true,"text":"qi3ml trfm3r0 hij01mx6lt6 olgi265lrg7a45","quiz_options":{"score":0},"id":"4385174643"},{"position":2,"visible":true,"text":"sip0lix7kpf g1vjmce6cj u3qgbnitdp2w3 gxgg5cc 53rn81g6mr 008agselt2cfwmo","quiz_options":{"score":0},"id":"4385174644"},{"position":3,"visible":true,"text":"29qp4n5j92gre bwkmqp821xab2ri kyqdft g46vvp19jlvq1k 2sgm90q2b6 1ewvm 8491gfakn3p esqiug2cxmg6ka gb9cdrtlc9qs","quiz_options":{"score":0},"id":"4385174645"},{"position":4,"visible":true,"text":"mcijdsetfwvx 9b6tmxv phlw18ap37 20s5wv","quiz_options":{"score":0},"id":"4385174646"},{"position":5,"visible":true,"text":"3g748xwkq6o 2ut8g nb63dyj stbl5wm 2dkk61h6 29bjrer dxet33 v6f36uqes9qu vgqoxu1nmi5lm gtuqaph","quiz_options":{"score":0},"id":"4385174647"},{"position":6,"visible":true,"text":"j5p31 t1ltv5rpt 85q5tlwq2sfsv3l bh4a2e rev7lbj7 2qwf83ylrc3n fiufpgf h3fp2fd0y5o uw3phwkrek ihy0faqy9s1rsp","quiz_options":{"score":0},"id":"4385174648"},{"position":7,"visible":true,"text":"prd59 gqs7t8tmls 633ujsd7d9ni u1fkx5a6mx318w k71rc82lydu43 orkxf utbtip9c1ky72","quiz_options":{"score":0},"id":"4385174649"},{"position":8,"visible":true,"text":"dc5yl63yj6lv jqeok71lte 4leao9ms1xu3oh 0fdb4m50ip t31tl6q57jjpmh v2osljafdca1x6","quiz_options":{"score":0},"id":"4385174650"}]},"page_id":"168831388"},"emitted_at":1674149695054} +{"stream":"survey_questions","data":{"id":"667461686","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"987ob 7kiuo4teh1 8s7deqmvpopsp txo4fxjj5e 8eqdafh1k7yjhwf 889ll 0s23juj5vyyq99g 7390ddsh565 lpni4hn1bi0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785408/pages/168831388/questions/667461686","answers":{"choices":[{"position":1,"visible":true,"text":"1vdqk14 sjvrskliu ejn42p38f ougj5qtxi6k5q 6d2ccy9073i9","quiz_options":{"score":0},"id":"4385174676"},{"position":2,"visible":true,"text":"b0yc27 c3v3i nhneas7k4y dqth374wqfs9hqf eg6g53l03g 8fg7266kcffpx7 6i9d7rffvncy s0f2on","quiz_options":{"score":0},"id":"4385174677"},{"position":3,"visible":true,"text":"k2kv88vnieg5pk fxdpcorngy bmidk g2lb58 qkbeew82lmprw","quiz_options":{"score":0},"id":"4385174678"}]},"page_id":"168831388"},"emitted_at":1674149695055} +{"stream":"survey_questions","data":{"id":"667455128","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"21b2d1nm vcduxp396s3f vrgn9riooeu 2w1y9r0lhe5j0po cfv6aya xsek4vnv4"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455128","answers":{"choices":[{"position":1,"visible":true,"text":"1cqki1ijt cnkrfpewyh hloep tun23aq fm2hlturu wp1hn1005","quiz_options":{"score":0},"id":"4385137324"},{"position":2,"visible":true,"text":"8q54jh807g67 0chem4m32w 6g6cg4kfbpyp48 wgbo0l1 3ivc27 h1g0jagebgvj36d loo7agxubx imfmbchanx4w47p o4rfv9","quiz_options":{"score":0},"id":"4385137325"},{"position":3,"visible":true,"text":"axjh0ev2g5g0s01 d1f1ekg41aq 1r7fcho4 adaclkcgj0ra1h5 obp9ot rak96hmu bx3804jjlr5vg wruubenes3g4p h41e18dufrs40kb 9t34k1uad6g2a0y","quiz_options":{"score":0},"id":"4385137326"},{"position":4,"visible":true,"text":"0rvnqa934hd356 yx0p7kab01kubvj yuy2tik0o6t 3854yf6up2mgfc kqn54h6qvfoj jecuuxm0d9s u5d8y0hmv5bcww eumwsigjumvc543","quiz_options":{"score":0},"id":"4385137327"},{"position":5,"visible":true,"text":"sutsvkyg7 x3pr1f8 gnn8yg 32ls0it6m8c5c3 5xhh23hb0bck c5kbcphdgm 8n1839 8oe5f4wdsxv oyijcnki143a","quiz_options":{"score":0},"id":"4385137328"},{"position":6,"visible":true,"text":"a14e7gtqqbrm ei6h8ynhoi92vs dq0oj6m rulpoxmdtew b1cnc7v 8pxkgtbq6vu0o","quiz_options":{"score":0},"id":"4385137329"}]},"page_id":"168830050"},"emitted_at":1674149695180} +{"stream":"survey_questions","data":{"id":"667455130","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"9no46q bgj8bu9 qbwy78onx0sp5df 1s2n38k6ly8xo5 xanlhf0dqvej htj1rl0wp ip01j7fb6qm"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455130","answers":{"choices":[{"position":1,"visible":true,"text":"7dpysnial1 w484xmm33rpralf fsb2j19 r599iaw30wgp gk8tit5i681m 14lsb5gmddkr qrncp46 vp0lw srtca1i587dq","quiz_options":{"score":0},"id":"4385137340"},{"position":2,"visible":true,"text":"0yflf5ua3 5l5tu93l 45fu03hrvt kii5twmbs6n uqppc ca18nfpevvny 8od85fpdw gc9isqks5ou7","quiz_options":{"score":0},"id":"4385137341"},{"position":3,"visible":true,"text":"uuv580b3 ejgygxa3nxuod qx2s8cx85l1vu c96g3513rcjdmuv 161c5f mrclx05fg2o 9r8lk172","quiz_options":{"score":0},"id":"4385137342"},{"position":4,"visible":true,"text":"8jhq2vl1hj6 dvnvp6su wshwoa9 unbnfs wjkm9w4w5w glupwsmbjeb3 26q9svrti 21b4potlf4d","quiz_options":{"score":0},"id":"4385137343"},{"position":5,"visible":true,"text":"y1xu41qdgnk hw9yooajs6n xhaqwoc8 hxi6ioaqcnf3 le1ein6yt","quiz_options":{"score":0},"id":"4385137344"},{"position":6,"visible":true,"text":"y7vgshrq086w 18x5gdxg0 ibct5mdxqm78py aq9lw3kx kq3rfwnnod q4a8qk7q 2mytdfvtgxe q7w14xsgcfsw4","quiz_options":{"score":0},"id":"4385137345"}]},"page_id":"168830050"},"emitted_at":1674149695181} +{"stream":"survey_questions","data":{"id":"667455161","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8piluvv5gm y4fyg bdn90lnhlw hlp49ut5by 1wcskj bo4qich35bkbh84 9s7n4art qxh35"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455161","answers":{"choices":[{"position":1,"visible":true,"text":"7v9pb77j2u5h8lq fjdckl44c6tdi oxtly8metbj35c7 2coi267okn 772jt3x4 8pdrkhod14i eeyu3ox bkl79rtci65 0jt9nxkpamu5","quiz_options":{"score":0},"id":"4385137468"},{"position":2,"visible":true,"text":"w13utk5t7u98 ltxgdnhqgh3 tv729vqrf2g8 a3kf9ym ddp3yd ryqfnhyyshm","quiz_options":{"score":0},"id":"4385137469"},{"position":3,"visible":true,"text":"4o86igx uap6ssaxn rej7oi49j4nj g1afe aj0rahjii gdy2ygm yrq0r33ljaqav","quiz_options":{"score":0},"id":"4385137470"},{"position":4,"visible":true,"text":"ywmratfmy ko10n3cmegap9f vor9gwdvwevpi2 7oid9t72lp yc37r5pssxrm d9fdyo6kj9g5","quiz_options":{"score":0},"id":"4385137471"},{"position":5,"visible":true,"text":"l1ei3wav57twf yn5mmi2almiidx7 gdkyhn 3npig9sip","quiz_options":{"score":0},"id":"4385137472"},{"position":6,"visible":true,"text":"rr84y ht7saym46 rqxpn8 qix3c","quiz_options":{"score":0},"id":"4385137473"},{"position":7,"visible":true,"text":"dtaeau8 wv5ay39bjtph6 uxvtv8 bfa13j2 t1cxi9sgxs9u wh5it","quiz_options":{"score":0},"id":"4385137474"}]},"page_id":"168830050"},"emitted_at":1674149695182} +{"stream":"survey_questions","data":{"id":"667455172","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"f4i385t8gi2y iukko6gtimv6 2ljnv 3s7mawxra ueavu x4pl1nkyt1s0b abfab7bvxtkmrw d4843lq j5n0c7"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455172","answers":{"choices":[{"position":1,"visible":true,"text":"5dkq8pnhf1gag8 u73xqg mej8lwdqo qs1tuihyc heabchr403srhq0 51c5ipel70a csfc3dwuxn9mt9m m9j6t37f xe547smil yy8ji7kgqx","quiz_options":{"score":0},"id":"4385137485"},{"position":2,"visible":true,"text":"q02a6wo56w 6fc33b k7d7a9n7grsgt n7j84b6552eyy58 xapgm1 xxxxklio 1m6q53gxh23a sl0kn09v kdw23flh1k9ss 1kfm8tao","quiz_options":{"score":0},"id":"4385137486"},{"position":3,"visible":true,"text":"d3482iajo1udye ian1i2sop8y5 6j6u9vi h2flbi3mhh 8bo3d4b7wnwto x7dlap9vcos","quiz_options":{"score":0},"id":"4385137487"},{"position":4,"visible":true,"text":"ytjtpqs9tcdnb 5pxact7wjjdtx filtao5oyv w02h42un1hxtd5h dbagrj511v8 d2k7wxlw","quiz_options":{"score":0},"id":"4385137488"}]},"page_id":"168830050"},"emitted_at":1674149695184} +{"stream":"survey_questions","data":{"id":"667455179","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"orgitaiw xmkvjmfm ev9wjtt7jn r1c6c1a2w01 axiagkpsr7 n6shk7sv7miuqa cjsunx5lysasx7"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830050/questions/667455179","answers":{"choices":[{"position":1,"visible":true,"text":"v2fci0n3 q922d8hp kc1mka6c9 9hkt1vtlsv nx48ppjd kaisn r586rs 5awcm 1y8b5ew","quiz_options":{"score":0},"id":"4385137492"},{"position":2,"visible":true,"text":"fv4rhyxgmweyo1r g2yoh7nm88 ubgo22v 8e2ukol","quiz_options":{"score":0},"id":"4385137493"},{"position":3,"visible":true,"text":"6b1kwthm24uw054 42yns43d9d2 9aelxhek6m9cer 1scie9 ob3erxdvkvv 5bccusj 9pwd586","quiz_options":{"score":0},"id":"4385137494"},{"position":4,"visible":true,"text":"0x7t0 engoyj qcv0e ta9rgyjcob sqj1y247 2f6nqh0s4e9qtbb o3q661emk54yvlq am4wkqctn26fblr 4yd280s9dpbyq","quiz_options":{"score":0},"id":"4385137495"},{"position":5,"visible":true,"text":"1mm0gylkc8tpmj vpmvo0eme0 9kriqmlb dm300brkw7certk 096rh8ts1ll 4j1pr","quiz_options":{"score":0},"id":"4385137496"}]},"page_id":"168830050"},"emitted_at":1674149695185} +{"stream":"survey_questions","data":{"id":"667455202","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"tius10di41k9wls fmdlvphlmbl4fd 8t41mn pkss9 f7qg4uouq15l 9al8qjnu8lg4c d62wfnkbe4mx5"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455202","answers":{"choices":[{"position":1,"visible":true,"text":"pxw0w9ui9m4oc inicqftdpfe dyp4ai vn1pmsp6 6cm2gr9b 0ruklaf8 xhb0a8q","quiz_options":{"score":0},"id":"4385137700"},{"position":2,"visible":true,"text":"p28lapcj xmelobuak9wnfe k0ilacxb575 54eam 96ng7","quiz_options":{"score":0},"id":"4385137701"},{"position":3,"visible":true,"text":"gw913n4emtltob sqr3rxe9q alm4u96n5dbp 79stl7bky bseq17ndb ibhcv2mf06av","quiz_options":{"score":0},"id":"4385137702"}]},"page_id":"168830060"},"emitted_at":1674149695186} +{"stream":"survey_questions","data":{"id":"667455205","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"o5429bwk bdk9efwp y207rta 5ir7a m3btvu7doifx o2as6uky bmp4untymjr 2qx7e254wxygi pwf681dh3l"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455205","answers":{"choices":[{"position":1,"visible":true,"text":"ihqtbuwrc7tkk t8rxgekiec q546dffi6yo7ato ip17xm5fe","quiz_options":{"score":0},"id":"4385137740"},{"position":2,"visible":true,"text":"ithl3 gl2tfo1dl uuiy7ls5 7wkeslse","quiz_options":{"score":0},"id":"4385137741"},{"position":3,"visible":true,"text":"ul101be 6w0o3urllk5o4rc m6ttbhcts3nrpq cd93g3j6","quiz_options":{"score":0},"id":"4385137742"},{"position":4,"visible":true,"text":"keye6y0 vxjehf4oga975i hh0hwvp20y0 hmvp1i de9i0gf 309gv73vahw5tv6 b7th25myd dl56yk9tjsnwbkg nlwrih","quiz_options":{"score":0},"id":"4385137743"}]},"page_id":"168830060"},"emitted_at":1674149695187} +{"stream":"survey_questions","data":{"id":"667455210","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ccus8ci s30ote6pf5enhkv 3xw226wx0r4r soqp6i56rx7p"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455210","answers":{"choices":[{"position":1,"visible":true,"text":"ror4u04bm535i fajv10 ji7v3kn9 nu7pljg4qd vtkx1s","quiz_options":{"score":0},"id":"4385137775"},{"position":2,"visible":true,"text":"5xjy8qckk 6w20pov 9ductfhj r469e wem8w rc0jks9hwv","quiz_options":{"score":0},"id":"4385137776"},{"position":3,"visible":true,"text":"difesvxw9al ygl163e5w9dv6 x2glb8m5g6fxm eiibhejl","quiz_options":{"score":0},"id":"4385137777"},{"position":4,"visible":true,"text":"tnfsnewa16k155 klbxdolp it7hi 3bwcsq4kxfs6ag y4rjmghck8fb1 kbr64tikluwhtsh m6uwesc5861 tdfj8p qrf7oe2ydofs vy2xx8qsmcvubj","quiz_options":{"score":0},"id":"4385137778"},{"position":5,"visible":true,"text":"w4u167 jcxljoenbixyu2 xmxki pnigr00vdimxddq","quiz_options":{"score":0},"id":"4385137779"},{"position":6,"visible":true,"text":"s4ksxp4wgiv24 jd0h5q9cdqbaf2 at9rhpltsnm9e 9vvcvfubdxoda 3dr2s4l bcvpvk5qq","quiz_options":{"score":0},"id":"4385137780"},{"position":7,"visible":true,"text":"p0nngm2a15gos i48053r8tp2si 5c356fdw 7lwo3016oo2u ysdomx7ts utp4qqa6","quiz_options":{"score":0},"id":"4385137781"},{"position":8,"visible":true,"text":"hjopydw3jidvpdk opbjs2sr 86c6g94l 1045p9imdm h0ewun d0ki3w4t li53wdcc9 v0m8nd0q8rim c9kuoh 986j08boiew4s","quiz_options":{"score":0},"id":"4385137782"}]},"page_id":"168830060"},"emitted_at":1674149695188} +{"stream":"survey_questions","data":{"id":"667455212","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ycd70f 3tlkc9fg5 uhsj13x 3fy1deg e3x8xxtprtx 35w2t0fb0kt 3c7sp4a9l vekf5fhta3agc tqtiua55"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455212","answers":{"choices":[{"position":1,"visible":true,"text":"3nd2k 12iqy qcy1q78egxti b88f20djp60v 6orn1h44 xb2fsut8p63fd spd9rybvtlrx6 p79lf27l","quiz_options":{"score":0},"id":"4385137792"},{"position":2,"visible":true,"text":"w6va3wm5af u5earys3j7d2w0 aigku 8mhkw6l24gftb lj78ittnu2lhxct","quiz_options":{"score":0},"id":"4385137793"},{"position":3,"visible":true,"text":"1vjpoerlc8kf lnqycklqdoe yt06t24brl aoqrq","quiz_options":{"score":0},"id":"4385137794"},{"position":4,"visible":true,"text":"syf9d5k3axfjhqx f1un5ergu68m7h hf5by9f1 0qf94 docxia9h qcda6u ja83rjw7gdm","quiz_options":{"score":0},"id":"4385137795"},{"position":5,"visible":true,"text":"al4dbwow9is7xut pif50a9 434fsto nh16xfiu34c0eld beshoy","quiz_options":{"score":0},"id":"4385137796"},{"position":6,"visible":true,"text":"q9ufu06kh4d 4oogck630yox 7wsoh 0l2dsb3 8noi1cwam8ukth","quiz_options":{"score":0},"id":"4385137797"},{"position":7,"visible":true,"text":"3e5ijt o0m3chiw3pitxr8 4hciaiuh9c gpc5q4olp3cib 0bhsd3payjog 562gi7o4647qe 39j8aa4ptw jbydrqc7ujb iqlxnqn4uea","quiz_options":{"score":0},"id":"4385137798"}]},"page_id":"168830060"},"emitted_at":1674149695189} +{"stream":"survey_questions","data":{"id":"667455215","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qm15jfh tv1ui2w edoha95n wbhjp4 rui3rtv6xf4n5 v920f2a1hrd 5d7gj7guq r7ljcjdk2f8t jv5iocm9mv7pg cmow0h6"}],"href":"https://api.surveymonkey.com/v3/surveys/307784834/pages/168830060/questions/667455215","answers":{"choices":[{"position":1,"visible":true,"text":"sewil7695q3 nu4xd9w cr1qqpg4h9qlr ktchj5oeb4 1ns6cdqbjex5f w2y8iflb52 kpkid 1f8unrp e17xh5 qn47cr","quiz_options":{"score":0},"id":"4385137810"},{"position":2,"visible":true,"text":"q21t3nuf 71sfp kag1g9kes bx74gjdj1 uvk0chaofja60","quiz_options":{"score":0},"id":"4385137811"},{"position":3,"visible":true,"text":"nkbskl7xaxqbh76 pgggq5trhj3t isut5qlmwmxnbw apxr23h4v0l","quiz_options":{"score":0},"id":"4385137812"},{"position":4,"visible":true,"text":"jotjdok64gv ya4g5j b0w379 riavnfi10mu3bm 739xph torva74 9dcgi9ns8qlnho","quiz_options":{"score":0},"id":"4385137813"}]},"page_id":"168830060"},"emitted_at":1674149695190} +{"stream":"survey_questions","data":{"id":"667462113","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"xvodyrmsj8o5 vqjqrurdq h74609w5o8cj kpy303cf 5qyfp1flg hpfvhtg412qu bwhmup tfxwjcltbmp"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462113","answers":{"choices":[{"position":1,"visible":true,"text":"x5gvnnvh 39thim64p k3naeh9 ebx5et8ci8vnjwq mwfb0867jts36 lq8ghnv8c23c86i","quiz_options":{"score":0},"id":"4385177065"},{"position":2,"visible":true,"text":"5atgqxr5w uk3ussdg7 29qlw s20qfx0w1u1d cdx47v m76g66t1j x9wuj hyv5095ipd9ly","quiz_options":{"score":0},"id":"4385177066"},{"position":3,"visible":true,"text":"yqvo5j rojr27j6ww 5k0ra1y96j6 vbd70ncr0 wdoxqqhkv a283r7g tshidt7i0jw 70gxqa3 d1wh0y 8q2x4yu5u3tcga","quiz_options":{"score":0},"id":"4385177067"},{"position":4,"visible":true,"text":"53838lqaxys gt190mgek1r2r llxh86fi38xyyb puwhs54wnxa8m5r cb8w1f312hts1 80gh5hrp0o 9a6siov 5i3l99eiefhoq","quiz_options":{"score":0},"id":"4385177068"}]},"page_id":"168831471"},"emitted_at":1674149695299} +{"stream":"survey_questions","data":{"id":"667462114","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"r5gme6gxar 540ixc g0a32bjvkgg4lh 9n8hpb qor7i9od6r max0ae1vu08"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462114","answers":{"choices":[{"position":1,"visible":true,"text":"tk3pmts41 aw7w4y8e5 65iplksmu5wa0o 9ve8f0vgh eiy8hki8e3 5vbwg fa3nnnvu3uq c43makf6i","quiz_options":{"score":0},"id":"4385177095"},{"position":2,"visible":true,"text":"3kvwm3v j0x7vrrpnxmtcub 7h9g43wg71ppkn 71nswd5eq ocqpss07r05dej4 7ln0vdgw0a","quiz_options":{"score":0},"id":"4385177096"},{"position":3,"visible":true,"text":"07td1maptf9wde nrlxmvshy dgpasbrawvpndo id9yjt2tsi mkm0ri7epkw5d poj8pv8m4lu0hc 2xh0i62g5j wxokec50ps52h8 d6uqtrf td70pitsu","quiz_options":{"score":0},"id":"4385177097"},{"position":4,"visible":true,"text":"ccw6cg wd5s85rpk dqlppdkh wpqg1t9vhdq8c","quiz_options":{"score":0},"id":"4385177098"},{"position":5,"visible":true,"text":"8b85ql72lufp 3r2k118 vy5uh6mnntsq5 x49hvqp19g 3oc9laa75hjxwn7 a77dw8 aiskfi350fyh5w 2h7ra ry4mj i2el2","quiz_options":{"score":0},"id":"4385177099"}]},"page_id":"168831471"},"emitted_at":1674149695300} +{"stream":"survey_questions","data":{"id":"667462122","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0wpcptufvllj 4yjhb78a bxn0uwh wxberovodxawinb 414fl1hatnpl 6tdxbt dpieidpjnqba9r"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462122","answers":{"choices":[{"position":1,"visible":true,"text":"c7nxl 3qrbcjg tddcypx5j63ne1 ebrs5911s ilsx5w8mvfs s24oodbw hbah99rw65wt7i","quiz_options":{"score":0},"id":"4385177138"},{"position":2,"visible":true,"text":"1lx4btr3s0pqq63 y93x5lqe xmyta126vo 07q0rnh 4f2bxvoc441 wcnvx ytjeo8g5a wjqrg 134n2q fgobl","quiz_options":{"score":0},"id":"4385177139"},{"position":3,"visible":true,"text":"t9hwm2nyw se2sl72a t70iepatjw0rsh kq6ta 6mhce jgfjh52 w3ivi m0sxg2i4 pup4tsn7a18","quiz_options":{"score":0},"id":"4385177140"},{"position":4,"visible":true,"text":"j6w78imo yhv9sgxs64ii ep2ckum1ge3 3d8gcbsuw j0b95oqfwn","quiz_options":{"score":0},"id":"4385177141"},{"position":5,"visible":true,"text":"5gn4d25al 29tdmvxhe1 svxcxt7qsq pbnlphkoa xvotqve1o79","quiz_options":{"score":0},"id":"4385177142"},{"position":6,"visible":true,"text":"sexvxfmqb jp6xina8q 3gsyu2jfgvpag d2wcp0k5ukuk igg5ecqj rtkd5j 485nmxjd tjodfsyhu5","quiz_options":{"score":0},"id":"4385177143"}]},"page_id":"168831471"},"emitted_at":1674149695301} +{"stream":"survey_questions","data":{"id":"667462126","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5r90gmyyy 1eaacbfag0g4dtj 4rlwnt3r jxg5ruhn tkkml hhlu8r79jma"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462126","answers":{"choices":[{"position":1,"visible":true,"text":"vln5gpqjq tglcfbuxu7b dob43c qnisv2 td55l7hc91pd00q 8gig93a5h 7hrhg6drxsxy bj0oldpxa33by1 4q9mx98wbi p0wb03eabrt87q","quiz_options":{"score":0},"id":"4385177153"},{"position":2,"visible":true,"text":"fj0a0nfwmfjrong q38px84nyk rvqmj 2sv0x6n9a hm88jqn87kvws","quiz_options":{"score":0},"id":"4385177154"},{"position":3,"visible":true,"text":"ms6ilfpbca 8ota11f 1qvg0ellfxis pfyvkkuujjjg qih57geu 366h9cnbrnny9 4sx4q0hbgu","quiz_options":{"score":0},"id":"4385177155"},{"position":4,"visible":true,"text":"si9tpsg54u 13dds2djq4kh kra03y5p43 j8rej5mv d0tkvig6","quiz_options":{"score":0},"id":"4385177156"},{"position":5,"visible":true,"text":"k5ijfpctrn flm2q7kn5t4jf xkjec55tbfsgsn7 r61gy346sxt","quiz_options":{"score":0},"id":"4385177157"},{"position":6,"visible":true,"text":"v9u400dqc fii651ftc 29rn2dffioa0 1m22amm42b qhs0wpth5 mva3eqo09hvo7x 5od22d7a 7m4606e271a6yk","quiz_options":{"score":0},"id":"4385177158"}]},"page_id":"168831471"},"emitted_at":1674149695302} +{"stream":"survey_questions","data":{"id":"667462130","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"a8ibp46e09n3ae uwv4r3pbpla uxqx8 8nlfqe2ekyj6b1u ju2o3ts 29q5blc7t5m225x rgcjb uek905hycm3 8nkpkppcdm4s vfcx6c63bfppfk"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831471/questions/667462130","answers":{"choices":[{"position":1,"visible":true,"text":"xkuphh 9sloeexwdfla qyx58xq9u ne6p3x","quiz_options":{"score":0},"id":"4385177171"},{"position":2,"visible":true,"text":"83uko6624m otef3go 1ba21xa3 6k24mmw t82m7my9ipep","quiz_options":{"score":0},"id":"4385177172"},{"position":3,"visible":true,"text":"ke2gqx614f p7y9pi89 asll5jaju89e1g vgrj3wbe x815bgx 67md1tfhviy9v","quiz_options":{"score":0},"id":"4385177173"},{"position":4,"visible":true,"text":"w5raj381jcgffq 9o1b73 0jnat47bs8bq9e 41ffc wcmivj410jtu19 njxb3v7 gurti qsjowjls niwyt2clulpdpa fe0skx96v529ui","quiz_options":{"score":0},"id":"4385177174"}]},"page_id":"168831471"},"emitted_at":1674149695302} +{"stream":"survey_questions","data":{"id":"667462135","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ictucjn9av1 hqjkdsl56q dw9ouny 3wbjmkmik8m pxirnbm7f jq31e0w572q61j le5ke3if 8wkwmox1ow fsu8b5 ci0ot"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462135","answers":{"choices":[{"position":1,"visible":true,"text":"k4q8hnwb0uticgy kx7rcy sp8nvx036 u552gi 1icsxiqmdmects 0c1d69aee soiye","quiz_options":{"score":0},"id":"4385177200"},{"position":2,"visible":true,"text":"bolb3i7f7 5d7y5 n7il93or tb2599 wlr1hh88d5bjpr vu3v5uudajbgoa s7kmwnhqpph","quiz_options":{"score":0},"id":"4385177201"},{"position":3,"visible":true,"text":"ve8olc60hjdia ake87 4iv5po m484jgkaut 5e285a0hgsrirjm qtnofl05rdtx","quiz_options":{"score":0},"id":"4385177202"},{"position":4,"visible":true,"text":"1pix5bfrx 9pncw4rp5g xf1sm2qr c474c1s67jgcrw trxj2k huiccx1kxt1 l13mo1hij12","quiz_options":{"score":0},"id":"4385177203"},{"position":5,"visible":true,"text":"kf0u04jlsopl 1b4xnt0g 3ehjhwg d9465xfy24uisef 0xv77xfgm7x","quiz_options":{"score":0},"id":"4385177204"}]},"page_id":"168831478"},"emitted_at":1674149695303} +{"stream":"survey_questions","data":{"id":"667462136","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"c4f5ohh3sr2w xoto95lot 7lykuivbhs078b h524lu75 mvss35agi"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462136","answers":{"choices":[{"position":1,"visible":true,"text":"1blqraty 6uddh9u imhcfci dho72p k7feqgqqqr3jm7a 8y7drc4m8m8f1l0","quiz_options":{"score":0},"id":"4385177210"},{"position":2,"visible":true,"text":"cnxmsuqasj3g gm6e1da2102igu c3w07jugiuro afj54 kpoom7 n11yf","quiz_options":{"score":0},"id":"4385177211"},{"position":3,"visible":true,"text":"82nkl1jumcnc6y3 raogw1xp84nswty h77x7 f26dju09o2 ajgbdjdjne6i","quiz_options":{"score":0},"id":"4385177212"},{"position":4,"visible":true,"text":"dukxs7vo kj6j0x kjsmang 6g8vgh t9ymo1h2hfln6 iyuklw ou0uq6","quiz_options":{"score":0},"id":"4385177213"}]},"page_id":"168831478"},"emitted_at":1674149695304} +{"stream":"survey_questions","data":{"id":"667462138","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jvr1s akb7hxxk2ptt1q jhgxvvgirs2d9 rae88p7 b54u3m1g1 vflgmpv75w5q fauxphpa8bxdutx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462138","answers":{"choices":[{"position":1,"visible":true,"text":"jnkfpiwx3ye b6osvfmkkn eek8p036ayn rt6k5em681q78c 8j9brp8e2qsa 3wu71v85le4x65g","quiz_options":{"score":0},"id":"4385177214"},{"position":2,"visible":true,"text":"oriu3pl31qd r6u7isqu2p1 s6lrtm ybawl9g3oafvxx9 sw16llmo3dpc2xx v0r4lrj serixtbxt sy64a2vcyjf f8mhp","quiz_options":{"score":0},"id":"4385177215"},{"position":3,"visible":true,"text":"v0j4ixrd gxjah4rsf03mhtt selnh 311w2 80liajkb9v2h8 m7aggx9 kmjjabnan kk3g4y8jiuv n15toj tt60bhmd","quiz_options":{"score":0},"id":"4385177216"},{"position":4,"visible":true,"text":"vmvi1nlvkd1vy 13gv0qjxtri sty84 df77l wwh82kck3x0 7jer7beg 8x6vcrnh9qiaf3 nhl5ref5v5bud dol9qivxsg8owna xsw7e0s1","quiz_options":{"score":0},"id":"4385177217"},{"position":5,"visible":true,"text":"a2fdw9jbcytl8ok 0ir460hfwm8 rqecrtla vyi4l3tpv eyhkdh47w2uixp","quiz_options":{"score":0},"id":"4385177218"},{"position":6,"visible":true,"text":"yvusg0ns7jw9tt nadlph4 0ur0o5dhan 9jlq9878999lbf","quiz_options":{"score":0},"id":"4385177219"},{"position":7,"visible":true,"text":"48eqbvdq1ubpvyk 5f4pwr438ik81xj x7ioyubgl90808k 12tr703dg0s 9xpyni000c9sbr","quiz_options":{"score":0},"id":"4385177220"}]},"page_id":"168831478"},"emitted_at":1674149695305} +{"stream":"survey_questions","data":{"id":"667462170","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"csowuuey o93r9336 qf9fym8wbog1q l48c9"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462170","answers":{"choices":[{"position":1,"visible":true,"text":"0k0agd84ev s54c44f90gaj pol5dlpg9t fa5trrngfu cvrd4cmtmq","quiz_options":{"score":0},"id":"4385177381"},{"position":2,"visible":true,"text":"9egly8imf1 9k1iapox y80fk4 58nrajt2 swkm1na","quiz_options":{"score":0},"id":"4385177382"},{"position":3,"visible":true,"text":"se2mcirb6lt5ty qqt53dn jpg4b3wk0c7 91onwco8d7ll0 e7y4mwxa ojs5nky 6u7am","quiz_options":{"score":0},"id":"4385177383"}]},"page_id":"168831478"},"emitted_at":1674149695305} +{"stream":"survey_questions","data":{"id":"667462172","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ypxnp3k6 708jao1b5ok671 cv8x263j0f nk1a0a5cm 7y4r2bclg2rgkd7 alax412w9y76"}],"href":"https://api.surveymonkey.com/v3/surveys/307785448/pages/168831478/questions/667462172","answers":{"choices":[{"position":1,"visible":true,"text":"dil7s3hpsuf ms76n abih45plj 9bw5noujg c759tcfvo7t3e","quiz_options":{"score":0},"id":"4385177392"},{"position":2,"visible":true,"text":"okltv66m4qav 88ijt vcq7k5m xcpwi9e4v7 ujqbg24ap g715rctpafkm0g","quiz_options":{"score":0},"id":"4385177393"},{"position":3,"visible":true,"text":"vev8vhb11 dc5mn3colgaea8g jflk5j niy1qt8onj788","quiz_options":{"score":0},"id":"4385177394"},{"position":4,"visible":true,"text":"hq1wbebc2gleq tj2vf867 n1aqc afpekt91re 89guq9pn9rrww 0bgvg74","quiz_options":{"score":0},"id":"4385177395"},{"position":5,"visible":true,"text":"bxkr18qipct gp9wcqfk n69e6ai66xmy01w xlh7s17hlsbcyt o16ecq6vf42q crmh6p ykbam9mxc37ah2 ii40872r6mws 2xobrm","quiz_options":{"score":0},"id":"4385177396"},{"position":6,"visible":true,"text":"x18wk 3k4tt8ae kkrj0xjbf krc0uyrj2u 0qq68","quiz_options":{"score":0},"id":"4385177397"},{"position":7,"visible":true,"text":"fkx0pjep58wx jpxs8a7vfnf bq2hlx3vhqsn qv4d1evms x64h8k3e tqaeb3mc a1yiqm7qjgi8 cnaw9173k6js msisp4d7bf12 qan9ffq3sv","quiz_options":{"score":0},"id":"4385177398"},{"position":8,"visible":true,"text":"tdjr97it3qvsl 8pfqjvhuo91 mp8kdeymnwv9f 8apy9eshudwhq veo63l6q9np w18s0102tvjru 6lckytkggn6 ncdlx68","quiz_options":{"score":0},"id":"4385177399"}]},"page_id":"168831478"},"emitted_at":1674149695306} +{"stream":"survey_questions","data":{"id":"667455348","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"se3rt7c 9l8d9rig3sk jk791y4nv9qp2 nof9xr8 6irr0mr2uv73g4 rmv1ko9gx2 qievxp819lc o9jbr n1vrq"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455348","answers":{"choices":[{"position":1,"visible":true,"text":"6sudul87 6605b94 w6ubg6a7p0v ufh3d5da nyic6pot11a64v9 awpjgnn22pdgup aidahk8krd 0vhentor51fp ujasxxx1srf","quiz_options":{"score":0},"id":"4385138588"},{"position":2,"visible":true,"text":"08yvwmw 441si6svo1bkxm o85tbsa3k wlkn3","quiz_options":{"score":0},"id":"4385138589"},{"position":3,"visible":true,"text":"uvmasd gagqr6qlswnr af0hp3nfg2vucd vbtkx8vssxlvg6k 5g3rhca48m2 y8gwlm2","quiz_options":{"score":0},"id":"4385138590"},{"position":4,"visible":true,"text":"mrjr3x0 57yyh77a3cmlcmj mmwked8tvqnt5 bwe0hh5dqp1sn3 pia1tu u7ujusnwtvt be24cc8s5olebg 5n65mmu5nki2b","quiz_options":{"score":0},"id":"4385138591"},{"position":5,"visible":true,"text":"k3wcw3bjn hq24e21 f5vvmq0kipi 1smhqty4 p8x2xxy0obkxv qsa4cuvmy81r7s 651b5hlw 2ej3xrm289eqd2 ugnf354v90h 92mk44ghps6cm","quiz_options":{"score":0},"id":"4385138592"},{"position":6,"visible":true,"text":"k8yajsxquuu 94uubd5wo9 piwa122aeek 3fhrq5gvwh14jho 6n8k5a54q7nf rnoqwd82y1 tkhxop blr0p2l7utyydd 7eto449ipd","quiz_options":{"score":0},"id":"4385138593"}]},"page_id":"168830094"},"emitted_at":1674149695413} +{"stream":"survey_questions","data":{"id":"667455351","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"dni8kmob8f47ly 92hb1pg6lvuklf f3hvi6 yjiq3bvv yys743quapbmwm 9xclo63 ydxt59b89 iwks1mdba9iuje vmaq243f75y4m 8cqcf54w"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455351","answers":{"choices":[{"position":1,"visible":true,"text":"9e7yu 2366vw4sa3 rhhgm0 yg8p9f9","quiz_options":{"score":0},"id":"4385138595"},{"position":2,"visible":true,"text":"1ldfxfr k0hnmi dcjdiaquo0xyac remaba5g8 9pslek2fmlvxf7 vn4gl8yjs10up4d b4i21994 78q3d","quiz_options":{"score":0},"id":"4385138596"},{"position":3,"visible":true,"text":"aq8d89iqk6 ytv9mg39tq5 lb5gtx1kdm5a 7scilf5j73g580i tr22c460a1vu dvpernw oy2j9qqnhhbpia9 ufy7twqsl2ovj","quiz_options":{"score":0},"id":"4385138597"},{"position":4,"visible":true,"text":"dlt857wic34l 5y0sijl8 1jmsvy9r e7psvexn8rj0nw ioo4ka04w vtk0ihmg27ac bm60oah9 chljr8vrnt8adx1","quiz_options":{"score":0},"id":"4385138598"},{"position":5,"visible":true,"text":"mk4nh6bnddk1ph 63551586l v0d3vhn w9s7xmbbm3 cbddi6vgmddb se5grc1xr2ycuu bmk1yr7kq3e","quiz_options":{"score":0},"id":"4385138599"},{"position":6,"visible":true,"text":"ob4dd4 r36mdre p96uaag57ld7vo yeqwbn7w2tgi4sj wcgvpd0 4jq0nh42ev8 23i0ye5x 4vuki","quiz_options":{"score":0},"id":"4385138600"}]},"page_id":"168830094"},"emitted_at":1674149695414} +{"stream":"survey_questions","data":{"id":"667455358","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"79kmj4p2d 3sbolhwfrs ioe6b93hwr70jt7 679dpby y4mxy 1pr869ii"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455358","answers":{"choices":[{"position":1,"visible":true,"text":"mqjitf64d0 k83dvyn 227nrf 7a5bulp 0jvp9hmiew umwdpysrqbgp he3hkvoxi8d t0ekmaqml bniybp7","quiz_options":{"score":0},"id":"4385138620"},{"position":2,"visible":true,"text":"ocaqjvupc or8s5on 2txbvlu6e20 8uxgb ll6ktjtk gnwy7knkeeev y2t9cah46lu7 rkmxywsr 8qgmy6gm3fd84 eko2r","quiz_options":{"score":0},"id":"4385138621"},{"position":3,"visible":true,"text":"3kjxifk f8vld xx9lg2ejtf3ccwx 1rfll3376hrm xwaevy7i2krc 93h2fggv1nak vvo0hqr0n 27qcal0ao","quiz_options":{"score":0},"id":"4385138622"},{"position":4,"visible":true,"text":"qqsv99lam uidx4csd1npsc nccxm6ueer 2ihx3c5ysd","quiz_options":{"score":0},"id":"4385138623"},{"position":5,"visible":true,"text":"3ooy243l5h usutwf3do32na0o t5vo8vggvjl pp44k52k3dw swg9bvhtl v4mn5goadw4 9g9jefyf6qhsijc 2j1bmvuu83brk","quiz_options":{"score":0},"id":"4385138624"},{"position":6,"visible":true,"text":"fnme6flca1yfyo kj1q1j tsfq15e2iam8 tyny80 fjb3nf p0mtkwgteciioq p5b79nk1a44d0re lwpwx8wu0e2 at5p0nbaqbp 67tqasnk0lb9dr","quiz_options":{"score":0},"id":"4385138625"},{"position":7,"visible":true,"text":"8n8el8 it06oap6nv fapkjmk yxemrfihr61i heif6anfb o9nel86ws 2t1vpytr","quiz_options":{"score":0},"id":"4385138626"}]},"page_id":"168830094"},"emitted_at":1674149695414} +{"stream":"survey_questions","data":{"id":"667455370","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lqroep8etllsp 3o8w6vilbyqlwkm b5velmro8 b4ylvv9kkt"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455370","answers":{"choices":[{"position":1,"visible":true,"text":"4bdsyi00551 hsh1woqfmclyma sslfhk y11rdswosp4l 2my277i74fedi lool7","quiz_options":{"score":0},"id":"4385138700"},{"position":2,"visible":true,"text":"qdn040 3tljs j7juh9xjucx 31royj9xs6q lg56gf8c81s","quiz_options":{"score":0},"id":"4385138701"},{"position":3,"visible":true,"text":"ytndri0sy3noxx p2d3euo 4d2jqiygj8jwasr 38lf63x39sxb irlep2 cgi9pr 4pcvga t64nykcc4gn tv9xfejs41 er8a8pw","quiz_options":{"score":0},"id":"4385138702"},{"position":4,"visible":true,"text":"n2hd3mf5 7gg2j7cn55e77 1j1ijenv62 ntd44byw6 g86vqe62ogytk qcodrayuwmht5tn ix3qc42ybhqd 76ry3 goorkieate s2dofir","quiz_options":{"score":0},"id":"4385138703"},{"position":5,"visible":true,"text":"ct0y2yaibh 5hhaeb2u5jmncca ibf7eql6h w3k37s","quiz_options":{"score":0},"id":"4385138704"},{"position":6,"visible":true,"text":"w9647 j2wq2eisb85rlu js474wesi1j 1d7eiqq 3o7ubmmvsbl4","quiz_options":{"score":0},"id":"4385138705"},{"position":7,"visible":true,"text":"deheetxt3hlox 8e4hd76i 517ltrj0v dgi0r19ud5srqj 1qdru4f sl8p3 7gxolfxkhlc5x cm0seo7wroouww","quiz_options":{"score":0},"id":"4385138706"},{"position":8,"visible":true,"text":"4xv8h753xoo8n1 9atxgj8 5eaohgaugpu3in ybq32s67 atg5l7u4aotebk1 0asuiahw4 dyakwm kpqe9vu81dkfvcf","quiz_options":{"score":0},"id":"4385138707"}]},"page_id":"168830094"},"emitted_at":1674149695415} +{"stream":"survey_questions","data":{"id":"667455395","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qnmuchico4fa8q dfvkni 15mwj2a8 1c8qh1 y3dml65 yfodif0 uik9a vja72b"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830094/questions/667455395","answers":{"choices":[{"position":1,"visible":true,"text":"k9cwqyrhvt6t2y lijf97ywdxctyr nahqrqwo o73wy4r13r","quiz_options":{"score":0},"id":"4385138779"},{"position":2,"visible":true,"text":"0dtp7umdw2tn 3qerkatyyrcndup s70sgadrf0pjwna 13cc30nv 3fku5vgj5","quiz_options":{"score":0},"id":"4385138780"},{"position":3,"visible":true,"text":"8vwwlvlx3 rl3x4l r3itwqo 2uiml2j417 p0x4d9pxyhs bdyo06b oyuo333qq","quiz_options":{"score":0},"id":"4385138781"},{"position":4,"visible":true,"text":"ua5rn0o lgn9qrvh a3xi82nkmd9s2d sdhqh3q8m yu21i9gn3 u4wyck8efnu 47ubnif60vxre wfs92q1c84 qyyup","quiz_options":{"score":0},"id":"4385138782"}]},"page_id":"168830094"},"emitted_at":1674149695415} +{"stream":"survey_questions","data":{"id":"667455427","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bja345d 7gmh5 u335j3ifd bmn2iwulckt qbbgde6 4l86ghgt3bnplod fsq6qpqp ogqqnp01j gycd6318in4xl s7sxc7ric"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455427","answers":{"choices":[{"position":1,"visible":true,"text":"h1f77hud lvvbp8566vit8 eij3l1f6m86rt9 658f6 auhky2x 1qb9805ptcl4yvs","quiz_options":{"score":0},"id":"4385139013"},{"position":2,"visible":true,"text":"82ow11qv0ewplb iipebne7de pccthtsby8y 87tn87egsum9nd 41xopta 65fhf560c 326vjb4pp4mtdvx 4eqmo8viakl pmuv626kfxaqr 9laiyqibgse9","quiz_options":{"score":0},"id":"4385139014"},{"position":3,"visible":true,"text":"8prnel y3ygc5kxmjbxfc hdd0bos b9w3a1gfm1sm6 8wwao s6j2lw5ennapne 6psoe bxyxi pp141xm uatdplo5f60et","quiz_options":{"score":0},"id":"4385139015"},{"position":4,"visible":true,"text":"yejw4cxbnjeup 9war0kp9wl ngag1wd y6quyhtcv lhai6 6fo022bo2 0y9e1wuj sm9c4jui n9udx","quiz_options":{"score":0},"id":"4385139016"},{"position":5,"visible":true,"text":"o9i4r2ej 825mg 5rifxtuu83ox y3nhp","quiz_options":{"score":0},"id":"4385139017"},{"position":6,"visible":true,"text":"3vukbvawqxox yxo374n8xcpw s6ai05vb64 gld3jyi97 auhaq08 sl5tt43hgv n549d7mf0n7cr2q 44x9v5o31yor0 oel767u6o1evo5 knipqna","quiz_options":{"score":0},"id":"4385139018"}]},"page_id":"168830108"},"emitted_at":1674149695416} +{"stream":"survey_questions","data":{"id":"667455439","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"yvl318t7lj 7wdmc8mttupa 2g7ogtjr976g lm77fy59yrhs4 tb928lr2 kiug5rc d4hq6y1"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455439","answers":{"choices":[{"position":1,"visible":true,"text":"du6tsy5k rhhm4v540es3mo oqkt8crv5wvgvj s00kbxja5h 6kmpu","quiz_options":{"score":0},"id":"4385139062"},{"position":2,"visible":true,"text":"b52dpf uy6exuyx l6ugq4ki qkl8h9l 8ptnm 2jwismc2by8 ls428u","quiz_options":{"score":0},"id":"4385139063"},{"position":3,"visible":true,"text":"86bpwgdk1q0 4iigbk1xjrm hncx3xkk5lj e75h213rkrpjg cku6p9no3qv rn1dvjp5hmtbfar 694ly6v9m ue5ad4q xomxi5c69o6pqm f75mwyy5nd","quiz_options":{"score":0},"id":"4385139064"}]},"page_id":"168830108"},"emitted_at":1674149695416} +{"stream":"survey_questions","data":{"id":"667455443","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6myggi xgx2lptp oxfg8bgavhkxd h8586wxt2vv7 tba2bd 07altrm 2vmmtgfir gchrhk6kdw"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455443","answers":{"choices":[{"position":1,"visible":true,"text":"5acyluby8j u7jbf p5x8foahy k5uk8ubi0 ov4ouretpl lxrf3 ufct467j99f2hfl 7dlgr8eo","quiz_options":{"score":0},"id":"4385139109"},{"position":2,"visible":true,"text":"vpcmt6klp47b0 q3o6j96 3mm9gebofu1n2 jq7dq","quiz_options":{"score":0},"id":"4385139110"},{"position":3,"visible":true,"text":"r1wmg0i0ae892 acmd77ws2k 0pk531 pb5k6xev ury0cf","quiz_options":{"score":0},"id":"4385139111"},{"position":4,"visible":true,"text":"0hemigqnwym5f0j vn57ess p5vjtn nylhr7","quiz_options":{"score":0},"id":"4385139112"},{"position":5,"visible":true,"text":"gl7otpnp 0b43hto2wr0o tnavjwnce9lc5d 7j6hs ca3qbj70t b1nc7q4 7j0696hum k6ytijiprdmdvd","quiz_options":{"score":0},"id":"4385139113"}]},"page_id":"168830108"},"emitted_at":1674149695417} +{"stream":"survey_questions","data":{"id":"667455463","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"pjksyv7o2s qtssl1k83 r6ypxm 30krmk4j0e bp8y6m0or"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455463","answers":{"choices":[{"position":1,"visible":true,"text":"olpxel7n8ktrjx l0x3kfm fg4f96cpv60w2 kpp8waqc9j1y6 2bjrk4f v33tofsgnbg s6gcg386 kcubx22oev1ju i3n5l7veb","quiz_options":{"score":0},"id":"4385139230"},{"position":2,"visible":true,"text":"jkdmotc7gfb43b2 4cfkvtut 6w3ys rn3v7u17ccsx 0gyynlvql xgsrdfrtffvr","quiz_options":{"score":0},"id":"4385139231"},{"position":3,"visible":true,"text":"7ngjrf1wlkv1 wox4shhjp4 yivmg3epgwl5d 11tfmviaf7pv59s 14c6b1vudh brl9d3b799gibr fknowr6c fi6k91n34pm270","quiz_options":{"score":0},"id":"4385139232"},{"position":4,"visible":true,"text":"o8r5r32univvk5 dhx2tc7hbbgl63n bxhmmoi6vk 1ynu42 8goapcp gh1gr8dab p1iik6y eud8jxcg jilsond0434xp77 g1s9ydwgrd6y5tb","quiz_options":{"score":0},"id":"4385139233"},{"position":5,"visible":true,"text":"p9xp9x7yepqx wg9w4q8 9f8n1maik5weupa 9s5nnuan5i co88w9s89g2pfq lxrdlybm6 fl702pf2x7 xsp9xl8yrrg m8xre7g s61if4ojul0qlm0","quiz_options":{"score":0},"id":"4385139234"},{"position":6,"visible":true,"text":"5k001wyjow 9rfq00sg6vcytu yxddli0wkif3wk1 vxk0kcy6l80jfc a06swtlqbdg 2lk8kytqeeqs 81w3s8","quiz_options":{"score":0},"id":"4385139235"},{"position":7,"visible":true,"text":"ia4knoy0u1vku io2wydrh90d6 52j9qii2gcgc9fk tx7409a0o59ffk0","quiz_options":{"score":0},"id":"4385139236"}]},"page_id":"168830108"},"emitted_at":1674149695417} +{"stream":"survey_questions","data":{"id":"667455466","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"17ks2i1p 1roi7n8j p21kn jkrvnckxot 3nkruc3e ugsatu9qx7wsw qsttqci3i03e4"}],"href":"https://api.surveymonkey.com/v3/surveys/307784863/pages/168830108/questions/667455466","answers":{"choices":[{"position":1,"visible":true,"text":"n1ic8gxnyrf1 5qacyxsh ixbp7b33rq4kigy 2rdbf2a4 rfms8di taxqa3oc","quiz_options":{"score":0},"id":"4385139244"},{"position":2,"visible":true,"text":"i4kx3k5s1t 3qw1r6n two72xjft yvu2k2 lywg4w3xhffbwrv pu20atqyr5g 34tsp4wk nwadhm3qirol8y o5x91 755w2suug91yywd","quiz_options":{"score":0},"id":"4385139245"},{"position":3,"visible":true,"text":"2xl9i1c4 11w3fsb78 bfoj2 4rmfw06mn2lxpjo wfijsno52y90 wxuik4 70c6ioht","quiz_options":{"score":0},"id":"4385139246"}]},"page_id":"168830108"},"emitted_at":1674149695418} +{"stream":"survey_questions","data":{"id":"667455236","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ibdmqewlt gbp5yhhp c8i5s75wwg 0xosr1devp 2ijbswdblw0bjko k6httw7 kfr0tk"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455236","answers":{"choices":[{"position":1,"visible":true,"text":"3nj2ikx od392yg7 akufy84 6gw9q axmbaw59fn nfc8xe410jg 6allsd7jg7u 3wyrciq0uje8rn0","quiz_options":{"score":0},"id":"4385137904"},{"position":2,"visible":true,"text":"cb0o3tqf5 ijxi31vsg1 i0ga1cu10vmcgry gfmk6","quiz_options":{"score":0},"id":"4385137905"},{"position":3,"visible":true,"text":"i4frvbso f2k3tyww70ehqkp 5qy73 21lpebsil0fwspd kbx0uypchk wqdb8j0a0 8dr1nvs 592s2coha4r0v","quiz_options":{"score":0},"id":"4385137906"},{"position":4,"visible":true,"text":"lmg2vsbrw180cm otp0wq1e2 530jnetga2dp88 e2uploqajl","quiz_options":{"score":0},"id":"4385137907"},{"position":5,"visible":true,"text":"p0gqg3u03 11u6b6 xdb1lqr bxjqwc48sis 5dd68pfpw lxtumpinwgj vwdyg0uw4u wlvjnya7n7fr","quiz_options":{"score":0},"id":"4385137908"},{"position":6,"visible":true,"text":"74mma6 8c3o4 sjp4tg uagi32nfox489p 33m8i9q2t g1ecllv3xjnumg w3i1p26o789 3g8l35xh9m33","quiz_options":{"score":0},"id":"4385137909"},{"position":7,"visible":true,"text":"217g3m8t fdh1g7f6sng3r nt3u7d6n8j1d5 k8hwfegvg4i3xhs 6wung qmv6ilblwpg4t4c r04g9x2 ra26624 hl1gnkjlcu3pn","quiz_options":{"score":0},"id":"4385137910"},{"position":8,"visible":true,"text":"hc8vkvc9 yd3dll3x 2mo5ol4vkqru4k ubqgf odk7ghioir7gc lm0je2 4q3r0 ks32ix ra4rjxv2d9","quiz_options":{"score":0},"id":"4385137911"}]},"page_id":"168830068"},"emitted_at":1674149695519} +{"stream":"survey_questions","data":{"id":"667455240","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6vdliabstjs pjq6v4ea sux2ll21xwm7h qt6k4qflxuslj ig5xnx aqyngvnivqhi63 k7trhm7s9n yc1uiij"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455240","answers":{"choices":[{"position":1,"visible":true,"text":"n59jsjeq v4yp5kweu77pjd 6dsaj62 f51922ixg bfy1tdx0ajmwq sq2g2ca6t1ag t91oetm","quiz_options":{"score":0},"id":"4385137924"},{"position":2,"visible":true,"text":"miou6 s74ictupiv15j a1ojxwpxsc 24wjut22cino3li 3nef4p8a1onycu s2iku aluhi 78a20fa","quiz_options":{"score":0},"id":"4385137925"},{"position":3,"visible":true,"text":"96wygu4eqjryyr vft0o 1omksgrj4e4u hov2cmxl xryqlb9qe5s 69bf1gxp prv2hpeebouh","quiz_options":{"score":0},"id":"4385137926"},{"position":4,"visible":true,"text":"80jv70rswm80ng s3yupsiahmmfxf 0qerhyspf y1shqteym hu7hk9dkpo 58idxrntiwiqc h36nn","quiz_options":{"score":0},"id":"4385137927"}]},"page_id":"168830068"},"emitted_at":1674149695520} +{"stream":"survey_questions","data":{"id":"667455243","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"1lmh6obuf8d67h 9f7639oxptfr pgb8r ud5359op7klll"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455243","answers":{"choices":[{"position":1,"visible":true,"text":"ht5dtccv20hfamc 6m2dk7 edktxyp 9bpptvmpf 76dv4sin8ps33ac","quiz_options":{"score":0},"id":"4385137931"},{"position":2,"visible":true,"text":"m1e1sw2b xk8ujpclrw rnv8g5qtu04 g1hy75 887fxgre","quiz_options":{"score":0},"id":"4385137932"},{"position":3,"visible":true,"text":"8iqn4b9 ico6j1l7h b44vd6d3383m0 rkm2tqhsi00qy 5hso1f919pq 5yyhjb5h7 dhhsrml5g6kiefx apd2weqls w4hg7 p1rwc2o7pko","quiz_options":{"score":0},"id":"4385137933"},{"position":4,"visible":true,"text":"erh5b0d 47uxrflw 23r21lf24iwf bb8yqiqs79 3y8eb7le7y2ocb8 juni8","quiz_options":{"score":0},"id":"4385137934"},{"position":5,"visible":true,"text":"x32489wko4ns f0ob7be3j pmc9ui3s6qp0 08kfm8yaqcanw 8aot5prgvkqyseo q4vp4n656gj57g xygwva 96gw2r2npb2","quiz_options":{"score":0},"id":"4385137935"},{"position":6,"visible":true,"text":"sjsfbmxa97 xq0084k5hm3 hivfs05sfir 40dj15utx bo9mx1yu0","quiz_options":{"score":0},"id":"4385137936"},{"position":7,"visible":true,"text":"jrb1fu2j x90bw8mlv85gpl0 xfo84sk0jy6 l3392k bucd4nmlc7yj jdj3x2clsir95 uw9dhluee e9ai5v8pm5 4eufmbvvi","quiz_options":{"score":0},"id":"4385137937"}]},"page_id":"168830068"},"emitted_at":1674149695520} +{"stream":"survey_questions","data":{"id":"667455245","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"h3en3q3evla 6eye52o9ijuo 078omcsgacycjn9 a76ryw2wl 5ejj2a399 r62c2jrxj2x7y"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455245","answers":{"choices":[{"position":1,"visible":true,"text":"90t457 4q172 f4kmgq3 vc09o 7hqxmsg9jx6 7fenorkuyq ov1kus876aiv0p rrmrq5qlittb6y","quiz_options":{"score":0},"id":"4385137944"},{"position":2,"visible":true,"text":"9aii09 2r9oaqs23 j2x9qy94cnxfgn jrlxnqn9n","quiz_options":{"score":0},"id":"4385137945"},{"position":3,"visible":true,"text":"r8jgwe j87njrw3yo1fla bbngq3 g26et","quiz_options":{"score":0},"id":"4385137946"},{"position":4,"visible":true,"text":"91n95cu 5fp11un vngsubusfe4 vgbho","quiz_options":{"score":0},"id":"4385137947"},{"position":5,"visible":true,"text":"9qw7f8sdfws1 6wfueox bghljj3 4yal6iqt73m6han l921hy 6yr04p7c","quiz_options":{"score":0},"id":"4385137948"},{"position":6,"visible":true,"text":"trrepiynd5phbcr 35t494bg wm02s1clg9wkxl1 eemhx faxm4gd3aqepewc rp34jr2ho5gb5q ol65t043p1 66bg3yos kh4xbmdvqyvm ibrokgs","quiz_options":{"score":0},"id":"4385137949"},{"position":7,"visible":true,"text":"ni9kx4ob31 mbn9d2n3t4j6lal xel50s53bw6eydo b0s9p p512cv6lrh 2jq1h yqmu3hg70qxw99e k1xjbd vv9lbb4kvlt1jg p86c1lob16h","quiz_options":{"score":0},"id":"4385137950"},{"position":8,"visible":true,"text":"3tx1f04qbxgku4k modppm wc68tgts7o me6s4w7ikqolcg4","quiz_options":{"score":0},"id":"4385137951"}]},"page_id":"168830068"},"emitted_at":1674149695521} +{"stream":"survey_questions","data":{"id":"667455263","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"gx0d844wwsnss b89h0hrw ihlud3p23xbv3 mtv2g99i bda7267b5 pxxsxit4ey lcji2t"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830068/questions/667455263","answers":{"choices":[{"position":1,"visible":true,"text":"e0dhk875qtxip 22ci0nbrenwe tnj1517py jfe77 wnmap goid8 s5r92q9nx9gbxf oy5bkxrwsyqx 7oemt6oc3wcw2 5iwm8","quiz_options":{"score":0},"id":"4385138060"},{"position":2,"visible":true,"text":"nnkw2nj3g1wb 6os5x3rph9 oejmdr7e u9vf9uaxis17w7p vee9xcim164h jkcq9v7e01i njv8rrgfo3hfumd ha6djf y3jckk4un mwvekphui4","quiz_options":{"score":0},"id":"4385138061"},{"position":3,"visible":true,"text":"0b1s6goa 31eeolk05pyxfvy 5fd1rlv8g8g 9iachco 3gqpac6rjo hmq9tr5huh4mxm","quiz_options":{"score":0},"id":"4385138062"},{"position":4,"visible":true,"text":"kkpmmshmp2owso tm5dsf0bt4rm474 w1wwr4 p6ltlf pxm8o1um1cv 8lh8goe9rqqo58x 9j7ej5b 4chhf50nlimyy","quiz_options":{"score":0},"id":"4385138063"},{"position":5,"visible":true,"text":"hygcvxvhqh1um 80ak8e wd9b3vkvg hkyetchu2pdm1 tn8hu6fropre lqx4jilgig1929w","quiz_options":{"score":0},"id":"4385138064"}]},"page_id":"168830068"},"emitted_at":1674149695521} +{"stream":"survey_questions","data":{"id":"667455268","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"of74qo8c 333x5lwc2aral be0joqsxrs hvgeb7ltbcu dtyfa2y98wnn2 jbv7c vjee2juk267 o2fd4pyua"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455268","answers":{"choices":[{"position":1,"visible":true,"text":"jyb7orcvpwo c9lcx 9aq0cld2fwngg5 ple2j5y3xn2px itcvwnp0rpn2 ykoj6qw las5p s01fya1co65 q6qrkss","quiz_options":{"score":0},"id":"4385138108"},{"position":2,"visible":true,"text":"vd9eniq 7lpv8hbl bq0pjeiplw0 f0hjp7xyv2pk8 82d5r7ciqjbl ngrw1mugyp 0qb5g4vnxxjjpf","quiz_options":{"score":0},"id":"4385138109"},{"position":3,"visible":true,"text":"s84erg ueidus67wjw w849glheqbx5p0m w2am53 erjlbf9pu7","quiz_options":{"score":0},"id":"4385138110"},{"position":4,"visible":true,"text":"n9yd3gp4otjuvma 16axdetwq epitspj3f8hq bgqks3 1s7wh28 qn8cff mfk5el7vr2w26pg 7bkx6xqe 1d9eryxaimnk u6sr9v3id0t","quiz_options":{"score":0},"id":"4385138111"},{"position":5,"visible":true,"text":"l3bswpvl 9obip6i6bvg ytwh8i mmn1n0p9xe9kiu rjgto5mi9ce5dm6","quiz_options":{"score":0},"id":"4385138112"},{"position":6,"visible":true,"text":"a7j5u 2td37rxj7 1lwcfapxi2cw6g 32egv55cc52fcv ay1jvha 1169qapnsa0avix w406ev2kwt1k8n y7xqqn i8uoafghx8 gelu50jf149xtg8","quiz_options":{"score":0},"id":"4385138113"}]},"page_id":"168830074"},"emitted_at":1674149695522} +{"stream":"survey_questions","data":{"id":"667455272","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"svumjkj5ei6 t1jkf ttf93l bilmloj40l q6er242eh bojtdo6 sf5jtk 66a4anc 3j5cbh3k xdfpwwtdf3hpb3"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455272","answers":{"choices":[{"position":1,"visible":true,"text":"i6ece2o dl6k3s11vd0 shf3m get86","quiz_options":{"score":0},"id":"4385138126"},{"position":2,"visible":true,"text":"fufxxy5ueb 5u74cl6a lol396aaape2 dwgaeqcphflg ogf55axqis54 1a338abonkbvc5 f0hj7rjhu 15gsns71xund4xp","quiz_options":{"score":0},"id":"4385138127"},{"position":3,"visible":true,"text":"di9p4lr30wahw 2rg14l uqqnx1roqy5k65r 2we720uhdva oyb5f74cil odhas8h1n4u3rj dqrhl943a","quiz_options":{"score":0},"id":"4385138128"},{"position":4,"visible":true,"text":"b2j0ivu58yysns 4roq2 mqukye4mmik92 wpr49dqhc6y g6ivs5m7n9 iotdbwjay566 06vv0nn17yfqb59 peuvkh9jjd jly7qt4151 roq63i3ld","quiz_options":{"score":0},"id":"4385138129"},{"position":5,"visible":true,"text":"1rceqano97 sd5m1s3hsskyv7 bwmei412e ikfkbu xhdo2mx6 aqg5dpo10 sfjb38 vj05jf71y","quiz_options":{"score":0},"id":"4385138130"},{"position":6,"visible":true,"text":"7nlryn01exq u14xxgcx8mngy 4pc2y3 48lxatpljatuox vbt7cvv2cipj7 ise8v3j9wnomr ms330kk mgjaw7kgowjfq6","quiz_options":{"score":0},"id":"4385138131"},{"position":7,"visible":true,"text":"y0sx70a14 527jr the5p62a hga0cg5nio53 hv2s0l 6e2lq473mrdqgo","quiz_options":{"score":0},"id":"4385138132"},{"position":8,"visible":true,"text":"rxtxctm7 veua1a ds34biwojid 5cjj1qvd3 v8ksghp4g 6ist9e a5xrfr8r2 ae9rb2xw lguj1iafi","quiz_options":{"score":0},"id":"4385138133"}]},"page_id":"168830074"},"emitted_at":1674149695522} +{"stream":"survey_questions","data":{"id":"667455276","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"6ms3lgjw25pq b20i2lk pkqw6iy j77i7ux32y8 e323sjcc kh8fxxm724seg"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455276","answers":{"choices":[{"position":1,"visible":true,"text":"nqewt2eyb57 a96u7u 4sr85tfu1 acbvejxvxdui ur1p5sb 4a2r81h0hnw3m 51q3v7s4kllox","quiz_options":{"score":0},"id":"4385138155"},{"position":2,"visible":true,"text":"maso4 ovhyv0ixo hu4gwpq8ky21j9 qo2qc3kuc8n lvou1 a0wbyyp bqr9bre7 csdtfe ya1ltf6kynj93y","quiz_options":{"score":0},"id":"4385138156"},{"position":3,"visible":true,"text":"bjaogae0yct1yk slo3wuygf6 wh0fyn7lym fof1mvu a23qhlj 0rkb9sms 14urdydlb5vht dbw8uh0n3rwdj2i haqry8lhmmpcnmy gw3bvde3lsyue3","quiz_options":{"score":0},"id":"4385138157"}]},"page_id":"168830074"},"emitted_at":1674149695523} +{"stream":"survey_questions","data":{"id":"667455290","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"8rej58igix 5ev85 tiximo qcv1v11x0ixckwa uhte1umn0p v1h2mr0lm6 duw2034nurju"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455290","answers":{"choices":[{"position":1,"visible":true,"text":"xx157diwdtvnm 27fuvnqueywcf2d 7fgvt3b 7qte6 xb8oaf6bdynl","quiz_options":{"score":0},"id":"4385138209"},{"position":2,"visible":true,"text":"7uixmrb45 5217t8r2se vv8oeea62 4mjg3vqh og2vgrc5v251 xe8bb89i iefjxgj 5flbdfdb77 amgpmbo6gav6i","quiz_options":{"score":0},"id":"4385138210"},{"position":3,"visible":true,"text":"1sn25lv32td8 516w18 pdmovblb0hbd50 42vmf7","quiz_options":{"score":0},"id":"4385138211"},{"position":4,"visible":true,"text":"rnlfk p5x50v6jxbdfnkc lfjnc39nl8o ok6oyhwope sr35gd1kr5r8fg5 em4qqf7wj tt8linqt 8e8c6d9 s2geie6vw15ny nbkq71k87eu","quiz_options":{"score":0},"id":"4385138212"},{"position":5,"visible":true,"text":"g0otgfss8 l5ag3n97qp b3hbjigxocewjyi dflt05hus4w ddpumu2h7dx6ff pby1r9n a8d6xu9db rwapp","quiz_options":{"score":0},"id":"4385138213"},{"position":6,"visible":true,"text":"1w7np c3t0x knc262g yrfo4f1r4f4reh i8dhd9l1v77 72eamvjcaggrn9 fb7v3v2g2","quiz_options":{"score":0},"id":"4385138214"},{"position":7,"visible":true,"text":"n5h0km6i 58fjgrqq s17q2dwxiha 9wl01dstrdvo upbsfwpyyryn 5ducq pm1vbp w4no5od9pwqf b3e18e3i","quiz_options":{"score":0},"id":"4385138215"},{"position":8,"visible":true,"text":"o9ln4neod6l3v 5p7w4sosqt95e qk9mir6c48fbqj xlglulme cbafrf2g69p6nj htqcbq8v7u24lyc","quiz_options":{"score":0},"id":"4385138216"}]},"page_id":"168830074"},"emitted_at":1674149695523} +{"stream":"survey_questions","data":{"id":"667455293","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"virtcpk896m68m bbdg4mss12ps3 qo4gk153jqp9 iotdms cxo7l2t9 gtofci5cg0er"}],"href":"https://api.surveymonkey.com/v3/surveys/307784846/pages/168830074/questions/667455293","answers":{"choices":[{"position":1,"visible":true,"text":"1vflj0ggk1o9l nbqw3aj69wprwix i955uorj 69jyg2ci6m2lj sb3sor4o2 jmnjbw3i f6weyfas9eq1 yanlggtlu8823f s7fpa7","quiz_options":{"score":0},"id":"4385138239"},{"position":2,"visible":true,"text":"mgeif2h8oilulvj 4q5x7owpgk sxoc48wbr7u3 rmt30uk4m7w7q hpqj8faxcl3qrc5 qfuhdde a1itv i3292al93b","quiz_options":{"score":0},"id":"4385138240"},{"position":3,"visible":true,"text":"3an10n o05hsocsiq0quj5 9ay5x f6p79mjl jjcw6ym9dpfwrj sygnf5 bh3mo 1x146ti6 x4u0e3pxa1ko","quiz_options":{"score":0},"id":"4385138241"},{"position":4,"visible":true,"text":"va9yadd6 xsc7t62edxbwl d7d7n7ecqsealn u9ognb1ox nmaht pwy1d 5mdngtxn4ol1tel dxlmr67c00e hw11e9xn7h","quiz_options":{"score":0},"id":"4385138242"},{"position":5,"visible":true,"text":"b1qfaxqnj91j8mj edwip5b22pdd tuh6g5uodx2 sn4e9lv7xsuul jxmu0iubodnpw 7rqts1liyv27j","quiz_options":{"score":0},"id":"4385138243"}]},"page_id":"168830074"},"emitted_at":1674149695524} +{"stream":"survey_questions","data":{"id":"667455297","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"lq8cc4kb4wb hagmv535tvyfw4 q505o lc9pke7la"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455297","answers":{"choices":[{"position":1,"visible":true,"text":"gnig56iqkr f2p71ed2w9fr gnpyvvl1 9mc6qpbow5tam mxta8 t9blqkndj9c 1gisvkrl2 0p43lebad 6v56y0e392el ahfwj9tq6lbhm7","quiz_options":{"score":0},"id":"4385138277"},{"position":2,"visible":true,"text":"77wwt btv0ntp gym5s54 lr3ji8wtg4dd qoy58mimj d2yjili","quiz_options":{"score":0},"id":"4385138278"},{"position":3,"visible":true,"text":"9hphq 5qj6yrbg2na mnmodl22e8cg siook2te8gpl","quiz_options":{"score":0},"id":"4385138279"}]},"page_id":"168830083"},"emitted_at":1674149695661} +{"stream":"survey_questions","data":{"id":"667455299","position":2,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0cphg3eq5u jtapt0bso07ghd 0bgtvsb 5pd5xfhq5t1fgf w0jm2nstiu 93om3crky6skr q49leuh249 3q2tkvncda03g 40orw7354cy p8eku"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455299","answers":{"choices":[{"position":1,"visible":true,"text":"mrhrmoj8c c8fd51r 0lbuywjnvnmijj 0tmyxfrg fggvqmm3bvivav 8b3elaxwyb d2wp2i hr0jllmfkd7 prv23lvvws27gx 0e6okfhy5sn","quiz_options":{"score":0},"id":"4385138282"},{"position":2,"visible":true,"text":"mv5uq8u7dup2r lfo2ih2jkc5cp r6jydm0x6w 1p1c3s67p57 7eulrlih 1v7p2vig8 99esod2scbs pg87n9lp9mg476 6hmjxdey","quiz_options":{"score":0},"id":"4385138283"},{"position":3,"visible":true,"text":"ahxj3 imh6reai78juny6 bop9te8ej8q6l gwxwkjup43o6tr1 nbvorbchco4ptow pwomv9iyd9t jkrjgggo3s 6ipaxevsfrxrmtw uq3n0cmg k1odeemd29l","quiz_options":{"score":0},"id":"4385138284"},{"position":4,"visible":true,"text":"t4pu3i ixvxd q10uqer3 gkqtljjmflbts","quiz_options":{"score":0},"id":"4385138285"},{"position":5,"visible":true,"text":"xwwgqr 7hlt9dq 1tloksa kehvt","quiz_options":{"score":0},"id":"4385138286"},{"position":6,"visible":true,"text":"2vinv5qis ipjdbl cuwxgei6t8g is2ihbn xs3q9m3rl","quiz_options":{"score":0},"id":"4385138287"}]},"page_id":"168830083"},"emitted_at":1674149695661} +{"stream":"survey_questions","data":{"id":"667455301","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5h0aahwgk8 eoh0xct ytmtsdr15y fawlco duk30p0qejro"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455301","answers":{"choices":[{"position":1,"visible":true,"text":"1ib8lq0i q896a iwg01totbr1c8 nic9ye883le 9pjfihiuxbp5 6wu9jitrk1 k3kvcggtbgboo9 nenddst 1qgr2y ilmy2v1ddb9","quiz_options":{"score":0},"id":"4385138288"},{"position":2,"visible":true,"text":"05nxifhb7u4 v0tu1 i8u8dd63ekyj h3xah1h0s7k9vn m95qi vmfn7l5i7iu3es hrywpnsl6rp","quiz_options":{"score":0},"id":"4385138289"},{"position":3,"visible":true,"text":"1fgt8f3w 2i0cyt47w3sl6o k8x6l8i3stl2cc 2h13e9tt1cwaa9 e5l78fvc x2y42gkhqhkc7r","quiz_options":{"score":0},"id":"4385138290"},{"position":4,"visible":true,"text":"ye6nyey79pu2 596slmq qgawtw10v06mtad m113i7i8sd1l x9o2f","quiz_options":{"score":0},"id":"4385138291"},{"position":5,"visible":true,"text":"2mr26jkd368pv wfxs2sxlxag3o3 o15fq 5u1n5tdvs7j0","quiz_options":{"score":0},"id":"4385138292"},{"position":6,"visible":true,"text":"ffdpeyyy nvtjrvxqnqmr f2jwutj 5uw3e0w4n2h dmah35mk v979ctn 2s683h24","quiz_options":{"score":0},"id":"4385138293"},{"position":7,"visible":true,"text":"245tmey w2ltcq50f sktfit h9ymojx j3xrggyo 51d1y","quiz_options":{"score":0},"id":"4385138294"},{"position":8,"visible":true,"text":"lv4qkg6meoylx rmlf7cdb1aht r316f1u kfcwrh5 cm1m3 s5x3eqj3t v1h721uqo3k5km7 9n1oqah9","quiz_options":{"score":0},"id":"4385138295"}]},"page_id":"168830083"},"emitted_at":1674149695662} +{"stream":"survey_questions","data":{"id":"667455314","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ux15jxtnsx3 vofmkp85 a5kvupg5km6vq0 t5g3uf3q7hn i661htxcb s7x7r26 orjn3oisiik"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455314","answers":{"choices":[{"position":1,"visible":true,"text":"9fr03iy 9xmpt6xgqwpc k6t7k9gp1ht1 6h620md9wd70hh bs3kw i9htv yil47l xn823m6ih","quiz_options":{"score":0},"id":"4385138315"},{"position":2,"visible":true,"text":"it0ef6tr6h9nt t2jwq18hq3w59p4 oyx7e1bj86bcm 02aaa4kvmf8ru77 ssmts45dadkf gl1spgihc4 acylm 0vmvvgxv6yvey0 8xi073ec2m5","quiz_options":{"score":0},"id":"4385138316"},{"position":3,"visible":true,"text":"8m4mr5q 7wkbq4t8vplwih 0cvqrnnt qt9mjry1n xyqbuaepupf3 ed52xu5ak bd1vxipoo5ad s7pxs874 a9imnp7nm","quiz_options":{"score":0},"id":"4385138317"},{"position":4,"visible":true,"text":"2clmq75t 252dtb2ce3i fld27xux vrip5ox3ds8qnb lvp972rcrcjc ruvk2sclvimuvx 1ud7hrsbm567","quiz_options":{"score":0},"id":"4385138318"},{"position":5,"visible":true,"text":"0l86fyh8uo 090ymhll1pq 9lkwl89vq f1pcky3lidacy9 3ecmm11niu fu8tfp","quiz_options":{"score":0},"id":"4385138319"},{"position":6,"visible":true,"text":"h37f95j7qxup0fe tbx1l3bgii ol4bri0itarcwk doh3p2p0pi jq9guw3h382 08fje7vyonhmfe5 s2ioi7c4v6ci","quiz_options":{"score":0},"id":"4385138320"}]},"page_id":"168830083"},"emitted_at":1674149695662} +{"stream":"survey_questions","data":{"id":"667455318","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"1gm3ed2s89 p2xfqhaj4r p7fwo6 12imab59cds2p aqmmilr2dvmwvky nljfs ts3g4cw6au9jii snbv40hbjcu3"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830083/questions/667455318","answers":{"choices":[{"position":1,"visible":true,"text":"dfyvo2qlanm8s ikbv3wa7030 rmjt80 o7cym2 1r6qae7c70v30 fko724jo7me82s1 bsuhjbov2ttwr q3w1wpn5twsv5e slrnk3sx m3u87rixhv6nmc","quiz_options":{"score":0},"id":"4385138386"},{"position":2,"visible":true,"text":"f47smf7vov8sp1 24r5d2b6q4s duka34dqpn6si 4r2wn 92ekkv2p794l8h l8n6cdc","quiz_options":{"score":0},"id":"4385138387"},{"position":3,"visible":true,"text":"okl5ki7v1r5 4oqdy4 x7ny0qmas 0ddqlr1 ja5wspe 2ieqa m3ucowjq1krai","quiz_options":{"score":0},"id":"4385138388"},{"position":4,"visible":true,"text":"gt5y6 vpjp0e5p6 vqhwb2dytiuihsv ru25v6bm mcihbuved71h2 quy2rej9e8eb97","quiz_options":{"score":0},"id":"4385138389"}]},"page_id":"168830083"},"emitted_at":1674149695662} +{"stream":"survey_questions","data":{"id":"667455323","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"wv0en qigyrej bappxu8q j3ihl9p6ki"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455323","answers":{"choices":[{"position":1,"visible":true,"text":"xv1me9s6hd aihplmw6 plhv5b k52pvh68j so1ggnlishy5m 6qe1fhw75gt k1jxdmddlhj35en","quiz_options":{"score":0},"id":"4385138412"},{"position":2,"visible":true,"text":"7ecrthfm97aysv 8u9a9sn1f9kj8 90owtm 0h8qgota7j3qpn vnfs9vleja36","quiz_options":{"score":0},"id":"4385138413"},{"position":3,"visible":true,"text":"v519ikhgw0fl s8x0shqsi ssr005 8xm1b7fal622l","quiz_options":{"score":0},"id":"4385138414"},{"position":4,"visible":true,"text":"gbpim9ar0dfgi94 nj0mq3ejst csj5e 763j6d5eo gf4fvw0 s2ea20n33yo iqd5r5l9 3t0okvw2oyh","quiz_options":{"score":0},"id":"4385138415"},{"position":5,"visible":true,"text":"jyxp0s7xfc7td5y vom52gda3dxr ko6256dtc5nv5f 7s8nej n32hyka ywsoxywn","quiz_options":{"score":0},"id":"4385138416"}]},"page_id":"168830087"},"emitted_at":1674149695662} +{"stream":"survey_questions","data":{"id":"667455325","position":2,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"jdkmr4b5t3o9qd6 0u4huyxr8whu cxqri4e2i1a 88yyx cq3xbymudltf y6hmsrn4socbj"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455325","answers":{"choices":[{"position":1,"visible":true,"text":"5aacsmqn 9p8l1tvy9i 0f92rvnxn9 to5xiaghqmiw 6xik80 jxvy64ut9 bjk3w6ywb","quiz_options":{"score":0},"id":"4385138421"},{"position":2,"visible":true,"text":"bc85jh39p 7nskr87a3x ny6d4 jlbavo9t8h6j6hu dh5ne","quiz_options":{"score":0},"id":"4385138422"},{"position":3,"visible":true,"text":"3vykabcspbl7qt ajqad2gu3v0jbg yeo3sobedrdfe0 1wcrn35 5l7jwq3 f5bc8bx","quiz_options":{"score":0},"id":"4385138423"},{"position":4,"visible":true,"text":"sm6lx7btphddbw 0882qf4o omh4u2i446c9p4q 5hqyq27jlse1e7 ns3xkqg8gcx8pc sjd0skhv 9ydxkadh8e814j7 0mk8m5tm9d38e 23cvhf22g lxb5c7c3p0oe1","quiz_options":{"score":0},"id":"4385138424"},{"position":5,"visible":true,"text":"2x7f7xmgur5a 6mn40jjs2dde 3th2mj8cn dv2pbu6s 7n8hw1f ptapt6nxgddk7a 4cj77u6m3mm idvm31 mx9ygnq3i 4lw1gmm4cwaig","quiz_options":{"score":0},"id":"4385138425"},{"position":6,"visible":true,"text":"3q51n sofjjqlu2y 6088c4c ncdkdt8exikoiir ew86v6gkob94v 7jsgkctqkhm1","quiz_options":{"score":0},"id":"4385138426"},{"position":7,"visible":true,"text":"7lffwkal h4d2j5 dqjf3y5 jwopu 0xf2vqmb6an igo5ri3px747b 0l5s9df7w7s","quiz_options":{"score":0},"id":"4385138427"}]},"page_id":"168830087"},"emitted_at":1674149695662} +{"stream":"survey_questions","data":{"id":"667455328","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ieffti0yi qcxktrskkug9ij ebvs68ni79 1vrpnp mobkmem70 7uc86c7sx"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455328","answers":{"choices":[{"position":1,"visible":true,"text":"7vvg5h tc4vy 5c5194t1n6eu wutfyil","quiz_options":{"score":0},"id":"4385138432"},{"position":2,"visible":true,"text":"17dh5pnpe3bc 6gmy6r15tq7 fuwlrcnnt61wotb mj08g80e2pri","quiz_options":{"score":0},"id":"4385138433"},{"position":3,"visible":true,"text":"414pty e5a4vs1 4p6122ihy qnjg9a xuowh226f18 hc449ct tdwm0wu29u","quiz_options":{"score":0},"id":"4385138434"},{"position":4,"visible":true,"text":"24k06ig dhy3huyx0plis 0n5vomlwuo38j 0nft5aw obgn4qcoq0l44b l5dtviydcom58cn 699vqm6 06i0mr52i0 u1mvn mm1bqovxpvtwkok","quiz_options":{"score":0},"id":"4385138435"},{"position":5,"visible":true,"text":"3fr4ttmtr3mhvr d7xcfp6tx48mne3 ttcyvypnom ik9eqkf o7q5x4veph 31y5w8u036c56rh 9yar58y9t5d","quiz_options":{"score":0},"id":"4385138436"},{"position":6,"visible":true,"text":"jrghjb5g3h6t dlpx7hve7lijy 77ergx421ad dgekp5dauuod5t 3mn6a 7m9wvlhvgeua 5orruhepinotb hd948u958 23p4f fmprms","quiz_options":{"score":0},"id":"4385138437"},{"position":7,"visible":true,"text":"dvjf23fp1f8slys 6120e2kbl8p1 f2ildddc i9ocnxo dk1c5jm5bx3 1mmcj3qmntljpbt 889694rivh72g07 25yrmna iwjlytheaogoxq fanj2","quiz_options":{"score":0},"id":"4385138438"},{"position":8,"visible":true,"text":"f2tlh hih5om u7aqefshc47ph sxxt22yg7hi","quiz_options":{"score":0},"id":"4385138439"}]},"page_id":"168830087"},"emitted_at":1674149695663} +{"stream":"survey_questions","data":{"id":"667455329","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"96mfgjfkj4g 1roun x4g5tcrq d52byhs855 cjc897qm8l udgjrsby"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455329","answers":{"choices":[{"position":1,"visible":true,"text":"2ny2fhgpm6 aturc40fuggi de2bnbhjnc a8jmpcw54h3nu pij7dkc3 sbrbi0rbi40ox2 wskx4gyt7aoc65 coi4cfe4y p44mj88ikx 93sodjvxi7ny30","quiz_options":{"score":0},"id":"4385138440"},{"position":2,"visible":true,"text":"t1f53t6jo 5s7kaoe ma28g93gfjjsm nwfjlfr2 h4k3jav 4xvidc3fv 8enehee7txlhvp ca6vkoxrb465pi xmi35um8q54r6 4rvruqr46m","quiz_options":{"score":0},"id":"4385138441"},{"position":3,"visible":true,"text":"i7iw5 ap5gjyafbm2l adp3lcc1 52hc8 j6ldt5","quiz_options":{"score":0},"id":"4385138442"},{"position":4,"visible":true,"text":"468nunilylfthe gwy8lhtgga9re4f 5xacgti673jfgs 3eei9s6qwg4avy ksqn6cwpvl585 wtyw59jhy7kck m462cr65qglmq ev7c0b5","quiz_options":{"score":0},"id":"4385138443"},{"position":5,"visible":true,"text":"yxrha98q xgjtmqc6x6tbsq l5co87ln2j3044 49lpv4 l8rfhvt2 rp4v9ofww2bekc7 ops08osul9","quiz_options":{"score":0},"id":"4385138444"},{"position":6,"visible":true,"text":"dbah1h80x 07f9vbs n89jmtwm0t2 47sd0ilc umky7iesp5j1ye f825fm7sn5fteb","quiz_options":{"score":0},"id":"4385138445"},{"position":7,"visible":true,"text":"9ybbt8x1xk o12xtb esgrab5p169kpou jyx54 456l76rs9f 3pcmlfoju rfyofv71 lb7gr6gi2ab0 gmexy","quiz_options":{"score":0},"id":"4385138446"},{"position":8,"visible":true,"text":"k3s5bwg5b2q 0ikv741vhxu3x4w efpp0p21i1s 44ca0fl4bklmn","quiz_options":{"score":0},"id":"4385138447"}]},"page_id":"168830087"},"emitted_at":1674149695663} +{"stream":"survey_questions","data":{"id":"667455332","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"v80ku mx1co9qwm34tat e9i3mdjcvixs grggkttt lhn014lmqj86 achjddrt9o5fx 9v07aged4niq0g ye1woaclolxuaq w5e7jclooee"}],"href":"https://api.surveymonkey.com/v3/surveys/307784856/pages/168830087/questions/667455332","answers":{"choices":[{"position":1,"visible":true,"text":"u1e4v4rx27412v v9mjw7oaf 0t873cte 57y89l xdqtturimm5 b4stpodx65s8u 2mk2es7jwrpn 7enb3sp29","quiz_options":{"score":0},"id":"4385138468"},{"position":2,"visible":true,"text":"w0mid5oagg qx0e1bvil6w5v6 0cadbm51x7hbg rpxgn9yni","quiz_options":{"score":0},"id":"4385138498"},{"position":3,"visible":true,"text":"7rex013 m75tu1nu9orrc2 k4du9rcsy2n5l0 cfbiki1u6cp2f qe81rjnguphrum j4019 tbl21q37","quiz_options":{"score":0},"id":"4385138499"},{"position":4,"visible":true,"text":"sat97b1hk6dx9k uq924nht7pr8cb 7nr3h2hclmiqg txrkxr29wtrc217 bxmed4ll1b23561 vvsu7 x293il lrl3e","quiz_options":{"score":0},"id":"4385138500"},{"position":5,"visible":true,"text":"h3yh19ckoclpq 0hb213i nj1mfmvbj9 p4ibgetarc6h6u 8kahs","quiz_options":{"score":0},"id":"4385138501"},{"position":6,"visible":true,"text":"xyvg34bae2 7u2n4l87h aec3h1sy5aw62r 60yajbqvxifw65 c7q9ty4pdby2d vyjp2 n7tavs0550g46 07p64c9pp8oo","quiz_options":{"score":0},"id":"4385138502"},{"position":7,"visible":true,"text":"kn8f11mlx sucpq9a 79n0u6vi1tgt b0dom486a929h ocblyvsm6 ti4tnjv533","quiz_options":{"score":0},"id":"4385138503"}]},"page_id":"168830087"},"emitted_at":1674149695663} +{"stream":"survey_questions","data":{"id":"667461429","position":1,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vq7ho4rb qt0fpw3 fvn1b2y21n fpkcw9v73dqvfq0"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461429","answers":{"choices":[{"position":1,"visible":true,"text":"p7fu5tjqvd qgxdych hv1xcryuq7jlia 1qjuijk40 2v6u2e kwqcepbnx 2hjta3wqc je2wbyr6337d5 o0fq46u48nsa as5jyqahxo","quiz_options":{"score":0},"id":"4385172931"},{"position":2,"visible":true,"text":"tubba qc6l28jc4m1xi 5lf38au3ry9d o9eh4us9ki ul832 jippjf4 bcsoug6 9w7mnssanfsknl f422osb58c","quiz_options":{"score":0},"id":"4385172932"},{"position":3,"visible":true,"text":"juswx5 78b5n495 duu5kiikm feknbdqqtxg memsnyrcmao1lh","quiz_options":{"score":0},"id":"4385172933"},{"position":4,"visible":true,"text":"xpu48c 3cdbygss10 ujxmb ore7vx7o0x 9qmlb9fig6p3u w6c8oqr5dhp1l g3ihi9p1x kf2lvtbxo 4guw65","quiz_options":{"score":0},"id":"4385172934"},{"position":5,"visible":true,"text":"i9508b8n ld7powh72 nfvmljfhgn3n 643ydxghpbak7v ehe18sjo56yx m1bpaoj4epr 5sv5aw6 7m0bt","quiz_options":{"score":0},"id":"4385172935"},{"position":6,"visible":true,"text":"vwtr9m5fu3ot ltiqhsx3fi uuylf62qec mmn5fxqj","quiz_options":{"score":0},"id":"4385172936"},{"position":7,"visible":true,"text":"ww4qdi5pqg 3qvmj8g0yvx rrr5fx06d7 t6giac3k8 t3d6exqx175ft 10k251y 47v1vnu938 kkqqcsl50d7i","quiz_options":{"score":0},"id":"4385172937"}]},"page_id":"168831336"},"emitted_at":1674149695747} +{"stream":"survey_questions","data":{"id":"667461433","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"3bdmcu bth1w4ifhtcbm slcl3p6ynqhjtyp n5nea bdq5iuvq77m0t"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461433","answers":{"choices":[{"position":1,"visible":true,"text":"26j27d 5s3pbf08free77b ttq5exq7 n2gm99qkada 3rosqp hn74g juh2ww6","quiz_options":{"score":0},"id":"4385172948"},{"position":2,"visible":true,"text":"phmu9ghnjc vkh0ury2y6et tqj1lwjv 37m5bx1itv a5x88phj3g5 832qd1l rpbrunm7v49 kpmqo a8eqht49077t","quiz_options":{"score":0},"id":"4385172949"},{"position":3,"visible":true,"text":"jbsjkqa2f2xb ks824l5wnkd b0p0elet784r6rw ay5sqsv2vdron lr8mx7r6pc im42wmwt ltyhtay7p8u","quiz_options":{"score":0},"id":"4385172950"},{"position":4,"visible":true,"text":"ikkvwye7tah 7shp28 p7k7je0as5u sdc3f1rvin staohk6a44k nqjsxn3 97bog4jfxn qvorj30xpuh1gip","quiz_options":{"score":0},"id":"4385172951"},{"position":5,"visible":true,"text":"p83chdtsw6s88u 0hqgb8h871mw p0ej9 djy316qsa7iv6pe","quiz_options":{"score":0},"id":"4385172952"},{"position":6,"visible":true,"text":"kgfa1 tyxdxoe3gc xclen0vw9oa2 6bu9o8b6awx hcg9pgsi1av9v 7dicbt6wsee70f glwmxxtcdr 4qi7m9p8tfkxur3 ir5jr31364","quiz_options":{"score":0},"id":"4385172953"},{"position":7,"visible":true,"text":"u6xyfnav qw5qefsi 6ttsauh 3jwvmju8sdjk87 bql4ra2ww 8nxxobw4o58 omi87y6ur8l1f2g 62gaxuq","quiz_options":{"score":0},"id":"4385172954"},{"position":8,"visible":true,"text":"xdjcisgicnaix2 fj8bpbqaqgntr fb2n0o73 mgsb8xg5x3nfg9 9t18omvng4p6e 06wepywm4wku 82pemp2 l3nsu2ib2erbva tj475a","quiz_options":{"score":0},"id":"4385172955"}]},"page_id":"168831336"},"emitted_at":1674149695747} +{"stream":"survey_questions","data":{"id":"667461439","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"vrhftdyyte qir7jajr68td obg64x tu1rcy2h pqnxtdrwxk00a c173brbv 6qfxck7huyx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461439","answers":{"choices":[{"position":1,"visible":true,"text":"q6705n7lidhb 0gsqn8 ocnyaudmo ulp9r0rsoheh4f cjwcqblbh o28tilm13w384","quiz_options":{"score":0},"id":"4385172990"},{"position":2,"visible":true,"text":"vyrx1jpjcl07 etxm7itb161 51rf5csw6e5tsh 3ux7rxq2 vct6fys4r7","quiz_options":{"score":0},"id":"4385172991"},{"position":3,"visible":true,"text":"pp1lc12uhii 2qmm3xnfsp i9912c8ac5k74i hxew5625hxtm3 4o658 jenbgi9o89 t4ppqc2qvhlui iu92ym nqjkka1i7","quiz_options":{"score":0},"id":"4385172992"},{"position":4,"visible":true,"text":"6mx9j44l0oa yv2wb1letc4p d3u87l59 vp7a65ykcfjyt tpe3k92l y2flusuc3tc t220oi sekyd","quiz_options":{"score":0},"id":"4385172993"},{"position":5,"visible":true,"text":"4fbdo eli65un2emx e6oyl3a41ugoxb2 saxpsxn6fv l8s2mk0e57d60","quiz_options":{"score":0},"id":"4385172994"},{"position":6,"visible":true,"text":"r5ly6h 7eu4pmnx7tv04g rdtjvlsup3gdn h4qoreg 3ct3fudxbuuw2 b975v8 ilsfmaa22","quiz_options":{"score":0},"id":"4385172995"}]},"page_id":"168831336"},"emitted_at":1674149695747} +{"stream":"survey_questions","data":{"id":"667461441","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"5p8n613hcmidh w4gyoyf stviro3om xey832w t9w23kj3j4rp5j h2w1swynkq1n9e vqrk2q5eb76p9yn pbj778q19u1hqy r9uvl76qqhfg"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461441","answers":{"choices":[{"position":1,"visible":true,"text":"tmdpekdn75l9b 3nuus dqbdxtj od2mltbx tmw5kcvpiw 6n41343132bdmc kb3i9er4qg","quiz_options":{"score":0},"id":"4385173020"},{"position":2,"visible":true,"text":"6a8efsocxmc eeohurhhyduo31w c8na1dub0ycx q8314ir twgrq 2ukcrksjt30s","quiz_options":{"score":0},"id":"4385173021"},{"position":3,"visible":true,"text":"ou9m3xl2n9wvn m0wews5 il8o8so pygnm380cd66 7nhjkpk9lu65n 4e3ifrwcb8wr 46bo0ani86m du57mphcnvf1in 6gf58fwm2c50tp","quiz_options":{"score":0},"id":"4385173022"},{"position":4,"visible":true,"text":"nahvw2sd3 hn5trfgqbuso cq82jp7 k8ev0 s8a0a23m0p g2jewuy0wdadgsa hca0mm5q 8agnm fxnf8vrgdybkg04","quiz_options":{"score":0},"id":"4385173023"}]},"page_id":"168831336"},"emitted_at":1674149695748} +{"stream":"survey_questions","data":{"id":"667461444","position":5,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"khys853d7u tgmr69e7mu7 0h6sn7 cja88 nj2os3 wnand9tdmohxca rowe88asxsja1dn rvs12kt5m0wqd2 41pwt1vnhst008o"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831336/questions/667461444","answers":{"choices":[{"position":1,"visible":true,"text":"3k875epq o7u7f5 kihtesav7 qwxlu7j5dj59i 8ghsap3n","quiz_options":{"score":0},"id":"4385173040"},{"position":2,"visible":true,"text":"cemvy 140ek4 d1fumxxlqqnyt 99pb868kg2b hqur2f44k uwr5dyif8g6","quiz_options":{"score":0},"id":"4385173041"},{"position":3,"visible":true,"text":"iykvyahtufq91l bvs9t6mmoyw ld2hep1somcl7 2rs7wk3q 5ncge9mfj1ac r30355p0g4wt c1bx5 n5wgmcud6h","quiz_options":{"score":0},"id":"4385173042"},{"position":4,"visible":true,"text":"a4xcahm1euf l3h1jx abcc0r500rlqyhv 9w01sfmci3j ur9vp3sxfioh r0dksavcmduhk2 kw7nbl 5hys2r8vebx4e 94rajuno uwm3ajywh3vlqbf","quiz_options":{"score":0},"id":"4385173043"},{"position":5,"visible":true,"text":"0whm5dw5kuk44 efrr6i iu9592 a968tp4ff0uaf q0f6mtpcp2x82ae 97m1gvsnfthibp agt6dm3 ip1e3y9","quiz_options":{"score":0},"id":"4385173044"},{"position":6,"visible":true,"text":"hwbtcf7 60gji9qoeovhlf 9b3ijm8 xiw5w09k 460v2o27hacdts 30eq74bg9m qpfv2jd9f3ur rlacn2rf273ck7 2welkh7188h","quiz_options":{"score":0},"id":"4385173045"},{"position":7,"visible":true,"text":"cbqj2nlsnyy tmjyvoija wirje1e bxsqxqe g12fuxmtgfq 7fc74o yrdsjey 1xmv6u077j7l 8hkf7","quiz_options":{"score":0},"id":"4385173046"},{"position":8,"visible":true,"text":"uqlus j3nd9u8g faqa6ghioy60h9 a95spokyj58 ndgctguy75jr ei16b1p7jabc2 hfkfpruds","quiz_options":{"score":0},"id":"4385173047"}]},"page_id":"168831336"},"emitted_at":1674149695748} +{"stream":"survey_questions","data":{"id":"667461449","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"cwipmppqgy2vy 3mn05n4 gedv0twor lyawl9v528587w wfmifrr9hk pykvx52nu1ds5p hh28niyix"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461449","answers":{"choices":[{"position":1,"visible":true,"text":"3gjvb8l80nc8j 90ebdlnd3hg spis2ipbim9l fjt4xli4a 0bqmti2wp0juwcl cdwl64u2yfghjdf 190uek5lw","quiz_options":{"score":0},"id":"4385173076"},{"position":2,"visible":true,"text":"xjdswmkwm24 rrmxo7otpear8 ogepd7v8br0y5m vi2vyip49ux uvtnq2sem 5gwcppvvvc bw56us8o 1huql09g6pa1ylb","quiz_options":{"score":0},"id":"4385173077"},{"position":3,"visible":true,"text":"gyq16tgah s669s7 j5isg9 l63lf q61pyy oywk58jfmnvy 6lhnukrce1px bwt066s8k5248o sylwt em0x3","quiz_options":{"score":0},"id":"4385173078"}]},"page_id":"168831340"},"emitted_at":1674149695748} +{"stream":"survey_questions","data":{"id":"667461452","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"aku2037bp sxtf1busk2uj 7scwpc00giyau urduwqdsyr3 xk3y39yjywei1y uw7y5s3ky fetwdqr6n qp00a8rofpy 4rwl41yk78jd"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461452","answers":{"choices":[{"position":1,"visible":true,"text":"86hx9ifui6c4o 02xkn5ghldfw35k faipmm g7634wrx1jfvy jewjfdq kkyyxx00brj wtu0xrhfhvu5lv8 573fv0vtm0n","quiz_options":{"score":0},"id":"4385173088"},{"position":2,"visible":true,"text":"nfeyvnb0kat1yb0 3lk3rse66t8jp w90vixgpu32cyir q03jxd8vch9xn7t 3a0swht9ykadh8 fvoa9t8dri fm0twcdhxm 4ot9xpxe9s08b ho7d1","quiz_options":{"score":0},"id":"4385173089"},{"position":3,"visible":true,"text":"k5pyc4y 9uul1o 7lvigo 7xsdo49jx2yc d07jr1w4","quiz_options":{"score":0},"id":"4385173090"},{"position":4,"visible":true,"text":"3e49s5 gxqwbv w6c2e tjaf7rpgtksjpe ivr0he574 ft8qso pqq4l5hbchy 6mhw0ksgrh xbj4l7a2g","quiz_options":{"score":0},"id":"4385173091"}]},"page_id":"168831340"},"emitted_at":1674149695748} +{"stream":"survey_questions","data":{"id":"667461454","position":3,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"4i1qajt 6sy8nl3hjougqbu okftpe4sw0bpr6 gv1pbyk8km 9ihd103uu2n3lx c6spvurq080unx uswpaexarx"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461454","answers":{"choices":[{"position":1,"visible":true,"text":"vg0vpi1 100y8 03nnh0 947rcth5ofg x4xfc38q81i6e7 bgf20442q i2jh2 lolt43y3ri2 vl0t6 2rkshapnf","quiz_options":{"score":0},"id":"4385173102"},{"position":2,"visible":true,"text":"o7qfwgqys eyumel 7spc5 42qxefd","quiz_options":{"score":0},"id":"4385173103"},{"position":3,"visible":true,"text":"usb43wqju6w csearclgaedae 2oo3m2a79oo5si granw6hf 9g9ms37peouy gqaxry74 x45yqa0xtkcu g0in9 lyp7xe6 few8vkh7yf","quiz_options":{"score":0},"id":"4385173104"},{"position":4,"visible":true,"text":"spfrf5sfebrhj8 gwodgm3o1 m5cydcxbtk2 pgrj6h mome4a us97ellx2peg3s ilidjy8juu0","quiz_options":{"score":0},"id":"4385173105"},{"position":5,"visible":true,"text":"w579aalpr5gaj1 1h2ud 53d80pebt4ep 0l2gw8fk7fa","quiz_options":{"score":0},"id":"4385173106"}]},"page_id":"168831340"},"emitted_at":1674149695748} +{"stream":"survey_questions","data":{"id":"667461456","position":4,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"is9uyf6ka iel16fh 1f0xg 7mx16glcei fygrn g7l10em5fbeybb 1vgps0k3 q4fls qryybq07jy f3luik1nx09b7so"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461456","answers":{"choices":[{"position":1,"visible":true,"text":"0fg2b3v4 jmdxep5of1y q2ag243 cfytydw942toqsl 2ixd8iynbs eg22ia","quiz_options":{"score":0},"id":"4385173113"},{"position":2,"visible":true,"text":"0am3pervuj biqdk6g5yw i5xvk20h1n6jv l0v9m5cxn 2vyqvcp8rlthxfv k0v6o48p3v8 551pws1020t98f","quiz_options":{"score":0},"id":"4385173114"},{"position":3,"visible":true,"text":"cjtogxiie0arj ltkgiwrpoa4x1v foqfr1gk406a rale1dx 2p4gjy2g","quiz_options":{"score":0},"id":"4385173115"},{"position":4,"visible":true,"text":"h31va0f12qx3vg 51m9g4bo9 r4ofiqr j1yym2ma8m13kch 1e4jxhdyol2ny nf3fh0h2e qw8euwei1lyhemq 3j4un2sjdoj7 q92100o573tbom 5phvt3n22","quiz_options":{"score":0},"id":"4385173116"},{"position":5,"visible":true,"text":"h8hktik e03ehrspn7 rnjqq4431q2 3bs1nevr8j0 audw020tl kalstea2","quiz_options":{"score":0},"id":"4385173117"},{"position":6,"visible":true,"text":"9w090 e6835j0fvfg89 kk6swkb5g oo0f4ho99x437 qf7b8y1aaa4 i0r03","quiz_options":{"score":0},"id":"4385173118"}]},"page_id":"168831340"},"emitted_at":1674149695749} +{"stream":"survey_questions","data":{"id":"667461462","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"r1kf2oglhju ou2ldq63qu2g1 ufs1pkw pgr9p75sh9k7 vnu477cixnk1kx nxnfn0ti3x3u9wh ew6ho e18cmaeovxhx h1fac8j8 8ni6ay"}],"href":"https://api.surveymonkey.com/v3/surveys/307785388/pages/168831340/questions/667461462","answers":{"choices":[{"position":1,"visible":true,"text":"xytk5fnqv6odvms sw94ohnav5npnm lg9uf4 iwuqgfd0 5ee0wd5 lfha63ve x55yip4 gxgdkff3sckdn mq1khupscjgqj 8mtp54i5c3rjonv","quiz_options":{"score":0},"id":"4385173167"},{"position":2,"visible":true,"text":"2ammt8omj0l c0i1q 1uvaf203rh1 8wj2w7pp qlqayl9e8ldc y7iivv cv189py2di xuihxup7b2 rh8owrr595st","quiz_options":{"score":0},"id":"4385173168"},{"position":3,"visible":true,"text":"o9cvkj8x k0txiswxc5 ogf66jujgcrwdb l7n0c0rodcx 2gduko0wwimb21 afw8mi","quiz_options":{"score":0},"id":"4385173169"},{"position":4,"visible":true,"text":"mcb62sefmuo plnbygilddeqg u64kkkjvoms4b5q jw4tashu6c7ve12 8di4g100598 ad1bet nnqd7jmg","quiz_options":{"score":0},"id":"4385173170"}]},"page_id":"168831340"},"emitted_at":1674149695749} +{"stream":"survey_questions","data":{"id":"667461690","position":1,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"53o3ibly at73qjs4e4 y9dug7jxfmpmr 8esacb5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461690","answers":{"choices":[{"position":1,"visible":true,"text":"lg2mcft4e64 ywiatkmeo ci3rr4l2v0 ot6un49a 4b28sq4g8qv7tj 4ihpko73bp0k6lf swaeo3o4mg2jf5g rnh225wj520w1ps p9emk1wg64vwl","quiz_options":{"score":0},"id":"4385174700"},{"position":2,"visible":true,"text":"ywg8bovna adsahna5kd1jg vdism1 w045ovutkx9 oubne2u vd0x7lh3 y3npa4kfb5","quiz_options":{"score":0},"id":"4385174701"},{"position":3,"visible":true,"text":"xsy4kv tqp8vty29815 de8nt5ab2fyr m6jilru2ek l7fktx3j5mbj l33ip83t4p29 exfygne a1btj95m1r","quiz_options":{"score":0},"id":"4385174702"}]},"page_id":"168831393"},"emitted_at":1674149695838} +{"stream":"survey_questions","data":{"id":"667461777","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"kjqdk eo7hfnu or7bmd1iwqxxp sguqta4f8141iy"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461777","answers":{"choices":[{"position":1,"visible":true,"text":"11bp1ll11nu0 ool67 tkbke01j3mtq 22f4r54u073p h6kt4puolum4","quiz_options":{"score":0},"id":"4385174970"},{"position":2,"visible":true,"text":"8q53omsxw8 08yyjvj3ns9j yu7yap87 d2tgjv55j5d5o3y dbd69m94qav1wma 8upqf7cliu hb26pytfkwyt rfo2ac4","quiz_options":{"score":0},"id":"4385174971"},{"position":3,"visible":true,"text":"6d7qmnw obxwg4elaab6 2sby04sor66 1wuoh26aftxu7","quiz_options":{"score":0},"id":"4385174972"},{"position":4,"visible":true,"text":"n0xwexbwtviyj1a midgl2jpfdy a72ut27ta 8i9fmkwg0q mbtxhkn b2ut8mtsslkt609 tgmnd7ovnqlbr","quiz_options":{"score":0},"id":"4385174973"},{"position":5,"visible":true,"text":"qjfs0pmb iecatmqyxtk w1s0fs9vcbayf5 rwsneyp0wx6lsyq pq99n hrx1mk4saug gv06qshlabe 0s2t4 h11ee2xna0m8r","quiz_options":{"score":0},"id":"4385174974"},{"position":6,"visible":true,"text":"11uf3he wbstw etbysmu4 c84vqddvx","quiz_options":{"score":0},"id":"4385174975"},{"position":7,"visible":true,"text":"rnfx7m ndifoe7ihy q98pov78016t 8smlnm lb3xicjp9 0r30sie97y12ve7","quiz_options":{"score":0},"id":"4385174976"},{"position":8,"visible":true,"text":"jc8s2ra5qxytxbu u6tj7jgep95 vbva1b4uslioa omku9","quiz_options":{"score":0},"id":"4385174977"}]},"page_id":"168831393"},"emitted_at":1674149695839} +{"stream":"survey_questions","data":{"id":"667461791","position":3,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"0qw6a5lnf426 2sh3g9f8wu xmgflj 41pjy"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461791","answers":{"choices":[{"position":1,"visible":true,"text":"7kxk7bkhfdx86sh 3rnrsj70ud 048jbf4qx4 p96o8 sn7xi oh02tfput4 6js84u99m5t","quiz_options":{"score":0},"id":"4385175055"},{"position":2,"visible":true,"text":"x259osu33y 8qadkcxpsnk4o20 m4wo3183nwxhgye q4mpg srpfibk96sf t3h2cx58eji x7l0sdipnjece8 7tgwfdfmh9hgdwi w99mkib2","quiz_options":{"score":0},"id":"4385175056"},{"position":3,"visible":true,"text":"lil1tboe p80wa8yed7w8 cll24c2lls6cc0 gpbv7rnap psk1et","quiz_options":{"score":0},"id":"4385175057"},{"position":4,"visible":true,"text":"wodtghhkt 2ae1c8q5s1ha 8lppd7ko84al j95eq1imtu7 6x8qknrhn0 l7h53","quiz_options":{"score":0},"id":"4385175058"}]},"page_id":"168831393"},"emitted_at":1674149695840} +{"stream":"survey_questions","data":{"id":"667461794","position":4,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"q3ay58w3 2rfjgu4 0cf9uh1 pu4fo16w 6c2wkn 1oo7d8"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461794","answers":{"choices":[{"position":1,"visible":true,"text":"1orbs vtqu62x9bp t75k10e89krhn bdnsfy6ng34g 8yv9p1c92jlbt0s","quiz_options":{"score":0},"id":"4385175070"},{"position":2,"visible":true,"text":"5j8dww2lxevx4a wv3ppbb vnccslwrjjdc n5pjsmw m7b4533y8tcbbus","quiz_options":{"score":0},"id":"4385175071"},{"position":3,"visible":true,"text":"fnjqkqy2 44brrpru jllsj9cdggwt4 behkog76y5ua 7ftpd8c8qhblii","quiz_options":{"score":0},"id":"4385175072"},{"position":4,"visible":true,"text":"srjre1h3w9 qojsh5w2 sq7wva6tkl9 raxp5mldrp","quiz_options":{"score":0},"id":"4385175073"}]},"page_id":"168831393"},"emitted_at":1674149695841} +{"stream":"survey_questions","data":{"id":"667461797","position":5,"visible":true,"family":"single_choice","subtype":"horiz","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"bvrdxa swsrjt sjox8u6767lv5 wgcomvtnoi0yg namiomuh6cou61u nl2v5bfu15i7 sqpu07jp489uc"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831393/questions/667461797","answers":{"choices":[{"position":1,"visible":true,"text":"y97bshsv ite5mgk76p89o yrtt28bmm4jo9 ftc2tnjg","quiz_options":{"score":0},"id":"4385175096"},{"position":2,"visible":true,"text":"r970efm0 5p96h9iy1 o7ft83xrqgsrh8 owk30 buqg6ksd297lw9 lh6ygen9s2rac2b k5d3lbr7m37p","quiz_options":{"score":0},"id":"4385175097"},{"position":3,"visible":true,"text":"ktg10 vp7khp0ucx vuo5qrcor po9nbn6cdpdu56a rt8eiu0umg0dkx j2k8vgtr6","quiz_options":{"score":0},"id":"4385175098"},{"position":4,"visible":true,"text":"iubh35s1gvpm4gj svwbyf7npunm3 0thmsjmt2qb5im0 undxh7b frxykv55emi padtjsk69 qa0jrnwrfoj qqjg6ifvlx0abdb","quiz_options":{"score":0},"id":"4385175099"},{"position":5,"visible":true,"text":"w64hwv9edeaf55 l0gkthucpqj 80wgqsffl 0m45xm56a25psm 8opb8b0gw2w6 n8xex","quiz_options":{"score":0},"id":"4385175100"},{"position":6,"visible":true,"text":"ju3rt297a t028c0b35635 l0kj9vj seuar76 89587qhw46295","quiz_options":{"score":0},"id":"4385175101"},{"position":7,"visible":true,"text":"c4de01u4eil p1p2vy 0gqjglc mc2r97p07 d8d90 j15xktb2idx91 tecpeak3 4anh9o5w7h0runq yr0nd0q9392229","quiz_options":{"score":0},"id":"4385175102"},{"position":8,"visible":true,"text":"yc5erasa3ovk4d ed9adudq8e1s 7wrf8k w9ohrhltg3kv1 wgrnemp 7dqxmy5e bxnsro2sl","quiz_options":{"score":0},"id":"4385175103"}]},"page_id":"168831393"},"emitted_at":1674149695841} +{"stream":"survey_questions","data":{"id":"667461801","position":1,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"iu425c2v4yqs04 43g37 wg8awi s2pjwsm vjhybbs wry73cuukw85l2"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461801","answers":{"choices":[{"position":1,"visible":true,"text":"xjortc6k0sxjydf rdusho82tsr3l 3b3gch ogabx6895eb3 e7bj5pq poft6c4g1","quiz_options":{"score":0},"id":"4385175115"},{"position":2,"visible":true,"text":"bscm9v7d9nv0 e5x94dt0402ge i7mwtey74y4 er7bwam13 6xcjpw pre922tv ihmvbih 9piadim1lterm","quiz_options":{"score":0},"id":"4385175116"},{"position":3,"visible":true,"text":"ywtecquds5ctgu sjcgsa3hm d087wy 6yjqp0jgm 1ywj8v3wuuq wmlmq essefj rbgrjtv6smxcmag","quiz_options":{"score":0},"id":"4385175117"},{"position":4,"visible":true,"text":"gc8d58x66m ftpowgvwodht9h fj47r927vh826 qrkgkb bcvxni fo6g9wdlxgvnq","quiz_options":{"score":0},"id":"4385175118"},{"position":5,"visible":true,"text":"fxsrgxts qih9ukhxafmmiv4 h2ujh1va9jf b6ho30","quiz_options":{"score":0},"id":"4385175119"},{"position":6,"visible":true,"text":"81binesi6f 7urb7 ylotwabgvbt 03ke1u5h 3ehye3g olw0f83a1h667t 71ujnoyf p49ce","quiz_options":{"score":0},"id":"4385175120"},{"position":7,"visible":true,"text":"ht1rd9ymh 2tftisj80s74mop b1eavw d6vgqwrj","quiz_options":{"score":0},"id":"4385175121"}]},"page_id":"168831402"},"emitted_at":1674149695842} +{"stream":"survey_questions","data":{"id":"667461805","position":2,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"mxlksuvmoras9o 94fj2 dieyg92v384lfv8 f9rwin4 cdmg95wcnt2xa ybcmni7yd1x 1yl4j4q7j"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461805","answers":{"choices":[{"position":1,"visible":true,"text":"mevjvlslfppe ex251ss vkrs7swus g72vplm9svejkdw 7onhrwlh bouaam3k7cnn yadoqmnhn4swehq u8lhv3fdh58o3 wrbc0y197d","quiz_options":{"score":0},"id":"4385175146"},{"position":2,"visible":true,"text":"uglir jabjq1 poswkedidqpmj ta5ma4ep9xxr ghu3n2a4u7f3orh 9oud3lwe0f vwip14snnv6gtb 5fw29neis71ogsm dpq7m 9an28j1styhc","quiz_options":{"score":0},"id":"4385175147"},{"position":3,"visible":true,"text":"p3ndk7 nxpv9grg77 ek2kndt51g 2v10497 bdr0a3466ao","quiz_options":{"score":0},"id":"4385175148"},{"position":4,"visible":true,"text":"7w76l 9k393odbjg7cht7 mio9w4tcv 6wvef4vm orgg1n 20d8lh8x9osqcv dv50mjj w3g96tt0m3rf9 24uun3grfy2u 4vns2lt","quiz_options":{"score":0},"id":"4385175149"},{"position":5,"visible":true,"text":"4tcuvnn1wxy cqpr795s sfyecjwup fn76iwks5hko rk6wvgyblb3gqe4 rl5ulee1w rq66d","quiz_options":{"score":0},"id":"4385175150"},{"position":6,"visible":true,"text":"cmrjgc4 dwotyvr4o n9jid3i79xoql klkrt23lklso4p hh6d57t5 9xk3o9me 8bkpgry1yu009y","quiz_options":{"score":0},"id":"4385175151"},{"position":7,"visible":true,"text":"43ghcfhsl 74xoo rn7rmgjhd3cq u2x2ir6n449kqxp 8isq7wb tccg39oy1b 9mw0eu1ho0 a4x77foba5y ywgyosh9ue ynh9u8odsos5q2","quiz_options":{"score":0},"id":"4385175152"}]},"page_id":"168831402"},"emitted_at":1674149695842} +{"stream":"survey_questions","data":{"id":"667461811","position":3,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"i4mol250lne3 bhrh2dvt9b qss461 lkb1u chpwmgcnuoeec un2l5"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461811","answers":{"choices":[{"position":1,"visible":true,"text":"s4xpl2l93 57k4asd04 gyddhg dn53f8bd 8wtgobxts3 ms7nan ns5wv6q2vy6 nnaudmbyu80llen 8be4urorunk","quiz_options":{"score":0},"id":"4385175197"},{"position":2,"visible":true,"text":"ec2l4hr 5lwp46ij8 3tqigw elleyat98j2jjd if8hiia3 vad578","quiz_options":{"score":0},"id":"4385175198"},{"position":3,"visible":true,"text":"9t9nsl0tjlcjxr k1chdb iislvtl gpcnyi82o5ebu 46ayfj 5r3b3w92l6 vaqskragdor","quiz_options":{"score":0},"id":"4385175199"},{"position":4,"visible":true,"text":"8ad404t4 86hyrfxr7 xef8em2 g7u8fc2 rsslpdptcgrsh9n n5pb1u9b","quiz_options":{"score":0},"id":"4385175200"},{"position":5,"visible":true,"text":"bijp3kiqfs quasi89mov1y hj9ku 9w6iuh 81sng4yu32tyh d4q9kbxuoqd2xaq","quiz_options":{"score":0},"id":"4385175201"},{"position":6,"visible":true,"text":"73xiyg2gc q1l6a28s 991jaxujf56sqi rhxrnjum ges25br tb2x1wamrh3jac1 t3s8ocme8q9d8 c505btw99r hwljwx","quiz_options":{"score":0},"id":"4385175202"},{"position":7,"visible":true,"text":"ri75nf 5yy3nq 8m5e68j4mh8m sf1v3 60nijf1oeq9 bwp7bfx9u11a474 w66gfkiayng55q 6h0gp80h","quiz_options":{"score":0},"id":"4385175203"},{"position":8,"visible":true,"text":"nbqtnbbuiue5fr a9s8yrpjm7x0p qid4y913k 8ueagmuy2 5kvul122lseh5h5","quiz_options":{"score":0},"id":"4385175204"}]},"page_id":"168831402"},"emitted_at":1674149695843} +{"stream":"survey_questions","data":{"id":"667461833","position":4,"visible":true,"family":"single_choice","subtype":"menu","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"s3pjyrvc bj99egp0o99 f4ddk7sed bdc2yh24yf tyii1jye nmvwhj18oqxna6b lku2vt8hrnx4 j327a"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461833","answers":{"choices":[{"position":1,"visible":true,"text":"hqpox2w6wuwyd2 fm6kvjiq6ns5k jv1eutgqn1jj if8dj81e 57l25ev1tal9j","quiz_options":{"score":0},"id":"4385175279"},{"position":2,"visible":true,"text":"vr2p6mvbedcpkak 2c91smhshw9ee mwdy43um3334e7i u4o5frorc3py srt09vtrol825 i9s8n2koaoc6fu","quiz_options":{"score":0},"id":"4385175280"},{"position":3,"visible":true,"text":"1icyn0f tifktyc2uwd k8ehexjojth9a2f 0n7sh5p4i6kswe","quiz_options":{"score":0},"id":"4385175281"},{"position":4,"visible":true,"text":"6ju066 4chnhs0be43dy2 xdkxk37j1i0qy1 43b22jang8 na1yapnjj 7tvgbeu v1dw7as","quiz_options":{"score":0},"id":"4385175282"},{"position":5,"visible":true,"text":"vnslaachd7t07f0 db6whw u6ahc71ajst 2cn114ialhcvex kpwm1qo1y g82xup","quiz_options":{"score":0},"id":"4385175283"},{"position":6,"visible":true,"text":"aniu1f d47vbpsl mm26jpf7 g2io86ycj6yk","quiz_options":{"score":0},"id":"4385175284"}]},"page_id":"168831402"},"emitted_at":1674149695844} +{"stream":"survey_questions","data":{"id":"667461834","position":5,"visible":true,"family":"single_choice","subtype":"vertical","layout":null,"sorting":null,"required":null,"validation":null,"forced_ranking":false,"headings":[{"heading":"ce8esfvsy7xcwqu gemf05b3s5ap5 76oc1 srngx7qca"}],"href":"https://api.surveymonkey.com/v3/surveys/307785415/pages/168831402/questions/667461834","answers":{"choices":[{"position":1,"visible":true,"text":"jggh1bnginkodsv 4jhtwffnlgybux 1na25qx xr5jtwfp vvip26cqr st09ps653caiyj 1icxwhc1hut6","quiz_options":{"score":0},"id":"4385175294"},{"position":2,"visible":true,"text":"gdxye rstmylwe4l w2lkwbdf87e735u rdxn1vxbg3aw kwkn1gfsu s3oa2wx7 6vegglr1ihckyxa","quiz_options":{"score":0},"id":"4385175295"},{"position":3,"visible":true,"text":"qsghk1r8e3p ciuick1mgdwbyc k8wbxctpmtu2v xau05rusflq k3as06r35dl9 38xpts","quiz_options":{"score":0},"id":"4385175296"}]},"page_id":"168831402"},"emitted_at":1674149695844} From 13f568c50227384f8385ba5b38ac253a8ae00340 Mon Sep 17 00:00:00 2001 From: Arsen Losenko <20901439+arsenlosenko@users.noreply.github.com> Date: Tue, 24 Jan 2023 00:29:52 +0200 Subject: [PATCH 47/56] Source Paypal Transaction: enable SAT high strictness (#21593) * Source Paypal Transaction: enable SAT high strictness * Allow to use dates in future for incremental tests --- .../acceptance-test-config.yml | 73 ++++++++++--------- .../integration_tests/abnormal_state.json | 28 +++++-- .../integration_tests/expected_records.jsonl | 41 +++++++++++ .../source_paypal_transaction/source.py | 3 +- 4 files changed, 103 insertions(+), 42 deletions(-) create mode 100644 airbyte-integrations/connectors/source-paypal-transaction/integration_tests/expected_records.jsonl diff --git a/airbyte-integrations/connectors/source-paypal-transaction/acceptance-test-config.yml b/airbyte-integrations/connectors/source-paypal-transaction/acceptance-test-config.yml index 807ccbee333ca..4a82d385b3e16 100644 --- a/airbyte-integrations/connectors/source-paypal-transaction/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-paypal-transaction/acceptance-test-config.yml @@ -1,36 +1,41 @@ -# See [Source Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/source-acceptance-tests-reference) -# for more information about how to configure these tests -connector_image: airbyte/source-paypal-transaction:dev -tests: - spec: - - spec_path: "source_paypal_transaction/spec.json" +acceptance_tests: + basic_read: + tests: + - config_path: secrets/config.json + empty_streams: + - name: balances + bypass_reason: "value of 'last_refresh_time' field changes during every read" + timeout_seconds: 1200 + expect_records: + path: "integration_tests/expected_records.jsonl" + extra_fields: no + exact_order: no + extra_records: yes connection: - - config_path: "secrets/config.json" - status: "succeed" - - config_path: "integration_tests/invalid_config.json" - status: "failed" - - config_path: "secrets/config_oauth.json" - status: "succeed" - - config_path: "integration_tests/invalid_config_oauth.json" - status: "failed" + tests: + - config_path: secrets/config.json + status: succeed + - config_path: integration_tests/invalid_config.json + status: failed + - config_path: secrets/config_oauth.json + status: succeed + - config_path: integration_tests/invalid_config_oauth.json + status: failed discovery: - - config_path: "secrets/config.json" - basic_read: - # Sometimes test could fail (on weekends) because transactions could temporary disappear from Paypal Sandbox account - - config_path: "secrets/config.json" - configured_catalog_path: "integration_tests/configured_catalog.json" - empty_streams: ["transactions"] - # Two-sequence read is failing because of "last_refresh_time" property inside of response, - # It is enough to have basic_read test for all the records to check. - # full_refresh: - # - config_path: "secrets/config.json" - # configured_catalog_path: "integration_tests/configured_catalog.json" - # incremental: - # Only "Transactions" stream is tested here because "Balances" stream always return - # at least one message (and causes test failure) - # - config_path: "secrets/config.json" - # configured_catalog_path: "integration_tests/configured_catalog_transactions.json" - # future_state_path: "integration_tests/abnormal_state.json" - # cursor_paths: - # transactions: ["date"] - + tests: + - config_path: secrets/config.json + full_refresh: + tests: + - config_path: secrets/config.json + configured_catalog_path: integration_tests/configured_catalog.json + incremental: + tests: + - config_path: secrets/config.json + configured_catalog_path: integration_tests/configured_catalog.json + future_state: + future_state_path: integration_tests/abnormal_state.json + spec: + tests: + - spec_path: source_paypal_transaction/spec.json +connector_image: airbyte/source-paypal-transaction:dev +test_strictness_level: high diff --git a/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/abnormal_state.json index f60c258e0e01a..565f41f6fca12 100644 --- a/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/abnormal_state.json @@ -1,8 +1,24 @@ -{ - "transactions": { - "date": "2021-07-11T23:00:00+00:00" +[ + { + "type": "STREAM", + "stream": { + "stream_state": { + "date": "2023-06-09T00:00:00+00:00" + }, + "stream_descriptor": { + "name": "balances" + } + } }, - "balances": { - "date": "2021-07-11T23:00:00+00:00" + { + "type": "STREAM", + "stream": { + "stream_state": { + "date": "2023-06-09T00:00:00+00:00" + }, + "stream_descriptor": { + "name": "transactions" + } + } } -} +] diff --git a/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/expected_records.jsonl new file mode 100644 index 0000000000000..5be7b634a7554 --- /dev/null +++ b/airbyte-integrations/connectors/source-paypal-transaction/integration_tests/expected_records.jsonl @@ -0,0 +1,41 @@ +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "23N61105X92314351", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-04T17:13:23+0000", "transaction_updated_date": "2021-07-04T17:13:23+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "202.58"}, "available_balance": {"currency_code": "USD", "value": "202.58"}, "invoice_id": "48787580055", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "48787580055"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "48787580055"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-04T17:13:23+0000", "transaction_id": "23N61105X92314351"}, "emitted_at": 1673959656444} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "1FN09943JY662130R", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T22:56:54+0000", "transaction_updated_date": "2021-07-05T22:56:54+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "231.52"}, "available_balance": {"currency_code": "USD", "value": "231.52"}, "invoice_id": "65095789448", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "65095789448"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "65095789448"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T22:56:54+0000", "transaction_id": "1FN09943JY662130R"}, "emitted_at": 1673959656446} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "0M443597T0019954R", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:01:13+0000", "transaction_updated_date": "2021-07-05T23:01:13+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "260.46"}, "available_balance": {"currency_code": "USD", "value": "260.46"}, "invoice_id": "41468340464", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "41468340464"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "41468340464"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:01:13+0000", "transaction_id": "0M443597T0019954R"}, "emitted_at": 1673959656448} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "19C257131E850262B", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:02:46+0000", "transaction_updated_date": "2021-07-05T23:02:46+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "289.40"}, "available_balance": {"currency_code": "USD", "value": "289.40"}, "invoice_id": "23749371955", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "23749371955"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "23749371955"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:02:46+0000", "transaction_id": "19C257131E850262B"}, "emitted_at": 1673959656450} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "6S892278N6406494Y", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:06:12+0000", "transaction_updated_date": "2021-07-05T23:06:12+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "318.34"}, "available_balance": {"currency_code": "USD", "value": "318.34"}, "invoice_id": "62173333941", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "62173333941"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "62173333941"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:06:12+0000", "transaction_id": "6S892278N6406494Y"}, "emitted_at": 1673959656453} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "0T320567TS5587836", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:09:04+0000", "transaction_updated_date": "2021-07-05T23:09:04+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "347.28"}, "available_balance": {"currency_code": "USD", "value": "347.28"}, "invoice_id": "56028534885", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "56028534885"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "56028534885"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:09:04+0000", "transaction_id": "0T320567TS5587836"}, "emitted_at": 1673959656455} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "3DF69605L9958744R", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:12:40+0000", "transaction_updated_date": "2021-07-05T23:12:40+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "376.22"}, "available_balance": {"currency_code": "USD", "value": "376.22"}, "invoice_id": "31766547902", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "31766547902"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "31766547902"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:12:40+0000", "transaction_id": "3DF69605L9958744R"}, "emitted_at": 1673959656457} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "2F535603PS249601F", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:12:57+0000", "transaction_updated_date": "2021-07-05T23:12:57+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "405.16"}, "available_balance": {"currency_code": "USD", "value": "405.16"}, "invoice_id": "32577611997", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "32577611997"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "32577611997"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:12:57+0000", "transaction_id": "2F535603PS249601F"}, "emitted_at": 1673959656459} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "243514451L952570P", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:14:02+0000", "transaction_updated_date": "2021-07-05T23:14:02+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "434.10"}, "available_balance": {"currency_code": "USD", "value": "434.10"}, "invoice_id": "23612058730", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "23612058730"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "23612058730"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:14:02+0000", "transaction_id": "243514451L952570P"}, "emitted_at": 1673959656460} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "27881589Y9461861H", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:14:19+0000", "transaction_updated_date": "2021-07-05T23:14:19+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "463.04"}, "available_balance": {"currency_code": "USD", "value": "463.04"}, "invoice_id": "53296156982", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "53296156982"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "53296156982"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:14:19+0000", "transaction_id": "27881589Y9461861H"}, "emitted_at": 1673959656462} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "3MG39755337297727", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:14:36+0000", "transaction_updated_date": "2021-07-05T23:14:36+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "491.98"}, "available_balance": {"currency_code": "USD", "value": "491.98"}, "invoice_id": "53235397043", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "53235397043"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "53235397043"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:14:36+0000", "transaction_id": "3MG39755337297727"}, "emitted_at": 1673959656463} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "32J59182JY5989507", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:14:52+0000", "transaction_updated_date": "2021-07-05T23:14:52+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "520.92"}, "available_balance": {"currency_code": "USD", "value": "520.92"}, "invoice_id": "18208641465", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "18208641465"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "18208641465"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:14:52+0000", "transaction_id": "32J59182JY5989507"}, "emitted_at": 1673959656464} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "52795774C7828234R", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:15:09+0000", "transaction_updated_date": "2021-07-05T23:15:09+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "549.86"}, "available_balance": {"currency_code": "USD", "value": "549.86"}, "invoice_id": "32274344746", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "32274344746"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "32274344746"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:15:09+0000", "transaction_id": "52795774C7828234R"}, "emitted_at": 1673959656465} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "19B82038T92822940", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:15:26+0000", "transaction_updated_date": "2021-07-05T23:15:26+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "578.80"}, "available_balance": {"currency_code": "USD", "value": "578.80"}, "invoice_id": "36419288277", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "36419288277"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "36419288277"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:15:26+0000", "transaction_id": "19B82038T92822940"}, "emitted_at": 1673959656467} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "61G749036D552760G", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:15:42+0000", "transaction_updated_date": "2021-07-05T23:15:42+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "607.74"}, "available_balance": {"currency_code": "USD", "value": "607.74"}, "invoice_id": "88092228645", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "88092228645"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "88092228645"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:15:42+0000", "transaction_id": "61G749036D552760G"}, "emitted_at": 1673959656468} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "5EL311302L108363J", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:15:58+0000", "transaction_updated_date": "2021-07-05T23:15:58+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "636.68"}, "available_balance": {"currency_code": "USD", "value": "636.68"}, "invoice_id": "25494061224", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "25494061224"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "25494061224"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:15:58+0000", "transaction_id": "5EL311302L108363J"}, "emitted_at": 1673959656470} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "3VP82838NP358133N", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:16:15+0000", "transaction_updated_date": "2021-07-05T23:16:15+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "665.62"}, "available_balance": {"currency_code": "USD", "value": "665.62"}, "invoice_id": "82173600275", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "82173600275"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "82173600275"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:16:15+0000", "transaction_id": "3VP82838NP358133N"}, "emitted_at": 1673959656471} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "2N796839EY2539153", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:16:32+0000", "transaction_updated_date": "2021-07-05T23:16:32+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "694.56"}, "available_balance": {"currency_code": "USD", "value": "694.56"}, "invoice_id": "10442581967", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "10442581967"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "10442581967"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:16:32+0000", "transaction_id": "2N796839EY2539153"}, "emitted_at": 1673959656472} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "5WX252723D093564T", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:23:29+0000", "transaction_updated_date": "2021-07-05T23:23:29+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "723.50"}, "available_balance": {"currency_code": "USD", "value": "723.50"}, "invoice_id": "71987080514", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "71987080514"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "71987080514"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:23:29+0000", "transaction_id": "5WX252723D093564T"}, "emitted_at": 1673959656473} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "4PW76195NN227720S", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:23:40+0000", "transaction_updated_date": "2021-07-05T23:23:40+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "752.44"}, "available_balance": {"currency_code": "USD", "value": "752.44"}, "invoice_id": "93025400757", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "93025400757"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "93025400757"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:23:40+0000", "transaction_id": "4PW76195NN227720S"}, "emitted_at": 1673959656474} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "0VE851712U5895412", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:23:51+0000", "transaction_updated_date": "2021-07-05T23:23:51+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "781.38"}, "available_balance": {"currency_code": "USD", "value": "781.38"}, "invoice_id": "46225965444", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "46225965444"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "46225965444"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:23:51+0000", "transaction_id": "0VE851712U5895412"}, "emitted_at": 1673959656475} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "63U003588S1135607", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:29:26+0000", "transaction_updated_date": "2021-07-05T23:29:26+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "810.32"}, "available_balance": {"currency_code": "USD", "value": "810.32"}, "invoice_id": "34635559567", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "34635559567"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "34635559567"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:29:26+0000", "transaction_id": "63U003588S1135607"}, "emitted_at": 1673959656476} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "2AJ081444T051123A", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:29:37+0000", "transaction_updated_date": "2021-07-05T23:29:37+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "839.26"}, "available_balance": {"currency_code": "USD", "value": "839.26"}, "invoice_id": "92544485996", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "92544485996"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "92544485996"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:29:37+0000", "transaction_id": "2AJ081444T051123A"}, "emitted_at": 1673959656477} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "2KU13114TJ604181E", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:29:48+0000", "transaction_updated_date": "2021-07-05T23:29:48+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "868.20"}, "available_balance": {"currency_code": "USD", "value": "868.20"}, "invoice_id": "10184574713", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "10184574713"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "10184574713"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:29:48+0000", "transaction_id": "2KU13114TJ604181E"}, "emitted_at": 1673959656478} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "1ST090036H2235215", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:31:35+0000", "transaction_updated_date": "2021-07-05T23:31:35+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "897.14"}, "available_balance": {"currency_code": "USD", "value": "897.14"}, "invoice_id": "50350860865", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "50350860865"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "50350860865"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:31:35+0000", "transaction_id": "1ST090036H2235215"}, "emitted_at": 1673959656479} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "5BJ418934Y425901G", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:31:46+0000", "transaction_updated_date": "2021-07-05T23:31:46+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "926.08"}, "available_balance": {"currency_code": "USD", "value": "926.08"}, "invoice_id": "12278283055", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "12278283055"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "12278283055"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:31:46+0000", "transaction_id": "5BJ418934Y425901G"}, "emitted_at": 1673959656480} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "0SD21997LN026020M", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:31:56+0000", "transaction_updated_date": "2021-07-05T23:31:56+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "955.02"}, "available_balance": {"currency_code": "USD", "value": "955.02"}, "invoice_id": "52396214250", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "52396214250"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "52396214250"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:31:56+0000", "transaction_id": "0SD21997LN026020M"}, "emitted_at": 1673959656481} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "3BH630398E562901G", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:42:41+0000", "transaction_updated_date": "2021-07-05T23:42:41+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "983.96"}, "available_balance": {"currency_code": "USD", "value": "983.96"}, "invoice_id": "18793521512", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "18793521512"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "18793521512"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:42:41+0000", "transaction_id": "3BH630398E562901G"}, "emitted_at": 1673959656482} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "03D88325GF8461705", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:42:52+0000", "transaction_updated_date": "2021-07-05T23:42:52+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1012.90"}, "available_balance": {"currency_code": "USD", "value": "1012.90"}, "invoice_id": "71793513892", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "71793513892"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "71793513892"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:42:52+0000", "transaction_id": "03D88325GF8461705"}, "emitted_at": 1673959656484} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "51852852PL0100404", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:43:03+0000", "transaction_updated_date": "2021-07-05T23:43:03+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1041.84"}, "available_balance": {"currency_code": "USD", "value": "1041.84"}, "invoice_id": "98653187889", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "98653187889"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "98653187889"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:43:03+0000", "transaction_id": "51852852PL0100404"}, "emitted_at": 1673959656485} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "8MF4324694292993B", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:44:21+0000", "transaction_updated_date": "2021-07-05T23:44:21+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1070.78"}, "available_balance": {"currency_code": "USD", "value": "1070.78"}, "invoice_id": "12489150471", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "12489150471"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "12489150471"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:44:21+0000", "transaction_id": "8MF4324694292993B"}, "emitted_at": 1673959656486} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "87S73342AS6001233", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:44:32+0000", "transaction_updated_date": "2021-07-05T23:44:32+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1099.72"}, "available_balance": {"currency_code": "USD", "value": "1099.72"}, "invoice_id": "99595079917", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "99595079917"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "99595079917"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:44:32+0000", "transaction_id": "87S73342AS6001233"}, "emitted_at": 1673959656487} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "112146346A741221U", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:44:44+0000", "transaction_updated_date": "2021-07-05T23:44:44+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1128.66"}, "available_balance": {"currency_code": "USD", "value": "1128.66"}, "invoice_id": "93286331651", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "93286331651"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "93286331651"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:44:44+0000", "transaction_id": "112146346A741221U"}, "emitted_at": 1673959656488} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "0N2242037Y9449344", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:44:54+0000", "transaction_updated_date": "2021-07-05T23:44:54+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1157.60"}, "available_balance": {"currency_code": "USD", "value": "1157.60"}, "invoice_id": "71349988314", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "71349988314"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "71349988314"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:44:54+0000", "transaction_id": "0N2242037Y9449344"}, "emitted_at": 1673959656489} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "9NH78349H0388780F", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:45:05+0000", "transaction_updated_date": "2021-07-05T23:45:05+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1186.54"}, "available_balance": {"currency_code": "USD", "value": "1186.54"}, "invoice_id": "83951023481", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "83951023481"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "83951023481"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:45:05+0000", "transaction_id": "9NH78349H0388780F"}, "emitted_at": 1673959656490} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "10S137566E4828249", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:45:16+0000", "transaction_updated_date": "2021-07-05T23:45:16+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1215.48"}, "available_balance": {"currency_code": "USD", "value": "1215.48"}, "invoice_id": "88168198250", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "88168198250"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "88168198250"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:45:16+0000", "transaction_id": "10S137566E4828249"}, "emitted_at": 1673959656491} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "7N749695W59419057", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:45:27+0000", "transaction_updated_date": "2021-07-05T23:45:27+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1244.42"}, "available_balance": {"currency_code": "USD", "value": "1244.42"}, "invoice_id": "38296993497", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "38296993497"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "38296993497"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:45:27+0000", "transaction_id": "7N749695W59419057"}, "emitted_at": 1673959656492} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "43X058357A257931N", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:45:39+0000", "transaction_updated_date": "2021-07-05T23:45:39+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1273.36"}, "available_balance": {"currency_code": "USD", "value": "1273.36"}, "invoice_id": "33391419042", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "33391419042"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "33391419042"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:45:39+0000", "transaction_id": "43X058357A257931N"}, "emitted_at": 1673959656493} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "5WL82051VY277550S", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:45:50+0000", "transaction_updated_date": "2021-07-05T23:45:50+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1302.30"}, "available_balance": {"currency_code": "USD", "value": "1302.30"}, "invoice_id": "69341308548", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "69341308548"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "69341308548"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:45:50+0000", "transaction_id": "5WL82051VY277550S"}, "emitted_at": 1673959656494} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "9CG36572NK0728016", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:46:01+0000", "transaction_updated_date": "2021-07-05T23:46:01+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1331.24"}, "available_balance": {"currency_code": "USD", "value": "1331.24"}, "invoice_id": "70491310163", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "70491310163"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "70491310163"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:46:01+0000", "transaction_id": "9CG36572NK0728016"}, "emitted_at": 1673959656495} +{"stream": "transactions", "data": {"transaction_info": {"paypal_account_id": "ZE5533HZPGMC6", "transaction_id": "9K759703FU663194K", "transaction_event_code": "T0006", "transaction_initiation_date": "2021-07-05T23:46:43+0000", "transaction_updated_date": "2021-07-05T23:46:43+0000", "transaction_amount": {"currency_code": "USD", "value": "30.11"}, "fee_amount": {"currency_code": "USD", "value": "-1.17"}, "insurance_amount": {"currency_code": "USD", "value": "0.01"}, "shipping_amount": {"currency_code": "USD", "value": "1.03"}, "shipping_discount_amount": {"currency_code": "USD", "value": "1.00"}, "transaction_status": "S", "transaction_subject": "This is the payment transaction description.", "ending_balance": {"currency_code": "USD", "value": "1360.18"}, "available_balance": {"currency_code": "USD", "value": "1360.18"}, "invoice_id": "44794712899", "custom_field": "EBAY_EMS_90048630020055", "protection_eligibility": "01"}, "payer_info": {"account_id": "ZE5533HZPGMC6", "email_address": "integration-test-buyer@airbyte.io", "address_status": "Y", "payer_status": "Y", "payer_name": {"given_name": "test", "surname": "buyer", "alternate_full_name": "test buyer"}, "country_code": "US"}, "shipping_info": {"name": "Hello World", "address": {"line1": "4thFloor", "line2": "unit#34", "city": "SAn Jose", "state": "CA", "country_code": "US", "postal_code": "95131"}}, "cart_info": {"item_details": [{"item_code": "1", "item_name": "hat", "item_description": "Brown color hat", "item_quantity": "5", "item_unit_price": {"currency_code": "USD", "value": "3.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.05"}}], "total_item_amount": {"currency_code": "USD", "value": "15.05"}, "invoice_number": "44794712899"}, {"item_code": "product34", "item_name": "handbag", "item_description": "Black color hand bag", "item_quantity": "1", "item_unit_price": {"currency_code": "USD", "value": "15.00"}, "item_amount": {"currency_code": "USD", "value": "15.00"}, "tax_amounts": [{"tax_amount": {"currency_code": "USD", "value": "0.02"}}], "total_item_amount": {"currency_code": "USD", "value": "15.02"}, "invoice_number": "44794712899"}]}, "store_info": {}, "auction_info": {}, "incentive_info": {}, "transaction_initiation_date": "2021-07-05T23:46:43+0000", "transaction_id": "9K759703FU663194K"}, "emitted_at": 1673959656495} \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-paypal-transaction/source_paypal_transaction/source.py b/airbyte-integrations/connectors/source-paypal-transaction/source_paypal_transaction/source.py index 9606eb2de99df..45af4a71bc5d3 100644 --- a/airbyte-integrations/connectors/source-paypal-transaction/source_paypal_transaction/source.py +++ b/airbyte-integrations/connectors/source-paypal-transaction/source_paypal_transaction/source.py @@ -265,8 +265,7 @@ def stream_slices( slice_start_date = self.start_date if stream_state: - # if stream_state_date is in the future (for example during tests) then reset it to maximum_allowed_start_date: - stream_state_date = min(isoparse(stream_state.get("date")), self.maximum_allowed_start_date) + stream_state_date = isoparse(stream_state.get("date")) # slice_start_date should be the most recent date: slice_start_date = max(slice_start_date, stream_state_date) From 6217c292fe01b3c5c989e56ab00b71c83d1cbb65 Mon Sep 17 00:00:00 2001 From: Artem Inzhyyants <36314070+artem1205@users.noreply.github.com> Date: Tue, 24 Jan 2023 00:36:24 +0100 Subject: [PATCH 48/56] Source Google Ads: Fix multibyte issue (#21705) * Source Google Ads: Fix multibyte issue; Bump google-ads package to 19.0.0 * Source Google Ads: update docs * auto-bump connector version Co-authored-by: Octavia Squidington III --- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- airbyte-config/init/src/main/resources/seed/source_specs.yaml | 2 +- airbyte-integrations/connectors/source-google-ads/Dockerfile | 2 +- airbyte-integrations/connectors/source-google-ads/setup.py | 2 +- docs/integrations/sources/google-ads.md | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 9a03ea0179555..44dd3a5f29570 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -645,7 +645,7 @@ - name: Google Ads sourceDefinitionId: 253487c0-2246-43ba-a21f-5116b20a2c50 dockerRepository: airbyte/source-google-ads - dockerImageTag: 0.2.8 + dockerImageTag: 0.2.9 documentationUrl: https://docs.airbyte.com/integrations/sources/google-ads icon: google-adwords.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 8739219dcc27a..63f14ef901a5e 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -5215,7 +5215,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-google-ads:0.2.8" +- dockerImage: "airbyte/source-google-ads:0.2.9" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/google-ads" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-google-ads/Dockerfile b/airbyte-integrations/connectors/source-google-ads/Dockerfile index 3a43a8003271d..d3d623f2d08e4 100644 --- a/airbyte-integrations/connectors/source-google-ads/Dockerfile +++ b/airbyte-integrations/connectors/source-google-ads/Dockerfile @@ -13,5 +13,5 @@ COPY main.py ./ ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.2.8 +LABEL io.airbyte.version=0.2.9 LABEL io.airbyte.name=airbyte/source-google-ads diff --git a/airbyte-integrations/connectors/source-google-ads/setup.py b/airbyte-integrations/connectors/source-google-ads/setup.py index fa702d2f0963f..4ac9ab965b30e 100644 --- a/airbyte-integrations/connectors/source-google-ads/setup.py +++ b/airbyte-integrations/connectors/source-google-ads/setup.py @@ -7,7 +7,7 @@ # pin protobuf==3.20.0 as other versions may cause problems on different architectures # (see https://github.com/airbytehq/airbyte/issues/13580) -MAIN_REQUIREMENTS = ["airbyte-cdk>=0.2.2", "google-ads==17.0.0", "protobuf==3.20.0", "pendulum"] +MAIN_REQUIREMENTS = ["airbyte-cdk>=0.2.2", "google-ads==19.0.0", "protobuf", "pendulum"] TEST_REQUIREMENTS = ["pytest~=6.1", "pytest-mock", "freezegun", "requests-mock"] diff --git a/docs/integrations/sources/google-ads.md b/docs/integrations/sources/google-ads.md index 5077574c55e5e..33830fd2b956c 100644 --- a/docs/integrations/sources/google-ads.md +++ b/docs/integrations/sources/google-ads.md @@ -139,6 +139,7 @@ Due to a limitation in the Google Ads API which does not allow getting performan | Version | Date | Pull Request | Subject | |:---------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| `0.2.9` | 2023-01-23 | [21705](https://github.com/airbytehq/airbyte/pull/21705) | Fix multibyte issue; Bump google-ads package to 19.0.0 | | `0.2.8` | 2023-01-18 | [21517](https://github.com/airbytehq/airbyte/pull/21517) | Write fewer logs | | `0.2.7` | 2023-01-10 | [20755](https://github.com/airbytehq/airbyte/pull/20755) | Add more logs to debug stuck syncs | | `0.2.6` | 2022-12-22 | [20855](https://github.com/airbytehq/airbyte/pull/20855) | Retry 429 and 5xx errors | From 072717eb414c411e63db326921730a900a0e3314 Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Tue, 24 Jan 2023 00:59:19 +0100 Subject: [PATCH 49/56] Include module name in CSS class names (#21746) --- airbyte-webapp/vite.config.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/airbyte-webapp/vite.config.ts b/airbyte-webapp/vite.config.ts index 17bd40e531551..d98938c2cb257 100644 --- a/airbyte-webapp/vite.config.ts +++ b/airbyte-webapp/vite.config.ts @@ -69,6 +69,11 @@ export default defineConfig(({ mode }) => { define: { ...processEnv, }, + css: { + modules: { + generateScopedName: "[name]__[local]__[contenthash:6]", + }, + }, resolve: { alias: { // Allow @use "scss/" imports in SASS From 615bce0c053ae82bbcef5b3aa7a0c61bc20c5c77 Mon Sep 17 00:00:00 2001 From: Greg Solovyev Date: Mon, 23 Jan 2023 16:31:51 -0800 Subject: [PATCH 50/56] Community PR: Support CMEK or the GCS destination connector (#21682) Community PR #20351: Support CMEK or the GCS destination connector (#21682) --- .../seed/destination_definitions.yaml | 2 +- .../resources/seed/destination_specs.yaml | 2 +- .../connectors/destination-gcs/Dockerfile | 2 +- .../sample_files/configured_catalog.json | 27 +++++++++++++++++++ .../sample_files/messages.jsonl | 2 ++ .../sample_secrets/config.json | 3 +++ .../destination/gcs/GcsDestination.java | 3 +++ .../destination/gcs/GcsDestinationConfig.java | 7 ++++- docs/integrations/destinations/gcs.md | 1 + 9 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 airbyte-integrations/connectors/destination-gcs/sample_files/configured_catalog.json create mode 100644 airbyte-integrations/connectors/destination-gcs/sample_files/messages.jsonl diff --git a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml index b055912956595..dbda9df745b9e 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_definitions.yaml @@ -139,7 +139,7 @@ - name: Google Cloud Storage (GCS) destinationDefinitionId: ca8f6566-e555-4b40-943a-545bf123117a dockerRepository: airbyte/destination-gcs - dockerImageTag: 0.2.13 + dockerImageTag: 0.2.14 documentationUrl: https://docs.airbyte.com/integrations/destinations/gcs icon: googlecloudstorage.svg resourceRequirements: diff --git a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml index 7f34e408d5b9d..7d6ad329efbe2 100644 --- a/airbyte-config/init/src/main/resources/seed/destination_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/destination_specs.yaml @@ -2325,7 +2325,7 @@ supported_destination_sync_modes: - "overwrite" - "append" -- dockerImage: "airbyte/destination-gcs:0.2.13" +- dockerImage: "airbyte/destination-gcs:0.2.14" spec: documentationUrl: "https://docs.airbyte.com/integrations/destinations/gcs" connectionSpecification: diff --git a/airbyte-integrations/connectors/destination-gcs/Dockerfile b/airbyte-integrations/connectors/destination-gcs/Dockerfile index f4d34c04bceb0..4002dda632613 100644 --- a/airbyte-integrations/connectors/destination-gcs/Dockerfile +++ b/airbyte-integrations/connectors/destination-gcs/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION destination-gcs COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.2.13 +LABEL io.airbyte.version=0.2.14 LABEL io.airbyte.name=airbyte/destination-gcs diff --git a/airbyte-integrations/connectors/destination-gcs/sample_files/configured_catalog.json b/airbyte-integrations/connectors/destination-gcs/sample_files/configured_catalog.json new file mode 100644 index 0000000000000..ee132a2e53a77 --- /dev/null +++ b/airbyte-integrations/connectors/destination-gcs/sample_files/configured_catalog.json @@ -0,0 +1,27 @@ +{ + "streams": [ + { + "sync_mode": "full_refresh", + "destination_sync_mode": "append", + "stream": { + "name": "ab-airbyte-testing", + "supported_sync_modes": ["full_refresh"], + "source_defined_cursor": false, + "json_schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "body": { + "type": "string" + }, + "attributes": { + "type": ["null", "object"] + } + } + } + } + } + ] +} diff --git a/airbyte-integrations/connectors/destination-gcs/sample_files/messages.jsonl b/airbyte-integrations/connectors/destination-gcs/sample_files/messages.jsonl new file mode 100644 index 0000000000000..e1d0682f9dad2 --- /dev/null +++ b/airbyte-integrations/connectors/destination-gcs/sample_files/messages.jsonl @@ -0,0 +1,2 @@ +{"type": "RECORD", "record": {"stream": "ab-airbyte-testing", "data": {"_ab_pk": "my_value", "column2": 221, "column3": "2021-01-01T20:10:22", "column4": 1.214, "column5": [1,2,3]}, "emitted_at": 1626172757000}} +{"type": "RECORD", "record": {"stream": "ab-airbyte-testing", "data": {"_ab_pk": "my_value2", "column2": 222, "column3": "2021-01-02T22:10:22", "column5": [1,2,null]}, "emitted_at": 1626172757000}} diff --git a/airbyte-integrations/connectors/destination-gcs/sample_secrets/config.json b/airbyte-integrations/connectors/destination-gcs/sample_secrets/config.json index 6340e629e9bbb..9c209b519665d 100644 --- a/airbyte-integrations/connectors/destination-gcs/sample_secrets/config.json +++ b/airbyte-integrations/connectors/destination-gcs/sample_secrets/config.json @@ -6,5 +6,8 @@ "credential_type": "HMAC_KEY", "hmac_key_access_id": "", "hmac_key_secret": "" + }, + "format": { + "format_type": "CSV" } } diff --git a/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java b/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java index 6ea195359997c..1a3ac18a11307 100644 --- a/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java +++ b/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java @@ -8,6 +8,7 @@ import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.AmazonS3Exception; +import com.amazonaws.services.s3.internal.SkipMd5CheckStrategy; import com.fasterxml.jackson.databind.JsonNode; import io.airbyte.integrations.BaseConnector; import io.airbyte.integrations.base.AirbyteMessageConsumer; @@ -40,6 +41,8 @@ public GcsDestination() { } public static void main(final String[] args) throws Exception { + System.setProperty(SkipMd5CheckStrategy.DISABLE_GET_OBJECT_MD5_VALIDATION_PROPERTY, "true"); + System.setProperty(SkipMd5CheckStrategy.DISABLE_PUT_OBJECT_MD5_VALIDATION_PROPERTY, "true"); new IntegrationRunner(new GcsDestination()).run(args); } diff --git a/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestinationConfig.java b/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestinationConfig.java index 16ddb90ce1463..e3b260e2fecba 100644 --- a/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestinationConfig.java +++ b/airbyte-integrations/connectors/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestinationConfig.java @@ -15,6 +15,7 @@ import io.airbyte.integrations.destination.gcs.credential.GcsHmacKeyCredentialConfig; import io.airbyte.integrations.destination.s3.S3DestinationConfig; import io.airbyte.integrations.destination.s3.S3DestinationConstants; +import io.airbyte.integrations.destination.s3.S3StorageOperations; import io.airbyte.integrations.destination.s3.S3FormatConfig; import io.airbyte.integrations.destination.s3.S3FormatConfigs; @@ -33,6 +34,7 @@ public GcsDestinationConfig(final String bucketName, final String bucketRegion, final GcsCredentialConfig credentialConfig, final S3FormatConfig formatConfig) { + super(GCS_ENDPOINT, bucketName, bucketPath, @@ -40,7 +42,10 @@ public GcsDestinationConfig(final String bucketName, S3DestinationConstants.DEFAULT_PATH_FORMAT, credentialConfig.getS3CredentialConfig().orElseThrow(), formatConfig, - null); + null, + null, + false, + S3StorageOperations.DEFAULT_UPLOAD_THREADS); this.credentialConfig = credentialConfig; } diff --git a/docs/integrations/destinations/gcs.md b/docs/integrations/destinations/gcs.md index e988530da08ce..8bfd890f17275 100644 --- a/docs/integrations/destinations/gcs.md +++ b/docs/integrations/destinations/gcs.md @@ -237,6 +237,7 @@ Under the hood, an Airbyte data stream in Json schema is first converted to an A | Version | Date | Pull Request | Subject | |:--------| :--- |:------------------------------------------------------------| :--- | +| 0.2.14 | 2023-11-23 | [\#21682](https://github.com/airbytehq/airbyte/pull/21682) | Add support for buckets with Customer-Managed Encryption Key | | 0.2.13 | 2023-01-18 | [#21087](https://github.com/airbytehq/airbyte/pull/21087) | Wrap Authentication Errors as Config Exceptions | | 0.2.12 | 2022-10-18 | [\#17901](https://github.com/airbytehq/airbyte/pull/17901) | Fix logging to GCS | | 0.2.11 | 2022-09-01 | [\#16243](https://github.com/airbytehq/airbyte/pull/16243) | Fix Json to Avro conversion when there is field name clash from combined restrictions (`anyOf`, `oneOf`, `allOf` fields) | From 290b16b0ccdb36d22379b6eff3534c1630fe6c8b Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Tue, 24 Jan 2023 01:34:09 +0100 Subject: [PATCH 51/56] =?UTF-8?q?=F0=9F=AA=9F=F0=9F=90=9B=20Connector=20bu?= =?UTF-8?q?ilder=20UI:=20Fix=20inputs=20modal=20(#21643)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix * fix Co-authored-by: Lake Mossman --- .../components/connectorBuilder/Builder/BuilderField.tsx | 3 ++- .../src/components/connectorBuilder/Builder/InputsForm.tsx | 7 ------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/airbyte-webapp/src/components/connectorBuilder/Builder/BuilderField.tsx b/airbyte-webapp/src/components/connectorBuilder/Builder/BuilderField.tsx index 0e2a0f863ac57..497523e3a9b09 100644 --- a/airbyte-webapp/src/components/connectorBuilder/Builder/BuilderField.tsx +++ b/airbyte-webapp/src/components/connectorBuilder/Builder/BuilderField.tsx @@ -149,7 +149,8 @@ const InnerBuilderField: React.FC> = export const BuilderField: React.FC = (props) => { return ( - + // The key is set to enforce a re-render of the component if the type change, otherwise changes in props might not be reflected correctly + {({ field, form, meta }: FastFieldProps) => ( )} diff --git a/airbyte-webapp/src/components/connectorBuilder/Builder/InputsForm.tsx b/airbyte-webapp/src/components/connectorBuilder/Builder/InputsForm.tsx index 33f0e94a1ca60..2ab7c5415aa77 100644 --- a/airbyte-webapp/src/components/connectorBuilder/Builder/InputsForm.tsx +++ b/airbyte-webapp/src/components/connectorBuilder/Builder/InputsForm.tsx @@ -242,13 +242,6 @@ const InputModal = ({ label={formatMessage({ id: "connectorBuilder.inputModal.default" })} /> )} - ) : ( From 06e88849f0d8a05d651a3b5a47390a0babb5e888 Mon Sep 17 00:00:00 2001 From: Denys Davydov Date: Tue, 24 Jan 2023 09:13:05 +0200 Subject: [PATCH 52/56] Source Gitlab: fix missing data issue (#21713) * #21076 source gitlab: fix missing data issue * #21076 source gitlab: upd changelog * auto-bump connector version Co-authored-by: Octavia Squidington III --- .../resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 2 +- .../connectors/source-gitlab/Dockerfile | 2 +- .../source-gitlab/acceptance-test-config.yml | 6 -- .../source-gitlab/source_gitlab/streams.py | 68 +++++++++++++++---- .../source-gitlab/unit_tests/test_streams.py | 9 ++- docs/integrations/sources/gitlab.md | 1 + 7 files changed, 63 insertions(+), 27 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 44dd3a5f29570..867c293e56fef 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -605,7 +605,7 @@ - name: Gitlab sourceDefinitionId: 5e6175e5-68e1-4c17-bff9-56103bbb0d80 dockerRepository: airbyte/source-gitlab - dockerImageTag: 1.0.0 + dockerImageTag: 1.0.1 documentationUrl: https://docs.airbyte.com/integrations/sources/gitlab icon: gitlab.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 63f14ef901a5e..4a7a7cb364afc 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -4732,7 +4732,7 @@ path_in_connector_config: - "credentials" - "client_secret" -- dockerImage: "airbyte/source-gitlab:1.0.0" +- dockerImage: "airbyte/source-gitlab:1.0.1" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/gitlab" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-gitlab/Dockerfile b/airbyte-integrations/connectors/source-gitlab/Dockerfile index 5466ec492148d..f3d921dc247b3 100644 --- a/airbyte-integrations/connectors/source-gitlab/Dockerfile +++ b/airbyte-integrations/connectors/source-gitlab/Dockerfile @@ -13,5 +13,5 @@ COPY main.py ./ ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=1.0.0 +LABEL io.airbyte.version=1.0.1 LABEL io.airbyte.name=airbyte/source-gitlab diff --git a/airbyte-integrations/connectors/source-gitlab/acceptance-test-config.yml b/airbyte-integrations/connectors/source-gitlab/acceptance-test-config.yml index 2fcb99e43b6de..fe27c4586a77f 100644 --- a/airbyte-integrations/connectors/source-gitlab/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-gitlab/acceptance-test-config.yml @@ -4,8 +4,6 @@ acceptance_tests: spec: tests: - spec_path: "source_gitlab/spec.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.12" connection: tests: - config_path: "secrets/config.json" @@ -17,11 +15,7 @@ acceptance_tests: discovery: tests: - config_path: "secrets/config.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.12" - config_path: "secrets/config_oauth.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.12" basic_read: tests: - config_path: "secrets/config.json" diff --git a/airbyte-integrations/connectors/source-gitlab/source_gitlab/streams.py b/airbyte-integrations/connectors/source-gitlab/source_gitlab/streams.py index 5d550b7caeb29..ff7e6ab3b1dc0 100644 --- a/airbyte-integrations/connectors/source-gitlab/source_gitlab/streams.py +++ b/airbyte-integrations/connectors/source-gitlab/source_gitlab/streams.py @@ -2,13 +2,14 @@ # Copyright (c) 2022 Airbyte, Inc., all rights reserved. # - +import datetime from abc import ABC -from typing import Any, Dict, Iterable, List, Mapping, MutableMapping, Optional +from typing import Any, Dict, Iterable, List, Mapping, MutableMapping, Optional, Tuple import pendulum import requests from airbyte_cdk.models import SyncMode +from airbyte_cdk.sources.streams.core import StreamData from airbyte_cdk.sources.streams.http import HttpStream @@ -18,12 +19,22 @@ class GitlabStream(HttpStream, ABC): stream_base_params = {} flatten_id_keys = [] flatten_list_keys = [] - page = 1 per_page = 50 def __init__(self, api_url: str, **kwargs): super().__init__(**kwargs) self.api_url = api_url + self.page = 1 + + def read_records( + self, + sync_mode: SyncMode, + cursor_field: List[str] = None, + stream_slice: Mapping[str, Any] = None, + stream_state: Mapping[str, Any] = None, + ) -> Iterable[StreamData]: + self.page = 1 + yield from super().read_records(sync_mode, cursor_field, stream_slice, stream_state) def request_params( self, @@ -107,7 +118,9 @@ def path_template(self) -> str: template.append("repository") return "/".join(template + [self.name]) - def stream_slices(self, **kwargs) -> Iterable[Optional[Mapping[str, any]]]: + def stream_slices( + self, sync_mode: SyncMode, cursor_field: List[str] = None, stream_state: Mapping[str, Any] = None + ) -> Iterable[Optional[Mapping[str, any]]]: for slice in self.parent_stream.stream_slices(sync_mode=SyncMode.full_refresh): for record in self.parent_stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=slice): yield {path_key: record[path_key] for path_key in self.path_list} @@ -125,7 +138,8 @@ def transform(self, record: Dict[str, Any], stream_slice: Mapping[str, Any] = No class IncrementalGitlabChildStream(GitlabChildStream): state_checkpoint_interval = 100 cursor_field = "updated_at" - filter_field = "updated_after" + lower_bound_filter = "updated_after" + upper_bound_filter = "updated_before" def __init__(self, start_date, **kwargs): super().__init__(**kwargs) @@ -146,17 +160,40 @@ def get_updated_state(self, current_stream_state: MutableMapping[str, Any], late current_stream_state[str(project_id)] = {self.cursor_field: str(max_value)} return current_stream_state - def request_params(self, stream_state=None, stream_slice: Mapping[str, Any] = None, **kwargs): + @staticmethod + def _chunk_date_range(start_point: datetime.datetime) -> Iterable[Tuple[str, str]]: + end_point = datetime.datetime.now(datetime.timezone.utc) + if start_point > end_point: + return [] + current_start, current_end = start_point, start_point + while current_end < end_point: + current_end = current_start + datetime.timedelta(days=180) + current_end = min(current_end, end_point) + yield str(current_start), str(current_end) + current_start = current_end + datetime.timedelta(seconds=1) + + def stream_slices( + self, sync_mode: SyncMode, cursor_field: List[str] = None, stream_state: Mapping[str, Any] = None + ) -> Iterable[Optional[Mapping[str, Any]]]: stream_state = stream_state or {} - params = super().request_params(stream_state, stream_slice, **kwargs) + super_slices = super().stream_slices(sync_mode, cursor_field, stream_state) + for super_slice in super_slices: + start_point = self._start_date + state_project_value = stream_state.get(str(super_slice["id"])) + if state_project_value: + state_value = state_project_value.get(self.cursor_field) + if state_value: + start_point = max(start_point, state_value) + for start_dt, end_dt in self._chunk_date_range(pendulum.parse(start_point)): + stream_slice = {key: value for key, value in super_slice.items()} + stream_slice[self.lower_bound_filter] = start_dt + stream_slice[self.upper_bound_filter] = end_dt + yield stream_slice - start_point = self._start_date - state_project_value = stream_state.get(str(stream_slice["id"])) - if state_project_value: - state_value = state_project_value.get(self.cursor_field) - if state_value: - start_point = max(start_point, state_value) - params[self.filter_field] = start_point + def request_params(self, stream_state=None, stream_slice: Mapping[str, Any] = None, **kwargs): + params = super().request_params(stream_state, stream_slice, **kwargs) + params[self.lower_bound_filter] = stream_slice[self.lower_bound_filter] + params[self.upper_bound_filter] = stream_slice[self.upper_bound_filter] return params @@ -265,7 +302,8 @@ class Branches(GitlabChildStream): class Commits(IncrementalGitlabChildStream): cursor_field = "created_at" - filter_field = "since" + lower_bound_filter = "since" + upper_bound_filter = "until" flatten_parent_id = True stream_base_params = {"with_stats": True} diff --git a/airbyte-integrations/connectors/source-gitlab/unit_tests/test_streams.py b/airbyte-integrations/connectors/source-gitlab/unit_tests/test_streams.py index 7f2b795ce9730..6e0c63098c292 100644 --- a/airbyte-integrations/connectors/source-gitlab/unit_tests/test_streams.py +++ b/airbyte-integrations/connectors/source-gitlab/unit_tests/test_streams.py @@ -2,6 +2,8 @@ # Copyright (c) 2022 Airbyte, Inc., all rights reserved. # +import datetime + import pytest from airbyte_cdk.sources.streams.http.auth import NoAuth from source_gitlab.streams import Commits, Jobs, MergeRequestCommits, MergeRequests, Pipelines, Projects, Releases, Tags @@ -9,14 +11,15 @@ auth_params = {"authenticator": NoAuth(), "api_url": "gitlab.com"} +start_date = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=14) projects = Projects(project_ids=["p_1"], **auth_params) -pipelines = Pipelines(parent_stream=projects, start_date="2021-01-01T00:00:00Z", **auth_params) -merge_requests = MergeRequests(parent_stream=projects, start_date="2021-01-01T00:00:00Z", **auth_params) +pipelines = Pipelines(parent_stream=projects, start_date=str(start_date), **auth_params) +merge_requests = MergeRequests(parent_stream=projects, start_date=str(start_date), **auth_params) tags = Tags(parent_stream=projects, repository_part=True, **auth_params) releases = Releases(parent_stream=projects, **auth_params) jobs = Jobs(parent_stream=pipelines, **auth_params) merge_request_commits = MergeRequestCommits(parent_stream=merge_requests, **auth_params) -commits = Commits(parent_stream=projects, repository_part=True, start_date="2021-01-01T00:00:00Z", **auth_params) +commits = Commits(parent_stream=projects, repository_part=True, start_date=str(start_date), **auth_params) def test_should_retry(mocker, requests_mock): diff --git a/docs/integrations/sources/gitlab.md b/docs/integrations/sources/gitlab.md index 0fa5220f5121a..fabfc75c1f27c 100644 --- a/docs/integrations/sources/gitlab.md +++ b/docs/integrations/sources/gitlab.md @@ -105,6 +105,7 @@ Gitlab has the [rate limits](https://docs.gitlab.com/ee/user/gitlab_com/index.ht | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:-------------------------------------------------------------------------------------------| +| 1.0.1 | 2022-01-23 | [21713](https://github.com/airbytehq/airbyte/pull/21713) | Fix missing data issue | | 1.0.0 | 2022-12-05 | [7506](https://github.com/airbytehq/airbyte/pull/7506) | Add `OAuth2.0` authentication option | | 0.1.12 | 2022-12-15 | [20542](https://github.com/airbytehq/airbyte/pull/20542) | Revert HttpAvailability changes, run on cdk 0.15.0 | | 0.1.11 | 2022-12-14 | [20479](https://github.com/airbytehq/airbyte/pull/20479) | Use HttpAvailabilityStrategy + add unit tests | From b9de100058b8901d9acd88519635fda4b6cb336c Mon Sep 17 00:00:00 2001 From: Octavia Squidington III <90398440+octavia-squidington-iii@users.noreply.github.com> Date: Tue, 24 Jan 2023 08:22:45 +0100 Subject: [PATCH 53/56] Bump Airbyte version from 0.40.28 to 0.40.29 (#21767) Co-authored-by: lmossman --- .bumpversion.cfg | 2 +- .env | 2 +- airbyte-bootloader/Dockerfile | 2 +- airbyte-connector-builder-server/Dockerfile | 2 +- airbyte-connector-builder-server/setup.py | 2 +- airbyte-container-orchestrator/Dockerfile | 2 +- airbyte-cron/Dockerfile | 2 +- airbyte-metrics/reporter/Dockerfile | 2 +- airbyte-proxy/Dockerfile | 2 +- airbyte-server/Dockerfile | 2 +- airbyte-webapp/package-lock.json | 4 ++-- airbyte-webapp/package.json | 2 +- airbyte-workers/Dockerfile | 2 +- charts/airbyte-bootloader/Chart.yaml | 2 +- charts/airbyte-connector-builder-server/Chart.yaml | 2 +- charts/airbyte-cron/Chart.yaml | 2 +- charts/airbyte-server/Chart.yaml | 2 +- charts/airbyte-temporal/Chart.yaml | 2 +- charts/airbyte-webapp/Chart.yaml | 2 +- charts/airbyte-worker/Chart.yaml | 2 +- charts/airbyte/Chart.yaml | 2 +- charts/airbyte/README.md | 2 +- docs/operator-guides/upgrading-airbyte.md | 4 ++-- kube/overlays/stable-with-resource-limits/.env | 2 +- .../stable-with-resource-limits/kustomization.yaml | 14 +++++++------- kube/overlays/stable/.env | 2 +- kube/overlays/stable/kustomization.yaml | 14 +++++++------- octavia-cli/Dockerfile | 2 +- octavia-cli/README.md | 4 ++-- octavia-cli/install.sh | 2 +- octavia-cli/setup.py | 2 +- 31 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 131c31761c991..d90909974fa2f 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.28 +current_version = 0.40.29 commit = False tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-[a-z]+)? diff --git a/.env b/.env index a8a3d5d08c398..d9bf9f7d2048a 100644 --- a/.env +++ b/.env @@ -10,7 +10,7 @@ ### SHARED ### -VERSION=0.40.28 +VERSION=0.40.29 # When using the airbyte-db via default docker image CONFIG_ROOT=/data diff --git a/airbyte-bootloader/Dockerfile b/airbyte-bootloader/Dockerfile index ab84c7829c603..03c0a5aabee8c 100644 --- a/airbyte-bootloader/Dockerfile +++ b/airbyte-bootloader/Dockerfile @@ -1,7 +1,7 @@ ARG JDK_IMAGE=airbyte/airbyte-base-java-image:1.0 FROM ${JDK_IMAGE} -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-bootloader ENV VERSION ${VERSION} diff --git a/airbyte-connector-builder-server/Dockerfile b/airbyte-connector-builder-server/Dockerfile index 7e5c167607ee8..7a1ef94f51187 100644 --- a/airbyte-connector-builder-server/Dockerfile +++ b/airbyte-connector-builder-server/Dockerfile @@ -10,5 +10,5 @@ RUN pip install --no-cache-dir . ENTRYPOINT ["uvicorn", "connector_builder.entrypoint:app", "--host", "0.0.0.0", "--port", "80"] -LABEL io.airbyte.version=0.40.28 +LABEL io.airbyte.version=0.40.29 LABEL io.airbyte.name=airbyte/connector-builder-server diff --git a/airbyte-connector-builder-server/setup.py b/airbyte-connector-builder-server/setup.py index d50fed19aee43..b674bfc6f836d 100644 --- a/airbyte-connector-builder-server/setup.py +++ b/airbyte-connector-builder-server/setup.py @@ -14,7 +14,7 @@ setup( name="connector-builder-server", - version="0.40.28", + version="0.40.29", description="", long_description=README, author="Airbyte", diff --git a/airbyte-container-orchestrator/Dockerfile b/airbyte-container-orchestrator/Dockerfile index 07480cd50773d..7b0ef96f0197e 100644 --- a/airbyte-container-orchestrator/Dockerfile +++ b/airbyte-container-orchestrator/Dockerfile @@ -10,7 +10,7 @@ RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/s && chmod +x kubectl && mv kubectl /usr/local/bin/ # Don't change this manually. Bump version expects to make moves based on this string -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-container-orchestrator ENV VERSION=${VERSION} diff --git a/airbyte-cron/Dockerfile b/airbyte-cron/Dockerfile index f820410130c71..99723a70bef39 100644 --- a/airbyte-cron/Dockerfile +++ b/airbyte-cron/Dockerfile @@ -1,7 +1,7 @@ ARG JDK_IMAGE=airbyte/airbyte-base-java-image:1.0 FROM ${JDK_IMAGE} AS cron -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-cron ENV VERSION ${VERSION} diff --git a/airbyte-metrics/reporter/Dockerfile b/airbyte-metrics/reporter/Dockerfile index 10960cae90a27..d11bac0790585 100644 --- a/airbyte-metrics/reporter/Dockerfile +++ b/airbyte-metrics/reporter/Dockerfile @@ -1,7 +1,7 @@ ARG JDK_IMAGE=airbyte/airbyte-base-java-image:1.0 FROM ${JDK_IMAGE} AS metrics-reporter -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-metrics-reporter ENV VERSION ${VERSION} diff --git a/airbyte-proxy/Dockerfile b/airbyte-proxy/Dockerfile index 42b78790c74ae..6f8e67698b002 100644 --- a/airbyte-proxy/Dockerfile +++ b/airbyte-proxy/Dockerfile @@ -2,7 +2,7 @@ FROM nginx:latest -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-proxy ENV VERSION ${VERSION} diff --git a/airbyte-server/Dockerfile b/airbyte-server/Dockerfile index b7ab48ef8543c..6cbaac749beec 100644 --- a/airbyte-server/Dockerfile +++ b/airbyte-server/Dockerfile @@ -3,7 +3,7 @@ FROM ${JDK_IMAGE} AS server EXPOSE 8000 -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-server ENV VERSION ${VERSION} diff --git a/airbyte-webapp/package-lock.json b/airbyte-webapp/package-lock.json index e3aa44e3f9af0..55255e4553450 100644 --- a/airbyte-webapp/package-lock.json +++ b/airbyte-webapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "airbyte-webapp", - "version": "0.40.28", + "version": "0.40.29", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "airbyte-webapp", - "version": "0.40.28", + "version": "0.40.29", "dependencies": { "@datadog/browser-rum": "^4.21.2", "@floating-ui/react-dom": "^1.0.0", diff --git a/airbyte-webapp/package.json b/airbyte-webapp/package.json index 9c902627e05d5..2a3f87b0b8eca 100644 --- a/airbyte-webapp/package.json +++ b/airbyte-webapp/package.json @@ -1,6 +1,6 @@ { "name": "airbyte-webapp", - "version": "0.40.28", + "version": "0.40.29", "private": true, "engines": { "node": "16.18.1" diff --git a/airbyte-workers/Dockerfile b/airbyte-workers/Dockerfile index a51a55afebe25..98ac54b5412a7 100644 --- a/airbyte-workers/Dockerfile +++ b/airbyte-workers/Dockerfile @@ -10,7 +10,7 @@ RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/s && chmod +x kubectl && mv kubectl /usr/local/bin/ # Don't change this manually. Bump version expects to make moves based on this string -ARG VERSION=0.40.28 +ARG VERSION=0.40.29 ENV APPLICATION airbyte-workers ENV VERSION ${VERSION} diff --git a/charts/airbyte-bootloader/Chart.yaml b/charts/airbyte-bootloader/Chart.yaml index 8da1ae1155668..f98430992f741 100644 --- a/charts/airbyte-bootloader/Chart.yaml +++ b/charts/airbyte-bootloader/Chart.yaml @@ -22,7 +22,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-connector-builder-server/Chart.yaml b/charts/airbyte-connector-builder-server/Chart.yaml index 6ee6d821e9d63..3c833b660a13d 100644 --- a/charts/airbyte-connector-builder-server/Chart.yaml +++ b/charts/airbyte-connector-builder-server/Chart.yaml @@ -21,7 +21,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-cron/Chart.yaml b/charts/airbyte-cron/Chart.yaml index cd8382766cb19..263dd7e6f788e 100644 --- a/charts/airbyte-cron/Chart.yaml +++ b/charts/airbyte-cron/Chart.yaml @@ -21,7 +21,7 @@ version: 0.1.1 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-server/Chart.yaml b/charts/airbyte-server/Chart.yaml index 41e20ab02ed7a..ec23d0ea5fa75 100644 --- a/charts/airbyte-server/Chart.yaml +++ b/charts/airbyte-server/Chart.yaml @@ -21,7 +21,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-temporal/Chart.yaml b/charts/airbyte-temporal/Chart.yaml index 3131b967b67bc..ceb61b02e66af 100644 --- a/charts/airbyte-temporal/Chart.yaml +++ b/charts/airbyte-temporal/Chart.yaml @@ -22,7 +22,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-webapp/Chart.yaml b/charts/airbyte-webapp/Chart.yaml index 3dea72d839053..2cfae3fa259af 100644 --- a/charts/airbyte-webapp/Chart.yaml +++ b/charts/airbyte-webapp/Chart.yaml @@ -22,7 +22,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte-worker/Chart.yaml b/charts/airbyte-worker/Chart.yaml index 0ca7ecf27d7a1..5d74b74e0bb57 100644 --- a/charts/airbyte-worker/Chart.yaml +++ b/charts/airbyte-worker/Chart.yaml @@ -22,7 +22,7 @@ version: "0.43.13" # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte/Chart.yaml b/charts/airbyte/Chart.yaml index c95118eca13f5..15f97925abe8f 100644 --- a/charts/airbyte/Chart.yaml +++ b/charts/airbyte/Chart.yaml @@ -21,7 +21,7 @@ version: 0.43.13 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.40.28" +appVersion: "0.40.29" dependencies: - name: common diff --git a/charts/airbyte/README.md b/charts/airbyte/README.md index 68d22a281b63c..b816e5db12fe2 100644 --- a/charts/airbyte/README.md +++ b/charts/airbyte/README.md @@ -250,7 +250,7 @@ Helm chart to deploy airbyte | worker.hpa.enabled | bool | `false` | | | worker.image.pullPolicy | string | `"IfNotPresent"` | | | worker.image.repository | string | `"airbyte/worker"` | | -| worker.image.tag | string | `"0.40.28"` | | +| worker.image.tag | string | `"0.40.29"` | | | worker.livenessProbe.enabled | bool | `true` | | | worker.livenessProbe.failureThreshold | int | `3` | | | worker.livenessProbe.initialDelaySeconds | int | `30` | | diff --git a/docs/operator-guides/upgrading-airbyte.md b/docs/operator-guides/upgrading-airbyte.md index 060408f462930..7b882d24006d1 100644 --- a/docs/operator-guides/upgrading-airbyte.md +++ b/docs/operator-guides/upgrading-airbyte.md @@ -33,7 +33,7 @@ If you use custom connectors, this upgrade requires all of your connector specs :::note -Airbyte version 0.40.28 or later requires [Docker Compose V2](https://docs.docker.com/compose/compose-v2/) to be [installed](https://docs.docker.com/compose/install/) before upgrading. +Airbyte version 0.40.29 or later requires [Docker Compose V2](https://docs.docker.com/compose/compose-v2/) to be [installed](https://docs.docker.com/compose/install/) before upgrading. ::: @@ -109,7 +109,7 @@ If you are upgrading from (i.e. your current version of Airbyte is) Airbyte vers Here's an example of what it might look like with the values filled in. It assumes that the downloaded `airbyte_archive.tar.gz` is in `/tmp`. ```bash - docker run --rm -v /tmp:/config airbyte/migration:0.40.28 --\ + docker run --rm -v /tmp:/config airbyte/migration:0.40.29 --\ --input /config/airbyte_archive.tar.gz\ --output /config/airbyte_archive_migrated.tar.gz ``` diff --git a/kube/overlays/stable-with-resource-limits/.env b/kube/overlays/stable-with-resource-limits/.env index ab5ae5ec4d4ef..63df173366caf 100644 --- a/kube/overlays/stable-with-resource-limits/.env +++ b/kube/overlays/stable-with-resource-limits/.env @@ -1,4 +1,4 @@ -AIRBYTE_VERSION=0.40.28 +AIRBYTE_VERSION=0.40.29 # Airbyte Internal Database, see https://docs.airbyte.io/operator-guides/configuring-airbyte-db DATABASE_HOST=airbyte-db-svc diff --git a/kube/overlays/stable-with-resource-limits/kustomization.yaml b/kube/overlays/stable-with-resource-limits/kustomization.yaml index 274d44fef5b7d..3705262975555 100644 --- a/kube/overlays/stable-with-resource-limits/kustomization.yaml +++ b/kube/overlays/stable-with-resource-limits/kustomization.yaml @@ -8,21 +8,21 @@ bases: images: - name: airbyte/db - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/bootloader - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/server - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/webapp - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/worker - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/temporal-auto-setup newTag: 1.13.0 - name: airbyte/cron - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/connector-builder-server - newTag: 0.40.28 + newTag: 0.40.29 configMapGenerator: - name: airbyte-env diff --git a/kube/overlays/stable/.env b/kube/overlays/stable/.env index d5541c0b50fb6..46400b8ceeda7 100644 --- a/kube/overlays/stable/.env +++ b/kube/overlays/stable/.env @@ -1,4 +1,4 @@ -AIRBYTE_VERSION=0.40.28 +AIRBYTE_VERSION=0.40.29 # Airbyte Internal Database, see https://docs.airbyte.io/operator-guides/configuring-airbyte-db DATABASE_HOST=airbyte-db-svc diff --git a/kube/overlays/stable/kustomization.yaml b/kube/overlays/stable/kustomization.yaml index 4f89c4ccf3d73..f5b3a5b64cce5 100644 --- a/kube/overlays/stable/kustomization.yaml +++ b/kube/overlays/stable/kustomization.yaml @@ -8,21 +8,21 @@ bases: images: - name: airbyte/db - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/bootloader - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/server - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/webapp - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/worker - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/temporal-auto-setup newTag: 1.13.0 - name: airbyte/cron - newTag: 0.40.28 + newTag: 0.40.29 - name: airbyte/connector-builder-server - newTag: 0.40.28 + newTag: 0.40.29 configMapGenerator: - name: airbyte-env diff --git a/octavia-cli/Dockerfile b/octavia-cli/Dockerfile index 189845f2bf023..49e95eb46bae9 100644 --- a/octavia-cli/Dockerfile +++ b/octavia-cli/Dockerfile @@ -14,5 +14,5 @@ USER octavia-cli WORKDIR /home/octavia-project ENTRYPOINT ["octavia"] -LABEL io.airbyte.version=0.40.28 +LABEL io.airbyte.version=0.40.29 LABEL io.airbyte.name=airbyte/octavia-cli diff --git a/octavia-cli/README.md b/octavia-cli/README.md index ba4067de149ab..3f4c1e2c0c68e 100644 --- a/octavia-cli/README.md +++ b/octavia-cli/README.md @@ -104,7 +104,7 @@ This script: ```bash touch ~/.octavia # Create a file to store env variables that will be mapped the octavia-cli container mkdir my_octavia_project_directory # Create your octavia project directory where YAML configurations will be stored. -docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.40.28 +docker run --name octavia-cli -i --rm -v my_octavia_project_directory:/home/octavia-project --network host --user $(id -u):$(id -g) --env-file ~/.octavia airbyte/octavia-cli:0.40.29 ``` ### Using `docker-compose` @@ -712,7 +712,7 @@ You can disable telemetry by setting the `OCTAVIA_ENABLE_TELEMETRY` environment | Version | Date | Description | PR | | ------- | ---------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------- | | 0.41.0 | 2022-10-13 | Use Basic Authentication for making API requests | [#17982](https://github.com/airbytehq/airbyte/pull/17982) | -| 0.40.28 | 2022-08-10 | Enable cron and basic scheduling | [#15253](https://github.com/airbytehq/airbyte/pull/15253) | +| 0.40.29 | 2022-08-10 | Enable cron and basic scheduling | [#15253](https://github.com/airbytehq/airbyte/pull/15253) | | 0.39.33 | 2022-07-05 | Add `octavia import all` command | [#14374](https://github.com/airbytehq/airbyte/pull/14374) | | 0.39.32 | 2022-06-30 | Create import command to import and manage existing Airbyte resource from octavia-cli | [#14137](https://github.com/airbytehq/airbyte/pull/14137) | | 0.39.27 | 2022-06-24 | Create get command to retrieve resources JSON representation | [#13254](https://github.com/airbytehq/airbyte/pull/13254) | diff --git a/octavia-cli/install.sh b/octavia-cli/install.sh index 2401a74fdc404..1f9ecdbae8050 100755 --- a/octavia-cli/install.sh +++ b/octavia-cli/install.sh @@ -3,7 +3,7 @@ # This install scripts currently only works for ZSH and Bash profiles. # It creates an octavia alias in your profile bound to a docker run command and your current user. -VERSION=0.40.28 +VERSION=0.40.29 OCTAVIA_ENV_FILE=${HOME}/.octavia detect_profile() { diff --git a/octavia-cli/setup.py b/octavia-cli/setup.py index 058c2c7e5bc35..53e07856fc86c 100644 --- a/octavia-cli/setup.py +++ b/octavia-cli/setup.py @@ -15,7 +15,7 @@ setup( name="octavia-cli", - version="0.40.28", + version="0.40.29", description="A command line interface to manage Airbyte configurations", long_description=README, author="Airbyte", From 4770a8fa4347c979c37586b8314ba7040558abbb Mon Sep 17 00:00:00 2001 From: Augustin Date: Tue, 24 Jan 2023 09:35:06 +0100 Subject: [PATCH 54/56] connector-ops-ci: bootstrap qa engine (#21709) --- .github/workflows/run-qa-engine.yml | 30 +++++++++++ .../ci_connector_ops/qa_engine/__init__.py | 0 .../ci_connector_ops/qa_engine/inputs.py | 50 +++++++++++++++++++ .../ci_connector_ops/qa_engine/main.py | 31 ++++++++++++ .../ci_connector_ops/qa_engine/models.py | 32 ++++++++++++ tools/ci_connector_ops/setup.py | 13 ++++- .../tests/test_qa_engine/__init__.py | 0 .../tests/test_qa_engine/test_inputs.py | 30 +++++++++++ .../tests/test_qa_engine/test_main.py | 11 ++++ 9 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/run-qa-engine.yml create mode 100644 tools/ci_connector_ops/ci_connector_ops/qa_engine/__init__.py create mode 100644 tools/ci_connector_ops/ci_connector_ops/qa_engine/inputs.py create mode 100644 tools/ci_connector_ops/ci_connector_ops/qa_engine/main.py create mode 100644 tools/ci_connector_ops/ci_connector_ops/qa_engine/models.py create mode 100644 tools/ci_connector_ops/tests/test_qa_engine/__init__.py create mode 100644 tools/ci_connector_ops/tests/test_qa_engine/test_inputs.py create mode 100644 tools/ci_connector_ops/tests/test_qa_engine/test_main.py diff --git a/.github/workflows/run-qa-engine.yml b/.github/workflows/run-qa-engine.yml new file mode 100644 index 0000000000000..717e9db0198bb --- /dev/null +++ b/.github/workflows/run-qa-engine.yml @@ -0,0 +1,30 @@ +name: Run QA Engine + +on: + workflow_dispatch: + schedule: + # 1pm UTC is 6am PDT. + # same time as Generate Build Report + - cron: "0 13 * * *" + +jobs: + run-qa-engine: + name: "Run QA Engine" + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + steps: + - name: Checkout Airbyte + uses: actions/checkout@v3 + - name: Setup Cloud SDK + uses: google-github-actions/setup-gcloud@v0 + with: + service_account_key: ${{ secrets.PROD_SPEC_CACHE_SA_KEY }} + export_default_credentials: true + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Install ci-connector-ops package + run: pip install --quiet -e ./tools/ci_connector_ops + - name: Run QA Engine + run: run-qa-engine diff --git a/tools/ci_connector_ops/ci_connector_ops/qa_engine/__init__.py b/tools/ci_connector_ops/ci_connector_ops/qa_engine/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tools/ci_connector_ops/ci_connector_ops/qa_engine/inputs.py b/tools/ci_connector_ops/ci_connector_ops/qa_engine/inputs.py new file mode 100644 index 0000000000000..1e560df0be562 --- /dev/null +++ b/tools/ci_connector_ops/ci_connector_ops/qa_engine/inputs.py @@ -0,0 +1,50 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + + +import requests +import pandas as pd + +CLOUD_CATALOG_URL = "https://storage.googleapis.com/prod-airbyte-cloud-connector-metadata-service/cloud_catalog.json" +OSS_CATALOG_URL = "https://storage.googleapis.com/prod-airbyte-cloud-connector-metadata-service/oss_catalog.json" + + +def fetch_remote_catalog(catalog_url: str) -> pd.DataFrame: + """Fetch a combined remote catalog and return a single DataFrame + with sources and destinations defined by the connector_type column. + + Args: + catalog_url (str): The remote catalog url. + + Returns: + pd.DataFrame: Sources and destinations combined under a denormalized DataFrame. + """ + raw_catalog = requests.get(catalog_url).json() + sources = pd.DataFrame(raw_catalog["sources"]) + destinations = pd.DataFrame(raw_catalog["destinations"]) + sources["connector_type"] = "source" + sources["connector_definition_id"] = sources.sourceDefinitionId + destinations["connector_type"] = "destination" + destinations["connector_definition_id"] = destinations.destinationDefinitionId + return pd.concat([sources, destinations]) + +def fetch_adoption_metrics_per_connector_version() -> pd.DataFrame: + """Retrieve adoptions metrics for each connector version from our data warehouse. + + Returns: + pd.DataFrame: A Dataframe with adoption metrics per connector version. + """ + # TODO: directly query BigQuery + # use query in https://airbyte.metabaseapp.com/question/1642-adoption-and-success-rate-per-connector-version-oss-cloud + return pd.DataFrame(columns=[ + "connector_definition_id", + "connector_version", + "number_of_connections", + "number_of_users", + "sync_success_rate", + ]) + +CLOUD_CATALOG = fetch_remote_catalog(CLOUD_CATALOG_URL) +OSS_CATALOG = fetch_remote_catalog(OSS_CATALOG_URL) +ADOPTION_METRICS_PER_CONNECTOR_VERSION = fetch_adoption_metrics_per_connector_version() diff --git a/tools/ci_connector_ops/ci_connector_ops/qa_engine/main.py b/tools/ci_connector_ops/ci_connector_ops/qa_engine/main.py new file mode 100644 index 0000000000000..7d632788aa6ae --- /dev/null +++ b/tools/ci_connector_ops/ci_connector_ops/qa_engine/main.py @@ -0,0 +1,31 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + + +import pandas as pd +from .models import QAReport + +GCS_QA_REPORT_PATH = "gs://prod-airbyte-cloud-connector-metadata-service/qa_report.json" +DUMMY_REPORT = pd.DataFrame([ + { + "connector_type": "source", + "connector_name": "test", + "docker_image_tag": "0.0.0", + "release_stage": "alpha", + "is_on_cloud": False, + "latest_build_is_successful": False, + "documentation_is_available": False, + "number_of_connections": 0, + "number_of_users": 0, + "sync_success_rate": .99 + } + ]) + +def write_qa_report_to_gcs(qa_report: pd.DataFrame, output_file_path: str): + # Validate the report structure with pydantic QAReport model. + QAReport(connectors_qa_report=qa_report.to_dict(orient="records")) + qa_report.to_json(output_file_path, orient="records") + +def main(): + write_qa_report_to_gcs(DUMMY_REPORT, GCS_QA_REPORT_PATH) diff --git a/tools/ci_connector_ops/ci_connector_ops/qa_engine/models.py b/tools/ci_connector_ops/ci_connector_ops/qa_engine/models.py new file mode 100644 index 0000000000000..eec91b90eee70 --- /dev/null +++ b/tools/ci_connector_ops/ci_connector_ops/qa_engine/models.py @@ -0,0 +1,32 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + + +from enum import Enum +from typing import List +from pydantic import BaseModel + +class ConnectorTypeEnum(str, Enum): + source = "source" + destination = "destination" + +class ReleaseStageEnum(str, Enum): + alpha = "alpha" + beta = "beta" + generally_available = "generally_available" + +class ConnectorQAReport(BaseModel): + connector_type: ConnectorTypeEnum + connector_name: str + docker_image_tag: str + release_stage: ReleaseStageEnum + is_on_cloud: bool + latest_build_is_successful: bool + documentation_is_available: bool + number_of_connections: int + number_of_users: int + sync_success_rate: float + +class QAReport(BaseModel): + connectors_qa_report: List[ConnectorQAReport] diff --git a/tools/ci_connector_ops/setup.py b/tools/ci_connector_ops/setup.py index c573c8d7148bb..0fc79a9f6e1e1 100644 --- a/tools/ci_connector_ops/setup.py +++ b/tools/ci_connector_ops/setup.py @@ -5,11 +5,19 @@ from setuptools import find_packages, setup -MAIN_REQUIREMENTS = ["requests", "PyYAML~=6.0", "GitPython~=3.1.29"] +MAIN_REQUIREMENTS = [ + "requests", + "PyYAML~=6.0", + "GitPython~=3.1.29", + "pandas~=1.5.3", + "pydantic~=1.10.4", + "fsspec~=2023.1.0", + "gcsfs~=2023.1.0" +] setup( - version="0.1.2", + version="0.1.3", name="ci_connector_ops", description="Packaged maintained by the connector operations team to perform CI for connectors", author="Airbyte", @@ -22,6 +30,7 @@ "check-test-strictness-level = ci_connector_ops.sat_config_checks:check_test_strictness_level", "write-review-requirements-file = ci_connector_ops.sat_config_checks:write_review_requirements_file", "print-mandatory-reviewers = ci_connector_ops.sat_config_checks:print_mandatory_reviewers", + "run-qa-engine = ci_connector_ops.qa_engine.main:main" "run-qa-checks = ci_connector_ops.qa_checks:run_qa_checks" ], }, diff --git a/tools/ci_connector_ops/tests/test_qa_engine/__init__.py b/tools/ci_connector_ops/tests/test_qa_engine/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tools/ci_connector_ops/tests/test_qa_engine/test_inputs.py b/tools/ci_connector_ops/tests/test_qa_engine/test_inputs.py new file mode 100644 index 0000000000000..d0a4fb037e032 --- /dev/null +++ b/tools/ci_connector_ops/tests/test_qa_engine/test_inputs.py @@ -0,0 +1,30 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + + +import pandas as pd +import pytest + +from ci_connector_ops.qa_engine import inputs + +@pytest.mark.parametrize("catalog_url", [inputs.OSS_CATALOG_URL, inputs.CLOUD_CATALOG_URL]) +def test_fetch_remote_catalog(catalog_url): + catalog = inputs.fetch_remote_catalog(catalog_url) + assert isinstance(catalog, pd.DataFrame) + expected_columns = ["connector_type", "connector_definition_id"] + assert all(expected_column in catalog.columns for expected_column in expected_columns) + assert set(catalog.connector_type.unique()) == {"source", "destination"} + +def test_fetch_adoption_metrics_per_connector_version(): + expected_columns = { + "connector_definition_id", + "connector_version", + "number_of_connections", + "number_of_users", + "sync_success_rate", + } + + adoption_metrics_per_connector_version = inputs.fetch_adoption_metrics_per_connector_version() + assert len(adoption_metrics_per_connector_version) == 0 + assert set(adoption_metrics_per_connector_version.columns) == expected_columns diff --git a/tools/ci_connector_ops/tests/test_qa_engine/test_main.py b/tools/ci_connector_ops/tests/test_qa_engine/test_main.py new file mode 100644 index 0000000000000..815568e2d8a9a --- /dev/null +++ b/tools/ci_connector_ops/tests/test_qa_engine/test_main.py @@ -0,0 +1,11 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# + +import pandas +from ci_connector_ops.qa_engine import main + +def test_write_qa_report_to_gcs(tmp_path): + output_path = tmp_path / "output.json" + main.write_qa_report_to_gcs(main.DUMMY_REPORT, output_path) + assert pandas.read_json(output_path).to_dict() == main.DUMMY_REPORT.to_dict() From f7ce2041b789f276102f2afaf725946a9d1ef8e4 Mon Sep 17 00:00:00 2001 From: Augustin Date: Tue, 24 Jan 2023 09:45:05 +0100 Subject: [PATCH 55/56] qa-engine: fix typo (#21773) * fix typo * fix typo * fix typo --- tools/ci_connector_ops/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci_connector_ops/setup.py b/tools/ci_connector_ops/setup.py index 0fc79a9f6e1e1..7f544c03c6e8e 100644 --- a/tools/ci_connector_ops/setup.py +++ b/tools/ci_connector_ops/setup.py @@ -30,7 +30,7 @@ "check-test-strictness-level = ci_connector_ops.sat_config_checks:check_test_strictness_level", "write-review-requirements-file = ci_connector_ops.sat_config_checks:write_review_requirements_file", "print-mandatory-reviewers = ci_connector_ops.sat_config_checks:print_mandatory_reviewers", - "run-qa-engine = ci_connector_ops.qa_engine.main:main" + "run-qa-engine = ci_connector_ops.qa_engine.main:main", "run-qa-checks = ci_connector_ops.qa_checks:run_qa_checks" ], }, From 1c4b6a1f9594046f82892a4520017c169b66d833 Mon Sep 17 00:00:00 2001 From: midavadim Date: Tue, 24 Jan 2023 11:16:40 +0200 Subject: [PATCH 56/56] added test_strictness_level: high (#21701) --- .../source-s3/acceptance-test-config.yml | 225 ++++++++---------- 1 file changed, 104 insertions(+), 121 deletions(-) diff --git a/airbyte-integrations/connectors/source-s3/acceptance-test-config.yml b/airbyte-integrations/connectors/source-s3/acceptance-test-config.yml index 28bd1af6a7ae7..825587b33a7a3 100644 --- a/airbyte-integrations/connectors/source-s3/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-s3/acceptance-test-config.yml @@ -1,148 +1,131 @@ -# See [Source Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/source-acceptance-tests-reference) -# for more information about how to configure these tests connector_image: airbyte/source-s3:dev -tests: +test_strictness_level: high +acceptance_tests: spec: - - spec_path: "integration_tests/spec.json" - backward_compatibility_tests_config: - disable_for_version: "0.1.26" + tests: + - backward_compatibility_tests_config: + disable_for_version: 0.1.26 + spec_path: integration_tests/spec.json + connection: - # for CSV format - - config_path: "secrets/config.json" - status: "succeed" - # for Parquet format - - config_path: "secrets/parquet_config.json" - status: "succeed" - # # for Avro format - - config_path: "secrets/avro_config.json" - status: - "succeed" - # for JSON format - - config_path: "secrets/jsonl_config.json" - status: "succeed" - - config_path: "secrets/jsonl_newlines_config.json" - status: "succeed" - # for custom server - - config_path: "integration_tests/config_minio.json" - status: "succeed" - - config_path: "integration_tests/invalid_config.json" - status: "failed" + tests: + - config_path: secrets/config.json + status: succeed + - config_path: secrets/parquet_config.json + status: succeed + - config_path: secrets/avro_config.json + status: succeed + - config_path: secrets/jsonl_config.json + status: succeed + - config_path: secrets/jsonl_newlines_config.json + status: succeed + - config_path: integration_tests/config_minio.json + status: succeed + - config_path: integration_tests/invalid_config.json + status: failed + discovery: - # for CSV format - - config_path: "secrets/config.json" - # for Parquet format - - config_path: "secrets/parquet_config.json" - # for Avro format - - config_path: "secrets/avro_config.json" - # for JSON format - - config_path: "secrets/jsonl_config.json" - - config_path: "secrets/jsonl_newlines_config.json" - # for custom server - - config_path: "integration_tests/config_minio.json" + tests: + - config_path: secrets/config.json + - config_path: secrets/parquet_config.json + - config_path: secrets/avro_config.json + - config_path: secrets/jsonl_config.json + - config_path: secrets/jsonl_newlines_config.json + - config_path: integration_tests/config_minio.json + basic_read: - # for CSV format - - config_path: "secrets/config.json" - timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json" + tests: + - config_path: secrets/config.json expect_records: - path: "integration_tests/expected_records/csv.jsonl" - # for Parquet format - - config_path: "secrets/parquet_config.json" + path: integration_tests/expected_records/csv.jsonl timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/parquet.json" + - config_path: secrets/parquet_config.json expect_records: - path: "integration_tests/expected_records/parquet.jsonl" - # for Avro format - - config_path: "secrets/avro_config.json" + path: integration_tests/expected_records/parquet.jsonl timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/avro.json" + - config_path: secrets/avro_config.json expect_records: - path: "integration_tests/expected_records/avro.jsonl" - # for JSONL format - - config_path: "secrets/jsonl_config.json" + path: integration_tests/expected_records/avro.jsonl timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" + - config_path: secrets/jsonl_config.json expect_records: - path: "integration_tests/expected_records/jsonl.jsonl" - - config_path: "secrets/jsonl_newlines_config.json" + path: integration_tests/expected_records/jsonl.jsonl timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" + - config_path: secrets/jsonl_newlines_config.json expect_records: - path: "integration_tests/expected_records/jsonl_newlines.jsonl" - # for custom server - - config_path: "integration_tests/config_minio.json" - timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json" - # expected records contains _ab_source_file_last_modified property which - # is modified all the time s3 file changed and for custom server it is - # file creating date and it always new. Uncomment this line when SAT - # would have ability to ignore specific fields from expected records. - # expect_records: - # path: "integration_tests/expected_records/custom_server.jsonl" - incremental: - # for CSV format - - config_path: "secrets/config.json" + path: integration_tests/expected_records/jsonl_newlines.jsonl timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - # for Parquet format - - config_path: "secrets/parquet_config.json" +# - config_path: integration_tests/config_minio.json +# timeout_seconds: 1800 + + full_refresh: + tests: + - config_path: secrets/config.json + configured_catalog_path: integration_tests/configured_catalogs/csv.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/parquet.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - # for Avro format - - config_path: "secrets/avro_config.json" + - config_path: secrets/parquet_config.json + configured_catalog_path: integration_tests/configured_catalogs/parquet.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/avro.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - # for JSON format - - config_path: "secrets/jsonl_config.json" + - config_path: secrets/avro_config.json + configured_catalog_path: integration_tests/configured_catalogs/avro.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - - config_path: "secrets/jsonl_newlines_config.json" + - config_path: secrets/jsonl_config.json + configured_catalog_path: integration_tests/configured_catalogs/jsonl.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - # for custom server - - config_path: "integration_tests/config_minio.json" + - config_path: secrets/jsonl_newlines_config.json + configured_catalog_path: integration_tests/configured_catalogs/jsonl.json + timeout_seconds: 1800 + - config_path: integration_tests/config_minio.json + configured_catalog_path: integration_tests/configured_catalogs/csv.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json" - cursor_paths: - test: ["_ab_source_file_last_modified"] - future_state_path: "integration_tests/abnormal_state.json" - full_refresh: - # for CSV format - - config_path: "secrets/config.json" + incremental: + tests: + - config_path: secrets/config.json + configured_catalog_path: integration_tests/configured_catalogs/csv.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json" - # for Parquet format - - config_path: "secrets/parquet_config.json" + - config_path: secrets/parquet_config.json + configured_catalog_path: integration_tests/configured_catalogs/parquet.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/parquet.json" - # for Avro format - - config_path: "secrets/avro_config.json" + - config_path: secrets/avro_config.json + configured_catalog_path: integration_tests/configured_catalogs/avro.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/avro.json" - # for JSON format - - config_path: "secrets/jsonl_config.json" + - config_path: secrets/jsonl_config.json + configured_catalog_path: integration_tests/configured_catalogs/jsonl.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" - - config_path: "secrets/jsonl_newlines_config.json" + - config_path: secrets/jsonl_newlines_config.json + configured_catalog_path: integration_tests/configured_catalogs/jsonl.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/jsonl.json" - # for custom server - - config_path: "integration_tests/config_minio.json" + - config_path: integration_tests/config_minio.json + configured_catalog_path: integration_tests/configured_catalogs/csv.json + cursor_paths: + test: + - _ab_source_file_last_modified + future_state: + future_state_path: integration_tests/abnormal_state.json timeout_seconds: 1800 - configured_catalog_path: "integration_tests/configured_catalogs/csv.json"