From 503f044a70df3ec9fa4b19969c6affc3c5a13f7e Mon Sep 17 00:00:00 2001 From: Steve Faulkner Date: Thu, 6 May 2021 12:35:24 -0500 Subject: [PATCH 1/8] Update strict mode files (#753) --- tsconfig.strict.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tsconfig.strict.json b/tsconfig.strict.json index 736631ee4..15c304aec 100644 --- a/tsconfig.strict.json +++ b/tsconfig.strict.json @@ -43,6 +43,7 @@ "./src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts", "./src/Explorer/Graph/GraphExplorerComponent/EdgeInfoCache.ts", "./src/Explorer/Graph/GraphExplorerComponent/GraphData.ts", + "./src/Explorer/LazyMonaco.ts", "./src/Explorer/Notebook/FileSystemUtil.ts", "./src/Explorer/Notebook/NTeractUtil.ts", "./src/Explorer/Notebook/NotebookComponent/actions.ts", @@ -54,6 +55,8 @@ "./src/Explorer/Notebook/NotebookRenderer/AzureTheme.tsx", "./src/Explorer/Notebook/NotebookRenderer/decorators/CellCreator.tsx", "./src/Explorer/Notebook/NotebookUtil.ts", + "./src/Explorer/OpenFullScreen.test.tsx", + "./src/Explorer/OpenFullScreen.tsx", "./src/Explorer/Panes/PaneComponents.ts", "./src/Explorer/Panes/PanelFooterComponent.tsx", "./src/Explorer/Panes/PanelLoadingScreen.tsx", @@ -70,6 +73,7 @@ "./src/HostedExplorerChildFrame.ts", "./src/Index.ts", "./src/NotebookWorkspaceManager/NotebookWorkspaceResourceProviderMockClients.ts", + "./src/Platform/Hosted/Authorization.ts", "./src/Platform/Hosted/Components/SignInButton.tsx", "./src/Platform/Hosted/extractFeatures.test.ts", "./src/Platform/Hosted/extractFeatures.ts", @@ -87,6 +91,7 @@ "./src/Shared/StringUtility.ts", "./src/Shared/appInsights.ts", "./src/UserContext.ts", + "./src/Utils/APITypeUtils.ts", "./src/Utils/AutoPilotUtils.ts", "./src/Utils/Base64Utils.test.ts", "./src/Utils/Base64Utils.ts", @@ -97,15 +102,19 @@ "./src/Utils/MessageValidation.ts", "./src/Utils/PricingUtils.ts", "./src/Utils/StringUtils.ts", + "./src/Utils/StyleUtils.ts", "./src/Utils/WindowUtils.test.ts", "./src/Utils/WindowUtils.ts", "./src/hooks/useDirectories.tsx", + "./src/hooks/useFullScreenURLs.tsx", + "./src/hooks/useObservable.ts", "./src/i18n.ts", "./src/quickstart.ts", "./src/setupTests.ts", "./src/userContext.test.ts" ], "include": [ + "src/CellOutputViewer/transforms/**/*", "src/Controls/**/*", "src/Definitions/**/*", "src/Explorer/Controls/ErrorDisplayComponent/**/*", From 5606ef3266cfb8c512465b611743c3743564c0ef Mon Sep 17 00:00:00 2001 From: victor-meng <56978073+victor-meng@users.noreply.github.com> Date: Thu, 6 May 2021 16:51:22 -0700 Subject: [PATCH 2/8] Fix table edit entity bug and add collection panel bug for connection string users (#757) * Fix table edit entity bug and add collection panel bug for connection string users * Remove parseInt for int64 --- src/Explorer/Panes/AddCollectionPanel.tsx | 4 ++-- src/Explorer/Tables/TableEntityProcessor.ts | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Explorer/Panes/AddCollectionPanel.tsx b/src/Explorer/Panes/AddCollectionPanel.tsx index ffbea654a..89eae59fb 100644 --- a/src/Explorer/Panes/AddCollectionPanel.tsx +++ b/src/Explorer/Panes/AddCollectionPanel.tsx @@ -525,7 +525,7 @@ export class AddCollectionPanel extends React.Component - {userContext.databaseAccount.properties.capabilities.find((c) => c.name === "EnableMongo") && ( + {userContext.databaseAccount.properties?.capabilities?.find((c) => c.name === "EnableMongo") && ( @@ -851,7 +851,7 @@ export class AddCollectionPanel extends React.Component capability.name === Constants.CapabilityNames.EnableStorageAnalytics ); } diff --git a/src/Explorer/Tables/TableEntityProcessor.ts b/src/Explorer/Tables/TableEntityProcessor.ts index f26d2c38d..c18f7bab9 100644 --- a/src/Explorer/Tables/TableEntityProcessor.ts +++ b/src/Explorer/Tables/TableEntityProcessor.ts @@ -183,12 +183,14 @@ export function convertEntityToNewDocument(entity: Entities.ITableEntityForTable parsedValue = DateTimeUtilities.convertJSDateToTicksWithPadding(propertyValue); break; case Constants.TableType.Boolean: - parsedValue = propertyValue.toLowerCase() === "true"; + parsedValue = propertyValue.toString().toLowerCase() === "true"; break; case Constants.TableType.Int32: - case Constants.TableType.Int64: parsedValue = parseInt(propertyValue, 10); break; + case Constants.TableType.Int64: + parsedValue = propertyValue.toString(); + break; case Constants.TableType.Double: parsedValue = parseFloat(propertyValue); break; From a91ea6c1e461b470e873e90b17b21a2e0126b033 Mon Sep 17 00:00:00 2001 From: Sunil Kumar Yadav <79906609+sunilyadav840@users.noreply.github.com> Date: Fri, 7 May 2021 05:21:45 +0530 Subject: [PATCH 3/8] Remove old Add/Edit Table Entity code (#755) --- .eslintignore | 4 - src/Explorer/ComponentRegisterer.ts | 2 - src/Explorer/Panes/PaneComponents.ts | 19 -- .../Panes/Tables/EditTableEntityPane.ts | 225 -------------- .../Panes/Tables/EntityPropertyViewModel.ts | 164 ---------- .../Panes/Tables/TableAddEntityPane.html | 190 ------------ .../Panes/Tables/TableEditEntityPane.html | 187 ------------ src/Explorer/Panes/Tables/TableEntityPane.ts | 279 ------------------ 8 files changed, 1070 deletions(-) delete mode 100644 src/Explorer/Panes/Tables/EditTableEntityPane.ts delete mode 100644 src/Explorer/Panes/Tables/EntityPropertyViewModel.ts delete mode 100644 src/Explorer/Panes/Tables/TableAddEntityPane.html delete mode 100644 src/Explorer/Panes/Tables/TableEditEntityPane.html delete mode 100644 src/Explorer/Panes/Tables/TableEntityPane.ts diff --git a/.eslintignore b/.eslintignore index 430f7bcc3..050bbc0dc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -119,14 +119,10 @@ src/Explorer/Panes/ContextualPaneBase.ts src/Explorer/Panes/DeleteDatabaseConfirmationPane.test.ts src/Explorer/Panes/DeleteDatabaseConfirmationPane.ts src/Explorer/Panes/GraphStylingPane.ts -# src/Explorer/Panes/NewVertexPane.ts src/Explorer/Panes/PaneComponents.ts src/Explorer/Panes/RenewAdHocAccessPane.ts src/Explorer/Panes/SetupNotebooksPane.ts src/Explorer/Panes/SwitchDirectoryPane.ts -src/Explorer/Panes/Tables/EditTableEntityPane.ts -src/Explorer/Panes/Tables/EntityPropertyViewModel.ts -src/Explorer/Panes/Tables/TableEntityPane.ts src/Explorer/Panes/Tables/Validators/EntityPropertyNameValidator.ts src/Explorer/Panes/Tables/Validators/EntityPropertyValidationCommon.ts src/Explorer/Panes/Tables/Validators/EntityPropertyValueValidator.ts diff --git a/src/Explorer/ComponentRegisterer.ts b/src/Explorer/ComponentRegisterer.ts index af9ef47a7..0ec97eb49 100644 --- a/src/Explorer/ComponentRegisterer.ts +++ b/src/Explorer/ComponentRegisterer.ts @@ -22,6 +22,4 @@ ko.components.register("throughput-input-autopilot-v3", ThroughputInputComponent ko.components.register("add-database-pane", new PaneComponents.AddDatabasePaneComponent()); ko.components.register("add-collection-pane", new PaneComponents.AddCollectionPaneComponent()); ko.components.register("graph-styling-pane", new PaneComponents.GraphStylingPaneComponent()); -ko.components.register("table-add-entity-pane", new PaneComponents.TableAddEntityPaneComponent()); -ko.components.register("table-edit-entity-pane", new PaneComponents.TableEditEntityPaneComponent()); ko.components.register("cassandra-add-collection-pane", new PaneComponents.CassandraAddCollectionPaneComponent()); diff --git a/src/Explorer/Panes/PaneComponents.ts b/src/Explorer/Panes/PaneComponents.ts index d0a9704b6..9d730887d 100644 --- a/src/Explorer/Panes/PaneComponents.ts +++ b/src/Explorer/Panes/PaneComponents.ts @@ -2,8 +2,6 @@ import AddCollectionPaneTemplate from "./AddCollectionPane.html"; import AddDatabasePaneTemplate from "./AddDatabasePane.html"; import CassandraAddCollectionPaneTemplate from "./CassandraAddCollectionPane.html"; import GraphStylingPaneTemplate from "./GraphStylingPane.html"; -import TableAddEntityPaneTemplate from "./Tables/TableAddEntityPane.html"; -import TableEditEntityPaneTemplate from "./Tables/TableEditEntityPane.html"; export class PaneComponent { constructor(data: any) { @@ -38,23 +36,6 @@ export class GraphStylingPaneComponent { } } -export class TableAddEntityPaneComponent { - constructor() { - return { - viewModel: PaneComponent, - template: TableAddEntityPaneTemplate, - }; - } -} - -export class TableEditEntityPaneComponent { - constructor() { - return { - viewModel: PaneComponent, - template: TableEditEntityPaneTemplate, - }; - } -} export class CassandraAddCollectionPaneComponent { constructor() { return { diff --git a/src/Explorer/Panes/Tables/EditTableEntityPane.ts b/src/Explorer/Panes/Tables/EditTableEntityPane.ts deleted file mode 100644 index 5b69fcd35..000000000 --- a/src/Explorer/Panes/Tables/EditTableEntityPane.ts +++ /dev/null @@ -1,225 +0,0 @@ -import * as ko from "knockout"; -import _ from "underscore"; -import * as ViewModels from "../../../Contracts/ViewModels"; -import { userContext } from "../../../UserContext"; -import Explorer from "../../Explorer"; -import * as TableConstants from "../../Tables/Constants"; -import * as Entities from "../../Tables/Entities"; -import { CassandraAPIDataClient, CassandraTableKey } from "../../Tables/TableDataClient"; -import * as TableEntityProcessor from "../../Tables/TableEntityProcessor"; -import * as Utilities from "../../Tables/Utilities"; -import EntityPropertyViewModel from "./EntityPropertyViewModel"; -import TableEntityPane from "./TableEntityPane"; - -export default class EditTableEntityPane extends TableEntityPane { - container: Explorer; - visible: ko.Observable; - - public originEntity: Entities.ITableEntity; - public originalNumberOfProperties: number; - private originalDocument: any; - - constructor(options: ViewModels.PaneOptions) { - super(options); - this.submitButtonText("Update Entity"); - if (userContext.apiType === "Cassandra") { - this.submitButtonText("Update Row"); - } - this.scrollId = ko.observable("editEntityScroll"); - } - - public submit() { - if (!this.canApply()) { - return; - } - let entity: Entities.ITableEntity = this.updateEntity(this.displayedAttributes()); - this.container.tableDataClient - .updateDocument(this.tableViewModel.queryTablesTab.collection, this.originalDocument, entity) - .then((newEntity: Entities.ITableEntity) => { - var numberOfProperties = 0; - for (var property in newEntity) { - if ( - property !== TableEntityProcessor.keyProperties.attachments && - property !== TableEntityProcessor.keyProperties.etag && - property !== TableEntityProcessor.keyProperties.resourceId && - property !== TableEntityProcessor.keyProperties.self && - (userContext.apiType !== "Cassandra" || property !== TableConstants.EntityKeyNames.RowKey) - ) { - numberOfProperties++; - } - } - - var propertiesDelta = numberOfProperties - this.originalNumberOfProperties; - - return this.tableViewModel - .updateCachedEntity(newEntity) - .then(() => { - if (!this.tryInsertNewHeaders(this.tableViewModel, newEntity)) { - this.tableViewModel.redrawTableThrottled(); - } - }) - .then(() => { - // Selecting updated entity - this.tableViewModel.selected.removeAll(); - this.tableViewModel.selected.push(newEntity); - }); - }); - this.close(); - } - - public open() { - this.displayedAttributes(this.constructDisplayedAttributes(this.originEntity)); - if (userContext.apiType === "Tables") { - this.originalDocument = TableEntityProcessor.convertEntitiesToDocuments( - [this.originEntity], - this.tableViewModel.queryTablesTab.collection - )[0]; // TODO change for Cassandra - this.originalDocument.id = ko.observable(this.originalDocument.id); - } else { - this.originalDocument = this.originEntity; - } - this.updateIsActionEnabled(); - super.open(); - } - - private constructDisplayedAttributes(entity: Entities.ITableEntity): EntityPropertyViewModel[] { - var displayedAttributes: EntityPropertyViewModel[] = []; - const keys = Object.keys(entity); - keys && - keys.forEach((key: string) => { - if ( - key !== TableEntityProcessor.keyProperties.attachments && - key !== TableEntityProcessor.keyProperties.etag && - key !== TableEntityProcessor.keyProperties.resourceId && - key !== TableEntityProcessor.keyProperties.self && - (userContext.apiType !== "Cassandra" || key !== TableConstants.EntityKeyNames.RowKey) - ) { - if (userContext.apiType === "Cassandra") { - const cassandraKeys = this.tableViewModel.queryTablesTab.collection.cassandraKeys.partitionKeys - .concat(this.tableViewModel.queryTablesTab.collection.cassandraKeys.clusteringKeys) - .map((key) => key.property); - var entityAttribute: Entities.ITableEntityAttribute = entity[key]; - var entityAttributeType: string = entityAttribute.$; - var displayValue: any = this.getPropertyDisplayValue(entity, key, entityAttributeType); - var removable: boolean = false; - // TODO figure out validation story for blob and Inet so we can allow adding/editing them - const nonEditableType: boolean = - entityAttributeType === TableConstants.CassandraType.Blob || - entityAttributeType === TableConstants.CassandraType.Inet; - - displayedAttributes.push( - new EntityPropertyViewModel( - this, - key, - entityAttributeType, - displayValue, - /* namePlaceholder */ undefined, - /* valuePlaceholder */ undefined, - false, - /* default valid name */ true, - /* default valid value */ true, - /* isRequired */ false, - removable, - /*value editable*/ !_.contains(cassandraKeys, key) && !nonEditableType - ) - ); - } else { - var entityAttribute: Entities.ITableEntityAttribute = entity[key]; - var entityAttributeType: string = entityAttribute.$; - var displayValue: any = this.getPropertyDisplayValue(entity, key, entityAttributeType); - var editable: boolean = this.isAttributeEditable(key, entityAttributeType); - // As per VSO:189935, Binary properties are read-only, we still want to be able to remove them. - var removable: boolean = editable || entityAttributeType === TableConstants.TableType.Binary; - - displayedAttributes.push( - new EntityPropertyViewModel( - this, - key, - entityAttributeType, - displayValue, - /* namePlaceholder */ undefined, - /* valuePlaceholder */ undefined, - editable, - /* default valid name */ true, - /* default valid value */ true, - /* isRequired */ false, - removable - ) - ); - } - } - }); - if (userContext.apiType === "Cassandra") { - (this.container.tableDataClient) - .getTableSchema(this.tableViewModel.queryTablesTab.collection) - .then((properties: CassandraTableKey[]) => { - properties && - properties.forEach((property) => { - if (!_.contains(keys, property.property)) { - this.insertAttribute(property.property, property.type); - } - }); - }); - } - return displayedAttributes; - } - - private updateEntity(displayedAttributes: EntityPropertyViewModel[]): Entities.ITableEntity { - var updatedEntity: any = {}; - displayedAttributes && - displayedAttributes.forEach((attribute: EntityPropertyViewModel) => { - if (attribute.name() && (userContext.apiType !== "Cassandra" || attribute.value() !== "")) { - var value = attribute.getPropertyValue(); - var type = attribute.type(); - if (type === TableConstants.TableType.Int64) { - value = Utilities.padLongWithZeros(value); - } - updatedEntity[attribute.name()] = { - _: value, - $: type, - }; - } - }); - return updatedEntity; - } - - private isAttributeEditable(attributeName: string, entityAttributeType: string) { - return !( - attributeName === TableConstants.EntityKeyNames.PartitionKey || - attributeName === TableConstants.EntityKeyNames.RowKey || - attributeName === TableConstants.EntityKeyNames.Timestamp || - // As per VSO:189935, Making Binary properties read-only in Edit Entity dialog until we have a full story for it. - entityAttributeType === TableConstants.TableType.Binary - ); - } - - private getPropertyDisplayValue(entity: Entities.ITableEntity, name: string, type: string): any { - var attribute: Entities.ITableEntityAttribute = entity[name]; - var displayValue: any = attribute._; - var isBinary: boolean = type === TableConstants.TableType.Binary; - - // Showing the value in base64 for binary properties since that is what the Azure Storage Client Library expects. - // This means that, even if the Azure Storage API returns a byte[] of binary content, it needs that same array - // *base64 - encoded * as the value for the updated property or the whole update operation will fail. - if (isBinary && displayValue && $.isArray(displayValue.data)) { - var bytes: number[] = displayValue.data; - displayValue = this.getBase64DisplayValue(bytes); - } - - return displayValue; - } - - private getBase64DisplayValue(bytes: number[]): string { - var displayValue: string = null; - - try { - var chars: string[] = bytes.map((byte: number) => String.fromCharCode(byte)); - var toEncode: string = chars.join(""); - displayValue = window.btoa(toEncode); - } catch (error) { - // Error - } - - return displayValue; - } -} diff --git a/src/Explorer/Panes/Tables/EntityPropertyViewModel.ts b/src/Explorer/Panes/Tables/EntityPropertyViewModel.ts deleted file mode 100644 index 9fd007683..000000000 --- a/src/Explorer/Panes/Tables/EntityPropertyViewModel.ts +++ /dev/null @@ -1,164 +0,0 @@ -import * as ko from "knockout"; - -import * as DateTimeUtilities from "../../Tables/QueryBuilder/DateTimeUtilities"; -import * as EntityPropertyNameValidator from "./Validators/EntityPropertyNameValidator"; -import EntityPropertyValueValidator from "./Validators/EntityPropertyValueValidator"; -import * as Constants from "../../Tables/Constants"; -import * as Utilities from "../../Tables/Utilities"; -import TableEntityPane from "./TableEntityPane"; - -export interface IValidationResult { - isInvalid: boolean; - help: string; -} - -export interface IActionEnabledDialog { - updateIsActionEnabled: () => void; -} - -/** - * View model for an entity proprety - */ -export default class EntityPropertyViewModel { - /* Constants */ - public static noTooltip = ""; - // Maximum number of custom properties, see Azure Service Data Model - // At https://msdn.microsoft.com/library/azure/dd179338.aspx - public static maximumNumberOfProperties = 252; - - // Labels - public closeButtonLabel: string = "Close"; // localize - - /* Observables */ - public name: ko.Observable; - public type: ko.Observable; - public value: ko.Observable; - public inputType: ko.Computed; - - public nameTooltip: ko.Observable; - public isInvalidName: ko.Observable; - - public valueTooltip: ko.Observable; - public isInvalidValue: ko.Observable; - - public namePlaceholder: ko.Observable; - public valuePlaceholder: ko.Observable; - - public hasFocus: ko.Observable; - public valueHasFocus: ko.Observable; - public isDateType: ko.Computed; - - public editable: boolean; // If a property's name or type is editable, these two are always the same regarding editability. - public valueEditable: boolean; // If a property's value is editable, could be different from name or type. - public removable: boolean; // If a property is removable, usually, PartitionKey, RowKey and TimeStamp (if applicable) are not removable. - public isRequired: boolean; // If a property's value is required, used to differentiate the place holder label. - public ignoreEmptyValue: boolean; - - /* Members */ - private tableEntityPane: TableEntityPane; - private _validator: EntityPropertyValueValidator; - - constructor( - tableEntityPane: TableEntityPane, - name: string, - type: string, - value: any, - namePlaceholder: string = "", - valuePlaceholder: string = "", - editable: boolean = false, - defaultValidName: boolean = true, - defaultValidValue: boolean = false, - isRequired: boolean = false, - removable: boolean = editable, - valueEditable: boolean = editable, - ignoreEmptyValue: boolean = false - ) { - this.name = ko.observable(name); - this.type = ko.observable(type); - this.isDateType = ko.pureComputed(() => this.type() === Constants.TableType.DateTime); - if (this.isDateType()) { - value = value ? DateTimeUtilities.getLocalDateTime(value) : value; - } - this.value = ko.observable(value); - this.inputType = ko.pureComputed(() => { - if (!this.valueHasFocus() && !this.value() && this.isDateType()) { - return Constants.InputType.Text; - } - return Utilities.getInputTypeFromDisplayedName(this.type()); - }); - - this.namePlaceholder = ko.observable(namePlaceholder); - this.valuePlaceholder = ko.observable(valuePlaceholder); - - this.editable = editable; - this.isRequired = isRequired; - this.removable = removable; - this.valueEditable = valueEditable; - - this._validator = new EntityPropertyValueValidator(isRequired); - - this.tableEntityPane = tableEntityPane; - - this.nameTooltip = ko.observable(EntityPropertyViewModel.noTooltip); - this.isInvalidName = ko.observable(!defaultValidName); - this.name.subscribe((name: string) => this.validateName(name)); - if (!defaultValidName) { - this.validateName(name); - } - - this.valueTooltip = ko.observable(EntityPropertyViewModel.noTooltip); - this.isInvalidValue = ko.observable(!defaultValidValue); - this.value.subscribe((value: string) => this.validateValue(value, this.type())); - if (!defaultValidValue) { - this.validateValue(value, type); - } - - this.type.subscribe((type: string) => this.validateValue(this.value(), type)); - - this.hasFocus = ko.observable(false); - this.valueHasFocus = ko.observable(false); - } - - /** - * Gets the Javascript value of the entity property based on its EDM type. - */ - public getPropertyValue(): any { - var value: string = this.value(); - if (this.type() === Constants.TableType.DateTime) { - value = DateTimeUtilities.getUTCDateTime(value); - } - return this._validator.parseValue(value, this.type()); - } - - private validateName(name: string): void { - var result: IValidationResult = this.isInvalidNameInput(name); - - this.isInvalidName(result.isInvalid); - this.nameTooltip(result.help); - this.namePlaceholder(result.help); - this.tableEntityPane.updateIsActionEnabled(); - } - - private validateValue(value: string, type: string): void { - var result: IValidationResult = this.isInvalidValueInput(value, type); - if (!result) { - return; - } - - this.isInvalidValue(result.isInvalid); - this.valueTooltip(result.help); - this.valuePlaceholder(result.help); - this.tableEntityPane.updateIsActionEnabled(); - } - - private isInvalidNameInput(name: string): IValidationResult { - return EntityPropertyNameValidator.validate(name); - } - - private isInvalidValueInput(value: string, type: string): IValidationResult { - if (this.ignoreEmptyValue && this.value() === "") { - return { isInvalid: false, help: "" }; - } - return this._validator.validate(value, type); - } -} diff --git a/src/Explorer/Panes/Tables/TableAddEntityPane.html b/src/Explorer/Panes/Tables/TableAddEntityPane.html deleted file mode 100644 index cf8a6cf98..000000000 --- a/src/Explorer/Panes/Tables/TableAddEntityPane.html +++ /dev/null @@ -1,190 +0,0 @@ -
-
-
- -
-
- -
- -
- Close -
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
- -
- -
- - -
- -
- -
- - Edit - - - Cancel - -
-
-
-
-
-
- - Insert attribute - - -
-
-
-
-
-
-
- -
-
-
-
- - - - -
-
diff --git a/src/Explorer/Panes/Tables/TableEditEntityPane.html b/src/Explorer/Panes/Tables/TableEditEntityPane.html deleted file mode 100644 index 44cbc6c9a..000000000 --- a/src/Explorer/Panes/Tables/TableEditEntityPane.html +++ /dev/null @@ -1,187 +0,0 @@ -
-
-
- -
-
- -
- -
- Close -
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
- -
- -
- - -
- -
- -
- - Edit attribute - - - Remove attribute - -
-
-
-
-
-
- - Add attribute - - -
-
-
-
-
-
-
- -
-
-
-
- - - - -
-
diff --git a/src/Explorer/Panes/Tables/TableEntityPane.ts b/src/Explorer/Panes/Tables/TableEntityPane.ts deleted file mode 100644 index 23eafff11..000000000 --- a/src/Explorer/Panes/Tables/TableEntityPane.ts +++ /dev/null @@ -1,279 +0,0 @@ -import * as ko from "knockout"; -import _ from "underscore"; -import { KeyCodes } from "../../../Common/Constants"; -import * as ViewModels from "../../../Contracts/ViewModels"; -import { userContext } from "../../../UserContext"; -import * as TableConstants from "../../Tables/Constants"; -import * as DataTableUtilities from "../../Tables/DataTable/DataTableUtilities"; -import TableEntityListViewModel from "../../Tables/DataTable/TableEntityListViewModel"; -import * as Entities from "../../Tables/Entities"; -import * as TableEntityProcessor from "../../Tables/TableEntityProcessor"; -import * as Utilities from "../../Tables/Utilities"; -import { ContextualPaneBase } from "../ContextualPaneBase"; -import EntityPropertyViewModel from "./EntityPropertyViewModel"; - -// Class with variables and functions that are common to both adding and editing entities -export default abstract class TableEntityPane extends ContextualPaneBase { - protected static requiredFieldsForTablesAPI: string[] = [ - TableConstants.EntityKeyNames.PartitionKey, - TableConstants.EntityKeyNames.RowKey, - ]; - - /* Labels */ - public attributeNameLabel = "Property Name"; // localize - public dataTypeLabel = "Type"; // localize - public attributeValueLabel = "Value"; // localize - - /* Controls */ - public removeButtonLabel = "Remove"; // localize - public editButtonLabel = "Edit"; // localize - public addButtonLabel = "Add Property"; // localize - - public edmTypes: ko.ObservableArray = ko.observableArray([ - TableConstants.TableType.String, - TableConstants.TableType.Boolean, - TableConstants.TableType.Binary, - TableConstants.TableType.DateTime, - TableConstants.TableType.Double, - TableConstants.TableType.Guid, - TableConstants.TableType.Int32, - TableConstants.TableType.Int64, - ]); - - public canAdd: ko.Computed; - public canApply: ko.Observable; - public displayedAttributes = ko.observableArray(); - public editingProperty = ko.observable(); - public isEditing = ko.observable(false); - public submitButtonText = ko.observable(); - - public tableViewModel: TableEntityListViewModel; - - protected scrollId: ko.Observable; - - constructor(options: ViewModels.PaneOptions) { - super(options); - if (userContext.apiType === "Cassandra") { - this.edmTypes([ - TableConstants.CassandraType.Text, - TableConstants.CassandraType.Ascii, - TableConstants.CassandraType.Bigint, - TableConstants.CassandraType.Blob, - TableConstants.CassandraType.Boolean, - TableConstants.CassandraType.Decimal, - TableConstants.CassandraType.Double, - TableConstants.CassandraType.Float, - TableConstants.CassandraType.Int, - TableConstants.CassandraType.Uuid, - TableConstants.CassandraType.Varchar, - TableConstants.CassandraType.Varint, - TableConstants.CassandraType.Inet, - TableConstants.CassandraType.Smallint, - TableConstants.CassandraType.Tinyint, - ]); - } - - this.canAdd = ko.computed(() => { - // Cassandra can't add since the schema can't be changed once created - if (userContext.apiType === "Cassandra") { - return false; - } - // Adding '2' to the maximum to take into account PartitionKey and RowKey - return this.displayedAttributes().length < EntityPropertyViewModel.maximumNumberOfProperties + 2; - }); - this.canApply = ko.observable(true); - this.editingProperty(this.displayedAttributes()[0]); - } - - public removeAttribute = (index: number, data: any): void => { - this.displayedAttributes.splice(index, 1); - this.updateIsActionEnabled(); - document.getElementById("addProperty").focus(); - }; - - public editAttribute = (index: number, data: EntityPropertyViewModel): void => { - this.editingProperty(data); - this.isEditing(true); - document.getElementById("textAreaEditProperty").focus(); - }; - - public finishEditingAttribute = (): void => { - this.isEditing(false); - this.editingProperty(null); - }; - - public onKeyUp = (data: any, event: KeyboardEvent): boolean => { - var handled: boolean = Utilities.onEsc(event, ($sourceElement: JQuery) => { - this.finishEditingAttribute(); - }); - - return !handled; - }; - - public onAddPropertyKeyDown = (source: any, event: KeyboardEvent): boolean => { - if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) { - this.insertAttribute(); - event.stopPropagation(); - return false; - } - - return true; - }; - - public onEditPropertyKeyDown = ( - index: number, - data: EntityPropertyViewModel, - event: KeyboardEvent, - source: any - ): boolean => { - if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) { - this.editAttribute(index, data); - event.stopPropagation(); - return false; - } - - return true; - }; - - public onDeletePropertyKeyDown = ( - index: number, - data: EntityPropertyViewModel, - event: KeyboardEvent, - source: any - ): boolean => { - if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) { - this.removeAttribute(index, data); - event.stopPropagation(); - return false; - } - - return true; - }; - - public onBackButtonKeyDown = (source: any, event: KeyboardEvent): boolean => { - if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) { - this.finishEditingAttribute(); - event.stopPropagation(); - return false; - } - - return true; - }; - - public insertAttribute = (name?: string, type?: string): void => { - let entityProperty: EntityPropertyViewModel; - if (!!name && !!type && userContext.apiType === "Cassandra") { - // TODO figure out validation story for blob and Inet so we can allow adding/editing them - const nonEditableType: boolean = - type === TableConstants.CassandraType.Blob || type === TableConstants.CassandraType.Inet; - entityProperty = new EntityPropertyViewModel( - this, - name, - type, - "", // default to empty string - /* namePlaceholder */ undefined, - /* valuePlaceholder */ undefined, - /* editable */ false, - /* default valid name */ false, - /* default valid value */ true, - /* isRequired */ false, - /* removable */ false, - /*value editable*/ !nonEditableType - ); - } else { - entityProperty = new EntityPropertyViewModel( - this, - "", - this.edmTypes()[0], // default to the first Edm type: 'string' - "", // default to empty string - /* namePlaceholder */ undefined, - /* valuePlaceholder */ undefined, - /* editable */ true, - /* default valid name */ false, - /* default valid value */ true - ); - } - - this.displayedAttributes.push(entityProperty); - this.updateIsActionEnabled(); - this.scrollToBottom(); - - entityProperty.hasFocus(true); - }; - - public updateIsActionEnabled(needRequiredFields: boolean = true): void { - var properties: EntityPropertyViewModel[] = this.displayedAttributes() || []; - var disable: boolean = _.some(properties, (property: EntityPropertyViewModel) => { - return property.isInvalidName() || property.isInvalidValue(); - }); - - this.canApply(!disable); - } - - protected entityFromAttributes(displayedAttributes: EntityPropertyViewModel[]): Entities.ITableEntity { - var entity: any = {}; - - displayedAttributes && - displayedAttributes.forEach((attribute: EntityPropertyViewModel) => { - if (attribute.name() && (attribute.value() !== "" || attribute.isRequired)) { - var value = attribute.getPropertyValue(); - var type = attribute.type(); - if (type === TableConstants.TableType.Int64) { - value = Utilities.padLongWithZeros(value); - } - entity[attribute.name()] = { - _: value, - $: type, - }; - } - }); - - return entity; - } - - // Removing Binary from Add Entity dialog until we have a full story for it. - protected setOptionDisable(option: Node, value: string): void { - ko.applyBindingsToNode(option, { disable: value === TableConstants.TableType.Binary }, value); - } - - /** - * Parse the updated entity to see if there are any new attributes that old headers don't have. - * In this case, add these attributes names as new headers. - * Remarks: adding new headers will automatically trigger table redraw. - */ - protected tryInsertNewHeaders(viewModel: TableEntityListViewModel, newEntity: Entities.ITableEntity): boolean { - var newHeaders: string[] = []; - const keys = Object.keys(newEntity); - keys && - keys.forEach((key: string) => { - if ( - !_.contains(viewModel.headers, key) && - key !== TableEntityProcessor.keyProperties.attachments && - key !== TableEntityProcessor.keyProperties.etag && - key !== TableEntityProcessor.keyProperties.resourceId && - key !== TableEntityProcessor.keyProperties.self && - (userContext.apiType !== "Cassandra" || key !== TableConstants.EntityKeyNames.RowKey) - ) { - newHeaders.push(key); - } - }); - - var newHeadersInserted: boolean = false; - if (newHeaders.length) { - if (!DataTableUtilities.checkForDefaultHeader(viewModel.headers)) { - newHeaders = viewModel.headers.concat(newHeaders); - } - viewModel.updateHeaders(newHeaders, /* notifyColumnChanges */ true, /* enablePrompt */ false); - newHeadersInserted = true; - } - return newHeadersInserted; - } - - protected scrollToBottom(): void { - var scrollBox = document.getElementById(this.scrollId()); - var isScrolledToBottom = scrollBox.scrollHeight - scrollBox.clientHeight <= scrollBox.scrollHeight + 1; - if (isScrolledToBottom) { - scrollBox.scrollTop = scrollBox.scrollHeight - scrollBox.clientHeight; - } - } -} From 78eafe1aec9d312ee53c554936527ab78752b178 Mon Sep 17 00:00:00 2001 From: Jordi Bunster Date: Thu, 6 May 2021 17:20:25 -0700 Subject: [PATCH 4/8] Remove NotebookViewerTab (#749) [Preview this branch](https://cosmos-explorer-preview.azurewebsites.net/pull/749) --- src/Explorer/Explorer.tsx | 36 +----------- src/Explorer/Tabs/NotebookViewerTab.tsx | 73 ------------------------- 2 files changed, 1 insertion(+), 108 deletions(-) delete mode 100644 src/Explorer/Tabs/NotebookViewerTab.tsx diff --git a/src/Explorer/Explorer.tsx b/src/Explorer/Explorer.tsx index 47af1ae40..223ab657c 100644 --- a/src/Explorer/Explorer.tsx +++ b/src/Explorer/Explorer.tsx @@ -1,6 +1,5 @@ -import * as ko from "knockout"; import { IChoiceGroupProps } from "@fluentui/react"; -import * as path from "path"; +import * as ko from "knockout"; import Q from "q"; import React from "react"; import _ from "underscore"; @@ -1843,39 +1842,6 @@ export default class Explorer { } } - public async openNotebookViewer(notebookUrl: string) { - const title = path.basename(notebookUrl); - const hashLocation = notebookUrl; - const NotebookViewerTab = await ( - await import(/* webpackChunkName: "NotebookViewerTab" */ "./Tabs/NotebookViewerTab") - ).default; - - const notebookViewerTab = this.tabsManager.getTabs(ViewModels.CollectionTabKind.NotebookV2).find((tab) => { - return tab.hashLocation() == hashLocation && tab instanceof NotebookViewerTab && tab.notebookUrl === notebookUrl; - }); - - if (notebookViewerTab) { - this.tabsManager.activateNewTab(notebookViewerTab); - } else { - const notebookViewerTab = new NotebookViewerTab({ - account: userContext.databaseAccount, - tabKind: ViewModels.CollectionTabKind.NotebookViewer, - node: null, - title: title, - tabPath: title, - collection: null, - hashLocation: hashLocation, - isTabsContentExpanded: ko.observable(true), - onLoadStartKey: null, - onUpdateTabsButtons: this.onUpdateTabsButtons, - container: this, - notebookUrl, - }); - - this.tabsManager.activateNewTab(notebookViewerTab); - } - } - public onNewCollectionClicked(databaseId?: string): void { if (userContext.apiType === "Cassandra") { this.cassandraAddCollectionPane.open(); diff --git a/src/Explorer/Tabs/NotebookViewerTab.tsx b/src/Explorer/Tabs/NotebookViewerTab.tsx deleted file mode 100644 index 677ca21a8..000000000 --- a/src/Explorer/Tabs/NotebookViewerTab.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import * as ko from "knockout"; -import * as React from "react"; -import { ReactAdapter } from "../../Bindings/ReactBindingHandler"; -import { DatabaseAccount } from "../../Contracts/DataModels"; -import * as ViewModels from "../../Contracts/ViewModels"; -import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent"; -import { - NotebookViewerComponent, - NotebookViewerComponentProps, -} from "../Controls/NotebookViewer/NotebookViewerComponent"; -import Explorer from "../Explorer"; -import TabsBase from "./TabsBase"; - -interface NotebookViewerTabOptions extends ViewModels.TabOptions { - account: DatabaseAccount; - container: Explorer; - notebookUrl: string; -} - -/** - * Notebook Viewer tab - */ -class NotebookViewerComponentAdapter implements ReactAdapter { - // parameters: true: show, false: hide - public parameters: ko.Computed; - constructor(private notebookUrl: string) {} - - public renderComponent(): JSX.Element { - const props: NotebookViewerComponentProps = { - notebookUrl: this.notebookUrl, - backNavigationText: undefined, - onBackClick: undefined, - onTagClick: undefined, - }; - - return this.parameters() ? : <>; - } -} - -export default class NotebookViewerTab extends TabsBase { - public readonly html = '
'; - private container: Explorer; - public notebookUrl: string; - - public notebookViewerComponentAdapter: NotebookViewerComponentAdapter; - - constructor(options: NotebookViewerTabOptions) { - super(options); - this.container = options.container; - this.notebookUrl = options.notebookUrl; - - this.notebookViewerComponentAdapter = new NotebookViewerComponentAdapter(options.notebookUrl); - - this.notebookViewerComponentAdapter.parameters = ko.computed(() => { - if (this.isTemplateReady() && this.container.isNotebookEnabled()) { - return true; - } - return false; - }); - } - - public getContainer(): Explorer { - return this.container; - } - - protected getTabsButtons(): CommandButtonComponentProps[] { - return []; - } - - protected buildCommandBarOptions(): void { - this.updateNavbarWithTabsButtons(); - } -} From d62baf327b6f60ebc13dbe7ccee1905201c857c4 Mon Sep 17 00:00:00 2001 From: victor-meng <56978073+victor-meng@users.noreply.github.com> Date: Thu, 6 May 2021 19:27:47 -0700 Subject: [PATCH 5/8] Change create wildcard index default value to false for mongo 3.2 (#759) * Change create wildcard index default value to false for mongo 3.2 * Update snapshots --- .../__snapshots__/SettingsComponent.test.tsx.snap | 8 ++++++++ src/Explorer/Panes/AddCollectionPane.html | 2 +- src/Explorer/Panes/AddCollectionPane.ts | 4 ++++ src/Explorer/Panes/AddCollectionPanel.tsx | 5 +++-- .../__snapshots__/GitHubReposPanel.test.tsx.snap | 2 ++ .../__snapshots__/StringInputPane.test.tsx.snap | 2 ++ .../DeleteDatabaseConfirmationPanel.test.tsx.snap | 2 ++ src/Utils/CapabilityUtils.ts | 4 ++++ 8 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/Utils/CapabilityUtils.ts diff --git a/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap b/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap index 63d6712b8..671725d4f 100644 --- a/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap +++ b/src/Explorer/Controls/Settings/__snapshots__/SettingsComponent.test.tsx.snap @@ -103,6 +103,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -253,6 +254,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -1379,6 +1381,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -1529,6 +1532,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -2668,6 +2672,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -2818,6 +2823,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -3944,6 +3950,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -4094,6 +4101,7 @@ exports[`SettingsComponent renders 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], diff --git a/src/Explorer/Panes/AddCollectionPane.html b/src/Explorer/Panes/AddCollectionPane.html index 4bba48d36..2d0cfe8ba 100644 --- a/src/Explorer/Panes/AddCollectionPane.html +++ b/src/Explorer/Panes/AddCollectionPane.html @@ -438,7 +438,7 @@ -
+

Indexing

diff --git a/src/Explorer/Panes/AddCollectionPane.ts b/src/Explorer/Panes/AddCollectionPane.ts index c626f151a..17aef98fa 100644 --- a/src/Explorer/Panes/AddCollectionPane.ts +++ b/src/Explorer/Panes/AddCollectionPane.ts @@ -14,6 +14,7 @@ import { Action, ActionModifiers } from "../../Shared/Telemetry/TelemetryConstan import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor"; import { userContext } from "../../UserContext"; import * as AutoPilotUtils from "../../Utils/AutoPilotUtils"; +import { isCapabilityEnabled } from "../../Utils/CapabilityUtils"; import * as PricingUtils from "../../Utils/PricingUtils"; import { DynamicListItem } from "../Controls/DynamicList/DynamicListComponent"; import { ContextualPaneBase } from "./ContextualPaneBase"; @@ -95,6 +96,7 @@ export default class AddCollectionPane extends ContextualPaneBase { public shouldCreateMongoWildcardIndex: ko.Observable; private _isSynapseLinkEnabled: ko.Computed; + private isEnableMongoCapabilityEnabled: ko.Observable; constructor(options: AddCollectionPaneOptions) { super(options); @@ -634,6 +636,8 @@ export default class AddCollectionPane extends ContextualPaneBase { }); }); + this.isEnableMongoCapabilityEnabled = ko.observable(isCapabilityEnabled("EnableMongo")); + this.shouldCreateMongoWildcardIndex = ko.observable(this.container.isMongoIndexingEnabled()); } diff --git a/src/Explorer/Panes/AddCollectionPanel.tsx b/src/Explorer/Panes/AddCollectionPanel.tsx index 89eae59fb..89cf46d6c 100644 --- a/src/Explorer/Panes/AddCollectionPanel.tsx +++ b/src/Explorer/Panes/AddCollectionPanel.tsx @@ -25,6 +25,7 @@ import { Action } from "../../Shared/Telemetry/TelemetryConstants"; import * as TelemetryProcessor from "../../Shared/Telemetry/TelemetryProcessor"; import { userContext } from "../../UserContext"; import { getCollectionName } from "../../Utils/APITypeUtils"; +import { isCapabilityEnabled } from "../../Utils/CapabilityUtils"; import { getUpsellMessage } from "../../Utils/PricingUtils"; import { CollapsibleSectionComponent } from "../Controls/CollapsiblePanel/CollapsibleSectionComponent"; import { ThroughputInput } from "../Controls/ThroughputInput/ThroughputInput"; @@ -80,7 +81,7 @@ export class AddCollectionPanel extends React.Component - {userContext.databaseAccount.properties?.capabilities?.find((c) => c.name === "EnableMongo") && ( + {isCapabilityEnabled("EnableMongo") && ( diff --git a/src/Explorer/Panes/GitHubReposPanel/__snapshots__/GitHubReposPanel.test.tsx.snap b/src/Explorer/Panes/GitHubReposPanel/__snapshots__/GitHubReposPanel.test.tsx.snap index 233653711..21eb5eaac 100644 --- a/src/Explorer/Panes/GitHubReposPanel/__snapshots__/GitHubReposPanel.test.tsx.snap +++ b/src/Explorer/Panes/GitHubReposPanel/__snapshots__/GitHubReposPanel.test.tsx.snap @@ -92,6 +92,7 @@ exports[`GitHub Repos Panel should render Default properly 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -242,6 +243,7 @@ exports[`GitHub Repos Panel should render Default properly 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], diff --git a/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap b/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap index 7cbfacdd1..54de722ba 100644 --- a/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap +++ b/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap @@ -82,6 +82,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -232,6 +233,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = ` "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], diff --git a/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap b/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap index 3ec737551..0084a4cd7 100644 --- a/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap +++ b/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap @@ -80,6 +80,7 @@ exports[`Delete Database Confirmation Pane submit() Should call delete database "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], @@ -230,6 +231,7 @@ exports[`Delete Database Confirmation Pane submit() Should call delete database "id": "addcollectionpane", "isAnalyticalStorageOn": [Function], "isAutoPilotSelected": [Function], + "isEnableMongoCapabilityEnabled": [Function], "isExecuting": [Function], "isFixedStorageSelected": [Function], "isFreeTierAccount": [Function], diff --git a/src/Utils/CapabilityUtils.ts b/src/Utils/CapabilityUtils.ts new file mode 100644 index 000000000..8e04e044c --- /dev/null +++ b/src/Utils/CapabilityUtils.ts @@ -0,0 +1,4 @@ +import { userContext } from "../UserContext"; + +export const isCapabilityEnabled = (capabilityName: string): boolean => + userContext.databaseAccount?.properties?.capabilities?.some((capability) => capability.name === capabilityName); From db227084be11c5f2902bd7475d3d182f83c6ab07 Mon Sep 17 00:00:00 2001 From: Steve Faulkner Date: Fri, 7 May 2021 10:04:47 -0500 Subject: [PATCH 6/8] Remove IE11 from Coding Guidelines --- CODING_GUIDELINES.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CODING_GUIDELINES.md b/CODING_GUIDELINES.md index bad2583ab..1014cae8e 100644 --- a/CODING_GUIDELINES.md +++ b/CODING_GUIDELINES.md @@ -188,7 +188,3 @@ Cosmos Explorer has been under constant development for over 5 years. As a resul ✅ DO - Support all [browsers supported by the Azure Portal](https://docs.microsoft.com/en-us/azure/azure-portal/azure-portal-supported-browsers-devices) -- Support IE11 - - In practice, this should not need to be considered as part of a normal development workflow - - Polyfills and transpilation are already provided by our engineering systems. - - This requirement will be removed on March 30th, 2021 when Azure drops IE11 support. From aa308b3e4d8cff3f0878f6d261aeff93a5e07649 Mon Sep 17 00:00:00 2001 From: Sunil Kumar Yadav <79906609+sunilyadav840@users.noreply.github.com> Date: Fri, 7 May 2021 20:55:19 +0530 Subject: [PATCH 7/8] Enable TypeScript `noImplicitThis` (#761) --- .../GraphExplorerComponent/D3ForceGraph.ts | 7 +++--- tsconfig.json | 22 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.ts b/src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.ts index 393e92b84..05825bf98 100644 --- a/src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.ts +++ b/src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.ts @@ -733,15 +733,16 @@ export class D3ForceGraph implements GraphRenderer { .attr("aria-label", (d: D3Node) => { return this.retrieveNodeCaption(d); }) - .on("dblclick", function (_: MouseEvent, d: D3Node) { + .on("dblclick", function (this: Element, _: MouseEvent, d: D3Node) { + // https://stackoverflow.com/a/41945742 ('this' implicitly has type 'any' because it does not have a type annotation) // this is the element self.onNodeClicked(this.parentNode, d); }) - .on("click", function (_: MouseEvent, d: D3Node) { + .on("click", function (this: Element, _: MouseEvent, d: D3Node) { // this is the element self.onNodeClicked(this.parentNode, d); }) - .on("keypress", function (event: KeyboardEvent, d: D3Node) { + .on("keypress", function (this: Element, event: KeyboardEvent, d: D3Node) { if (event.charCode === Constants.KeyCodes.Space || event.charCode === Constants.KeyCodes.Enter) { event.stopPropagation(); // this is the element diff --git a/tsconfig.json b/tsconfig.json index a21625007..29814265e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "allowJs": true, "sourceMap": false, "noImplicitAny": true, + "noImplicitThis": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "allowUnreachableCode": false, @@ -14,13 +15,24 @@ "target": "es2017", "experimentalDecorators": true, "emitDecoratorMetadata": true, - "lib": ["es5", "es6", "dom"], + "lib": [ + "es5", + "es6", + "dom" + ], "jsx": "react", "moduleResolution": "node", "resolveJsonModule": true, "noEmit": true, - "types": ["jest"] + "types": [ + "jest" + ] }, - "include": ["./src/**/*", "./utils/**/*"], - "exclude": ["./src/**/__mocks__/**/*"] -} + "include": [ + "./src/**/*", + "./utils/**/*" + ], + "exclude": [ + "./src/**/__mocks__/**/*" + ] +} \ No newline at end of file From 3c320167d86d44c6371ff93a43fd5a5bb39ac4dc Mon Sep 17 00:00:00 2001 From: hardiknai-techm Date: Sat, 8 May 2021 09:15:19 +0530 Subject: [PATCH 8/8] resolve compile time error --- babel.config.js | 11 +- package-lock.json | 1198 ++++++++--------- package.json | 30 +- src/Common/Tooltip/Tooltip.tsx | 4 +- .../DirectoryListComponent.test.tsx.snap | 2 +- ...putInputAutoPilotV3Component.test.tsx.snap | 4 +- .../decorators/draggable/index.tsx | 3 +- ...teCollectionConfirmationPane.test.tsx.snap | 8 +- .../ExecuteSprocParamsPane.test.tsx.snap | 8 +- .../SetupNotebooksPanel.test.tsx.snap | 2 +- .../StringInputPane.test.tsx.snap | 8 +- .../__snapshots__/index.test.tsx.snap | 8 +- .../AddTableEntityPanel.test.tsx.snap | 6 +- .../EditTableEntityPanel.test.tsx.snap | 6 +- .../UploadItemsPane.test.tsx.snap | 4 +- ...eteDatabaseConfirmationPanel.test.tsx.snap | 2 +- src/global.d.ts | 8 + src/setupTests.ts | 4 +- webpack.config.js | 2 +- 19 files changed, 643 insertions(+), 675 deletions(-) diff --git a/babel.config.js b/babel.config.js index 52141ce97..55182159a 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,4 +1,13 @@ module.exports = { - presets: [["@babel/preset-env", { targets: { node: "current" } }], "@babel/preset-react", "@babel/preset-typescript"], + presets: [ + ["@babel/preset-env", { targets: { node: "current" } }], + [ + "@babel/preset-react", + { + runtime: "automatic", + }, + ], + "@babel/preset-typescript", + ], plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]], }; diff --git a/package-lock.json b/package-lock.json index 4231a747b..f83176f12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,6 @@ "@nteract/transform-vega": "7.0.6", "@octokit/rest": "17.9.2", "@phosphor/widgets": "1.9.3", - "@testing-library/jest-dom": "5.12.0", "@types/mkdirp": "1.0.1", "@types/node-fetch": "2.5.7", "@uifabric/react-cards": "0.109.110", @@ -60,7 +59,7 @@ "date-fns": "1.29.0", "dayjs": "1.8.19", "dotenv": "8.2.0", - "eslint-plugin-jest": "23.13.2", + "eslint-plugin-jest": "24.3.6", "eslint-plugin-react": "7.23.2", "hasher": "1.2.0", "html2canvas": "1.0.0-rc.5", @@ -96,7 +95,7 @@ "rx-jupyter": "5.5.12", "rxjs": "6.6.3", "sanitize-html": "2.3.3", - "styled-components": "4.3.2", + "styled-components": "5.3.0", "swr": "0.4.0", "underscore": "1.9.1", "utility-types": "3.10.0" @@ -107,6 +106,7 @@ "@babel/preset-react": "7.13.13", "@babel/preset-typescript": "7.13.0", "@svgr/webpack": "5.5.0", + "@testing-library/jest-dom": "5.12.0", "@testing-library/react": "11.2.6", "@types/applicationinsights-js": "1.0.7", "@types/codemirror": "0.0.56", @@ -126,9 +126,9 @@ "@types/react-redux": "7.1.16", "@types/sanitize-html": "1.27.2", "@types/sinon": "2.3.3", - "@types/styled-components": "5.1.1", + "@types/styled-components": "5.1.9", "@types/underscore": "1.7.36", - "@typescript-eslint/eslint-plugin": "4.22.0", + "@typescript-eslint/eslint-plugin": "4.22.1", "@typescript-eslint/parser": "4.22.1", "@wojtekmaj/enzyme-adapter-react-17": "0.6.1", "babel-jest": "26.6.3", @@ -182,7 +182,7 @@ "wait-on": "4.0.2", "webpack": "5.36.2", "webpack-bundle-analyzer": "4.4.1", - "webpack-cli": "4.6.0", + "webpack-cli": "4.7.0", "webpack-dev-server": "3.11.2" } }, @@ -1759,9 +1759,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", "dependencies": { "regenerator-runtime": "^0.13.4" } @@ -1770,6 +1770,7 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "dev": true, "dependencies": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" @@ -1908,6 +1909,11 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -2144,7 +2150,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@fluentui/react/node_modules/@fluentui/date-time-utilities/node_modules/tslib": { + "node_modules/@fluentui/react/node_modules/tslib": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" @@ -2314,18 +2320,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -3503,7 +3497,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" @@ -3516,7 +3509,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true, "engines": { "node": ">= 8" } @@ -3525,7 +3517,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" @@ -3692,6 +3683,41 @@ "styled-components": "^4.1.3" } }, + "node_modules/@nteract/directory-listing/node_modules/css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/@nteract/directory-listing/node_modules/styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, "node_modules/@nteract/dropdown-menu": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@nteract/dropdown-menu/-/dropdown-menu-1.0.1.tgz", @@ -3701,6 +3727,41 @@ "styled-components": "^4.1.3" } }, + "node_modules/@nteract/dropdown-menu/node_modules/css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/@nteract/dropdown-menu/node_modules/styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, "node_modules/@nteract/editor": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/@nteract/editor/-/editor-10.1.2.tgz", @@ -4116,6 +4177,16 @@ "styled-components": "^4.1.3" } }, + "node_modules/@nteract/presentational-components/node_modules/css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, "node_modules/@nteract/presentational-components/node_modules/highlight.js": { "version": "9.12.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", @@ -4145,6 +4216,31 @@ "refractor": "^2.4.1" } }, + "node_modules/@nteract/presentational-components/node_modules/styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, "node_modules/@nteract/reducers": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/@nteract/reducers/-/reducers-5.1.6.tgz", @@ -5111,6 +5207,7 @@ "version": "5.12.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.12.0.tgz", "integrity": "sha512-N9Y82b2Z3j6wzIoAqajlKVF1Zt7sOH0pPee0sUHXHc5cv2Fdn23r+vpWm0MBBoGJtPOly5+Bdx1lnc3CD+A+ow==", + "dev": true, "dependencies": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", @@ -5131,17 +5228,22 @@ "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/@testing-library/jest-dom/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5154,6 +5256,7 @@ "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" }, @@ -5164,12 +5267,14 @@ "node_modules/@testing-library/jest-dom/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@testing-library/jest-dom/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" } @@ -5178,6 +5283,7 @@ "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" }, @@ -5657,6 +5763,7 @@ "version": "26.0.23", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "dev": true, "dependencies": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" @@ -5666,6 +5773,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -5681,6 +5789,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } @@ -5688,12 +5797,14 @@ "node_modules/@types/jest/node_modules/@types/node": { "version": "14.14.22", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "dev": true }, "node_modules/@types/jest/node_modules/@types/yargs": { "version": "15.0.12", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "dev": true, "dependencies": { "@types/yargs-parser": "*" } @@ -5702,6 +5813,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, "engines": { "node": ">=8" } @@ -5710,6 +5822,7 @@ "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" }, @@ -5721,6 +5834,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5733,6 +5847,7 @@ "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" }, @@ -5743,12 +5858,14 @@ "node_modules/@types/jest/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@types/jest/node_modules/diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true, "engines": { "node": ">= 10.14.2" } @@ -5757,6 +5874,7 @@ "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" } @@ -5765,6 +5883,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^26.6.2", @@ -5779,6 +5898,7 @@ "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, "engines": { "node": ">= 10.14.2" } @@ -5787,6 +5907,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, "dependencies": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -5800,12 +5921,14 @@ "node_modules/@types/jest/node_modules/react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true }, "node_modules/@types/jest/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" }, @@ -5935,15 +6058,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-native": { - "version": "0.63.46", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.46.tgz", - "integrity": "sha512-SnBnWRErpISIaWk4K8kAfIKqSPdZ8fdH6HIw7kVdz6jMl/5FAf6iXeIwRfVZg1bCMh+ymNPCpSENNNEVprxj/w==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/react-notification-system": { "version": "0.2.39", "resolved": "https://registry.npmjs.org/@types/react-notification-system/-/react-notification-system-0.2.39.tgz", @@ -6032,17 +6146,22 @@ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, "node_modules/@types/styled-components": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.1.tgz", - "integrity": "sha512-fIjKvDU1LJExBZWEQilHqzfpOK4KUwBsj5zC79lxa94ekz8oDQSBNcayMACBImxIuevF+NbBGL9O/2CQ67Zhig==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.9.tgz", + "integrity": "sha512-kbEG6YlwK8rucITpKEr6pA4Ho9KSQHUUOzZ9lY3va1mtcjvS3D0wDciFyHEiNHKLL/npZCKDQJqm0x44sPO9oA==", "dev": true, "dependencies": { "@types/hoist-non-react-statics": "*", "@types/react": "*", - "@types/react-native": "*", - "csstype": "^2.2.0" + "csstype": "^3.0.2" } }, + "node_modules/@types/styled-components/node_modules/csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", + "dev": true + }, "node_modules/@types/tapable": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", @@ -6053,6 +6172,7 @@ "version": "5.9.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", + "dev": true, "dependencies": { "@types/jest": "*" } @@ -6177,13 +6297,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", - "dev": true, + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", + "devOptional": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -6193,48 +6313,26 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, + "devOptional": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -6246,17 +6344,19 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "dependencies": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", @@ -6266,51 +6366,11 @@ "eslint": "*" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/parser": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", - "dev": true, + "devOptional": true, "dependencies": { "@typescript-eslint/scope-manager": "4.22.1", "@typescript-eslint/types": "4.22.1", @@ -6333,11 +6393,10 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.22.1", "@typescript-eslint/visitor-keys": "4.22.1" @@ -6350,11 +6409,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", - "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -6363,59 +6421,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.22.1", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==", - "dev": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, "node_modules/@typescript-eslint/typescript-estree": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.22.1", "@typescript-eslint/visitor-keys": "4.22.1", @@ -6438,24 +6447,24 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", - "dev": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" @@ -6468,48 +6477,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/eslint-visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.22.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true, "engines": { "node": ">=10" } @@ -7463,25 +7434,40 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", - "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", + "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } }, "node_modules/@webpack-cli/info": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", - "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", + "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", "dev": true, "dependencies": { "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", - "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", + "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } }, "node_modules/@wojtekmaj/enzyme-adapter-react-17": { "version": "0.6.1", @@ -7830,6 +7816,7 @@ "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==", + "dev": true, "dependencies": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -7907,7 +7894,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, "engines": { "node": ">=8" } @@ -9530,18 +9516,6 @@ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz", - "integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.4.4", - "entities": "^2.0.0" - } - }, "node_modules/cheerio/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -10100,7 +10074,8 @@ "node_modules/core-js-pure": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.3.tgz", - "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==" + "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==", + "dev": true }, "node_modules/core-util-is": { "version": "1.0.2", @@ -10278,6 +10253,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -10396,15 +10372,20 @@ } }, "node_modules/css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" + "postcss-value-parser": "^4.0.2" } }, + "node_modules/css-to-react-native/node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -10439,12 +10420,14 @@ "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true }, "node_modules/css/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" } @@ -10453,6 +10436,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -11020,7 +11004,8 @@ "node_modules/dayjs": { "version": "1.8.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.19.tgz", - "integrity": "sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==" + "integrity": "sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==", + "license": "MIT" }, "node_modules/debounce": { "version": "1.2.0", @@ -11477,7 +11462,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -11489,7 +11473,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -12142,17 +12125,23 @@ "dev": true }, "node_modules/eslint-plugin-jest": { - "version": "23.13.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.13.2.tgz", - "integrity": "sha512-qZit+moTXTyZFNDqSIR88/L3rdBlTU7CuW6XmyErD2FfHEkdoLgThkRbiQjzgYnX6rfgLx3Ci4eJmF4Ui5v1Cw==", + "version": "24.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", + "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", "dependencies": { - "@typescript-eslint/experimental-utils": "^2.5.0" + "@typescript-eslint/experimental-utils": "^4.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" }, "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">= 4", "eslint": ">=5" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } } }, "node_modules/eslint-plugin-no-null": { @@ -13047,7 +13036,6 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -13064,7 +13052,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -13076,7 +13063,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -13088,7 +13074,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -13097,7 +13082,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -13110,7 +13094,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -13149,7 +13132,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -13383,18 +13365,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir/node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/find-cache-dir/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -14134,7 +14104,6 @@ "version": "11.0.3", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -14151,7 +14120,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { "node": ">=8" } @@ -14924,7 +14892,6 @@ "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, "engines": { "node": ">= 4" } @@ -15011,6 +14978,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "engines": { "node": ">=8" } @@ -24063,7 +24031,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -24184,6 +24151,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, "engines": { "node": ">=4" } @@ -25703,7 +25671,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -25722,17 +25689,6 @@ "node": ">=6" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", @@ -27368,6 +27324,10 @@ "dependencies": { "@babel/runtime": "^7.3.1", "html-parse-stringify2": "2.0.1" + }, + "peerDependencies": { + "i18next": ">= 19.0.0", + "react": ">= 16.8.0" } }, "node_modules/react-is": { @@ -27627,6 +27587,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -28187,7 +28148,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -28235,8 +28195,7 @@ "node_modules/run-parallel": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "node_modules/rw": { "version": "1.3.3", @@ -29550,6 +29509,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, "dependencies": { "min-indent": "^1.0.0" }, @@ -29619,23 +29579,32 @@ } }, "node_modules/styled-components": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.3.2.tgz", - "integrity": "sha512-NppHzIFavZ3TsIU3R1omtddJ0Bv1+j50AKh3ZWyXHuFvJq1I8qkQ5mZ7uQgD89Y8zJNx2qRo6RqAH1BmoVafHw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", "dependencies": { "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/unitless": "^0.7.0", - "babel-plugin-styled-components": ">= 1", - "css-to-react-native": "^2.2.2", - "memoize-one": "^5.0.0", - "merge-anything": "^2.2.4", - "prop-types": "^15.5.4", - "react-is": "^16.6.0", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" } }, "node_modules/stylis": { @@ -29646,7 +29615,10 @@ "node_modules/stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } }, "node_modules/supports-color": { "version": "5.5.0", @@ -31617,18 +31589,17 @@ } }, "node_modules/webpack-cli": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", - "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", + "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.2", - "@webpack-cli/info": "^1.2.3", - "@webpack-cli/serve": "^1.3.1", + "@webpack-cli/configtest": "^1.0.3", + "@webpack-cli/info": "^1.2.4", + "@webpack-cli/serve": "^1.4.0", "colorette": "^1.2.1", "commander": "^7.0.0", - "enquirer": "^2.3.6", "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", @@ -31642,6 +31613,23 @@ }, "engines": { "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } } }, "node_modules/webpack-cli/node_modules/commander": { @@ -34129,9 +34117,9 @@ } }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -34140,6 +34128,7 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "dev": true, "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" @@ -34271,6 +34260,11 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -34417,14 +34411,12 @@ "requires": { "@fluentui/set-version": "^8.1.0", "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" - } } + }, + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -34641,17 +34633,6 @@ "dev": true, "requires": { "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } } }, "path-exists": { @@ -35670,7 +35651,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" @@ -35679,14 +35659,12 @@ "@nodelib/fs.stat": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" }, "@nodelib/fs.walk": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" @@ -35843,6 +35821,38 @@ "react-hot-loader": "^4.1.2", "react-timeago": "^4.1.9", "styled-components": "^4.1.3" + }, + "dependencies": { + "css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + } + } } }, "@nteract/dropdown-menu": { @@ -35852,6 +35862,38 @@ "requires": { "react-hot-loader": "^4.1.2", "styled-components": "^4.1.3" + }, + "dependencies": { + "css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + } + } } }, "@nteract/editor": { @@ -36270,6 +36312,16 @@ "styled-components": "^4.1.3" }, "dependencies": { + "css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, "highlight.js": { "version": "9.12.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", @@ -36295,6 +36347,26 @@ "prismjs": "^1.8.4", "refractor": "^2.4.1" } + }, + "styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + } } } }, @@ -37198,6 +37270,7 @@ "version": "5.12.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.12.0.tgz", "integrity": "sha512-N9Y82b2Z3j6wzIoAqajlKVF1Zt7sOH0pPee0sUHXHc5cv2Fdn23r+vpWm0MBBoGJtPOly5+Bdx1lnc3CD+A+ow==", + "dev": true, "requires": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", @@ -37213,6 +37286,7 @@ "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" } @@ -37221,6 +37295,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -37230,6 +37305,7 @@ "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" } @@ -37237,17 +37313,20 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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==" + "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" } @@ -37719,6 +37798,7 @@ "version": "26.0.23", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "dev": true, "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" @@ -37728,6 +37808,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -37740,6 +37821,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, "requires": { "@types/istanbul-lib-report": "*" } @@ -37747,12 +37829,14 @@ "@types/node": { "version": "14.14.22", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "dev": true }, "@types/yargs": { "version": "15.0.12", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "dev": true, "requires": { "@types/yargs-parser": "*" } @@ -37760,12 +37844,14 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "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" } @@ -37774,6 +37860,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -37783,6 +37870,7 @@ "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" } @@ -37790,22 +37878,26 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "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==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "jest-diff": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^26.6.2", @@ -37816,12 +37908,14 @@ "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, "requires": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -37832,12 +37926,14 @@ "react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "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" } @@ -37974,15 +38070,6 @@ "@types/react": "*" } }, - "@types/react-native": { - "version": "0.63.46", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.46.tgz", - "integrity": "sha512-SnBnWRErpISIaWk4K8kAfIKqSPdZ8fdH6HIw7kVdz6jMl/5FAf6iXeIwRfVZg1bCMh+ymNPCpSENNNEVprxj/w==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, "@types/react-notification-system": { "version": "0.2.39", "resolved": "https://registry.npmjs.org/@types/react-notification-system/-/react-notification-system-0.2.39.tgz", @@ -38068,15 +38155,22 @@ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" }, "@types/styled-components": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.1.tgz", - "integrity": "sha512-fIjKvDU1LJExBZWEQilHqzfpOK4KUwBsj5zC79lxa94ekz8oDQSBNcayMACBImxIuevF+NbBGL9O/2CQ67Zhig==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.9.tgz", + "integrity": "sha512-kbEG6YlwK8rucITpKEr6pA4Ho9KSQHUUOzZ9lY3va1mtcjvS3D0wDciFyHEiNHKLL/npZCKDQJqm0x44sPO9oA==", "dev": true, "requires": { "@types/hoist-non-react-statics": "*", "@types/react": "*", - "@types/react-native": "*", - "csstype": "^2.2.0" + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", + "dev": true + } } }, "@types/tapable": { @@ -38089,6 +38183,7 @@ "version": "5.9.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", + "dev": true, "requires": { "@types/jest": "*" } @@ -38212,13 +38307,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", - "dev": true, + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", + "devOptional": true, "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -38227,40 +38322,11 @@ "tsutils": "^3.17.1" }, "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, + "devOptional": true, "requires": { "lru-cache": "^6.0.0" } @@ -38268,107 +38334,48 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" - }, - "dependencies": { - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/parser": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", - "dev": true, + "devOptional": true, "requires": { "@typescript-eslint/scope-manager": "4.22.1", "@typescript-eslint/types": "4.22.1", "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", - "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1" - } - }, - "@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", - "dev": true, + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==", - "dev": true + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", - "dev": true, "requires": { "@typescript-eslint/types": "4.22.1", "@typescript-eslint/visitor-keys": "4.22.1", @@ -38379,33 +38386,10 @@ "tsutils": "^3.17.1" }, "dependencies": { - "@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -38413,20 +38397,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", - "dev": true, + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -39225,25 +39207,27 @@ } }, "@webpack-cli/configtest": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", - "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", + "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", + "dev": true, + "requires": {} }, "@webpack-cli/info": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", - "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", + "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", - "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", + "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", + "dev": true, + "requires": {} }, "@wojtekmaj/enzyme-adapter-react-17": { "version": "0.6.1", @@ -39547,6 +39531,7 @@ "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==", + "dev": true, "requires": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -39605,8 +39590,7 @@ "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "array-uniq": { "version": "1.0.3", @@ -40941,18 +40925,6 @@ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, - "htmlparser2": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz", - "integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.4.4", - "entities": "^2.0.0" - } - }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -41459,7 +41431,8 @@ "core-js-pure": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.3.tgz", - "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==" + "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -41626,6 +41599,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, "requires": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -41635,12 +41609,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -41746,13 +41722,20 @@ } }, "css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", "requires": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + } } }, "css-tree": { @@ -41782,7 +41765,8 @@ "css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true }, "cssesc": { "version": "3.0.0", @@ -42701,7 +42685,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "requires": { "path-type": "^4.0.0" }, @@ -42709,8 +42692,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" } } }, @@ -43473,11 +43455,11 @@ } }, "eslint-plugin-jest": { - "version": "23.13.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.13.2.tgz", - "integrity": "sha512-qZit+moTXTyZFNDqSIR88/L3rdBlTU7CuW6XmyErD2FfHEkdoLgThkRbiQjzgYnX6rfgLx3Ci4eJmF4Ui5v1Cw==", + "version": "24.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", + "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", "requires": { - "@typescript-eslint/experimental-utils": "^2.5.0" + "@typescript-eslint/experimental-utils": "^4.0.1" } }, "eslint-plugin-no-null": { @@ -43973,7 +43955,6 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -43987,7 +43968,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -43996,7 +43976,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -44004,14 +43983,12 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -44021,7 +43998,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -44059,7 +44035,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -44258,17 +44233,6 @@ "dev": true, "requires": { "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } } }, "path-exists": { @@ -44858,7 +44822,6 @@ "version": "11.0.3", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -44871,8 +44834,7 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" } } }, @@ -45552,8 +45514,7 @@ "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" }, "ignore-walk": { "version": "3.0.3", @@ -45617,7 +45578,8 @@ "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true }, "inflight": { "version": "1.0.6", @@ -52812,8 +52774,7 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -52905,7 +52866,8 @@ "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true }, "mini-css-extract-plugin": { "version": "1.5.0", @@ -54113,7 +54075,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -54124,16 +54085,6 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { "p-limit": "^2.0.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } } }, "p-reduce": { @@ -55713,6 +55664,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -56199,8 +56151,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { "version": "3.0.0", @@ -56238,8 +56189,7 @@ "run-parallel": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "rw": { "version": "1.3.3", @@ -57381,6 +57331,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, "requires": { "min-indent": "^1.0.0" } @@ -57426,22 +57377,19 @@ } }, "styled-components": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.3.2.tgz", - "integrity": "sha512-NppHzIFavZ3TsIU3R1omtddJ0Bv1+j50AKh3ZWyXHuFvJq1I8qkQ5mZ7uQgD89Y8zJNx2qRo6RqAH1BmoVafHw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", "requires": { "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/unitless": "^0.7.0", - "babel-plugin-styled-components": ">= 1", - "css-to-react-native": "^2.2.2", - "memoize-one": "^5.0.0", - "merge-anything": "^2.2.4", - "prop-types": "^15.5.4", - "react-is": "^16.6.0", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", "supports-color": "^5.5.0" } }, @@ -57453,7 +57401,8 @@ "stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} }, "supports-color": { "version": "5.5.0", @@ -59102,18 +59051,17 @@ } }, "webpack-cli": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", - "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", + "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.2", - "@webpack-cli/info": "^1.2.3", - "@webpack-cli/serve": "^1.3.1", + "@webpack-cli/configtest": "^1.0.3", + "@webpack-cli/info": "^1.2.4", + "@webpack-cli/serve": "^1.4.0", "colorette": "^1.2.1", "commander": "^7.0.0", - "enquirer": "^2.3.6", "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", diff --git a/package.json b/package.json index 55fa0eec8..ec7c30d2c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "@azure/ms-rest-nodeauth": "3.0.7", "@babel/plugin-proposal-class-properties": "7.13.0", "@babel/plugin-proposal-decorators": "7.13.15", - "@fluentui/react": "8.10.1", + "@fluentui/react": "8.14.4", "@jupyterlab/services": "6.0.2", "@jupyterlab/terminal": "3.0.3", "@microsoft/applicationinsights-web": "2.6.1", @@ -40,7 +40,6 @@ "@nteract/transform-vega": "7.0.6", "@octokit/rest": "17.9.2", "@phosphor/widgets": "1.9.3", - "@testing-library/jest-dom": "5.12.0", "@types/mkdirp": "1.0.1", "@types/node-fetch": "2.5.7", "@uifabric/react-cards": "0.109.110", @@ -55,15 +54,15 @@ "datatables.net-colreorder-dt": "1.5.1", "datatables.net-dt": "1.10.19", "date-fns": "1.29.0", - "dayjs": "1.8.19", - "dotenv": "8.2.0", - "eslint-plugin-jest": "23.13.2", + "dayjs": "1.10.4", + "dotenv": "9.0.0", + "eslint-plugin-jest": "24.3.6", "eslint-plugin-react": "7.23.2", "hasher": "1.2.0", - "html2canvas": "1.0.0-rc.5", - "i18next": "19.8.4", - "i18next-browser-languagedetector": "6.0.1", - "i18next-http-backend": "1.0.23", + "html2canvas": "1.0.0-rc.7", + "i18next": "20.2.2", + "i18next-browser-languagedetector": "6.1.0", + "i18next-http-backend": "1.2.2", "iframe-resizer-react": "1.1.0", "immutable": "4.0.0-rc.12", "is-ci": "2.0.0", @@ -85,7 +84,7 @@ "react-dnd-html5-backend": "14.0.0", "react-dom": "17.0.2", "react-hotkeys": "2.0.0", - "react-i18next": "11.8.5", + "react-i18next": "11.8.15", "react-notification-system": "0.2.17", "react-redux": "7.2.4", "redux": "4.1.0", @@ -93,7 +92,7 @@ "rx-jupyter": "5.5.12", "rxjs": "6.6.3", "sanitize-html": "2.3.3", - "styled-components": "4.3.2", + "styled-components": "5.3.0", "swr": "0.4.0", "underscore": "1.9.1", "utility-types": "3.10.0" @@ -104,6 +103,7 @@ "@babel/preset-react": "7.13.13", "@babel/preset-typescript": "7.13.0", "@svgr/webpack": "5.5.0", + "@testing-library/jest-dom": "5.12.0", "@testing-library/react": "11.2.6", "@types/applicationinsights-js": "1.0.7", "@types/codemirror": "0.0.56", @@ -117,15 +117,15 @@ "@types/post-robot": "10.0.1", "@types/promise.prototype.finally": "2.0.3", "@types/q": "1.5.1", - "@types/react": "17.0.3", + "@types/react": "17.0.5", "@types/react-dom": "17.0.3", "@types/react-notification-system": "0.2.39", "@types/react-redux": "7.1.16", "@types/sanitize-html": "1.27.2", "@types/sinon": "2.3.3", - "@types/styled-components": "5.1.1", + "@types/styled-components": "5.1.9", "@types/underscore": "1.7.36", - "@typescript-eslint/eslint-plugin": "4.22.0", + "@typescript-eslint/eslint-plugin": "4.22.1", "@typescript-eslint/parser": "4.22.1", "@wojtekmaj/enzyme-adapter-react-17": "0.6.1", "babel-jest": "26.6.3", @@ -179,7 +179,7 @@ "wait-on": "4.0.2", "webpack": "5.36.2", "webpack-bundle-analyzer": "4.4.1", - "webpack-cli": "4.6.0", + "webpack-cli": "4.7.0", "webpack-dev-server": "3.11.2" }, "scripts": { diff --git a/src/Common/Tooltip/Tooltip.tsx b/src/Common/Tooltip/Tooltip.tsx index 1beb6b867..07ecf051f 100644 --- a/src/Common/Tooltip/Tooltip.tsx +++ b/src/Common/Tooltip/Tooltip.tsx @@ -1,7 +1,7 @@ import { ITooltipHostStyles, TooltipHost } from "@fluentui/react"; import { useId } from "@fluentui/react-hooks"; import { ReactComponent as InfoBubble } from "images/info-bubble.svg"; -import * as React from "react"; +import React, { FunctionComponent } from "react"; const calloutProps = { gapSpace: 0 }; const hostStyles: Partial = { root: { display: "inline-block" } }; @@ -9,7 +9,7 @@ const hostStyles: Partial = { root: { display: "inline-block export interface TooltipProps { children: string; } -export const Tooltip: React.FunctionComponent = ({ children }: TooltipProps) => { +export const Tooltip: FunctionComponent = ({ children }: TooltipProps) => { const tooltipId = useId("tooltip"); return children ? ( diff --git a/src/Explorer/Controls/Directory/__snapshots__/DirectoryListComponent.test.tsx.snap b/src/Explorer/Controls/Directory/__snapshots__/DirectoryListComponent.test.tsx.snap index 0d4469c5a..78cf68ad7 100644 --- a/src/Explorer/Controls/Directory/__snapshots__/DirectoryListComponent.test.tsx.snap +++ b/src/Explorer/Controls/Directory/__snapshots__/DirectoryListComponent.test.tsx.snap @@ -1959,7 +1959,7 @@ exports[`test render renders with filters 1`] = `
- + diff --git a/src/Explorer/Controls/Settings/SettingsSubComponents/ThroughputInputComponents/__snapshots__/ThroughputInputAutoPilotV3Component.test.tsx.snap b/src/Explorer/Controls/Settings/SettingsSubComponents/ThroughputInputComponents/__snapshots__/ThroughputInputAutoPilotV3Component.test.tsx.snap index b0e44afcf..43bdce840 100644 --- a/src/Explorer/Controls/Settings/SettingsSubComponents/ThroughputInputComponents/__snapshots__/ThroughputInputAutoPilotV3Component.test.tsx.snap +++ b/src/Explorer/Controls/Settings/SettingsSubComponents/ThroughputInputComponents/__snapshots__/ThroughputInputAutoPilotV3Component.test.tsx.snap @@ -252,7 +252,7 @@ exports[`ThroughputInputAutoPilotV3Component spendAck checkbox visible 1`] = ` > capacity calculator - @@ -526,7 +526,7 @@ exports[`ThroughputInputAutoPilotV3Component throughput input visible 1`] = ` > capacity calculator - diff --git a/src/Explorer/Notebook/NotebookRenderer/decorators/draggable/index.tsx b/src/Explorer/Notebook/NotebookRenderer/decorators/draggable/index.tsx index 286092759..d5928bd60 100644 --- a/src/Explorer/Notebook/NotebookRenderer/decorators/draggable/index.tsx +++ b/src/Explorer/Notebook/NotebookRenderer/decorators/draggable/index.tsx @@ -123,8 +123,9 @@ export const cellTarget = { if (monitor) { const hoverUpperHalf = isDragUpper(props, monitor, component.el); // DropTargetSpec monitor definition could be undefined. we'll need a check for monitor in order to pass validation. + const item: Props = monitor.getItem(); props.moveCell({ - id: monitor.getItem().id, + id: item.id, destinationId: props.id, above: hoverUpperHalf, contentRef: props.contentRef, diff --git a/src/Explorer/Panes/DeleteCollectionConfirmationPane/__snapshots__/DeleteCollectionConfirmationPane.test.tsx.snap b/src/Explorer/Panes/DeleteCollectionConfirmationPane/__snapshots__/DeleteCollectionConfirmationPane.test.tsx.snap index d0082d724..4fbdda269 100644 --- a/src/Explorer/Panes/DeleteCollectionConfirmationPane/__snapshots__/DeleteCollectionConfirmationPane.test.tsx.snap +++ b/src/Explorer/Panes/DeleteCollectionConfirmationPane/__snapshots__/DeleteCollectionConfirmationPane.test.tsx.snap @@ -1115,7 +1115,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect className="ms-Button-flexContainer flexContainer-203" data-automationid="splitbuttonprimary" > - @@ -1131,10 +1131,10 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect >  - + - + @@ -3650,7 +3650,7 @@ exports[`Delete Collection Confirmation Pane submit() should call delete collect - + diff --git a/src/Explorer/Panes/ExecuteSprocParamsPane/__snapshots__/ExecuteSprocParamsPane.test.tsx.snap b/src/Explorer/Panes/ExecuteSprocParamsPane/__snapshots__/ExecuteSprocParamsPane.test.tsx.snap index 207e955ae..7765c33f9 100644 --- a/src/Explorer/Panes/ExecuteSprocParamsPane/__snapshots__/ExecuteSprocParamsPane.test.tsx.snap +++ b/src/Explorer/Panes/ExecuteSprocParamsPane/__snapshots__/ExecuteSprocParamsPane.test.tsx.snap @@ -1106,7 +1106,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = ` className="ms-Button-flexContainer flexContainer-54" data-automationid="splitbuttonprimary" > - @@ -1122,10 +1122,10 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = ` >  - + - + @@ -8213,7 +8213,7 @@ exports[`Excute Sproc Param Pane should render Default properly 1`] = ` - + diff --git a/src/Explorer/Panes/SetupNotebooksPanel/__snapshots__/SetupNotebooksPanel.test.tsx.snap b/src/Explorer/Panes/SetupNotebooksPanel/__snapshots__/SetupNotebooksPanel.test.tsx.snap index 239bc399e..25914ed75 100644 --- a/src/Explorer/Panes/SetupNotebooksPanel/__snapshots__/SetupNotebooksPanel.test.tsx.snap +++ b/src/Explorer/Panes/SetupNotebooksPanel/__snapshots__/SetupNotebooksPanel.test.tsx.snap @@ -1760,7 +1760,7 @@ exports[`Setup Notebooks Panel should render Default properly 1`] = ` - + diff --git a/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap b/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap index 7cbfacdd1..18af8760a 100644 --- a/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap +++ b/src/Explorer/Panes/StringInputPane/__snapshots__/StringInputPane.test.tsx.snap @@ -2379,7 +2379,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = ` className="ms-Button-flexContainer flexContainer-154" data-automationid="splitbuttonprimary" > - @@ -2395,10 +2395,10 @@ exports[`StringInput Pane should render Create new directory properly 1`] = ` >  - + - + @@ -4837,7 +4837,7 @@ exports[`StringInput Pane should render Create new directory properly 1`] = ` - + diff --git a/src/Explorer/Panes/Tables/TableQuerySelectPanel/__snapshots__/index.test.tsx.snap b/src/Explorer/Panes/Tables/TableQuerySelectPanel/__snapshots__/index.test.tsx.snap index 3805b9405..e33566e6f 100644 --- a/src/Explorer/Panes/Tables/TableQuerySelectPanel/__snapshots__/index.test.tsx.snap +++ b/src/Explorer/Panes/Tables/TableQuerySelectPanel/__snapshots__/index.test.tsx.snap @@ -1110,7 +1110,7 @@ exports[`Table query select Panel should render Default properly 1`] = ` className="ms-Button-flexContainer flexContainer-54" data-automationid="splitbuttonprimary" > - @@ -1126,10 +1126,10 @@ exports[`Table query select Panel should render Default properly 1`] = ` >  - + - + @@ -4180,7 +4180,7 @@ exports[`Table query select Panel should render Default properly 1`] = ` - + diff --git a/src/Explorer/Panes/Tables/__snapshots__/AddTableEntityPanel.test.tsx.snap b/src/Explorer/Panes/Tables/__snapshots__/AddTableEntityPanel.test.tsx.snap index 2ac3a6efe..61e51cd9d 100644 --- a/src/Explorer/Panes/Tables/__snapshots__/AddTableEntityPanel.test.tsx.snap +++ b/src/Explorer/Panes/Tables/__snapshots__/AddTableEntityPanel.test.tsx.snap @@ -2663,7 +2663,7 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = ` className="ms-Button-flexContainer flexContainer-73" data-automationid="splitbuttonprimary" > - @@ -2679,10 +2679,10 @@ exports[`Excute Add Table Entity Pane should render Default properly 1`] = ` >  - + - + diff --git a/src/Explorer/Panes/Tables/__snapshots__/EditTableEntityPanel.test.tsx.snap b/src/Explorer/Panes/Tables/__snapshots__/EditTableEntityPanel.test.tsx.snap index 4904a8676..41da25155 100644 --- a/src/Explorer/Panes/Tables/__snapshots__/EditTableEntityPanel.test.tsx.snap +++ b/src/Explorer/Panes/Tables/__snapshots__/EditTableEntityPanel.test.tsx.snap @@ -2664,7 +2664,7 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = ` className="ms-Button-flexContainer flexContainer-73" data-automationid="splitbuttonprimary" > - @@ -2680,10 +2680,10 @@ exports[`Excute Edit Table Entity Pane should render Default properly 1`] = ` >  - + - + diff --git a/src/Explorer/Panes/UploadItemsPane/__snapshots__/UploadItemsPane.test.tsx.snap b/src/Explorer/Panes/UploadItemsPane/__snapshots__/UploadItemsPane.test.tsx.snap index c13f7f4ae..c54ede712 100644 --- a/src/Explorer/Panes/UploadItemsPane/__snapshots__/UploadItemsPane.test.tsx.snap +++ b/src/Explorer/Panes/UploadItemsPane/__snapshots__/UploadItemsPane.test.tsx.snap @@ -20,7 +20,9 @@ exports[`Upload Items Pane should render Default properly 1`] = ` multiple={true} onUpload={[Function]} tabIndex={0} - tooltip="Select one or more JSON files to upload. Each file can contain a single JSON document or an array of JSON documents. The combined size of all files in an individual upload operation must be less than 2 MB. You can perform multiple upload operations for larger data sets." + tooltip="Select one or more JSON files to upload. Each file can contain a single JSON document or an array of JSON + documents. The combined size of all files in an individual upload operation must be less than 2 MB. You + can perform multiple upload operations for larger data sets." />
diff --git a/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap b/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap index 3ec737551..daac8071c 100644 --- a/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap +++ b/src/Explorer/Panes/__snapshots__/DeleteDatabaseConfirmationPanel.test.tsx.snap @@ -4021,7 +4021,7 @@ exports[`Delete Database Confirmation Pane submit() Should call delete database - + diff --git a/src/global.d.ts b/src/global.d.ts index 301c9209b..7f1abb973 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,6 +1,14 @@ +import { PageWaitForSelectorOptions } from "expect-playwright"; import Explorer from "./Explorer/Explorer"; declare global { + namespace jest { + interface Matchers { + toHaveFocus(selector: string, options?: PageWaitForSelectorOptions): Promise; + toHaveTextContent(htmlElement: string): object; + toHaveValue(value: string | string[] | number): object; + } + } interface Window { /** * @deprecated diff --git a/src/setupTests.ts b/src/setupTests.ts index a169c8f1c..a13e904bf 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -1,13 +1,13 @@ +import { initializeIcons } from "@fluentui/react"; import Adapter from "@wojtekmaj/enzyme-adapter-react-17"; import { configure } from "enzyme"; import "jest-canvas-mock"; -import { initializeIcons } from "@fluentui/react"; import { TextDecoder, TextEncoder } from "util"; configure({ adapter: new Adapter() }); initializeIcons(); if (typeof window.URL.createObjectURL === "undefined") { - Object.defineProperty(window.URL, "createObjectURL", { value: () => {} }); + Object.defineProperty(window.URL, "createObjectURL", { value: () => { } }); } // TODO Remove when jquery and documentdbclient SDK are removed diff --git a/webpack.config.js b/webpack.config.js index fa10dff24..84731d52a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,7 +13,7 @@ const { CleanWebpackPlugin } = require("clean-webpack-plugin"); const CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin"); const CreateFileWebpack = require("create-file-webpack"); const childProcess = require("child_process"); -const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin; +const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer"); const TerserPlugin = require("terser-webpack-plugin"); const isCI = require("is-ci");