Files
azuredatastudio/extensions/arc/package.json
Charles Gagnon f9e9cc76ea Fix arc controller ns/name validation (#12525)
* Fix arc controller ns/name validation

* Rename control plane references

* Fix validation
2020-09-21 10:51:51 -07:00

909 lines
38 KiB
JSON

{
"name": "arc",
"displayName": "%arc.displayName%",
"description": "%arc.description%",
"version": "0.4.3",
"publisher": "Microsoft",
"preview": true,
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
"icon": "images/extension.png",
"engines": {
"vscode": "*",
"azdata": ">=1.22.0"
},
"activationEvents": [
"onCommand:arc.connectToController",
"onCommand:arc.createController",
"onCommand:azdata.resource.deploy",
"onView:azureArc"
],
"extensionDependencies": [
"Microsoft.azdata"
],
"repository": {
"type": "git",
"url": "https://github.com/Microsoft/azuredatastudio.git"
},
"forceReload": true,
"main": "./out/extension",
"contributes": {
"dataExplorer": {
"azureArc": [
{
"id": "azureArc",
"name": "%arc.view.title%"
}
]
},
"commands": [
{
"command": "arc.openDashboard",
"title": "%arc.openDashboard%"
},
{
"command": "arc.createController",
"title": "%command.createController.title%",
"icon": "$(add)"
},
{
"command": "arc.connectToController",
"title": "%command.connectToController.title%",
"icon": "$(disconnect)"
},
{
"command": "arc.removeController",
"title": "%command.removeController.title%"
},
{
"command": "arc.refresh",
"title": "%command.refresh.title%"
},
{
"command": "arc.editConnection",
"title": "%command.editConnection.title%"
}
],
"menus": {
"commandPalette": [
{
"command": "arc.openDashboard",
"when": "false"
},
{
"command": "arc.removeController",
"when": "false"
},
{
"command": "arc.refresh",
"when": "false"
},
{
"command": "arc.editConnection",
"when": "false"
}
],
"view/title": [
{
"command": "arc.createController",
"when": "view == azureArc",
"group": "navigation@1"
},
{
"command": "arc.connectToController",
"when": "view == azureArc",
"group": "navigation@2"
}
],
"view/item/context": [
{
"command": "arc.openDashboard",
"when": "view == azureArc && viewItem",
"group": "navigation@1"
},
{
"command": "arc.editConnection",
"when": "view == azureArc && viewItem == dataControllers",
"group": "navigation@2"
},
{
"command": "arc.refresh",
"when": "view == azureArc && viewItem == dataControllers",
"group": "navigation@3"
},
{
"command": "arc.removeController",
"when": "view == azureArc && viewItem == dataControllers",
"group": "navigation@4"
}
]
},
"viewsWelcome": [
{
"view": "azureArc",
"contents": "%arc.view.welcome.connect%",
"when": "arc.loaded"
},
{
"view": "azureArc",
"contents": "%arc.view.welcome.loading%",
"when": "!arc.loaded"
}
],
"resourceDeploymentTypes": [
{
"name": "arc.control.create",
"displayName": "%resource.type.azure.arc.display.name%",
"description": "%resource.type.azure.arc.description%",
"platforms": "*",
"icon": {
"light": "./images/data_controller.svg",
"dark": "./images/data_controller.svg"
},
"providers": [
{
"notebookWizard": {
"notebook": "./notebooks/arcDeployment/deploy.arc.data.controller.ipynb",
"type": "new-arc-control-plane",
"runNotebook": false,
"codeCellInsertionPosition": 5,
"actionText": "%deploy.arc.data.controller.action%",
"title": "%arc.data.controller.new.wizard.title%",
"name": "arc.data.controller.new.wizard",
"labelPosition": "left",
"generateSummaryPage": false,
"pages": [
{
"title": "%arc.data.controller.select.cluster.title%",
"sections": [
{
"fields": [
{
"type": "kube_cluster_context_picker",
"label": "%arc.data.controller.kube.cluster.context%",
"required": true,
"inputWidth": "350px",
"variableName": "AZDATA_NB_VAR_ARC_CLUSTER_CONTEXT",
"configFileVariableName": "AZDATA_NB_VAR_ARC_CONFIG_FILE"
}
]
}
]
},
{
"title": "%arc.data.controller.cluster.config.profile.title%",
"sections": [
{
"fields": [
{
"type": "options",
"label": "%arc.data.controller.cluster.config.profile%",
"required": true,
"variableName": "AZDATA_NB_VAR_ARC_PROFILE",
"editable": false,
"options": {
"values": [
"azure-arc-ake",
"azure-arc-aks-default-storage",
"azure-arc-aks-premium-storage",
"azure-arc-azure-openshift",
"azure-arc-eks",
"azure-arc-kubeadm",
"azure-arc-openshift"
],
"defaultValue": "azure-arc-aks-default-storage",
"optionsType": "radio"
}
}
]
}
]
},
{
"title": "%arc.data.controller.data.controller.create.title%",
"sections": [
{
"title": "%arc.data.controller.project.details.title%",
"fields": [
{
"type": "readonly_text",
"label": "%arc.data.controller.project.details.description%",
"labelWidth": "600px"
},
{
"type": "azure_account",
"required": true,
"subscriptionVariableName": "AZDATA_NB_VAR_ARC_SUBSCRIPTION",
"displaySubscriptionVariableName": "AZDATA_NB_VAR_ARC_DISPLAY_SUBSCRIPTION",
"resourceGroupVariableName": "AZDATA_NB_VAR_ARC_RESOURCE_GROUP"
}
]
},
{
"title": "%arc.data.controller.data.controller.details.title%",
"fields": [
{
"type": "readonly_text",
"label": "%arc.data.controller.data.controller.details.description%",
"labelWidth": "600px"
},
{
"type": "text",
"label": "%arc.data.controller.arc.data.controller.namespace%",
"textValidationRequired": true,
"textValidationRegex": "^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$",
"textValidationDescription": "%arc.data.controller.arc.data.controller.namespace.validation.description%",
"defaultValue": "arc",
"required": true,
"variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE"
},
{
"type": "text",
"label": "%arc.data.controller.arc.data.controller.name%",
"textValidationRequired": true,
"textValidationRegex": "^[a-z0-9]([-.a-z0-9]{0,251}[a-z0-9])?$",
"textValidationDescription": "%arc.data.controller.arc.data.controller.name.validation.description%",
"defaultValue": "arc-dc",
"required": true,
"variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAME"
},
{
"label": "%arc.storage-class.dc.label%",
"description": "%arc.sql.storage-class.dc.description%",
"variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_STORAGE_CLASS",
"type": "kube_storage_class",
"required": true
},
{
"type": "azure_locations",
"label": "%arc.data.controller.arc.data.controller.location%",
"defaultValue": "eastus",
"required": true,
"locationVariableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_LOCATION",
"displayLocationVariableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_DISPLAY_LOCATION",
"locations": [
"australiaeast",
"centralus",
"eastus",
"eastus2",
"francecentral",
"japaneast",
"koreacentral",
"northeurope",
"southeastasia",
"uksouth",
"westeurope",
"westus2"
]
},
{
"type": "options",
"label": "%arc.data.controller.arc.data.controller.connectivity.mode%",
"options": {
"values": [
"Indirect",
"Direct"
],
"defaultValue": "Indirect",
"optionsType": "radio"
},
"enabled": false,
"required": true,
"variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE"
}
]
},
{
"title": "%arc.data.controller.admin.account.title%",
"fields": [
{
"label": "%arc.data.controller.admin.account.name%",
"variableName": "AZDATA_NB_VAR_ARC_ADMIN_USERNAME",
"type": "text",
"required": true,
"defaultValue": "arcadmin",
"enabled": true
},
{
"label": "%arc.data.controller.admin.account.password%",
"variableName": "AZDATA_NB_VAR_ARC_ADMIN_PASSWORD",
"type": "sql_password",
"userName": "arcadmin",
"confirmationRequired": true,
"confirmationLabel": "%arc.data.controller.admin.account.confirm.password%",
"defaultValue": "",
"required": true
}
]
}
]
},
{
"title": "%arc.data.controller.data.controller.create.summary.title%",
"isSummaryPage": true,
"fieldHeight": "16px",
"sections": [
{
"title": "",
"collapsible": false,
"fieldWidth": "200px",
"fieldHeight": "14px",
"spaceBetweenFields": 0,
"rows": [
{
"items": [
{
"items": [
{
"label": "%arc.data.controller.summary.arc.data.controller%",
"type": "readonly_text",
"enabled": true,
"labelWidth": "185px"
}
]
},
{
"items": [
{
"label": "%arc.data.controller.summary.estimated.cost.per.month%",
"type": "readonly_text",
"enabled": true,
"labelWidth": "190px",
"labelCSSStyles": {
"fontWeight": "Bold"
}
}
]
}
]
},
{
"items": [
{
"items": [
{
"label": "%arc.data.controller.summary.arc.by.microsoft%",
"type": "readonly_text",
"labelWidth": "185px"
}
]
},
{
"items": [
{
"label": "%arc.data.controller.summary.free%",
"type": "readonly_text",
"enabled": true,
"defaultValue": "",
"labelWidth": "100px"
}
]
}
]
},
{
"items": [
{
"items": [
{
"label": "{0}",
"type": "readonly_text",
"enabled": true,
"labelWidth": "67px",
"links": [
{
"text": "%arc.data.controller.summary.arc.terms.of.use%",
"url": "https://go.microsoft.com/fwlink/?linkid=2045708"
}
]
},
{
"label": "|",
"type": "readonly_text",
"enabled": true,
"defaultValue": "",
"labelWidth": "4px",
"fieldWidth": "6px"
},
{
"label": "{0}",
"type": "readonly_text",
"enabled": true,
"labelWidth": "102px",
"links": [
{
"text": "%arc.data.controller.summary.arc.terms.privacy.policy%",
"url": "https://go.microsoft.com/fwlink/?linkid=512132"
}
]
}
]
}
]
}
]
},
{
"title": "%arc.data.controller.summary.terms%",
"fieldHeight": "88px",
"fields": [
{
"label": "%arc.data.controller.summary.terms.description%",
"type": "readonly_text",
"enabled": true,
"labelWidth": "750px",
"links": [
{
"text": "%arc.data.controller.summary.terms.link.text%",
"url": "https://go.microsoft.com/fwlink/?linkid=2045624"
}
]
}
]
},
{
"title": "%arc.data.controller.summary.kubernetes%",
"fields": [
{
"label": "%arc.data.controller.summary.kube.config.file.path%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_CONFIG_FILE)"
},
{
"label": "%arc.data.controller.summary.cluster.context%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_CLUSTER_CONTEXT)"
},
{
"label": "%arc.data.controller.summary.profile%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_PROFILE)"
},
{
"label": "%arc.data.controller.summary.username%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_ADMIN_USERNAME)"
}
]
},
{
"title": "%arc.data.controller.summary.azure%",
"fields": [
{
"label": "%arc.data.controller.summary.data.controller.namespace%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE)"
},
{
"label": "%arc.data.controller.summary.data.controller.name%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAME)"
},
{
"label": "%arc.data.controller.summary.data.controller.connectivity.mode%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE)"
},
{
"label": "%arc.data.controller.summary.subscription%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_DISPLAY_SUBSCRIPTION)",
"inputWidth": "600"
},
{
"label": "%arc.data.controller.summary.resource.group%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_RESOURCE_GROUP)"
},
{
"label": "%arc.data.controller.summary.location%",
"type": "readonly_text",
"isEvaluated": true,
"defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_DISPLAY_LOCATION)"
}
]
}
]
}
]
},
"requiredTools": [
{
"name": "kubectl"
},
{
"name": "azdata",
"version": "20.2.0"
}
],
"when": true
}
]
},
{
"name": "arc.sql",
"displayName": "%resource.type.arc.sql.display.name%",
"description": "%resource.type.arc.sql.description%",
"platforms": "*",
"icon": {
"light": "./images/miaa.svg",
"dark": "./images/miaa.svg"
},
"providers": [
{
"dialog": {
"notebook": "./notebooks/arcDeployment/deploy.sql.existing.arc.ipynb",
"runNotebook": true,
"taskName": "%arc.sql.new.dialog.title%",
"actionText": "%arc.deploy.action%",
"title": "%arc.sql.new.dialog.title%",
"name": "arc.sql.new.dialog",
"tabs": [
{
"title": "",
"sections": [
{
"title": "%arc.sql.settings.section.title%",
"fields": [
{
"label": "%arc.controller%",
"variableName": "AZDATA_NB_VAR_ARC_CONTROLLER",
"type": "options",
"editable": false,
"required": true,
"options": {
"source": {
"type": "ArcControllersOptionsSource",
"variableNames": {
"endpoint": "AZDATA_NB_VAR_CONTROLLER_ENDPOINT",
"username": "AZDATA_NB_VAR_CONTROLLER_USERNAME",
"password": "AZDATA_NB_VAR_CONTROLLER_PASSWORD"
}
},
"optionsType": "dropdown"
},
"labelWidth": "100%"
},
{
"label": "%arc.sql.instance.name%",
"variableName": "AZDATA_NB_VAR_SQL_INSTANCE_NAME",
"type": "text",
"defaultValue": "sqlinstance1",
"required": true,
"labelWidth": "100%",
"textValidationRequired": true,
"textValidationRegex": "^[a-z]([-a-z0-9]{0,11}[a-z0-9])?$",
"textValidationDescription": "%arc.sql.invalidinstancename%"
},
{
"label": "%arc.sql.username%",
"variableName": "AZDATA_NB_VAR_SQL_USERNAME",
"type": "text",
"required": true,
"textValidationRequired": true,
"textValidationRegex": "^(?!sa$)",
"textValidationDescription": "%arc.sql.invalidusername%"
},
{
"label": "%arc.password%",
"variableName": "AZDATA_NB_VAR_SQL_PASSWORD",
"type": "sql_password",
"userName": "sa",
"confirmationRequired": true,
"confirmationLabel": "%arc.confirm.password%",
"defaultValue": "",
"required": true
},
{
"label": "%arc.storage-class.data.label%",
"description": "%arc.sql.storage-class.data.description%",
"variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_DATA",
"type": "kube_storage_class",
"required": true
},
{
"label": "%arc.storage-class.logs.label%",
"description": "%arc.sql.storage-class.logs.description%",
"variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_LOGS",
"type": "kube_storage_class",
"required": true
},
{
"label": "%arc.cores-limit.label%",
"description": "%arc.sql.cores-limit.description%",
"variableName": "AZDATA_NB_VAR_SQL_CORES_LIMIT",
"type": "number",
"min": 1,
"required": false
},
{
"label": "%arc.cores-request.label%",
"description": "%arc.sql.cores-request.description%",
"variableName": "AZDATA_NB_VAR_SQL_CORES_REQUEST",
"type": "number",
"min": 1,
"required": false
},
{
"label": "%arc.memory-limit.label%",
"description": "%arc.sql.memory-limit.description%",
"variableName": "AZDATA_NB_VAR_SQL_MEMORY_LIMIT",
"type": "number",
"min": 2,
"required": false
},
{
"label": "%arc.memory-request.label%",
"description": "%arc.sql.memory-request.description%",
"variableName": "AZDATA_NB_VAR_SQL_MEMORY_REQUEST",
"type": "number",
"min": 2,
"required": false
}
]
}
]
}
]
},
"requiredTools": [
{
"name": "kubectl"
},
{
"name": "azdata",
"version": "20.2.0"
}
],
"when": "true"
}
],
"agreement": {
"template": "%arc.agreement%",
"links": [
{
"text": "%microsoft.agreement.privacy.statement%",
"url": "https://go.microsoft.com/fwlink/?LinkId=853010"
},
{
"text": "%arc.agreement.sql.terms.conditions%",
"url": "https://go.microsoft.com/fwlink/?linkid=2045708"
}
]
}
},
{
"name": "arc.postgres",
"displayName": "%resource.type.arc.postgres.display.name%",
"description": "%resource.type.arc.postgres.description%",
"platforms": "*",
"icon": {
"light": "./images/postgres.svg",
"dark": "./images/postgres.svg"
},
"providers": [
{
"dialog": {
"notebook": "./notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb",
"runNotebook": true,
"taskName": "%arc.postgres.new.dialog.title%",
"actionText": "%arc.deploy.action%",
"title": "%arc.postgres.new.dialog.title%",
"name": "arc.postgres.new.dialog",
"tabs": [
{
"title": "",
"sections": [
{
"title": "%arc.postgres.settings.section.title%",
"fields": [
{
"label": "%arc.controller%",
"variableName": "AZDATA_NB_VAR_ARC_CONTROLLER",
"type": "options",
"editable": false,
"required": true,
"options": {
"source": {
"type": "ArcControllersOptionsSource",
"variableNames": {
"endpoint": "AZDATA_NB_VAR_CONTROLLER_ENDPOINT",
"username": "AZDATA_NB_VAR_CONTROLLER_USERNAME",
"password": "AZDATA_NB_VAR_CONTROLLER_PASSWORD"
}
},
"optionsType": "dropdown"
},
"labelWidth": "100%"
},
{
"label": "%arc.postgres.server.group.name%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME",
"type": "text",
"textValidationRequired": true,
"textValidationRegex": "^[a-z]([-a-z0-9]{0,10}[a-z0-9])?$",
"textValidationDescription": "%arc.postgres.server.group.name.validation.description%",
"required": true
},
{
"label": "%arc.password%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD",
"type": "password",
"confirmationRequired": true,
"confirmationLabel": "%arc.confirm.password%",
"defaultValue": "",
"required": true
},
{
"label": "%arc.postgres.server.group.workers.label%",
"description": "%arc.postgres.server.group.workers.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS",
"type": "number",
"defaultValue": "0",
"min": 0
},
{
"label": "%arc.postgres.server.group.port%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT",
"type": "number",
"defaultValue": "5432",
"min": 1,
"max": 65535
},
{
"label": "%arc.postgres.server.group.engine.version%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_ENGINE_VERSION",
"type": "options",
"options" : ["11","12"],
"defaultValue": "12"
},
{
"label": "%arc.postgres.server.group.extensions.label%",
"description": "%arc.postgres.server.group.extensions.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS",
"type": "text"
}
]
},
{
"title": "%arc.postgres.settings.storage.title%",
"fields": [
{
"label": "%arc.storage-class.data.label%",
"description": "%arc.postgres.storage-class.data.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_DATA",
"type": "kube_storage_class",
"required": true
},
{
"label": "%arc.postgres.server.group.volume.size.data.label%",
"description": "%arc.postgres.server.group.volume.size.data.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_DATA",
"type": "number",
"defaultValue": "5",
"min": 1
},
{
"label": "%arc.storage-class.logs.label%",
"description": "%arc.postgres.storage-class.logs.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_LOGS",
"type": "kube_storage_class",
"required": true
},
{
"label": "%arc.postgres.server.group.volume.size.logs.label%",
"description": "%arc.postgres.server.group.volume.size.logs.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_LOGS",
"type": "number",
"defaultValue": "5",
"min": 1
},
{
"label": "%arc.storage-class.backups.label%",
"description": "%arc.postgres.storage-class.backups.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_BACKUPS",
"type": "kube_storage_class",
"required": true
},
{
"label": "%arc.postgres.server.group.volume.size.backups.label%",
"description": "%arc.postgres.server.group.volume.size.backups.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_BACKUPS",
"type": "number",
"defaultValue": "5",
"min": 1
}
]
},
{
"title": "%arc.postgres.settings.resource.title%",
"fields": [
{
"label": "%arc.postgres.server.group.cores.request%",
"description": "%arc.postgres.server.group.cores.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_REQUEST",
"type": "number",
"min": 1
},
{
"label": "%arc.postgres.server.group.cores.limit%",
"description": "%arc.postgres.server.group.cores.description%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_LIMIT",
"type": "number",
"min": 1
},
{
"label": "%arc.postgres.server.group.memory.request%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_REQUEST",
"type": "number",
"min": 0.25
},
{
"label": "%arc.postgres.server.group.memory.limit%",
"variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_LIMIT",
"type": "number",
"min": 0.25
}
]
}
]
}
]
},
"requiredTools": [
{
"name": "kubectl"
},
{
"name": "azdata",
"version": "20.2.0"
}
],
"when": "true"
}
],
"agreement": {
"template": "%arc.agreement%",
"links": [
{
"text": "%microsoft.agreement.privacy.statement%",
"url": "https://go.microsoft.com/fwlink/?LinkId=853010"
},
{
"text": "%arc.agreement.postgres.terms.conditions%",
"url": "https://go.microsoft.com/fwlink/?linkid=2045708"
}
]
}
}
]
},
"dependencies": {
"request": "^2.88.0",
"uuid": "^8.3.0",
"vscode-nls": "^4.1.2"
},
"devDependencies": {
"@types/mocha": "^5.2.5",
"@types/node": "^12.11.7",
"@types/request": "^2.48.3",
"@types/sinon": "^9.0.4",
"@types/uuid": "^8.3.0",
"mocha": "^5.2.0",
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"should": "^13.2.3",
"sinon": "^9.0.2",
"typemoq": "2.1.0",
"vscodetestcover": "^1.1.0"
}
}