From 6fb191b07ca921271e93dab00c032ca1e1353411 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Sun, 28 Nov 2021 22:43:24 +0800 Subject: [PATCH 01/63] WIP: current develop --- package.json | 10 ++ src/main/commands/LocateWorkNodeCommand.ts | 101 +++++++++++++++++++++ src/main/commands/index.ts | 3 + 3 files changed, 114 insertions(+) create mode 100644 src/main/commands/LocateWorkNodeCommand.ts diff --git a/package.json b/package.json index 71cb73ff..b2f08401 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,11 @@ "when": "extensionActivated && !Nocalhost.visibleTree", "group": "navigation" }, + { + "command": "Nocalhost.LocateWorkNode", + "when": "extensionActivated && view == Nocalhost", + "group": "navigation" + }, { "command": "Nocalhost.addKubeconfig", "when": "extensionActivated && view == Nocalhost", @@ -388,6 +393,11 @@ "alt": "Add Cluster", "icon": "$(add)" }, + { + "command": "Nocalhost.LocateWorkNode", + "title": "Locate to work node", + "icon": "$(collapse-all)" + }, { "command": "Nocalhost.installAppSource", "title": "Install App", diff --git a/src/main/commands/LocateWorkNodeCommand.ts b/src/main/commands/LocateWorkNodeCommand.ts new file mode 100644 index 00000000..8ae1f595 --- /dev/null +++ b/src/main/commands/LocateWorkNodeCommand.ts @@ -0,0 +1,101 @@ +import * as assert from "assert"; +import * as vscode from "vscode"; + +import NocalhostAppProvider from "../appProvider"; +import { DISASSOCIATE_ASSOCIATE } from "../component/syncManage"; +import { Associate, associateQuery } from "../ctl/nhctl"; +import { appTreeView } from "../extension"; +import host from "../host"; +import { BaseNocalhostNode } from "../nodes/types/nodeType"; +import state from "../state"; +import logger from "../utils/logger"; + +export default class LocateWorkNodeCommand { + constructor( + context: vscode.ExtensionContext, + private appTreeProvider: NocalhostAppProvider + ) { + context.subscriptions.push( + vscode.commands.registerCommand( + "Nocalhost.LocateWorkNode", + this.getResourceNode.bind(this) + ) + ); + } + + async getResourceNode() { + const associate = await this.getAssociate(); + + const { + svc_pack: { svc, svc_type, app, ns }, + server, + } = associate; + + const child: BaseNocalhostNode = await host.withProgress( + { + title: "Get debugging configuration...", + cancellable: true, + }, + async (_, token) => { + return [ + server, + ns, + app === "default.application" ? "default" : app, + "Workloads", + svc_type + "s", + svc, + ] + .reduce(async (parent, label) => { + if (token.isCancellationRequested) { + return null; + } + + const children = await (await parent).getChildren(); + + const child = children.find( + (item) => item.label.toLowerCase() === label.toLowerCase() + ); + + return child; + }, Promise.resolve(this.appTreeProvider as Pick)) + .catch((error) => { + logger.error("getResourceNode", error); + + this.disassociate(associate); + + return null; + }); + } + ); + const node = state.getNode(child.getNodeStateId()); + await appTreeView.reveal(node, { + expand: true, + select: false, + focus: true, + }); + } + async disassociate(associate: Associate.QueryResult) { + const result = await host.showErrorMessage( + "Failed to get work node, whether to disassociate the workload? ", + "Disassociate", + "Cancel" + ); + + if (result === "Disassociate") { + vscode.commands.executeCommand(DISASSOCIATE_ASSOCIATE, { + associate, + currentPath: host.getCurrentRootPath(), + }); + } + } + + async getAssociate() { + const queryResult = (await associateQuery({ + current: true, + })) as Associate.QueryResult; + + assert(queryResult, "No associated workload found, please associate"); + + return queryResult; + } +} diff --git a/src/main/commands/index.ts b/src/main/commands/index.ts index c48ac9ed..b64b5655 100644 --- a/src/main/commands/index.ts +++ b/src/main/commands/index.ts @@ -45,6 +45,8 @@ import OpenProjectCommand from "./OpenProjectCommand"; import EditManifestCommand from "./EditManifestCommand"; import ResetPluginCommand from "./ResetPluginCommand"; import StartCopyDevModeCommand from "./StartCopyDevModeCommand"; +import LocateWorkNodeCommand from "./LocateWorkNodeCommand"; + export default function initCommands( context: vscode.ExtensionContext, appTreeProvider: NocalhostAppProvider @@ -98,6 +100,7 @@ export default function initCommands( new DeleteKubeConfigCommand(context); new AddKubeconfig(context); + new LocateWorkNodeCommand(context, appTreeProvider); new ClearServerCluster(context); new InstallAppSourceCommand(context); From e50d343cbdf5c316917e107f1a14e575f4b93adb Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 10 Dec 2021 15:16:09 +0800 Subject: [PATCH 02/63] feat: supports linux arm64 Signed-off-by: zhangjian --- src/main/ctl/nhctl/cli.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/ctl/nhctl/cli.ts b/src/main/ctl/nhctl/cli.ts index f162cdef..5a95aab6 100644 --- a/src/main/ctl/nhctl/cli.ts +++ b/src/main/ctl/nhctl/cli.ts @@ -1297,19 +1297,25 @@ export async function reconnectSync( }); } +function getArch() { + let arch = os.arch(); + + if (arch !== "arm64") { + arch = "amd64"; + } + + return arch; +} + function getNhctlPath(version: string) { let name = ""; let destinationPath = path.resolve(PLUGIN_TEMP_DIR, "nhctl"); let binPath = path.resolve(NH_BIN, "nhctl"); if (host.isLinux()) { - name = `nhctl-linux-amd64`; + name = `nhctl-linux-${getArch()}`; } else if (host.isMac()) { - if (os.arch() === "arm64") { - name = `nhctl-darwin-arm64`; - } else { - name = `nhctl-darwin-amd64`; - } + name = `nhctl-darwin-${getArch()}`; } else if (host.isWindow()) { name = `nhctl-windows-amd64.exe`; destinationPath = path.resolve(PLUGIN_TEMP_DIR, "nhctl.exe"); From 17797551dd08a4fb877d4629ba9b3950b45d3a0d Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 20 Dec 2021 14:10:06 +0800 Subject: [PATCH 03/63] style: Remove get confg when getting app resources Signed-off-by: zhangjian --- images/icon/setting_warning.svg | 1 - package.json | 22 ++++--------- src/main/commands/UpgradeCommand.ts | 19 ------------ .../commands/WriteServiceConfigCommand.ts | 15 --------- src/main/commands/constants.ts | 1 - src/main/commands/index.ts | 2 -- src/main/debug/index.ts | 17 +++++----- src/main/nodes/types/nodeType.ts | 31 +++++++++---------- .../workloads/KubernetesResourceDevMode.ts | 28 +++-------------- .../ControllerResourceNode.ts | 3 +- .../daemonSet/DaemonSet.ts | 9 +----- .../deployment/Deployment.ts | 6 +--- .../statefulSet/StatefulSet.ts | 6 +--- src/renderer/constants/index.ts | 1 - 14 files changed, 36 insertions(+), 125 deletions(-) delete mode 100644 images/icon/setting_warning.svg delete mode 100644 src/main/commands/WriteServiceConfigCommand.ts diff --git a/images/icon/setting_warning.svg b/images/icon/setting_warning.svg deleted file mode 100644 index d998c934..00000000 --- a/images/icon/setting_warning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/package.json b/package.json index 52ea73a5..c0d3581c 100644 --- a/package.json +++ b/package.json @@ -124,17 +124,17 @@ "view/item/context": [ { "command": "Nocalhost.openProject", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(info|warn)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev/i", "group": "developing@1" }, { "command": "Nocalhost.run", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(info|warn)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev/i", "group": "developing@3" }, { "command": "Nocalhost.debug", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(info|warn)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev/i", "group": "developing@2" }, { @@ -179,12 +179,12 @@ }, { "command": "Nocalhost.startDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(info|warn)-(?!(developing|starting|develop_starting))/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(?!(developing|starting|develop_starting))/i", "group": "inline@0" }, { "command": "Nocalhost.startCopyDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|daemonSet|pod)-dev-(info|warn)-(?!(developing-duplicate|developing-replace-self|starting))/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|daemonSet|pod)-dev-(?!(developing-duplicate|developing-replace-self|starting))/i", "group": "navigation" }, { @@ -194,12 +194,7 @@ }, { "command": "Nocalhost.editServiceConfig", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-info/i", - "group": "inline@1" - }, - { - "command": "Nocalhost.writeServiceConfig", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-warn/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev/i", "group": "inline@1" }, { @@ -480,11 +475,6 @@ "title": "%viewDevConfig%", "icon": "images/icon/setting_normal.svg" }, - { - "command": "Nocalhost.writeServiceConfig", - "title": "%Config%", - "icon": "images/icon/setting_warning.svg" - }, { "command": "Nocalhost.EditAppConfig", "title": "%developConfig%", diff --git a/src/main/commands/UpgradeCommand.ts b/src/main/commands/UpgradeCommand.ts index 058b1a2c..37d73a77 100644 --- a/src/main/commands/UpgradeCommand.ts +++ b/src/main/commands/UpgradeCommand.ts @@ -193,25 +193,6 @@ export default class UpgradeCommand implements ICommand { return configs; } - private async endAllPortForward(appNode: AppNode) { - const appInfo = await appNode.getApplicationInfo(); - const serivces = appInfo.svcProfile; - for (let i = 0; i < serivces.length; i++) { - const service = serivces[i]; - const portForwardList = service.devPortForwardList || []; - for (let j = 0; j < portForwardList.length; j++) { - await nhctl.endPortForward({ - kubeConfigPath: appNode.getKubeConfigPath(), - namespace: appNode.namespace, - appName: appNode.name, - workloadName: service.actualName, - port: `${portForwardList[j].localport}:${portForwardList[j].remoteport}`, - resourceType: service.rawConfig.serviceType, - }); - } - } - } - private async startPortForward(appNode: AppNode) { const nocalhostConfig = await appNode.getNocalhostConfig(); if (nocalhostConfig && nocalhostConfig.services) { diff --git a/src/main/commands/WriteServiceConfigCommand.ts b/src/main/commands/WriteServiceConfigCommand.ts deleted file mode 100644 index 4b51ce0b..00000000 --- a/src/main/commands/WriteServiceConfigCommand.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as vscode from "vscode"; -import ICommand from "./ICommand"; -import { WRITE_SERVICE_CONFIG, EDIT_SERVICE_CONFIG } from "./constants"; -import registerCommand from "./register"; -import { ControllerResourceNode } from "../nodes/workloads/controllerResources/ControllerResourceNode"; - -export default class WriteServiceConfigCommand implements ICommand { - command: string = WRITE_SERVICE_CONFIG; - constructor(context: vscode.ExtensionContext) { - registerCommand(context, this.command, false, this.execCommand.bind(this)); - } - async execCommand(node: ControllerResourceNode) { - vscode.commands.executeCommand(EDIT_SERVICE_CONFIG, node); - } -} diff --git a/src/main/commands/constants.ts b/src/main/commands/constants.ts index c155ba4c..e02211e6 100644 --- a/src/main/commands/constants.ts +++ b/src/main/commands/constants.ts @@ -12,7 +12,6 @@ export const SHOW_CONTEXT_GLOBAL = "Nocalhost.showContextGlobal"; export const RESET_PLUGIN = "Nocalhost.resetPlugin"; export const EDIT_SERVICE_CONFIG = "Nocalhost.editServiceConfig"; -export const WRITE_SERVICE_CONFIG = "Nocalhost.writeServiceConfig"; export const EDIT_APP_CONFIG = "Nocalhost.EditAppConfig"; diff --git a/src/main/commands/index.ts b/src/main/commands/index.ts index 67e25a0d..222e112a 100644 --- a/src/main/commands/index.ts +++ b/src/main/commands/index.ts @@ -18,7 +18,6 @@ import StartDevModeCommand from "./StartDevModeCommand"; import SwitchEndPointCommand from "./SwitchEndPointCommand"; import UninstallCommand from "./UninstallCommand"; import ViewKubeConfigCommand from "./ViewKubeConfig"; -import WriteServiceConfigCommand from "./WriteServiceConfigCommand"; import LoadWorkloadsCommand from "./LoadWorkloadsCommand"; import ApplyKubernetesObjectCommand from "./ApplyKubernetesObjectCommand"; import DeleteKubernetesObjectCommand from "./DeleteKubernetesObjectCommand"; @@ -54,7 +53,6 @@ export default function initCommands( new ClearLocalCluster(context); new ClustersViewCommand(context); new EditServiceConfigCommand(context); - new WriteServiceConfigCommand(context); new StartDevModeCommand(context); new EndDevModeCommand(context); diff --git a/src/main/debug/index.ts b/src/main/debug/index.ts index 9db282df..7bd08675 100644 --- a/src/main/debug/index.ts +++ b/src/main/debug/index.ts @@ -140,17 +140,14 @@ export async function waitForSync(node: ControllerResourceNode, name: string) { } export async function getContainer(node: ControllerResourceNode) { - let serviceConfig = await node.config; + let serviceConfig = (await ConfigService.getAppConfig( + node.getKubeConfigPath(), + node.getNameSpace(), + node.getAppName(), + node.name, + node.resourceType + )) as NocalhostServiceConfig; - if (!serviceConfig) { - serviceConfig = (await ConfigService.getAppConfig( - node.getKubeConfigPath(), - node.getNameSpace(), - node.getAppName(), - node.name, - node.resourceType - )) as NocalhostServiceConfig; - } const containers = (serviceConfig && serviceConfig.containers) || []; let container: ContainerConfig; diff --git a/src/main/nodes/types/nodeType.ts b/src/main/nodes/types/nodeType.ts index 513d5b59..1dc5a290 100644 --- a/src/main/nodes/types/nodeType.ts +++ b/src/main/nodes/types/nodeType.ts @@ -12,23 +12,22 @@ export interface AppInfo { installed: boolean; resourcePath: string; } - +interface RawConfig { + name: string; + serviceType: string; + gitUrl: string; + devContainerImage: string; + syncDirs: Array; + persistentVolumeDirs: Array; + devContainerShell: string; + ignores: Array; + devContainerResources: any; + devPorts: Array; + dependPodsLabelSelector: Array; + syncFilePattern: []; + ignoreFilePattern: []; +} export interface SvcProfile { - rawConfig: { - name: string; - serviceType: string; - gitUrl: string; - devContainerImage: string; - syncDirs: Array; - persistentVolumeDirs: Array; - devContainerShell: string; - ignores: Array; - devContainerResources: any; - devPorts: Array; - dependPodsLabelSelector: Array; - syncFilePattern: []; - ignoreFilePattern: []; - }; readyReplicas: number; annotationsconfigloaded?: boolean; cmconfigloaded: boolean; diff --git a/src/main/nodes/workloads/KubernetesResourceDevMode.ts b/src/main/nodes/workloads/KubernetesResourceDevMode.ts index f3ddea4d..1088d5ac 100644 --- a/src/main/nodes/workloads/KubernetesResourceDevMode.ts +++ b/src/main/nodes/workloads/KubernetesResourceDevMode.ts @@ -1,12 +1,9 @@ +import * as vscode from "vscode"; + import { NhctlCommand } from "../../ctl/nhctl"; import state from "../../state"; import { INhCtlGetResult, IResourceStatus } from "../../domain"; -import * as vscode from "vscode"; -import ConfigService, { - NocalhostConfig, - NocalhostServiceConfig, -} from "../../service/configService"; import { BaseNocalhostNode } from "../types/nodeType"; export const kubernetesResourceDevMode = (resourceNode: any) => ( @@ -20,33 +17,22 @@ export const kubernetesResourceDevMode = (resourceNode: any) => ( ): Promise> { let obj = state.getData(this.getNodeStateId()) as { resource: INhCtlGetResult[]; - appConfig: NocalhostConfig; }; if (!obj) { obj = (await this.updateData(true)) as { resource: INhCtlGetResult[]; - appConfig: NocalhostConfig; }; } - const { resource, appConfig } = obj; + const { resource } = obj; const result = (resource || []).map((item) => { const info = item.info; const status = info.status as IResourceStatus; let description = item.description; - const nocalhostServices = appConfig.services || []; - let nocalhostService: NocalhostServiceConfig | undefined | null; - for (let i = 0; i < nocalhostServices.length; i++) { - if (nocalhostServices[i].name === item.info.metadata.name) { - nocalhostService = nocalhostServices[i]; - break; - } - } const node = new resourceNode( this as BaseNocalhostNode, info, status.conditions || ((status as unknown) as string), - description, - nocalhostService + description ); return node; }); @@ -65,14 +51,8 @@ export const kubernetesResourceDevMode = (resourceNode: any) => ( .addArgument("-o", "json") .exec()) || []; - const appConfig = await ConfigService.getAppConfig( - appNode.getKubeConfigPath(), - appNode.namespace, - appNode.name - ); const obj = { resource: list, - appConfig, }; state.setData(this.getNodeStateId(), obj, isInit); diff --git a/src/main/nodes/workloads/controllerResources/ControllerResourceNode.ts b/src/main/nodes/workloads/controllerResources/ControllerResourceNode.ts index b016d11c..7aedb406 100644 --- a/src/main/nodes/workloads/controllerResources/ControllerResourceNode.ts +++ b/src/main/nodes/workloads/controllerResources/ControllerResourceNode.ts @@ -39,8 +39,7 @@ export abstract class ControllerResourceNode extends KubernetesResourceNode { public parent: BaseNocalhostNode, public resource: IK8sResource, public conditionsStatus?: Array | string, - public svcProfile?: SvcProfile | undefined | null, - public config?: NocalhostServiceConfig | undefined | null + public svcProfile?: SvcProfile | undefined | null ) { super(); this.label = resource.metadata.name; diff --git a/src/main/nodes/workloads/controllerResources/daemonSet/DaemonSet.ts b/src/main/nodes/workloads/controllerResources/daemonSet/DaemonSet.ts index bc606ab0..35baef3a 100644 --- a/src/main/nodes/workloads/controllerResources/daemonSet/DaemonSet.ts +++ b/src/main/nodes/workloads/controllerResources/daemonSet/DaemonSet.ts @@ -1,10 +1,6 @@ import * as vscode from "vscode"; -import state from "../../../../state"; import host from "../../../../host"; -import * as nhctl from "../../../../ctl/nhctl"; import { DAEMON_SET } from "../../../nodeContants"; -import { Resource, ResourceStatus } from "../../../types/resourceType"; -import { DeploymentStatus, BaseNocalhostNode } from "../../../types/nodeType"; import { ControllerResourceNode } from "../ControllerResourceNode"; export class DaemonSet extends ControllerResourceNode { public type = DAEMON_SET; @@ -19,10 +15,7 @@ export class DaemonSet extends ControllerResourceNode { const [icon, label, mode] = await this.getIconAndLabelByStatus(status); treeItem.iconPath = icon; treeItem.label = label; - const check = await this.checkConfig(); - treeItem.contextValue = `${treeItem.contextValue}-dev-${ - check ? "info" : "warn" - }-${status}-${mode}`; + treeItem.contextValue = `${treeItem.contextValue}-dev-${status}-${mode}`; if (this.firstRender) { this.firstRender = false; } diff --git a/src/main/nodes/workloads/controllerResources/deployment/Deployment.ts b/src/main/nodes/workloads/controllerResources/deployment/Deployment.ts index 662b41b2..3488903f 100644 --- a/src/main/nodes/workloads/controllerResources/deployment/Deployment.ts +++ b/src/main/nodes/workloads/controllerResources/deployment/Deployment.ts @@ -1,7 +1,6 @@ import * as vscode from "vscode"; import { DEPLOYMENT } from "../../../nodeContants"; import { ControllerResourceNode } from "../ControllerResourceNode"; -import { checkWorkloadConfig } from "../../../../utils/checkConfig"; import logger from "../../../../utils/logger"; export class Deployment extends ControllerResourceNode { @@ -16,10 +15,7 @@ export class Deployment extends ControllerResourceNode { const [icon, label, mode] = await this.getIconAndLabelByStatus(status); treeItem.iconPath = icon; treeItem.label = label; - const check = checkWorkloadConfig(await this.config); - treeItem.contextValue = `${treeItem.contextValue}-dev-${ - check ? "info" : "warn" - }-${status}-${mode}`; + treeItem.contextValue = `${treeItem.contextValue}-dev-${status}-${mode}`; } catch (e) { logger.error("deployment getTreeItem"); logger.error(e); diff --git a/src/main/nodes/workloads/controllerResources/statefulSet/StatefulSet.ts b/src/main/nodes/workloads/controllerResources/statefulSet/StatefulSet.ts index 3adeb108..6954e649 100644 --- a/src/main/nodes/workloads/controllerResources/statefulSet/StatefulSet.ts +++ b/src/main/nodes/workloads/controllerResources/statefulSet/StatefulSet.ts @@ -5,7 +5,6 @@ import { STATEFUL_SET } from "../../../nodeContants"; import { IResourceStatus } from "../../../../domain"; import { ControllerResourceNode } from "../ControllerResourceNode"; import logger from "../../../../utils/logger"; -import { checkWorkloadConfig } from "../../../../utils/checkConfig"; export class StatefulSet extends ControllerResourceNode { public type = STATEFUL_SET; @@ -20,10 +19,7 @@ export class StatefulSet extends ControllerResourceNode { const [icon, label, mode] = await this.getIconAndLabelByStatus(status); treeItem.iconPath = icon; treeItem.label = label; - const check = checkWorkloadConfig(await this.config); - treeItem.contextValue = `${treeItem.contextValue}-dev-${ - check ? "info" : "warn" - }-${status}-${mode}`; + treeItem.contextValue = `${treeItem.contextValue}-dev-${status}-${mode}`; if (this.firstRender) { this.firstRender = false; } diff --git a/src/renderer/constants/index.ts b/src/renderer/constants/index.ts index 8a7cf52b..d2a00bf1 100644 --- a/src/renderer/constants/index.ts +++ b/src/renderer/constants/index.ts @@ -11,7 +11,6 @@ export const enum MessageActionType { export const enum Commands { refresh = "Nocalhost.refresh", editServiceConfig = "Nocalhost.editServiceConfig", - writeServiceConfig = "Nocalhost.writeServiceConfig", startDevMode = "Nocalhost.startDevMode", endDevMode = "Nocalhost.endDevMode", reset = "Nocalhost.reset", From 07b42422da1d75858097b792ff82669990d6ae16 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 20 Dec 2021 14:15:32 +0800 Subject: [PATCH 04/63] WIP: remove config get Signed-off-by: zhangjian --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0d3581c..f5d0f75d 100644 --- a/package.json +++ b/package.json @@ -189,7 +189,7 @@ }, { "command": "Nocalhost.endDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(.+?)-(developing|develop_starting)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod)-dev-(developing|develop_starting)/i", "group": "inline@0" }, { From 3fc0c84fa544842dd2163d9cb7c3715db7a45a30 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 7 Jan 2022 15:07:54 +0800 Subject: [PATCH 05/63] style: Modify no cluster prompt Signed-off-by: zhangjian --- src/main/clusters/AccountCluster.ts | 4 ++-- src/main/nodes/KubeConfigNode.ts | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/clusters/AccountCluster.ts b/src/main/clusters/AccountCluster.ts index 05d69f89..cd9cfbac 100644 --- a/src/main/clusters/AccountCluster.ts +++ b/src/main/clusters/AccountCluster.ts @@ -130,9 +130,9 @@ export default class AccountClusterService { if (!Array.isArray(serviceAccounts) || serviceAccounts.length === 0) { const msg = `no cluster found for ${newAccountCluser.loginInfo.baseUrl} ${newAccountCluser.loginInfo.username}`; - logger.error(msg); - throw new Error(msg); + + throw Error("No clusters"); } const applications: IV2ApplicationInfo[] = await accountClusterService.getV2Application(); diff --git a/src/main/nodes/KubeConfigNode.ts b/src/main/nodes/KubeConfigNode.ts index f45ee7c6..ef1611d0 100644 --- a/src/main/nodes/KubeConfigNode.ts +++ b/src/main/nodes/KubeConfigNode.ts @@ -136,16 +136,22 @@ export class KubeConfigNode extends NocalhostFolderNode { if (this.clusterSource === ClusterSource.server) { const { username, baseUrl } = this.accountClusterService.loginInfo; - treeItem.tooltip = `${this.label} [${username} on ${baseUrl}]`; + treeItem.tooltip = `${username} [${baseUrl}]`; } treeItem.description = "Active"; treeItem.iconPath = resolveVSCodeUri("cluster_active.svg"); if (this.state.code !== 200) { - treeItem.tooltip = this.state.info; treeItem.iconPath = resolveVSCodeUri("cluster_warning.svg"); - treeItem.description = "Unable to Connect"; + + if (this.state.info !== "No clusters") { + treeItem.tooltip = this.state.info; + treeItem.description = "Unable to Connect"; + } else { + treeItem.label = this.accountClusterService.loginInfo.username; + treeItem.description = "Cluster not found"; + } } return Promise.resolve(treeItem); From 29e3047199aed53b798e703df22b42066fad01f4 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 7 Jan 2022 15:23:11 +0800 Subject: [PATCH 06/63] WIP: remove config get Signed-off-by: zhangjian --- .../nodes/customerResources/CrdResources.ts | 12 ++----- src/main/utils/checkConfig.ts | 32 ------------------- 2 files changed, 3 insertions(+), 41 deletions(-) delete mode 100644 src/main/utils/checkConfig.ts diff --git a/src/main/nodes/customerResources/CrdResources.ts b/src/main/nodes/customerResources/CrdResources.ts index 667c4ee7..4eaba2bc 100644 --- a/src/main/nodes/customerResources/CrdResources.ts +++ b/src/main/nodes/customerResources/CrdResources.ts @@ -1,11 +1,9 @@ import * as vscode from "vscode"; import { ControllerResourceNode } from "../workloads/controllerResources/ControllerResourceNode"; -import { checkWorkloadConfig } from "../../utils/checkConfig"; import logger from "../../utils/logger"; import { BaseNocalhostNode, SvcProfile } from "../types/nodeType"; import { IK8sResource, IStatus } from "../../domain/IK8sResource"; -import { NocalhostServiceConfig } from "../../service/configService"; export class CrdResources extends ControllerResourceNode { public type = "CRD_RESOURCES"; @@ -15,10 +13,9 @@ export class CrdResources extends ControllerResourceNode { public parent: BaseNocalhostNode, public resource: IK8sResource, public conditionsStatus?: Array | string, - public svcProfile?: SvcProfile | undefined | null, - public config?: NocalhostServiceConfig | undefined | null + public svcProfile?: SvcProfile | undefined | null ) { - super(parent, resource, conditionsStatus, svcProfile, config); + super(parent, resource, conditionsStatus, svcProfile); this.resourceType = this.parent.resourceType; } @@ -30,10 +27,7 @@ export class CrdResources extends ControllerResourceNode { const [icon, label, mode] = await this.getIconAndLabelByStatus(status); treeItem.iconPath = icon; treeItem.label = label; - const check = checkWorkloadConfig(await this.config); - treeItem.contextValue = `workload-crd-resources-dev-${ - check ? "info" : "warn" - }-${status}-${mode}`; + treeItem.contextValue = `workload-crd-resources-dev-info-${status}-${mode}`; } catch (e) { logger.error("crd-resources getTreeItem"); logger.error(e); diff --git a/src/main/utils/checkConfig.ts b/src/main/utils/checkConfig.ts deleted file mode 100644 index 77530cef..00000000 --- a/src/main/utils/checkConfig.ts +++ /dev/null @@ -1,32 +0,0 @@ -import validate from "./validate"; - -const workLoadSchema = { - type: "object", - required: ["containers"], - properties: { - containers: { - type: "array", - items: { - type: "object", - required: ["dev"], - properties: { - dev: { - type: "object", - required: ["image"], - properties: { - image: { - type: "string", - minLength: 1, - }, - }, - }, - }, - }, - minItems: 1, - }, - }, -}; - -export const checkWorkloadConfig = (config = {}, schema = workLoadSchema) => { - return validate(config, schema); -}; From d554b064facd1d0ed12b8503f6913237f514e9fb Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 7 Jan 2022 16:24:19 +0800 Subject: [PATCH 07/63] WIP Signed-off-by: zhangjian --- package.json | 37 ++++++++----------- .../nodes/customerResources/CrdResources.ts | 2 +- .../ControllerResourceNode.ts | 4 -- .../controllerResources/cronJob/CronJob.ts | 5 +-- .../workloads/controllerResources/job/Job.ts | 5 +-- src/main/nodes/workloads/pod/Pod.ts | 7 ++-- 6 files changed, 22 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 72df7439..c2df75a8 100644 --- a/package.json +++ b/package.json @@ -132,17 +132,17 @@ "view/item/context": [ { "command": "Nocalhost.openProject", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?vpn_)/i", "group": "developing@1" }, { "command": "Nocalhost.run", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "developing@3" }, { "command": "Nocalhost.debug", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "developing@2" }, { @@ -182,32 +182,27 @@ }, { "command": "Nocalhost.cleanPvc", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "2" }, { "command": "Nocalhost.startDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!(developing|starting|develop_starting|vpn_))/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!(developing|starting|develop_starting|vpn_))/i", "group": "inline@0" }, { "command": "Nocalhost.startCopyDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!(developing-duplicate|developing-replace-self|starting|vpn_healthy|vpn_unhealthy))/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!(developing-duplicate|developing-replace-self|starting|vpn_healthy|vpn_unhealthy))/i", "group": "navigation" }, { "command": "Nocalhost.endDevMode", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(.+?)-(developing|develop_starting)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(developing|develop_starting)/i", "group": "inline@0" }, { "command": "Nocalhost.editServiceConfig", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-info-(?!vpn_)/i", - "group": "inline@1" - }, - { - "command": "Nocalhost.writeServiceConfig", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-warn-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "inline@1" }, { @@ -217,17 +212,17 @@ }, { "command": "Nocalhost.exec", - "when": "viewItem =~ /^workload-(deployment|statefulSet|daemonSet|pod-Running|daemonSet|cronjob|job|pod|crd-resources)-dev-(info|warn)-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|daemonSet|pod-Running|daemonSet|cronjob|job|pod|crd-resources)-dev-(?!vpn_)/i", "group": "3" }, { "command": "Nocalhost.copyTerminal", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|pod-Running|crd-resources)-dev-(info|warn)-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|pod-Running|crd-resources)-dev-(?!vpn_)/i", "group": "3" }, { "command": "Nocalhost.reset", - "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(info|warn)-(?!vpn_)/i", + "when": "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "2" }, { @@ -237,18 +232,18 @@ }, { "command": "Nocalhost.log", - "when": "viewItem =~ /^(viewer:|)workload-(deployment|statefulSet|daemonSet|job|cronJob|pod|crd-resources)-dev-(info|warn)-(?!vpn_)/i", + "when": "viewItem =~ /^(viewer:|)workload-(deployment|statefulSet|daemonSet|job|cronJob|pod|crd-resources)-dev-(?!vpn_)/i", "group": "1" }, { "command": "Nocalhost.editManifest", - "when": "viewItem =~ /^workload-(deployment|statefulSet|daemonSet|job|cronJob|pod|crd-resources)-dev-(info|warn)-(?!vpn_).*(? Date: Sun, 9 Jan 2022 11:58:26 +0800 Subject: [PATCH 08/63] WIP: current develop Signed-off-by: zhangjian --- src/main/commands/LocateWorkNodeCommand.ts | 6 +----- src/main/nodes/KubeConfigNode.ts | 15 ++++++--------- src/main/nodes/NocalhostRootNode.ts | 3 --- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/main/commands/LocateWorkNodeCommand.ts b/src/main/commands/LocateWorkNodeCommand.ts index 8ae1f595..eb1f57e7 100644 --- a/src/main/commands/LocateWorkNodeCommand.ts +++ b/src/main/commands/LocateWorkNodeCommand.ts @@ -68,11 +68,7 @@ export default class LocateWorkNodeCommand { } ); const node = state.getNode(child.getNodeStateId()); - await appTreeView.reveal(node, { - expand: true, - select: false, - focus: true, - }); + await appTreeView.reveal(node); } async disassociate(associate: Associate.QueryResult) { const result = await host.showErrorMessage( diff --git a/src/main/nodes/KubeConfigNode.ts b/src/main/nodes/KubeConfigNode.ts index f45ee7c6..68bfc540 100644 --- a/src/main/nodes/KubeConfigNode.ts +++ b/src/main/nodes/KubeConfigNode.ts @@ -1,6 +1,6 @@ import * as vscode from "vscode"; import { orderBy } from "lodash"; -import { HELM_NH_CONFIG_DIR } from "../constants"; +import { HELM_NH_CONFIG_DIR, NOCALHOST } from "../constants"; import state from "../state"; import AccountClusterService from "../clusters/AccountCluster"; import { ID_SPLIT } from "./nodeContants"; @@ -8,7 +8,6 @@ import * as path from "path"; import { ClusterSource } from "../common/define"; import { BaseNocalhostNode } from "./types/nodeType"; import { NocalhostFolderNode } from "./abstract/NocalhostFolderNode"; -import { NocalhostRootNode } from "./NocalhostRootNode"; import { resolveVSCodeUri, writeFileLock } from "../utils/fileUtil"; import { DevSpaceNode } from "./DevSpaceNode"; import { IUserInfo, IDevSpaceInfo, IV2ApplicationInfo } from "../domain"; @@ -16,12 +15,13 @@ import { ClustersState } from "../clusters"; export class KubeConfigNode extends NocalhostFolderNode { public label: string; + parent: BaseNocalhostNode = null; + public type = "KUBECONFIG"; public devSpaceInfos: IDevSpaceInfo[]; public userInfo: IUserInfo; public clusterSource: ClusterSource; public applications: Array; - public parent: NocalhostRootNode; public installedApps: { name: string; type: string; @@ -33,7 +33,6 @@ export class KubeConfigNode extends NocalhostFolderNode { private state: ClustersState; constructor(props: { id: string; - parent: NocalhostRootNode; label: string; devSpaceInfos: IDevSpaceInfo[]; applications: Array; @@ -46,7 +45,6 @@ export class KubeConfigNode extends NocalhostFolderNode { super(); const { id, - parent, label, devSpaceInfos, applications, @@ -56,7 +54,6 @@ export class KubeConfigNode extends NocalhostFolderNode { accountClusterService, } = props; this.id = id; - this.parent = parent; this.clusterSource = clusterSource; this.label = label || (devSpaceInfos.length > 0 ? devSpaceInfos[0].namespace : ""); @@ -152,10 +149,10 @@ export class KubeConfigNode extends NocalhostFolderNode { } getNodeStateId(): string { - return `${this.id}${this.parent.getNodeStateId()}${ID_SPLIT}${this.label}`; + return `${this.id}${NOCALHOST}${ID_SPLIT}${this.label}`; } - getParent(): NocalhostRootNode { - return this.parent; + getParent(): null { + return null; } } diff --git a/src/main/nodes/NocalhostRootNode.ts b/src/main/nodes/NocalhostRootNode.ts index 3d2725e4..e21e8e1f 100644 --- a/src/main/nodes/NocalhostRootNode.ts +++ b/src/main/nodes/NocalhostRootNode.ts @@ -320,7 +320,6 @@ export class NocalhostRootNode implements BaseNocalhostNode { public label: string = NOCALHOST; public type = ROOT; constructor(public parent: BaseNocalhostNode | null) { - console.log(AppNode); state.setNode(this.getNodeStateId(), this); } @@ -334,7 +333,6 @@ export class NocalhostRootNode implements BaseNocalhostNode { return new KubeConfigNode({ id: res.id, label: clusterName, - parent: this, kubeConfigPath: res.kubeConfigPath, devSpaceInfos: res.devSpaces, applications: res.applications, @@ -376,7 +374,6 @@ export class NocalhostRootNode implements BaseNocalhostNode { return new KubeConfigNode({ id: res.id, label: res.clusterName, - parent: this, kubeConfigPath: res.kubeConfigPath, devSpaceInfos: res.devSpaces, applications: res.applications, From 09c05ffe127b53c6ee7a37715d8b5ba9b0008782 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 10 Jan 2022 10:13:39 +0800 Subject: [PATCH 09/63] WIP Signed-off-by: zhangjian --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 301877f2..5bf9c178 100644 --- a/package.json +++ b/package.json @@ -413,8 +413,8 @@ }, { "command": "Nocalhost.LocateWorkNode", - "title": "Locate to work node", - "icon": "$(collapse-all)" + "title": "Locate Current Service", + "icon": "$(location)" }, { "command": "Nocalhost.installAppSource", From b9f2fabcd03c5b15b3d26f1071963ab2e60e78c5 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 10 Jan 2022 17:29:02 +0800 Subject: [PATCH 10/63] WIP Signed-off-by: zhangjian --- images/icon/locate.svg | 1 + package.json | 2 +- src/main/commands/LocateWorkNodeCommand.ts | 16 +++++++++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 images/icon/locate.svg diff --git a/images/icon/locate.svg b/images/icon/locate.svg new file mode 100644 index 00000000..857592a0 --- /dev/null +++ b/images/icon/locate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index 5bf9c178..f77ea45c 100644 --- a/package.json +++ b/package.json @@ -414,7 +414,7 @@ { "command": "Nocalhost.LocateWorkNode", "title": "Locate Current Service", - "icon": "$(location)" + "icon": "images/icon/locate.svg" }, { "command": "Nocalhost.installAppSource", diff --git a/src/main/commands/LocateWorkNodeCommand.ts b/src/main/commands/LocateWorkNodeCommand.ts index eb1f57e7..dea2831e 100644 --- a/src/main/commands/LocateWorkNodeCommand.ts +++ b/src/main/commands/LocateWorkNodeCommand.ts @@ -6,6 +6,7 @@ import { DISASSOCIATE_ASSOCIATE } from "../component/syncManage"; import { Associate, associateQuery } from "../ctl/nhctl"; import { appTreeView } from "../extension"; import host from "../host"; +import { DevSpaceNode } from "../nodes/DevSpaceNode"; import { BaseNocalhostNode } from "../nodes/types/nodeType"; import state from "../state"; import logger from "../utils/logger"; @@ -52,9 +53,13 @@ export default class LocateWorkNodeCommand { const children = await (await parent).getChildren(); - const child = children.find( - (item) => item.label.toLowerCase() === label.toLowerCase() - ); + const child = children.find((item) => { + if (item instanceof DevSpaceNode) { + return item.info.namespace === label.toLowerCase(); + } + + return item.label.toLowerCase() === label.toLowerCase(); + }); return child; }, Promise.resolve(this.appTreeProvider as Pick)) @@ -67,6 +72,11 @@ export default class LocateWorkNodeCommand { }); } ); + if (!child) { + this.disassociate(associate); + return; + } + const node = state.getNode(child.getNodeStateId()); await appTreeView.reveal(node); } From dc3ef5ed942ec5e02d78e3cab1933e83f4d8de5b Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 11:11:29 +0800 Subject: [PATCH 11/63] WIP: build version Signed-off-by: zhangjian --- scripts/prebuild.js | 61 +++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/scripts/prebuild.js b/scripts/prebuild.js index d1fba754..fe61a429 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -1,53 +1,54 @@ const fs = require("fs"); -const path = require("path"); const { execSync } = require("child_process"); +const path = require("path"); +const semver = require("semver"); const packageJsonUri = path.resolve(__dirname, "../package.json"); const packageJson = JSON.parse( fs.readFileSync(packageJsonUri, { encoding: "utf8" }) ); -const { NHCTL_VERSION, MINIMUNM_VERSION_REQUIREMENT } = process.env; - -let version = process.env.VERSION; - -if (version) { - console.log("> update the version to: ", version); +const { VERSION, NHCTL_VERSION, MINIMUNM_VERSION_REQUIREMENT } = process.env; - const matched = version.match(/\d+\.\d+\.\d+/); - if (!matched || matched.length !== 1) { - return; - } +// release +if (VERSION) { + const version = semver.valid(VERSION); - version = matched[0]; + if (version) { + console.log("> update the version to: ", version); - packageJson.version = version; - packageJson.nhctl.version = version; + packageJson.version = version; + packageJson.nhctl.version = version; - require("./updateChangelog"); + require("./updateChangelog"); + } else { + throw Error(`version Invalid: ${VERSION}`); + } } else { - let env = "alpha"; - let version = packageJson.version; + //build + let version = execSync(`git describe --tags --abbrev=0`) + .toString() + .split("\n")[0]; - if (process.env.CI === "true") { - env = "beta"; + version = semver.coerce(version); - const rev = execSync(`git rev-parse --short HEAD`) - .toString() - .split("\n")[0]; + version = semver.minVersion(`>${version}`); - packageJson.version = `${version}-${rev}-${env}`; - } else { - version = execSync(`git describe --tags --always --dirty="-${env}"`) - .toString() - .split("\n")[0]; + const rev = execSync(`git rev-parse --short HEAD`).toString().split("\n")[0]; - packageJson.version = version; - } + const identifier = process.env.CI === "true" ? "beta" : "alpha"; + + packageJson.version = `${version}-${identifier}.${rev}`; } if (MINIMUNM_VERSION_REQUIREMENT) { - packageJson.nhctl.serverVersion = MINIMUNM_VERSION_REQUIREMENT; + const version = semver.valid(MINIMUNM_VERSION_REQUIREMENT); + + if (version) { + packageJson.nhctl.serverVersion = version; + } else { + throw Error(`serverVersion Invalid: ${MINIMUNM_VERSION_REQUIREMENT}`); + } } if (NHCTL_VERSION) { From f0cc1cdc037f8d101d6fcf8847757c327c947b5f Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 11:43:28 +0800 Subject: [PATCH 12/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 2 ++ scripts/prebuild.js | 15 +++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 46f50e06..98a90303 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,6 +19,8 @@ jobs: - name: Check out code into the project's root directory uses: actions/checkout@v2 + with: + fetch-depth: 50 - uses: actions/cache@v2 id: yarn-cache diff --git a/scripts/prebuild.js b/scripts/prebuild.js index fe61a429..2c806d06 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -10,8 +10,12 @@ const packageJson = JSON.parse( const { VERSION, NHCTL_VERSION, MINIMUNM_VERSION_REQUIREMENT } = process.env; -// release +function getGitResult(cmd) { + return execSync(cmd).toString().split("\n")[0]; +} + if (VERSION) { + //formatted version number const version = semver.valid(VERSION); if (version) { @@ -25,16 +29,14 @@ if (VERSION) { throw Error(`version Invalid: ${VERSION}`); } } else { - //build - let version = execSync(`git describe --tags --abbrev=0`) - .toString() - .split("\n")[0]; + // get the latest tag and short commit and environment generation version number + let version = getGitResult(`git describe --tags --abbrev=0`); version = semver.coerce(version); version = semver.minVersion(`>${version}`); - const rev = execSync(`git rev-parse --short HEAD`).toString().split("\n")[0]; + const rev = getGitResult(`git rev-parse --short HEAD`); const identifier = process.env.CI === "true" ? "beta" : "alpha"; @@ -52,6 +54,7 @@ if (MINIMUNM_VERSION_REQUIREMENT) { } if (NHCTL_VERSION) { + // test nhctl version packageJson.nhctl.version = NHCTL_VERSION; } From 36af7f966cdce546968c3076647fa5fa79a639eb Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:42:17 +0800 Subject: [PATCH 13/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 2 +- scripts/prebuild.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98a90303..b3dced5e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: - name: Push to Coding Artifacts if: ${{ github.ref != 'refs/heads/dev' }} run: | - BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} + declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} BRANCH=${BRANCH/\//-} curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" diff --git a/scripts/prebuild.js b/scripts/prebuild.js index 2c806d06..040c14b5 100644 --- a/scripts/prebuild.js +++ b/scripts/prebuild.js @@ -11,7 +11,7 @@ const packageJson = JSON.parse( const { VERSION, NHCTL_VERSION, MINIMUNM_VERSION_REQUIREMENT } = process.env; function getGitResult(cmd) { - return execSync(cmd).toString().split("\n")[0]; + return execSync(cmd).toString().trim(); } if (VERSION) { From 2ee0815c5647fc52daf1709a729d0b0f4c3a6c6c Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:47:45 +0800 Subject: [PATCH 14/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 65 +++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b3dced5e..25467647 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,35 +20,36 @@ jobs: - name: Check out code into the project's root directory uses: actions/checkout@v2 with: - fetch-depth: 50 - - - uses: actions/cache@v2 - id: yarn-cache - with: - path: "**/node_modules" - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install project dependencies - if: steps.yarn-cache.outputs.cache-hit != 'true' - run: yarn - - - name: Build - env: - MINIMUNM_VERSION_REQUIREMENT: ${{ secrets.MINIMUNM_VERSION_REQUIREMENT }} - run: | - yarn build - mv nocalhost-*.vsix nocalhost.vsix - - - name: Push to Coding Artifacts - if: ${{ github.ref != 'refs/heads/dev' }} - run: | - declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} - BRANCH=${BRANCH/\//-} - curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" - - - name: Push to Coding Artifacts - if: ${{ github.ref == 'refs/heads/dev' }} - run: | - curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=dev" + fetch-depth: 0 + - name: test + run: + # - uses: actions/cache@v2 + # id: yarn-cache + # with: + # path: "**/node_modules" + # key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + # restore-keys: | + # ${{ runner.os }}-yarn- + + # - name: Install project dependencies + # if: steps.yarn-cache.outputs.cache-hit != 'true' + # run: yarn + + # - name: Build + # env: + # MINIMUNM_VERSION_REQUIREMENT: ${{ secrets.MINIMUNM_VERSION_REQUIREMENT }} + # run: | + # yarn build + # mv nocalhost-*.vsix nocalhost.vsix + + # - name: Push to Coding Artifacts + # if: ${{ github.ref != 'refs/heads/dev' }} + # run: | + # declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} + # BRANCH=${BRANCH/\//-} + # curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" + + # - name: Push to Coding Artifacts + # if: ${{ github.ref == 'refs/heads/dev' }} + # run: | + # curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=dev" From df517dfe56c81b93f4e8700e5bb25be7b94cb591 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:49:56 +0800 Subject: [PATCH 15/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 56 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 25467647..4bf8e6d4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ on: push: branches: [dev] pull_request: - branches: [dev] + branches: [chore/build-version] workflow_dispatch: jobs: @@ -21,35 +21,33 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 - - name: test - run: - # - uses: actions/cache@v2 - # id: yarn-cache - # with: - # path: "**/node_modules" - # key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - # restore-keys: | - # ${{ runner.os }}-yarn- + - uses: actions/cache@v2 + id: yarn-cache + with: + path: "**/node_modules" + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - # - name: Install project dependencies - # if: steps.yarn-cache.outputs.cache-hit != 'true' - # run: yarn + - name: Install project dependencies + if: steps.yarn-cache.outputs.cache-hit != 'true' + run: yarn - # - name: Build - # env: - # MINIMUNM_VERSION_REQUIREMENT: ${{ secrets.MINIMUNM_VERSION_REQUIREMENT }} - # run: | - # yarn build - # mv nocalhost-*.vsix nocalhost.vsix + - name: Build + env: + MINIMUNM_VERSION_REQUIREMENT: ${{ secrets.MINIMUNM_VERSION_REQUIREMENT }} + run: | + yarn build + mv nocalhost-*.vsix nocalhost.vsix - # - name: Push to Coding Artifacts - # if: ${{ github.ref != 'refs/heads/dev' }} - # run: | - # declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} - # BRANCH=${BRANCH/\//-} - # curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" + - name: Push to Coding Artifacts + if: ${{ github.ref != 'refs/heads/dev' }} + run: | + declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} + BRANCH=${BRANCH/\//-} + curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" - # - name: Push to Coding Artifacts - # if: ${{ github.ref == 'refs/heads/dev' }} - # run: | - # curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=dev" + - name: Push to Coding Artifacts + if: ${{ github.ref == 'refs/heads/dev' }} + run: | + curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=dev" From 4c4058c7bceba2673aa6347815ae81f868615ee3 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:50:47 +0800 Subject: [PATCH 16/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4bf8e6d4..881644c1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,9 +2,9 @@ name: build on: push: - branches: [dev] - pull_request: branches: [chore/build-version] + pull_request: + branches: [dev] workflow_dispatch: jobs: From 4abd966e3b25b46885642526c1df9197b02de36d Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:55:51 +0800 Subject: [PATCH 17/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 881644c1..9f0feaf7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: - name: Push to Coding Artifacts if: ${{ github.ref != 'refs/heads/dev' }} run: | - declare -l BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} + BRANCH=${GITHUB_HEAD_REF:-$(git rev-parse --abbrev-ref HEAD)} BRANCH=${BRANCH/\//-} curl -T nocalhost.vsix -u ${{ secrets.CODING_ARTIFACTS_USER }}:${{ secrets.CODING_ARTIFACTS_PASS }} "https://nocalhost-generic.pkg.coding.net/nocalhost/plugins/nocalhost-vscode-plugin.vsix?version=${BRANCH}" From ccbe48e0ac5a53102e64a02074cf7f20ca523d0b Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 12:56:08 +0800 Subject: [PATCH 18/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f0feaf7..993e3eb3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,6 +21,7 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - uses: actions/cache@v2 id: yarn-cache with: From 21f3de3cc07ab5059c005c5d724fc0ff81a9d038 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Fri, 14 Jan 2022 13:38:04 +0800 Subject: [PATCH 19/63] WIP Signed-off-by: zhangjian --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 993e3eb3..21a94c14 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: build on: push: - branches: [chore/build-version] + branches: [dev] pull_request: branches: [dev] workflow_dispatch: From 35f497a1728f67f4e5d73cdc41b73008bcf83330 Mon Sep 17 00:00:00 2001 From: zhangjian10 <18675647281@qq.com> Date: Tue, 18 Jan 2022 17:39:37 +0800 Subject: [PATCH 20/63] feat: supports language in dev config (#411) --- src/main/commands/DebugCommand.ts | 67 ++++++++++++++++--- src/main/ctl/nhctl/cli.ts | 5 +- src/main/debug/index.ts | 4 +- src/main/debug/provider/IDebugProvider.ts | 4 +- src/main/debug/provider/goDebugProvider.ts | 5 +- src/main/debug/provider/index.ts | 7 +- .../debug/provider/java/javaDebugProvider.ts | 3 +- src/main/debug/provider/nodeDebugProvider.ts | 3 +- src/main/debug/provider/phpDebugProvider.ts | 4 +- .../debug/provider/pythonDebugProvider.ts | 3 +- src/main/debug/provider/rubyDebugProvider.ts | 3 +- src/main/nodes/AppNode.ts | 4 +- src/main/service/configService.ts | 15 +++-- 13 files changed, 93 insertions(+), 34 deletions(-) diff --git a/src/main/commands/DebugCommand.ts b/src/main/commands/DebugCommand.ts index 415076b7..8ef7a792 100644 --- a/src/main/commands/DebugCommand.ts +++ b/src/main/commands/DebugCommand.ts @@ -1,6 +1,7 @@ import * as vscode from "vscode"; import * as assert from "assert"; import * as fs from "fs"; +import * as yaml from "yaml"; import * as path from "path"; import { ValidateFunction } from "ajv"; @@ -11,7 +12,10 @@ import { DEBUG, START_DEV_MODE } from "./constants"; import registerCommand from "./register"; import host from "../host"; import { DebugSession } from "../debug/debugSession"; -import { ContainerConfig } from "../service/configService"; +import ConfigService, { + ContainerConfig, + NocalhostServiceConfig, +} from "../service/configService"; import { checkDebuggerDependencies, chooseDebugProvider, @@ -22,6 +26,7 @@ import { ControllerResourceNode } from "../nodes/workloads/controllerResources/C import { getContainer, waitForSync } from "../debug"; import { IDebugProvider } from "../debug/provider/IDebugProvider"; import { validateData } from "../utils/validate"; +import { editConfig } from "../ctl/nhctl"; export default class DebugCommand implements ICommand { command: string = DEBUG; @@ -137,8 +142,13 @@ export default class DebugCommand implements ICommand { await debugSession.launch(); } + async getDebugProvider(): Promise { - const debugProvider = await chooseDebugProvider(await this.getLanguage()); + const language = this.getLanguage(); + + const debugProvider = await chooseDebugProvider(language); + + this.saveLanguage(debugProvider, language); await checkDebuggerDependencies(debugProvider); @@ -146,17 +156,54 @@ export default class DebugCommand implements ICommand { return debugProvider; } - async getLanguage() { - const { image } = this.container.dev; - let type: Language; - if (image.includes("nocalhost/dev-images")) { - type = Object.keys(supportLanguage).find((name) => - image.includes(name) - ) as Language; + async saveLanguage(debugProvider: IDebugProvider, language: Language) { + const { node, container } = this; + + if (!container.dev.debug.language || language !== debugProvider.name) { + const serviceConfig = await ConfigService.getAppConfig( + node.getKubeConfigPath(), + node.getNameSpace(), + node.getAppName(), + node.name, + node.resourceType + ); + const currentContainer = serviceConfig.containers.find( + (item) => item.name === container.name + ); + currentContainer.dev.debug.language = debugProvider.name; + + const contents = yaml.stringify(serviceConfig); + + editConfig( + node.getKubeConfigPath(), + node.getNameSpace(), + node.getAppName(), + Buffer.from(contents), + node.name, + node.resourceType + ); + } + } + getLanguage() { + const { + image, + debug: { language }, + } = this.container.dev; + + const supportLanguages = Object.keys(supportLanguage) as Language[]; + if ( + !!language && + supportLanguages.includes(language.toLowerCase() as Language) + ) { + return language.toLowerCase() as Language; } - return type; + if (image.includes("nocalhost/dev-images")) { + return supportLanguages.find((name) => + image.includes(name === "go" ? "golang" : name) + ); + } } async createDebugLaunchConfig() { diff --git a/src/main/ctl/nhctl/cli.ts b/src/main/ctl/nhctl/cli.ts index ac84709c..98522a64 100644 --- a/src/main/ctl/nhctl/cli.ts +++ b/src/main/ctl/nhctl/cli.ts @@ -1325,7 +1325,10 @@ export async function checkVersion() { if ( !getBooleanValue("nhctl.checkVersion") || !requiredVersion || - (pluginVersion.indexOf("-beta") > -1 && fs.existsSync(binPath)) + (fs.existsSync(binPath) && + ["beta", "alpha"].find((identifier) => + pluginVersion.includes(identifier) + )) ) { return; } diff --git a/src/main/debug/index.ts b/src/main/debug/index.ts index 7bd08675..b288b08d 100644 --- a/src/main/debug/index.ts +++ b/src/main/debug/index.ts @@ -140,13 +140,13 @@ export async function waitForSync(node: ControllerResourceNode, name: string) { } export async function getContainer(node: ControllerResourceNode) { - let serviceConfig = (await ConfigService.getAppConfig( + let serviceConfig = await ConfigService.getAppConfig( node.getKubeConfigPath(), node.getNameSpace(), node.getAppName(), node.name, node.resourceType - )) as NocalhostServiceConfig; + ); const containers = (serviceConfig && serviceConfig.containers) || []; let container: ContainerConfig; diff --git a/src/main/debug/provider/IDebugProvider.ts b/src/main/debug/provider/IDebugProvider.ts index 794b0a5d..ba30a3dd 100644 --- a/src/main/debug/provider/IDebugProvider.ts +++ b/src/main/debug/provider/IDebugProvider.ts @@ -9,12 +9,12 @@ import * as AsyncRetry from "async-retry"; import { merge, omit } from "lodash"; import { ControllerResourceNode } from "../../nodes/workloads/controllerResources/ControllerResourceNode"; -import { ContainerConfig } from "../../service/configService"; +import { ContainerConfig, Language } from "../../service/configService"; import logger from "../../utils/logger"; import { portForward } from ".."; export abstract class IDebugProvider { - abstract name: string; + abstract name: Language; abstract requireExtensions: Array; abstract downloadUrl: string; diff --git a/src/main/debug/provider/goDebugProvider.ts b/src/main/debug/provider/goDebugProvider.ts index f6f99c97..f8780c9a 100644 --- a/src/main/debug/provider/goDebugProvider.ts +++ b/src/main/debug/provider/goDebugProvider.ts @@ -12,13 +12,14 @@ import { getPromiseWithAbort } from "../../utils"; import host from "../../host"; import { IDebugProvider } from "./IDebugProvider"; import { exec } from "../../ctl/shell"; +import { Language } from "../../service/configService"; export class GoDebugProvider extends IDebugProvider { - name: string = "golang"; + name: Language = "go"; requireExtensions: string[] = ["golang.go"]; downloadUrl: string = "https://go.dev/dl/"; - commandName: string = "go"; + commandName: string = this.name; socket: net.Socket; diff --git a/src/main/debug/provider/index.ts b/src/main/debug/provider/index.ts index ae67073b..7fcacba1 100644 --- a/src/main/debug/provider/index.ts +++ b/src/main/debug/provider/index.ts @@ -15,18 +15,17 @@ import { PhpDebugProvider } from "./phpDebugProvider"; import { RubyDebugProvider } from "./rubyDebugProvider"; import { IDebugProvider } from "./IDebugProvider"; import { which } from "../../ctl/shell"; +import { Language } from "../../service/configService"; -export const supportLanguage = { +export const supportLanguage: Record IDebugProvider> = { node: NodeDebugProvider, java: JavaDebugProvider, - golang: GoDebugProvider, python: PythonDebugProvider, php: PhpDebugProvider, ruby: RubyDebugProvider, + go: GoDebugProvider, }; -type Language = keyof typeof supportLanguage; - async function chooseDebugProvider(type?: Language): Promise { const supportType = Object.keys(supportLanguage) as Array; diff --git a/src/main/debug/provider/java/javaDebugProvider.ts b/src/main/debug/provider/java/javaDebugProvider.ts index b7988cd6..e1b4b68d 100644 --- a/src/main/debug/provider/java/javaDebugProvider.ts +++ b/src/main/debug/provider/java/javaDebugProvider.ts @@ -5,9 +5,10 @@ import * as AsyncRetry from "async-retry"; import { IDebugProvider } from "../IDebugProvider"; import logger from "../../../utils/logger"; import { JDWP } from "./jdwp"; +import { Language } from "../../../service/configService"; export class JavaDebugProvider extends IDebugProvider { - name: string = "Java"; + name: Language = "java"; requireExtensions: string[] = ["vscjava.vscode-java-debug", "redhat.java"]; downloadUrl: string = "https://adoptopenjdk.net/"; diff --git a/src/main/debug/provider/nodeDebugProvider.ts b/src/main/debug/provider/nodeDebugProvider.ts index 741eb019..3d880d75 100644 --- a/src/main/debug/provider/nodeDebugProvider.ts +++ b/src/main/debug/provider/nodeDebugProvider.ts @@ -1,10 +1,11 @@ import Axios from "axios"; import { DebugConfiguration } from "vscode"; +import { Language } from "."; import { IDebugProvider } from "./IDebugProvider"; export class NodeDebugProvider extends IDebugProvider { - name: string = "node"; + name: Language = "node"; requireExtensions: string[] = []; downloadUrl: string = "https://nodejs.org/en/download/"; diff --git a/src/main/debug/provider/phpDebugProvider.ts b/src/main/debug/provider/phpDebugProvider.ts index ae7703f5..cb99205f 100644 --- a/src/main/debug/provider/phpDebugProvider.ts +++ b/src/main/debug/provider/phpDebugProvider.ts @@ -4,12 +4,12 @@ import * as getPort from "get-port"; import { NhctlCommand } from "../../ctl/nhctl"; import { exec } from "../../ctl/shell"; import { ControllerResourceNode } from "../../nodes/workloads/controllerResources/ControllerResourceNode"; -import { ContainerConfig } from "../../service/configService"; +import { ContainerConfig, Language } from "../../service/configService"; import { IDebugProvider } from "./IDebugProvider"; export class PhpDebugProvider extends IDebugProvider { - name: string = "php"; + name: Language = "php"; requireExtensions: string[] = ["felixfbecker.php-debug"]; downloadUrl: string = "https://www.php.net/downloads"; diff --git a/src/main/debug/provider/pythonDebugProvider.ts b/src/main/debug/provider/pythonDebugProvider.ts index f6df1a42..36ead4d6 100644 --- a/src/main/debug/provider/pythonDebugProvider.ts +++ b/src/main/debug/provider/pythonDebugProvider.ts @@ -4,9 +4,10 @@ import * as assert from "assert"; import { IDebugProvider } from "./IDebugProvider"; import logger from "../../utils/logger"; import { SocketDebugClient } from "../SocketDebugClient"; +import { Language } from "."; export class PythonDebugProvider extends IDebugProvider { - name: string = "python"; + name: Language = "python"; requireExtensions: string[] = ["ms-python.python"]; downloadUrl: string = "https://www.python.org/downloads/"; diff --git a/src/main/debug/provider/rubyDebugProvider.ts b/src/main/debug/provider/rubyDebugProvider.ts index 0b4035fe..d14064bb 100644 --- a/src/main/debug/provider/rubyDebugProvider.ts +++ b/src/main/debug/provider/rubyDebugProvider.ts @@ -3,9 +3,10 @@ import { createConnection } from "net"; import { delay } from "lodash"; import { IDebugProvider } from "./IDebugProvider"; +import { Language } from "."; export class RubyDebugProvider extends IDebugProvider { - name: string = "ruby"; + name: Language = "ruby"; requireExtensions: string[] = ["rebornix.Ruby"]; downloadUrl: string = "https://www.ruby-lang.org/en/downloads/"; diff --git a/src/main/nodes/AppNode.ts b/src/main/nodes/AppNode.ts index f45766d2..a2c44d2e 100644 --- a/src/main/nodes/AppNode.ts +++ b/src/main/nodes/AppNode.ts @@ -124,11 +124,11 @@ export class AppNode extends NocalhostFolderNode { } public async freshNocalhostConfig() { - this.nocalhostConfig = (await ConfigService.getAppConfig( + this.nocalhostConfig = await ConfigService.getAppConfig( this.getKubeConfigPath(), this.namespace, this.name - )) as NocalhostConfig | undefined; + ); return this.nocalhostConfig; } diff --git a/src/main/service/configService.ts b/src/main/service/configService.ts index 107461e1..83c224a1 100644 --- a/src/main/service/configService.ts +++ b/src/main/service/configService.ts @@ -1,5 +1,6 @@ import * as yaml from "yaml"; import * as nhctl from "../ctl/nhctl"; +import logger from "../utils/logger"; const lineBreakFlag = "\n"; export interface JobConfig { name: string; @@ -7,6 +8,8 @@ export interface JobConfig { priority?: number; } +export type Language = "node" | "java" | "go" | "python" | "php" | "ruby"; + export interface NocalhostServiceConfig { name: string; nameRegex?: string; @@ -53,6 +56,7 @@ export interface ContainerConfig { }; debug?: { remoteDebugPort: number; + language: Language; }; remoteDebugPort?: number; useDevContainer?: boolean; @@ -87,13 +91,13 @@ export interface NocalhostConfig { } export default class ConfigService { - static async getAppConfig( + static async getAppConfig( kubeConfigPath: string, namespace: string, appName: string, workloadName?: string, workloadType?: string - ) { + ): Promise { const configStr = await nhctl.getConfig( kubeConfigPath, namespace, @@ -102,11 +106,12 @@ export default class ConfigService { workloadType ); try { - const config = yaml.parse(configStr) as NocalhostConfig; + const config = yaml.parse(configStr) as T; return config; } catch (e) { - console.log(e); - return e; + logger.error("getAppConfig", e); + + return Promise.reject("getAppConfig parse fail"); } } From af6e7c1c95461e82bdd2fb6d42a586caa3646b8e Mon Sep 17 00:00:00 2001 From: yuanganping Date: Tue, 18 Jan 2022 18:07:58 +0800 Subject: [PATCH 21/63] =?UTF-8?q?test:=20add=20view=20log=E3=80=81port=20f?= =?UTF-8?q?orward=E3=80=81dev=20mode=20(#434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ui-test.yml | 16 +- .vscode/launch.json | 4 - .vscodeignore | 1 + build/webpack.config.js | 4 +- jest.config.js | 2 +- package.json | 5 +- scripts/{prebuild.js => pre.build.js} | 0 scripts/test.build.js | 31 ++ src/main/commands/PortForwardCommand/index.ts | 2 +- src/main/ctl/nhctl/cli.ts | 3 +- src/main/host-test.ts | 38 --- src/main/host.ts | 9 +- .../main/tsconfig.json | 9 +- .../renderer/tsconfig.json | 9 +- .../config/vscode/User/keybindings.json | 2 + .../config/vscode/User/settings.json | 11 + test/extension/index.js | 37 ++- test/extension/integration/connect.js | 62 +--- test/extension/integration/connect.test.js | 8 +- test/extension/integration/devMode.js | 238 ++++++++++++++ test/extension/integration/devMode.test.js | 24 ++ test/extension/integration/editConfig.js | 64 ++++ test/extension/integration/editConfig.test.js | 16 + test/extension/integration/index.js | 307 ++++++++++-------- test/extension/integration/index.spec.js | 26 +- test/extension/integration/install.js | 247 +++++++------- test/extension/integration/install.test.js | 71 +--- test/extension/integration/nhctl.js | 6 +- test/extension/integration/nhctl.test.js | 8 +- test/extension/integration/portForward.js | 89 +++++ .../extension/integration/portForward.test.js | 13 + test/extension/integration/viewLog.js | 28 ++ test/extension/integration/viewLog.test.js | 13 + test/extension/lib/components/dialog.js | 34 ++ test/extension/lib/components/file.js | 24 ++ test/extension/lib/components/index.js | 7 + test/extension/lib/components/notification.js | 65 ++++ test/extension/lib/components/terminal.js | 21 ++ test/extension/lib/components/tree.js | 93 ++++++ test/extension/lib/index.js | 40 +++ test/extension/puppeteerEnvironment.js | 4 +- test/extension/start.js | 5 - test/extension/teardown.js | 5 +- test/extension/typings/global.d.ts | 6 + test/jsconfig.json | 18 + tsconfig.json | 3 - 46 files changed, 1254 insertions(+), 474 deletions(-) rename scripts/{prebuild.js => pre.build.js} (100%) create mode 100644 scripts/test.build.js delete mode 100644 src/main/host-test.ts rename build/tsconfig.extension.json => src/main/tsconfig.json (77%) rename build/tsconfig.renderer.json => src/renderer/tsconfig.json (67%) create mode 100644 test/extension/config/vscode/User/keybindings.json create mode 100644 test/extension/config/vscode/User/settings.json create mode 100644 test/extension/integration/devMode.js create mode 100644 test/extension/integration/devMode.test.js create mode 100644 test/extension/integration/editConfig.js create mode 100644 test/extension/integration/editConfig.test.js create mode 100644 test/extension/integration/portForward.js create mode 100644 test/extension/integration/portForward.test.js create mode 100644 test/extension/integration/viewLog.js create mode 100644 test/extension/integration/viewLog.test.js create mode 100644 test/extension/lib/components/dialog.js create mode 100644 test/extension/lib/components/file.js create mode 100644 test/extension/lib/components/index.js create mode 100644 test/extension/lib/components/notification.js create mode 100644 test/extension/lib/components/terminal.js create mode 100644 test/extension/lib/components/tree.js create mode 100644 test/extension/lib/index.js delete mode 100644 test/extension/start.js create mode 100644 test/extension/typings/global.d.ts create mode 100644 test/jsconfig.json delete mode 100644 tsconfig.json diff --git a/.github/workflows/ui-test.yml b/.github/workflows/ui-test.yml index 90df9065..4653b298 100644 --- a/.github/workflows/ui-test.yml +++ b/.github/workflows/ui-test.yml @@ -3,7 +3,7 @@ on: pull_request: branches: [dev, main] push: - branches: [test/vscode-puppeteer] + branches: [test/port-forward] jobs: test: strategy: @@ -69,16 +69,13 @@ jobs: - name: Set kubeconfig run: | - NOCALHOST_KUBECONFIG=$(cat ~/config) - echo "NOCALHOST_KUBECONFIG<> $GITHUB_ENV - echo "$NOCALHOST_KUBECONFIG" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - echo "::add-mask::$NOCALHOST_KUBECONFIG" + mkdir ~/.kube; + cp ~/config ~/.kube; - name: Run tests env: CYPRESS_EVERY_NTH_FRAME: 1 - # LOGGER_LEVEL: DEBUG + VIDEO_CAPTURE: 1 run: yarn run test:ext # - name: Destroy cluster @@ -90,7 +87,9 @@ jobs: - name: Artifact screenshot if: ${{ always() }} - run: mv .screenshot ~/.nh/screenshot + run: | + mv .screenshot ~/.nh/screenshot + cp ~/.kube/config ~/.nh - uses: actions/upload-artifact@v2 if: ${{ always() }} @@ -107,7 +106,6 @@ jobs: mkdir .dependency cp ~/.nh/bin/nhctl .dependency/ cp nocalhost.vsix .dependency/ - cp ~/config .dependency/ - uses: actions/upload-artifact@v2 if: ${{ failure() }} diff --git a/.vscode/launch.json b/.vscode/launch.json index e8739fc4..c02ab645 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,7 +1,3 @@ -// A launch configuration that compiles the extension and then opens it inside a new window -// Use IntelliSense to learn about possible attributes. -// Hover to view descriptions of existing attributes. -// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 { "version": "0.2.0", "configurations": [ diff --git a/.vscodeignore b/.vscodeignore index b5b4547d..d988ef57 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -1,4 +1,5 @@ .vscode/** +.screenshot .vscode-test/** out/** src/** diff --git a/build/webpack.config.js b/build/webpack.config.js index 235ad26c..c34c0d06 100644 --- a/build/webpack.config.js +++ b/build/webpack.config.js @@ -31,7 +31,7 @@ const extensionConfig = { exclude: /node_modules/, loader: "ts-loader", options: { - configFile: path.resolve(__dirname, "./tsconfig.extension.json"), + configFile: path.resolve(__dirname, "../src/main/tsconfig.json"), }, }, { @@ -77,7 +77,7 @@ const rendererConfig = { exclude: /node_modules/, loader: "ts-loader", options: { - configFile: path.resolve(__dirname, "./tsconfig.renderer.json"), + configFile: path.resolve(__dirname, "../src/renderer/tsconfig.json"), }, }, ], diff --git a/jest.config.js b/jest.config.js index 399422a0..88385063 100644 --- a/jest.config.js +++ b/jest.config.js @@ -15,7 +15,7 @@ module.exports = { }, globals: { "ts-jest": { - tsconfig: "./build/tsconfig.renderer.json", + tsconfig: "src/renderer/tsconfig.json", }, }, }; diff --git a/package.json b/package.json index 3349fa24..24f68991 100644 --- a/package.json +++ b/package.json @@ -597,11 +597,11 @@ ] }, "scripts": { - "prebuild": "node ./scripts/prebuild.js", + "prebuild": "node ./scripts/pre.build.js", "build": "./node_modules/.bin/vsce package", "vscode:prepublish": "yarn run package", "vscode:uninstall": "node ./dist/cleanup.js", - "ts-compile-check": "tsc --noEmit -p build/tsconfig.extension.json", + "ts-compile-check": "tsc --noEmit -p src/main", "compile": "webpack --devtool nosources-source-map --config ./build/webpack.config.js", "watch": "webpack --watch --devtool nosources-source-map --info-verbosity verbose --config ./build/webpack.config.js", "package": "webpack --mode production --config ./build/webpack.config.js", @@ -609,6 +609,7 @@ "prettier": "prettier --write \"./**/*@(.js|.jsx|.ts|.tsx|.json)\"", "prettier:watch": "onchange \"./**/*@(.js|.jsx|.ts|.tsx|.json)\" -- prettier --write --ignore-unknown {{changed}}", "test": "jest --forceExit --detectOpenHandles --maxWorkers=10", + "prebuild:ext": "node ./scripts/test.build.js", "build:ext": "vsce package --yarn -o nocalhost.vsix", "test:ext": "jest --silent --forceExit --detectOpenHandles -i -c test/extension/jest.config.js", "test:watch": "jest --watch" diff --git a/scripts/prebuild.js b/scripts/pre.build.js similarity index 100% rename from scripts/prebuild.js rename to scripts/pre.build.js diff --git a/scripts/test.build.js b/scripts/test.build.js new file mode 100644 index 00000000..f2a53fcc --- /dev/null +++ b/scripts/test.build.js @@ -0,0 +1,31 @@ +const fs = require("fs"); +const path = require("path"); + +const packageJsonUri = path.resolve(__dirname, "../package.json"); + +let packageJson = require("../package.json"); + +const contextPatch = [ + { + command: "Nocalhost.portForward", + when: + "viewItem =~ /^(viewer:|)workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|pod-Running|crd-resources)-dev-(?!vpn_)/i", + }, + { + command: "Nocalhost.log", + when: + "viewItem =~ /^(viewer:|)workload-(deployment|statefulSet|daemonSet|job|cronJob|pod|crd-resources)-dev-(?!vpn_)/i", + }, +]; +packageJson.contributes.menus["view/item/context"].forEach((context) => { + if ( + contextPatch.find( + (item) => item.command === context.command && item.when === context.when + ) + ) { + context.group = "inline"; + } +}); + +fs.unlinkSync(packageJsonUri); +fs.writeFileSync(packageJsonUri, JSON.stringify(packageJson, null, 2)); diff --git a/src/main/commands/PortForwardCommand/index.ts b/src/main/commands/PortForwardCommand/index.ts index 1ef6b26a..e804b297 100644 --- a/src/main/commands/PortForwardCommand/index.ts +++ b/src/main/commands/PortForwardCommand/index.ts @@ -74,7 +74,7 @@ export default class PortForwardCommand implements ICommand { resourceType = item.servicetype; } - const confirm = await vscode.window.showInformationMessage( + const confirm = await host.showInformationMessage( `Do you want to stop port-forward ${port}?`, { modal: true }, "Confirm" diff --git a/src/main/ctl/nhctl/cli.ts b/src/main/ctl/nhctl/cli.ts index 98522a64..34960fdd 100644 --- a/src/main/ctl/nhctl/cli.ts +++ b/src/main/ctl/nhctl/cli.ts @@ -435,7 +435,8 @@ export async function getAllNamespace(props: IBaseCommand) { devspaces.push(devspace); }); - return devspaces; + + return orderBy(devspaces, "namespace"); } export async function getAll(params: IBaseCommand) { diff --git a/src/main/host-test.ts b/src/main/host-test.ts deleted file mode 100644 index 7fb759fc..00000000 --- a/src/main/host-test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as vscode from "vscode"; -import { Host } from "./host"; -const ignoreFocusOut = true; -export default class HostTest extends Host { - async showOpenDialog( - options: vscode.OpenDialogOptions - ): Promise { - const path = await this.showInputBox({ - title: options.title, - ignoreFocusOut, - }); - let uris: vscode.Uri[] = []; - - if (path) { - uris.push(vscode.Uri.parse(path)); - } - return uris; - } - showSelectFileDialog(title: string, defaultUri?: vscode.Uri) { - return this.showOpenDialog({ - defaultUri: defaultUri, - canSelectFolders: false, - canSelectFiles: true, - canSelectMany: false, - title: title, - }); - } - showInformationMessage( - msg: string, - options?: vscode.MessageOptions, - ...items: string[] - ): Thenable { - if (options.modal) { - return this.showInputBox({ title: msg, ignoreFocusOut }); - } - return super.showInformationMessage(msg, options, ...items); - } -} diff --git a/src/main/host.ts b/src/main/host.ts index e713f030..0c8cd4db 100644 --- a/src/main/host.ts +++ b/src/main/host.ts @@ -370,11 +370,4 @@ export class Host implements vscode.Disposable { } } -let defaultHost: Host = new Host(); - -if (process.env.puppeteer) { - let hostTest = require("./host-test").default; - defaultHost = new hostTest(); -} - -export default defaultHost; +export default new Host(); diff --git a/build/tsconfig.extension.json b/src/main/tsconfig.json similarity index 77% rename from build/tsconfig.extension.json rename to src/main/tsconfig.json index e3bab646..dda1f661 100644 --- a/build/tsconfig.extension.json +++ b/src/main/tsconfig.json @@ -1,13 +1,12 @@ { "compilerOptions": { "resolveJsonModule": true, - "typeRoots": ["../src/main/typings"], + "typeRoots": ["./typings"], "module": "commonjs", "target": "es6", "experimentalDecorators": true, - "outDir": "../out", "strictNullChecks": false, - "rootDir": "../", + "rootDir": "../../", "lib": ["es6"], "sourceMap": true, "strict": true /* enable all strict type-checking options */ @@ -16,6 +15,6 @@ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ // "noUnusedParameters": true, /* Report errors on unused parameters. */ }, - "include": ["../src/main"], - "exclude": ["../node_modules", "../.vscode-test"] + "include": ["./"], + "exclude": ["node_modules"] } diff --git a/build/tsconfig.renderer.json b/src/renderer/tsconfig.json similarity index 67% rename from build/tsconfig.renderer.json rename to src/renderer/tsconfig.json index dd1c1870..8cb5724b 100644 --- a/build/tsconfig.renderer.json +++ b/src/renderer/tsconfig.json @@ -2,9 +2,8 @@ "compilerOptions": { "module": "esnext", "moduleResolution": "node", - "target": "es5", - "outDir": "../out", - "rootDir": "../", + "target": "ES6", + "rootDir": "../../", "experimentalDecorators": true, "noImplicitAny": true, "strictNullChecks": false, @@ -14,6 +13,6 @@ "allowJs": true, "allowSyntheticDefaultImports": true }, - "include": ["../src/renderer"], - "exclude": ["../node_modules", "../.vscode-test"] + "include": ["./"], + "exclude": ["node_modules"] } diff --git a/test/extension/config/vscode/User/keybindings.json b/test/extension/config/vscode/User/keybindings.json new file mode 100644 index 00000000..4476272b --- /dev/null +++ b/test/extension/config/vscode/User/keybindings.json @@ -0,0 +1,2 @@ +// Place your key bindings in this file to override the defaultsauto[] +[] diff --git a/test/extension/config/vscode/User/settings.json b/test/extension/config/vscode/User/settings.json new file mode 100644 index 00000000..31309587 --- /dev/null +++ b/test/extension/config/vscode/User/settings.json @@ -0,0 +1,11 @@ +{ + // "nocalhost.nhctl.checkVersion": false, + "window.titleBarStyle": "custom", + "workbench.editor.enablePreview": false, + // "window.restoreFullscreen": true, + "telemetry.telemetryLevel": "off", + "extensions.autoUpdate": false, + "files.simpleDialog.enable": true, + "window.dialogStyle": "custom" + // "window.newWindowDimensions": "maximized" +} diff --git a/test/extension/index.js b/test/extension/index.js index 41d73dfa..902acc4e 100644 --- a/test/extension/index.js +++ b/test/extension/index.js @@ -6,6 +6,8 @@ const isWindows = require("is-windows"); const os = require("os"); const getPort = require("get-port"); const axios = require("axios"); +const { getRepository, gitCode } = require("./lib"); + const { downloadAndUnzipVSCode, resolveCliPathFromVSCodeExecutablePath, @@ -15,6 +17,7 @@ const logger = require("./lib/log"); const VideoCapture = require("./lib/videoCapture"); const videoCapture = new VideoCapture(); + /** * * @param {object} options @@ -22,9 +25,10 @@ const videoCapture = new VideoCapture(); * @param {string?} options.version * @param {string?} options.platform * @param {object?} options.testsEnv + * @returns {{pid:string,port:string}} */ const start = async (options = {}) => { - const userDataDir = getUserDataDir(); + const userDataDir = await getUserDataDir(); if (!options.vscodeExecutablePath) { options.vscodeExecutablePath = await downloadAndUnzipVSCode( @@ -81,6 +85,12 @@ const start = async (options = {}) => { if (options.launchArgs) { args = options.launchArgs.concat(args); } + + process.env.currentPath = ( + await gitCode(getRepository("bookinfo-ratings.git")) + ).tmpDir; + args.unshift(process.env.currentPath); + const pid = await run(options.vscodeExecutablePath, args, options.testsEnv); return { pid, port }; @@ -107,7 +117,7 @@ const getExtensionsDir = (isInit = false) => { return extensionsDir; }; -const getUserDataDir = () => { +const getUserDataDir = async () => { let userDataDir = path.join(__dirname, "../../.vscode-test/user-data"); if (isWindows()) { @@ -122,22 +132,7 @@ const getUserDataDir = () => { fse.removeSync(userDataDir); } - fse.mkdirpSync(path.join(userDataDir, "User")); - - let defaultSettings = { - "window.titleBarStyle": "custom", - "workbench.editor.enablePreview": false, - "window.restoreFullscreen": true, - "telemetry.enableTelemetry": false, - "extensions.autoUpdate": false, - "window.newWindowDimensions": "maximized", - }; - - fse.writeFile( - path.join(userDataDir, "User", "settings.json"), - JSON.stringify(defaultSettings, null, 2) - ); - + await fse.copy(path.join(__dirname, "./config/vscode"), userDataDir); return userDataDir; }; @@ -205,3 +200,9 @@ module.exports = { getWebSocketDebuggerUrl, videoCapture, }; + +(async () => { + if (require.main === module) { + await start(); + } +})(); diff --git a/test/extension/integration/connect.js b/test/extension/integration/connect.js index af4fde8a..c112a880 100644 --- a/test/extension/integration/connect.js +++ b/test/extension/integration/connect.js @@ -1,14 +1,12 @@ -const puppeteer = require("puppeteer-core"); const assert = require("assert"); -const ncp = require("copy-paste"); +const { promises: fs } = require("fs"); const { waitForMessage, initialize, setInputBox } = require("./index"); /** * - * @param {puppeteer.Page} page */ -async function loginServer(page) { - const iframe = await getIframe(page); +async function loginServer() { + const iframe = await getIframe(); const button = await iframe.$(".nocalhost-tab:last-child"); await button.click(); @@ -34,13 +32,8 @@ async function loginServer(page) { await page.waitForSelector(".notifications-toasts"); } -/** - * - * @param {puppeteer.Page} page - */ -async function getIframe(page) { - await page.waitForTimeout(5 * 1000); +async function getIframe() { const parentHandle = await page.waitForSelector( "#webview-webviewview-nocalhost-home .webview.ready" ); @@ -57,18 +50,8 @@ async function getIframe(page) { return iframe; } -async function copyKubeConfig() { - let config = process.env.NOCALHOST_KUBECONFIG; - - await new Promise((res) => ncp.copy(config, res)); -} - -/** - * - * @param {puppeteer.Page} page - */ -async function pasteAsText(page) { - const iframe = await getIframe(page); +async function pasteAsText() { + const iframe = await getIframe(); const tabs = await (await iframe.$(".nocalhost-tab")).$$(":scope > *"); await tabs[0].click(); @@ -79,34 +62,26 @@ async function pasteAsText(page) { await iframe.focus('[placeholder="KubeConfig"]'); - await copyKubeConfig(); - - await iframe.evaluateHandle(() => { - return new Promise(async (res) => { - const text = await navigator.clipboard.readText(); + const config = await fs.readFile(require("os").homedir() + "/.kube/config"); - document.querySelector('[placeholder="KubeConfig"]').value = text; - res(); - }); - }); - - await iframe.waitForTimeout(1 * 1000); + await iframe.evaluate((config) => { + document.querySelector('[placeholder="KubeConfig"]').value = config; + }, config.toString()); await iframe.type('[placeholder="KubeConfig"]', " "); await iframe.click(".kubeConfig-add-btn"); - return await waitForMessage(page, "Success", 60 * 1000); + return await waitForMessage("Success", 60 * 1000); } /** * - * @param {puppeteer.Page} page */ -async function loadKubeConfig(page) { +async function loadKubeConfig() { "wrapped-tabpanel-select"; - const iframe = await getIframe(page); + const iframe = await getIframe(); const tabs = await (await iframe.$(".nocalhost-tab")).$$(":scope > *"); await tabs[0].click(); @@ -117,20 +92,13 @@ async function loadKubeConfig(page) { await iframe.click(".MuiSvgIcon-root.icon"); - await setInputBox(page, process.env.KUBECONFIG_PATH); + await setInputBox(process.env.KUBECONFIG_PATH); await iframe.waitForTimeout(1 * 1000); await iframe.click(".kubeConfig-add-btn"); - return await waitForMessage(page, "Success", 60 * 1000); + return await waitForMessage("Success", 60 * 1000); } -(async () => { - if (require.main === module) { - const page = await initialize(); - await pasteAsText(page); - } -})(); - module.exports = { pasteAsText, loadKubeConfig }; diff --git a/test/extension/integration/connect.test.js b/test/extension/integration/connect.test.js index f92927d4..c205b550 100644 --- a/test/extension/integration/connect.test.js +++ b/test/extension/integration/connect.test.js @@ -2,12 +2,8 @@ const { pasteAsText, loadKubeConfig } = require("./connect"); const connectTests = () => { describe("connect to Cluster", () => { - it("paste as Text", async () => { - await pasteAsText(page); - }); - it.skip("load KubeConfig", async () => { - await loadKubeConfig(page); - }); + it("paste as Text", pasteAsText); + it.skip("load KubeConfig", loadKubeConfig); }); }; diff --git a/test/extension/integration/devMode.js b/test/extension/integration/devMode.js new file mode 100644 index 00000000..18e1b5ac --- /dev/null +++ b/test/extension/integration/devMode.js @@ -0,0 +1,238 @@ +const assert = require("assert"); +const { default: Axios } = require("axios"); +const retry = require("async-retry"); + +const { tree, terminal, dialog, file } = require("../lib/components"); +const logger = require("../lib/log"); +const { initialize, enterShortcutKeys, setInputBox } = require("./index"); +const { add, stop, getPortForwardPort } = require("./portForward"); + +const treeItemPath = [ + "", + "default", + "bookinfo", + "Workloads", + "Deployments", + "ratings", +]; + +/** + * + * @description + */ +async function checkStartComplete() { + // check icon devIcon endButton + await page.waitForFunction( + (name) => { + const nodes = Array.from( + document.querySelectorAll( + "#workbench\\.parts\\.sidebar .monaco-list-row[aria-level='6']" + ) + ); + + const node = nodes.find( + (node) => node.querySelector(".label-name").innerText === name + ); + if (!node) { + return; + } + + node.click(); + + const isDevStart = !!node.querySelector( + `.custom-view-tree-node-item-icon[style$='v_start.svg");']` + ); + + const isDevEnd = !!node.querySelector( + `.actions [style$='dev_end.svg");']` + ); + + return isDevStart && isDevEnd; + }, + { timeout: 300_000 }, + "ratings" + ); + + await checkSyncCompletion(); + + logger.debug("Start Development", "ok"); +} +/** + * + */ +async function checkSyncCompletion() { + const statusBar = await page.$("#nocalhost\\.nocalhost"); + + await retry( + async () => { + const className = await (await statusBar.$(".codicon")).evaluate( + (el) => el.className + ); + + assert(className.includes("codicon-check")); + }, + { retries: 3 } + ); + + logger.debug("sync icon"); + + const textContent = await statusBar.evaluate((el) => el.textContent); + + assert(textContent.includes("Sync completed at:")); + + logger.debug("sync completed"); +} +/** + * + * @description + */ +async function runCommand() { + await terminal.sendText( + "npm config set registry http://mirrors.cloud.tencent.com/npm/ \n" + ); + + await terminal.sendText("./run.sh \n"); + + const port = await add(); + logger.debug("start port forward"); + + await retry( + async () => { + const data = await Axios.get(`http://127.0.0.1:${port}/health`); + + assert( + "status" in data.data && data.data.status === "Ratings is healthy" + ); + }, + { retries: 3 } + ); + + logger.debug("check health"); +} +/** + * + * @description + */ +async function start() { + const treeItem = await tree.getItem(...treeItemPath); + + const action = await treeItem.$( + `a.action-label.icon[title="Start Development"]` + ); + await action.click(); + + logger.debug("Start Development"); + + if ((await dialog.getActionTexts()).includes("Open another directory")) { + await dialog.selectAction("Open another directory"); + } else { + await dialog.selectAction("Open associated directory"); + } + + await file.selectPath(process.env.currentPath); +} + +/** + * + * @description + */ +async function codeSync() { + await enterShortcutKeys("MetaLeft", "p"); + + await setInputBox("ratings.js"); + + await page.waitForTimeout(5_00); + await enterShortcutKeys("ControlLeft", "g"); + + await setInputBox("207:9"); + + await enterShortcutKeys("MetaLeft", "x"); + + await page.keyboard.press("Backspace"); + await page.keyboard.type( + `\n\tres.end(JSON.stringify({status: 'Ratings is healthy2'}))\n` + ); + + await enterShortcutKeys("MetaLeft", "s"); + + await page.waitForTimeout(10_000); + + await checkSyncCompletion(); + + await terminal.sendText("\x03"); + + await terminal.sendText("./run.sh \n"); + + await retry( + async () => { + const data = await Axios.get( + `http://127.0.0.1:${getPortForwardPort()}/health` + ); + + assert( + "status" in data.data && data.data.status === "Ratings is healthy2" + ); + }, + { retries: 3 } + ); +} + +async function endDevMode() { + let treeItem = await tree.getItem(...treeItemPath); + + const portForward = await treeItem.$(".action-label[title='Port Forward']"); + await portForward.click(); + + await stop(); + + treeItem = await tree.getItem(...treeItemPath); + + const endDevelop = await treeItem.$(".action-label[title='End Develop']"); + await endDevelop.click(); + + await page.waitForFunction( + (name) => { + const nodes = Array.from( + document.querySelectorAll( + "#workbench\\.parts\\.sidebar .monaco-list-row[aria-level='6']" + ) + ); + + const node = nodes.find( + (node) => node.querySelector(".label-name").innerText === name + ); + if (!node) { + return; + } + + node.click(); + + const isDevStart = !!node.querySelector( + `.custom-view-tree-node-item-icon[style$='status_running.svg");']` + ); + + const isDevEnd = !!node.querySelector( + `.actions [style$='v_start.svg");']` + ); + + return isDevStart && isDevEnd; + }, + { timeout: 300_000 }, + "ratings" + ); +} + +module.exports = { + start, + codeSync, + checkStartComplete, + checkSyncCompletion, + endDevMode, + runCommand, +}; + +(async () => { + if (require.main === module) { + await initialize(55205, codeSync); + } +})(); diff --git a/test/extension/integration/devMode.test.js b/test/extension/integration/devMode.test.js new file mode 100644 index 00000000..d34718a2 --- /dev/null +++ b/test/extension/integration/devMode.test.js @@ -0,0 +1,24 @@ +const { + start, + endDevMode, + codeSync, + runCommand, + checkStartComplete, + checkSyncCompletion, +} = require("./devMode"); + +const { checkReady } = require("./portForward"); + +const devModeTests = () => { + beforeAll(async (done) => { + checkReady().then(done).cath(done.fail); + }); + it("start", start); + it("startComplete", checkStartComplete); + it("syncCompletion", checkSyncCompletion); + it("runCommand", runCommand); + it("codeSync", codeSync); + it("end", endDevMode); +}; + +module.exports = { devModeTests }; diff --git a/test/extension/integration/editConfig.js b/test/extension/integration/editConfig.js new file mode 100644 index 00000000..31b9842d --- /dev/null +++ b/test/extension/integration/editConfig.js @@ -0,0 +1,64 @@ +const ncp = require("copy-paste"); +const yaml = require("yaml"); +const { tree } = require("../lib/components"); +const assert = require("assert"); + +const treeItemPath = [ + "", + "default", + "bookinfo", + "Workloads", + "Deployments", + "authors", +]; + +async function editConfig(page) { + const authors = await tree.getItem(...treeItemPath); + const setting = await authors.$(".action-label[title='View Dev Configs']"); + await setting.click(); + // copy config + await page.waitForTimeout(5000); + await page.keyboard.down("Escape"); + await page.keyboard.up("Escape"); + + await page.keyboard.down("Meta"); + await page.keyboard.down("A"); + await page.keyboard.up("A"); + await page.keyboard.down("C"); + await page.keyboard.up("C"); + await page.keyboard.up("Meta"); + // const content = await navigator.clipboard.readText(); + const content = ncp.paste(); + const obj = yaml.parse(content); + obj.containers[0].dev.hotReload = !obj.containers[0].dev.hotReload; + + const str = yaml.stringify(obj); + ncp.copy(str); + + await page.waitForTimeout(1000); + + await page.keyboard.down("Meta"); + await page.keyboard.press("A"); + await page.keyboard.up("Meta"); + await page.keyboard.press("Backspace"); + + await page.waitForTimeout(1000); + + await page.keyboard.down("Meta"); + await page.keyboard.press("V"); + + await page.keyboard.press("S"); + + await page.keyboard.up("Meta"); + + await page.waitForTimeout(5000); + + const tabElement = await page.waitForSelector( + 'div[aria-label="authors.yaml"]' + ); + assert.ok(tabElement._remoteObject.description.indexOf("dirty") === -1); +} + +module.exports = { + editConfig, +}; diff --git a/test/extension/integration/editConfig.test.js b/test/extension/integration/editConfig.test.js new file mode 100644 index 00000000..1fabc9be --- /dev/null +++ b/test/extension/integration/editConfig.test.js @@ -0,0 +1,16 @@ +const { checkReady } = require("./portForward"); +const { editConfig } = require("./editConfig"); + +const editConfigTests = () => { + beforeAll(async (done) => { + checkReady().then(done).cath(done.fail); + }); + + it("edit config", async () => { + await editConfig(page); + }); +}; + +module.exports = { + editConfigTests, +}; diff --git a/test/extension/integration/index.js b/test/extension/integration/index.js index bd4925bf..aed6ef08 100644 --- a/test/extension/integration/index.js +++ b/test/extension/integration/index.js @@ -2,6 +2,7 @@ const puppeteer = require("puppeteer-core"); const retry = require("async-retry"); const isPortReachable = require("is-port-reachable"); const assert = require("assert"); + const { start, getWebSocketDebuggerUrl } = require("../"); const logger = require("../lib/log"); /** @@ -24,50 +25,93 @@ async function openNocalhost(page) { /** * - * @param {puppeteer.Page} page * @param {String} text * @return {puppeteer.ElementHandle[]} */ -async function setInputBox(page, text) { - await page.waitForTimeout(500); +async function setInputBox(text, clean = false) { + let input = await page.waitForSelector( + ".quick-input-widget:not([style*='display: none']) .input" + ); - let input = await page.waitForSelector(".input.empty"); + if (clean) { + await input.evaluate((input) => (input.value = ""), input); + } - await input.type(text); + await input.click(); + await input.type(text, { delay: 1 }); await page.keyboard.press("Enter"); } /** * - * @param {puppeteer.Page} page - * @param {String} text + * @param {string} text */ -async function quickPick(page, text) { - await page.waitForSelector(".quick-input-list-entry"); - - const list = await page.$$(".quick-input-list-entry"); - - const nameList = await Promise.all( - list.map((item) => item.evaluate((el) => el.textContent)) - ); - - const index = nameList.findIndex((name) => name === text); +async function selectQuickPickItem(text) { + return getQuickPick().select(text); +} - logger.debug("quickPick", text, nameList, index); +/** + * + */ +function getQuickPick() { + /** + * @returns {Promise>} + */ + async function getItemTexts() { + return await Promise.all( + (await this.items).map((item) => + item.evaluate((el) => el.querySelector(".label-name").textContent) + ) + ); + } - await list[index].click(); + /** + * + * @returns {Promise>} + */ + async function getItems() { + await page.waitForSelector( + ".quick-input-widget:not([style*='display: none']) .quick-input-list-entry" + ); + return page.$$(".quick-input-list-entry"); + } + return { + get items() { + return getItems(); + }, + /** + * @returns {Promise>} + */ + get itemTexts() { + return getItemTexts.call(this); + }, + /** + * + * @param {string|number} key + */ + async select(key) { + const items = await this.items; + if (typeof key === "number") { + await items[key].click(); + } else { + const itemText = await this.itemTexts; + const index = itemText.findIndex((name) => name === key); + + await items[index].click(); + } - await page.waitForTimeout(500); + await page.waitForTimeout(1_000); + }, + }; } /** * - * @param {puppeteer.Page} page * @param {string} message * @param {number} timeout */ -async function waitForMessage(page, message, timeout) { +async function waitForMessage(message, timeout) { await page.waitForSelector(".notifications-toasts"); return await page.waitForFunction( @@ -78,104 +122,62 @@ async function waitForMessage(page, message, timeout) { /** * * @param {puppeteer.Page} page - * @return {puppeteer.ElementHandle[]} + * @param {string[]} childNames */ -async function getTreeView(page) { - await page.waitForFunction(function () { - return ( - document - .querySelector("#workbench\\.parts\\.sidebar") - ?.querySelectorAll(".monaco-list-row")?.length > 0 - ); - }); - - const sidebar = await page.waitForSelector("#workbench\\.parts\\.sidebar"); - - const treeView = await sidebar.$$(".monaco-list-row"); - - return treeView; -} -/** - * - * @param {puppeteer.ElementHandle} node - * @param {puppeteer.Page} page - */ -async function unInstall(page, node, name) { - await node.hover(); - await page.click(".codicon-trash"); - - await setInputBox(page, "OK"); - - await page.waitForFunction( - `!document.querySelector(".monaco-list-rows").innerText.includes("${name}")`, - { timeout: 1 * 60 * 1000 } +async function getItemMenu(page, menuName) { + const context = await page.waitForSelector( + ".context-view.monaco-menu-container.bottom.left" ); -} -/** - * - * @param {string} name - * @param {puppeteer.Page} page - */ -async function isInstallSucceed(page, name) { - const app = await page.waitForFunction( - function (text) { - let list = - document - .querySelector("#workbench\\.parts\\.sidebar") - ?.querySelectorAll(".monaco-list-row") ?? []; - - if (list.length) { - return Array.from(list).some((node) => { - if (node.textContent === text) { - const icon = node.querySelector(".custom-view-tree-node-item-icon"); - - if (icon) { - return icon.getAttribute("style").includes("app_connected.svg"); - } - } - return false; - }); - } - - return false; + const selector = `.action-label[aria-label='${menuName}']`; + + return { + /** + * @return {puppeteer.ElementHandle} + */ + get el() { + return context + .$(selector) + .then((el) => el.getProperty("parentNode")) + .then((el) => el.getProperty("parentNode")); }, - { timeout: 5 * 60 * 1000 }, - name - ); - - return app; + async click() { + return (await this.el).evaluate((node) => { + window.el = node; + console.error("evaluate", node); + + const mouseEvents = document.createEvent("MouseEvents"); + mouseEvents.initEvent("mouseup", true, true); + node.dispatchEvent(mouseEvents); + }); + }, + }; } /** * - * @param {string} name - * @param {puppeteer.Page} page + * @param {string} port + * @param {()=>Promise} callBack */ -async function getInstallApp(page, name) { - const nameList = await page.evaluate(() => { - return Array.from(document.querySelector(".monaco-list-rows").children).map( - (item) => item.innerText - ); - }); - - const index = nameList.indexOf(name); - - if (index > -1) { - return (await getTreeView(page))[index]; +async function initialize(port, callBack) { + let isStart = !port; + + let startPort = port; + + if (!port) { + const { port: newPort } = await start({ + testsEnv: { + puppeteer: true, + }, + }); + startPort = newPort; } - return null; -} -/** - * - * @returns {puppeteer.Page} - */ -async function initialize() { - const { pid, port } = await start(); - - const browserWSEndpoint = await retry(() => getWebSocketDebuggerUrl(port), { - retries: 3, - }); + const browserWSEndpoint = await retry( + () => getWebSocketDebuggerUrl(startPort), + { + retries: 3, + } + ); const browser = await puppeteer.connect({ browserWSEndpoint, @@ -186,7 +188,15 @@ async function initialize() { await openNocalhost(page); - return page; + if (isStart) { + return; + } + + global.page = page; + + await callBack(); + + newPort && browser.disconnect(); } /** * @@ -207,31 +217,72 @@ const getPage = async (browser) => { /** * * @param {string} port - * @param {number} timeout + * @param {object} data */ -async function checkPort(port) { - await retry( - async () => { - const connect = await isPortReachable(port, { - host: "127.0.0.1", - timeout: 1 * 1000, - }); - assert(connect, "checkPort Error"); - }, - { randomize: false, retries: 6 } - ); +async function checkPort( + port, + data = { + timeout: 1_000, + error: "checkPort Error", + condition: (connect) => connect, + retryOptions: { randomize: false, retries: 6 }, + } +) { + await retry(async () => { + const connect = await isPortReachable(port, { + host: "127.0.0.1", + timeout: data.timeout, + }); + + assert(data.condition(connect), data.error); + }, data.retryOptions); +} +/** + * + * @param {Array} key + */ +function getSystemKeys(key) { + if (process.platform === "darwin") { + switch (key) { + case "ControlLeft": + return "MetaLeft"; + default: + return key; + } + } else { + switch (key) { + case "MetaLeft": + return "ControlLeft"; + default: + return key; + } + } +} +/** + * + * @param {Array} keys + */ +async function enterShortcutKeys(...keys) { + for await (const key of keys) { + await page.keyboard.down(key); + } + + for await (const key of keys) { + await page.keyboard.up(key); + } + + await page.waitForTimeout(5_00); } module.exports = { openNocalhost, getPage, waitForMessage, - getTreeView, - getInstallApp, - unInstall, - isInstallSucceed, initialize, setInputBox, - quickPick, + selectQuickPickItem, + getQuickPick, checkPort, + getItemMenu, + enterShortcutKeys, }; diff --git a/test/extension/integration/index.spec.js b/test/extension/integration/index.spec.js index 05e1e6be..7b9c3bc0 100644 --- a/test/extension/integration/index.spec.js +++ b/test/extension/integration/index.spec.js @@ -1,22 +1,28 @@ const path = require("path"); +const logger = require("../lib/log"); const { nhctlTests } = require("./nhctl.test"); const { connectTests } = require("./connect.test"); const { installTests } = require("./install.test"); -const logger = require("../lib/log"); +const { portForwardTests } = require("./portForward.test"); +const { devModeTests } = require("./devMode.test"); +const { viewLogTests } = require("./viewLog.test"); +const { editConfigTests } = require("./editConfig.test"); const screenshotPath = path.join(__dirname, "../../../.screenshot"); -beforeEach(async () => { - const { currentTest } = jasmine; - - logger.info("before " + currentTest.fullName); -}); - afterEach(async () => { const { currentTest } = jasmine; - logger.info("after " + currentTest.fullName); + if (currentTest.failedExpectations.length > 0) { + logger.error( + currentTest.fullName, + "failure", + currentTest.failedExpectations[0].stack + ); + } else { + logger.info(currentTest.fullName, "success"); + } await page.screenshot({ type: "jpeg", @@ -28,6 +34,10 @@ afterEach(async () => { describe("nhctl", nhctlTests); describe("connect", connectTests); describe("install", installTests); +describe("portForward", portForwardTests); +describe("devMode", devModeTests); +describe("viewLog", viewLogTests); +describe("editConfig", editConfigTests); module.exports = { screenshotPath, diff --git a/test/extension/integration/install.js b/test/extension/integration/install.js index 28c8c699..cf88165c 100644 --- a/test/extension/integration/install.js +++ b/test/extension/integration/install.js @@ -1,180 +1,184 @@ const puppeteer = require("puppeteer-core"); +const assert = require("assert"); +const retry = require("async-retry"); + const { - getTreeView, - unInstall, - isInstallSucceed, - getInstallApp, setInputBox, - quickPick, + selectQuickPickItem, checkPort, + initialize, } = require("./index"); -const assert = require("assert"); + +const { dialog, file, tree, notification } = require("../lib/components"); const logger = require("../lib/log"); /** * - * @param {puppeteer.Page} page + * @param {puppeteer.ElementHandle} node */ -async function install(page) { - let treeView = await getTreeView(page); +async function unInstall(node, waitTime) { + await node.hover(); + await page.click(".codicon-trash"); + + await dialog.selectAction("OK"); + + await page.waitForFunction( + `!document.querySelector(".monaco-list-rows").innerText.includes("bookinfo")`, + { timeout: 1 * 60 * 1000 } + ); + + await page.waitForTimeout(waitTime); +} - if (treeView.length === 1) { - await treeView[0].click(); - await page.waitForTimeout(3000); +/** + * @param {string} name + */ +async function isInstallSucceed() { + await page.waitForTimeout(2_000); + + await retry( + async () => { + const notice = await notification.getNotification({ + message: "Installing application: bookinfo", + }); + assert(!notice); + }, + { retries: 6 } + ); + + const notice = await notification.getNotification({ + message: "Installing application: bookinfo fail", + }); + + if (notice) { + await notice.dismiss(); + + assert(!notice); } - treeView = await getTreeView(page); + await retry( + async () => { + const bookinfo = await tree.getItem("", "default", "bookinfo"); - const defaultView = await Promise.all( - treeView.map((item) => - item.evaluate( - (el) => - el.getAttribute("aria-level") === "2" && el.innerText === "default" - ) - ) - ).then((results) => treeView.find((_, index) => results[index])); + assert(bookinfo); - const className = await ( - await defaultView.$(".monaco-tl-twistie") - ).evaluate((el) => el.getAttribute("class")); + const icon = await bookinfo.$( + `.custom-view-tree-node-item-icon[style$='app_connected.svg");']` + ); - if (className.includes("collapsed")) { - await defaultView.click(); - await page.waitForTimeout(3000); - } + assert(icon); + }, + { retries: 6 } + ); +} - const app = await getInstallApp(page, "bookinfo"); +async function install(waitTime) { + const bookinfo = await tree.getItem("", "default", "bookinfo"); - if (app) { - await unInstall(page, app, "bookinfo"); + if (bookinfo) { + await unInstall(bookinfo, waitTime); } - const install = await defaultView.$(".codicon-rocket"); + const treeItem = await tree.getItem("", "default"); + + const install = await treeItem.$(".codicon-rocket"); - await install.evaluate((el) => el.click()); + await install.click(); } -/** - * - * @param {puppeteer.Page} page - */ -async function checkInstall(page) { - assert(await (await isInstallSucceed(page, "bookinfo")).jsonValue()); - await checkPort("39080"); +async function checkInstall() { + await isInstallSucceed(); + + try { + await checkPort("39080"); + } catch (error) { + logger.error("checkPort", error); + } } -/** - * - * @param {puppeteer.Page} page - */ -async function cloneFromGit(page) { - await install(page); +async function cloneFromGit(waitTime) { + await install(waitTime); - await setInputBox(page, "Deploy From Git Repo"); + await dialog.selectAction("Deploy From Git Repo"); - await setInputBox(page, "https://github.com/nocalhost/bookinfo.git"); + await setInputBox("https://github.com/nocalhost/bookinfo.git"); - await setInputBox(page, "Default Branch"); + await dialog.selectAction("Default Branch"); } -/** - * - * @param {puppeteer.Page} page - */ -async function installKustomizeGit(page) { - await cloneFromGit(page); - await quickPick(page, "config.kustomize.yaml"); +async function installKustomizeGit() { + await cloneFromGit(); - await setInputBox(page, "Use Default"); + await selectQuickPickItem("config.kustomize.yaml"); - await checkInstall(page); + await dialog.selectAction("Use Default"); + + await checkInstall(); } -/** - * - * @param {puppeteer.Page} page - */ -async function installHelmGit(page) { - await cloneFromGit(page); +async function installHelmGit() { + await cloneFromGit(15_000); - await quickPick(page, "config.helm.yaml"); + await selectQuickPickItem("config.helm.yaml"); - await setInputBox(page, "Use Default"); + await dialog.selectAction("Use Default values"); - await checkInstall(page); + await checkInstall(); } -/** - * - * @param {puppeteer.Page} page - */ -async function installManifestGit(page) { - await cloneFromGit(page); +async function installManifestGit() { + await cloneFromGit(); - await quickPick(page, "config.manifest.git.yaml"); + await selectQuickPickItem("config.manifest.git.yaml"); - await setInputBox(page, "Use Default"); - - await checkInstall(page); + await checkInstall(); } -/** - * - * @param {puppeteer.Page} page - * @param {string} path - */ -async function installFromLocal(page, path) { - await install(page); - await setInputBox(page, "Deploy From Local Directory"); +async function installFromLocal(waitTime = 0) { + await install(waitTime); + + await dialog.selectAction("Deploy From Local Directory"); + + await file.selectPath(process.env.tmpDir); - await setInputBox(page, path); + await page.waitForTimeout(5_00); } -/** - * - * @param {puppeteer.Page} page - * @param {string} path - */ -async function installHelmLocal(page, path) { - await installFromLocal(page, path); +async function installHelmLocal() { + await installFromLocal(15_000); - await quickPick(page, "config.helm.local.yaml"); + await selectQuickPickItem("config.helm.local.yaml"); - await setInputBox(page, "Use Default"); + await dialog.selectAction("Use Default values"); - await checkInstall(page); + await checkInstall(); } -/** - * - * @param {puppeteer.Page} page - * @param {string} path - */ -async function installManifestLocal(page, path) { - await installFromLocal(page, path); - - await quickPick(page, "config.manifest.local.yaml"); +async function installManifestLocal() { + await installFromLocal(); - await setInputBox(page, "Use Default"); + await selectQuickPickItem("config.manifest.local.yaml"); - await checkInstall(page); + await checkInstall(); } -/** - * - * @param {puppeteer.Page} page - * @param {string} path - */ -async function installKustomizeLocal(page, path) { - await installFromLocal(page, path); +async function installKustomizeLocal() { + await installFromLocal(); - await quickPick(page, "config.kustomize.local.yaml"); + await selectQuickPickItem("config.kustomize.local.yaml"); - await setInputBox(page, "Use Default"); + await dialog.selectAction("Use Default"); - await checkInstall(page); + await checkInstall(); } +async function installDemo() { + await install(0); + + await dialog.selectAction("Deploy Demo"); + + return checkInstall(); +} module.exports = { installHelmGit, installManifestGit, @@ -182,4 +186,13 @@ module.exports = { installHelmLocal, installManifestLocal, installKustomizeLocal, + installDemo, }; + +(async () => { + if (require.main === module) { + process.env.tmpDir = "/Volumes/Data/project/nocalhost/bookinfo/git"; + + await initialize(null, installKustomizeLocal); + } +})(); diff --git a/test/extension/integration/install.test.js b/test/extension/integration/install.test.js index 507ff036..418b1562 100644 --- a/test/extension/integration/install.test.js +++ b/test/extension/integration/install.test.js @@ -1,8 +1,3 @@ -const cp = require("child_process"); -const rimraf = require("rimraf"); -const os = require("os"); -const path = require("path"); - const { installHelmGit, installManifestGit, @@ -12,60 +7,28 @@ const { installManifestLocal, } = require("./install"); -const installTests = () => { - describe("deploy From Local Directory", () => { - let bookInfoPath; - beforeAll(async (done) => { - bookInfoPath = path.join(os.tmpdir(), process.pid.toString(), "bookInfo"); - - rimraf.sync(bookInfoPath); - - const syncReturns = cp.spawnSync( - "git", - [ - "clone", - "--depth", - "1", - "https://github.com/nocalhost/bookinfo.git", - bookInfoPath, - ], - { - encoding: "utf-8", - stdio: "inherit", - } - ); +const { gitCode, getRepository } = require("../lib"); - if (syncReturns.status !== 0) { - done.fail(syncReturns.stderr); - } - done(); - }); - - afterAll(async () => { - rimraf.sync(bookInfoPath); - }); +const installTests = () => { + beforeAll(async (done) => { + gitCode(getRepository("bookinfo.git")) + .then((res) => { + process.env.tmpDir = res.tmpDir; + done(); + }) + .catch(done.fail); + }); - it("kustomize", async () => { - await installKustomizeLocal(page, bookInfoPath); - }); - it("helm", async () => { - await installHelmLocal(page, bookInfoPath); - }); - it("manifest", async () => { - await installManifestLocal(page, bookInfoPath); - }); + describe("deploy From Local Directory", () => { + it("kustomize", installKustomizeLocal); + it("helm", installHelmLocal); + it("manifest", installManifestLocal); }); describe("deploy From Git Repo", () => { - it("kustomize", async () => { - await installKustomizeGit(page); - }); - it("helm", async () => { - await installHelmGit(page); - }); - it("manifest", async () => { - await installManifestGit(page); - }); + it("kustomize", installKustomizeGit); + it("helm", installHelmGit); + it("manifest", installManifestGit); }); }; diff --git a/test/extension/integration/nhctl.js b/test/extension/integration/nhctl.js index 3c4a9a5c..0c42df64 100644 --- a/test/extension/integration/nhctl.js +++ b/test/extension/integration/nhctl.js @@ -6,14 +6,14 @@ const shell = require("shelljs"); /** * @param {puppeteer.Page} page */ -async function download(page) { +async function download() { const result = shell.which(path.resolve(homedir(), ".nh", "bin", "nhctl")); if (result && result.code === 0) { return; } - await waitForMessage(page, "Downloading nhctl"); + await waitForMessage("Downloading nhctl"); - await waitForMessage(page, "Download completed", 10 * 60 * 1000); + await waitForMessage("Download completed", 10 * 60 * 1000); } module.exports = { download }; diff --git a/test/extension/integration/nhctl.test.js b/test/extension/integration/nhctl.test.js index fe6b97fb..214e1923 100644 --- a/test/extension/integration/nhctl.test.js +++ b/test/extension/integration/nhctl.test.js @@ -1,13 +1,7 @@ const { download } = require("./nhctl"); const nhctlTests = () => { - it( - "download", - async () => { - await download(page); - }, - 10 * 60 * 1000 - ); + it("download", download, 10 * 60 * 1000); }; module.exports = { nhctlTests }; diff --git a/test/extension/integration/portForward.js b/test/extension/integration/portForward.js new file mode 100644 index 00000000..9748e0b9 --- /dev/null +++ b/test/extension/integration/portForward.js @@ -0,0 +1,89 @@ +const assert = require("assert"); +const getPort = require("get-port"); +const retry = require("async-retry"); + +const { getQuickPick, checkPort, setInputBox } = require("./index"); +const { dialog, tree } = require("../lib/components"); + +const treeItemPath = [ + "", + "default", + "bookinfo", + "Workloads", + "Deployments", + "ratings", +]; + +let port = -1; + +function getPortForwardPort() { + return port; +} + +async function checkReady() { + await retry( + async () => { + const bookinfo = await tree.getItem(...treeItemPath); + + assert(bookinfo); + + const icon = await bookinfo.$( + `.custom-view-tree-node-item-icon[style$='status_running.svg");']` + ); + + assert(icon); + }, + { retries: 9 } + ); +} + +async function add() { + const treeItem = await tree.getItem(...treeItemPath); + + const portForward = await treeItem.$(".action-label[title='Port Forward']"); + await portForward.click(); + + let quickPick = getQuickPick(); + + await quickPick.select(" Add port forward"); + + port = await getPort(); + + await setInputBox(`${port}:9080`); + + await checkPort(port); + + return port; +} + +async function list() { + const treeItem = await tree.getItem(...treeItemPath); + + const portForward = await treeItem.$(".action-label[title='Port Forward']"); + await portForward.click(); + + const itemTexts = await (await getQuickPick()).itemTexts; + + assert(itemTexts.includes(`${port}:9080`)); +} + +/** + * + */ +async function stop() { + const quickPick = await getQuickPick(); + + await quickPick.select(`${port}:9080`); + + await dialog.selectAction("Confirm"); + + await checkPort(port, { condition: (connect) => !connect }); +} + +module.exports = { + add, + list, + stop, + getPortForwardPort, + checkReady, +}; diff --git a/test/extension/integration/portForward.test.js b/test/extension/integration/portForward.test.js new file mode 100644 index 00000000..a6d057ff --- /dev/null +++ b/test/extension/integration/portForward.test.js @@ -0,0 +1,13 @@ +const { list, stop, add, checkReady } = require("./portForward"); + +const portForwardTests = () => { + beforeAll(async (done) => { + checkReady().then(done).cath(done.fail); + }); + + it("add", add, 15 * 60 * 1000); + it("list", list); + it("stop", stop); +}; + +module.exports = { portForwardTests }; diff --git a/test/extension/integration/viewLog.js b/test/extension/integration/viewLog.js new file mode 100644 index 00000000..469b702d --- /dev/null +++ b/test/extension/integration/viewLog.js @@ -0,0 +1,28 @@ +const { tree } = require("../lib/components"); +const assert = require("assert"); + +const treeItemPath = [ + "", + "default", + "bookinfo", + "Workloads", + "Deployments", + "ratings", +]; + +async function viewLog() { + const ratings = await tree.getItem(...treeItemPath); + const log = await ratings.$(".action-label[title='View Logs']"); + await log.click(); + + const top = await page.waitForSelector(".webview.ready"); + const topFrame = await top.contentFrame(); + const child = await topFrame.waitForSelector("#active-frame"); + const iframe = await child.contentFrame(); + const logEle = await iframe.$$('div[data-testid="logs"]'); + assert(logEle); +} + +module.exports = { + viewLog, +}; diff --git a/test/extension/integration/viewLog.test.js b/test/extension/integration/viewLog.test.js new file mode 100644 index 00000000..e90b9a5a --- /dev/null +++ b/test/extension/integration/viewLog.test.js @@ -0,0 +1,13 @@ +const { viewLog } = require("./viewLog"); +const { checkReady } = require("./portForward"); +const viewLogTests = () => { + beforeAll(async (done) => { + checkReady().then(done).cath(done.fail); + }); + + it("view", viewLog); +}; + +module.exports = { + viewLogTests, +}; diff --git a/test/extension/lib/components/dialog.js b/test/extension/lib/components/dialog.js new file mode 100644 index 00000000..80804283 --- /dev/null +++ b/test/extension/lib/components/dialog.js @@ -0,0 +1,34 @@ +/** + * + * @param {string} text + */ +async function selectAction(text) { + const dialog = await page.waitForSelector(".dialog-buttons"); + + await dialog.evaluate((el, text) => { + const button = Array.from(el.childNodes).find( + (item) => item.textContent === text + ); + + button.click(); + }, text); + + await page.waitForTimeout(500); +} + +/** + * + * @returns {Array} + */ +async function getActionTexts() { + const dialog = await page.waitForSelector(".dialog-buttons"); + + const buttons = await dialog.$$("a"); + + const texts = await Promise.all( + buttons.map((button) => button.evaluate((el) => el.textContent)) + ); + + return texts; +} +module.exports = { selectAction, getActionTexts }; diff --git a/test/extension/lib/components/file.js b/test/extension/lib/components/file.js new file mode 100644 index 00000000..95406f24 --- /dev/null +++ b/test/extension/lib/components/file.js @@ -0,0 +1,24 @@ +const puppeteer = require("puppeteer-core"); + +/** + * + * @param {puppeteer.Page} page + * @param {string} path + */ +async function selectPath(path) { + const input = await page.waitForSelector(".quick-input-widget .input"); + + await input.evaluate((input, path) => (input.value = path), path); + + await input.type(" "); + await page.keyboard.press("Backspace"); + + await page.waitForTimeout(1_00); + + const action = await page.waitForSelector( + ".quick-input-widget .quick-input-action a" + ); + await action.click(); +} + +module.exports = { selectPath }; diff --git a/test/extension/lib/components/index.js b/test/extension/lib/components/index.js new file mode 100644 index 00000000..dafbdd1b --- /dev/null +++ b/test/extension/lib/components/index.js @@ -0,0 +1,7 @@ +const dialog = require("./dialog"); +const file = require("./file"); +const terminal = require("./terminal"); +const tree = require("./tree"); +const notification = require("./notification"); + +module.exports = { dialog, terminal, file, tree, notification }; diff --git a/test/extension/lib/components/notification.js b/test/extension/lib/components/notification.js new file mode 100644 index 00000000..ff89aebc --- /dev/null +++ b/test/extension/lib/components/notification.js @@ -0,0 +1,65 @@ +const { ElementHandle } = require("puppeteer-core"); + +async function getNotifications() { + const toasts = await page.$(".notifications-toasts.visible"); + + if (!toasts) { + return []; + } + + const notifications = await toasts.$$(".notification-toast-container"); + + return notifications.map((el) => new Notification(el)); +} +/** + * + * @param {object} option - option + * @param {string} option.message - message + * @returns + */ +async function getNotification(option) { + const notifications = await getNotifications(); + + const messages = await Promise.all( + notifications.map((notification) => notification.getMessage()) + ); + + const index = messages.indexOf(option.message); + + return notifications[index]; +} +// class Action {} +class Notification { + _el; + /** + * + * @param {ElementHandle} el + */ + constructor(el) { + this._el = el; + } + /** + * + * @returns {Promise} + */ + async getMessage() { + const message = ( + await this._el.$(".notification-list-item-message") + ).evaluate((el) => el.textContent); + + return message; + } + async dismiss() { + const clear = await this._el.$(".codicon-notifications-clear"); + + if (clear) { + await this._el.hover(); + await clear.click(); + } + } + // get type() {} + // get hasProgress() {} + // get actions() {} + // takeAction(title) {} +} +module.exports = { getNotifications, getNotification }; diff --git a/test/extension/lib/components/terminal.js b/test/extension/lib/components/terminal.js new file mode 100644 index 00000000..bc30ead5 --- /dev/null +++ b/test/extension/lib/components/terminal.js @@ -0,0 +1,21 @@ +async function getTerminal() { + await page.waitForSelector(".terminal-wrapper.active .xterm-screen"); + + const terminal = await page.$(".terminal-wrapper.active .xterm-screen"); + await terminal.click(); + + return terminal; +} + +/** + * @param {string} text + */ +async function sendText(text) { + await getTerminal(page); + + await page.keyboard.type(text, { delay: 10 }); + + await page.waitForTimeout(5_00); +} + +module.exports = { sendText, getTerminal }; diff --git a/test/extension/lib/components/tree.js b/test/extension/lib/components/tree.js new file mode 100644 index 00000000..b50b369a --- /dev/null +++ b/test/extension/lib/components/tree.js @@ -0,0 +1,93 @@ +const puppeteer = require("puppeteer-core"); + +/** + * + * @param {number} level + * @param {string} name + * @return {puppeteer.ElementHandle} + */ +async function getTreeItem(level, name) { + await page.waitForSelector( + `#workbench\\.parts\\.sidebar .monaco-list-row[aria-level='${level}']` + ); + + const treeView = await page.$$( + `#workbench\\.parts\\.sidebar .monaco-list-row[aria-level='${level}']` + ); + + let treeItem; + if (level === 1 && !name) { + treeItem = treeView[0]; + } else { + treeItem = await Promise.all( + treeView.map((item) => + item.evaluate( + (el, level, name) => + el.getAttribute("aria-level") === level.toString() && + el.querySelector(".label-name").innerText === name, + level, + name + ) + ) + ).then((results) => { + return treeView.find((_, index) => results[index]); + }); + } + + if (!treeItem) { + return null; + } + + const tl = await treeItem.$(".monaco-tl-twistie"); + + const className = await tl.evaluate((el) => el.getAttribute("class")); + if (className.includes("collapsed")) { + await tl.click(); + } + + await tl.hover(); + + return tl; +} + +/** + * + * @param {string[]} childNames + * @return {puppeteer.ElementHandle} + */ +async function getItem(...childNames) { + let level = 0; + let treeItem; + + for await (const name of childNames) { + treeItem = await getTreeItem(++level, name); + } + + if (!treeItem) { + return null; + } + + const parentNode = await treeItem.getProperty("parentNode"); + + return parentNode; +} +/** + * + * @returns + */ +async function getChildren() { + await page.waitForFunction(function () { + return ( + document + .querySelector("#workbench\\.parts\\.sidebar") + ?.querySelectorAll(".monaco-list-row")?.length > 0 + ); + }); + + const sidebar = await page.waitForSelector("#workbench\\.parts\\.sidebar"); + + const treeView = await sidebar.$$(".monaco-list-row"); + + return treeView; +} +module.exports = { getItem, getChildren }; diff --git a/test/extension/lib/index.js b/test/extension/lib/index.js new file mode 100644 index 00000000..ed390204 --- /dev/null +++ b/test/extension/lib/index.js @@ -0,0 +1,40 @@ +const cp = require("child_process"); +const assert = require("assert"); +const path = require("path"); +const os = require("os"); +const cryptoRandomString = require("crypto-random-string"); +/** + * + * @param {string} repository + * @returns + */ +const gitCode = async (repository) => { + let tmpDir = path.join(os.tmpdir(), cryptoRandomString(10)); + + const result = cp.spawnSync( + "git", + ["clone", "--depth", "1", repository, tmpDir], + { + encoding: "utf-8", + stdio: "inherit", + } + ); + + assert(result.status === 0, result.stderr); + + return { result, tmpDir }; +}; + +const getRepository = (suffix) => { + const prefix = + (process.env["NH_REGION"] ?? "").toUpperCase() === "CN" + ? "https://e.coding.net/nocalhost" + : "https://github.com"; + + return `${prefix}/nocalhost/${suffix}`; +}; + +module.exports = { + getRepository, + gitCode, +}; diff --git a/test/extension/puppeteerEnvironment.js b/test/extension/puppeteerEnvironment.js index 1c5eac24..6bfa4a33 100644 --- a/test/extension/puppeteerEnvironment.js +++ b/test/extension/puppeteerEnvironment.js @@ -22,7 +22,9 @@ class PuppeteerEnvironment extends NodeEnvironment { page.setDefaultTimeout(10 * 1000); - await this.startVideoCapture(page); + if (process.env.VIDEO_CAPTURE) { + await this.startVideoCapture(page); + } await openNocalhost(page); diff --git a/test/extension/start.js b/test/extension/start.js deleted file mode 100644 index 271fdecf..00000000 --- a/test/extension/start.js +++ /dev/null @@ -1,5 +0,0 @@ -const { start } = require("."); - -(async () => { - await start(); -})(); diff --git a/test/extension/teardown.js b/test/extension/teardown.js index 66258686..2c54319a 100644 --- a/test/extension/teardown.js +++ b/test/extension/teardown.js @@ -4,6 +4,7 @@ const fse = require("fs-extra"); const os = require("os"); const kill = require("tree-kill"); +const logger = require("./lib/log"); const { videoCapture } = require("."); const DIR = path.join( @@ -13,7 +14,9 @@ const DIR = path.join( ); async function teardown() { - await videoCapture.end(); + if (process.env.VIDEO_CAPTURE) { + await videoCapture.end().catch((err) => logger.error(err)); + } await global.__BROWSER__.disconnect(); diff --git a/test/extension/typings/global.d.ts b/test/extension/typings/global.d.ts new file mode 100644 index 00000000..cb6a6cc8 --- /dev/null +++ b/test/extension/typings/global.d.ts @@ -0,0 +1,6 @@ +import { Browser, Page } from "puppeteer-core"; + +declare global { + const __BROWSER__: Readonly; + const page: Readonly; +} diff --git a/test/jsconfig.json b/test/jsconfig.json new file mode 100644 index 00000000..0da612f0 --- /dev/null +++ b/test/jsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "resolveJsonModule": true, + "typeRoots": ["./extension/typings/"], + "module": "commonjs", + "target": "es6", + "experimentalDecorators": true, + "strictNullChecks": false, + "rootDir": "./extension", + "lib": ["es6"], + "sourceMap": true, + "strict": true /* enable all strict type-checking options */ + /* Additional Checks */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + } +} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 7cfa6b4d..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./build/tsconfig.extension.json" -} From 6fb730fe17cac5a0c7dc012781cfc8cb7676e46c Mon Sep 17 00:00:00 2001 From: yuanganping Date: Tue, 18 Jan 2022 19:16:15 +0800 Subject: [PATCH 22/63] fix: del log (#438) --- src/main/state.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/main/state.ts b/src/main/state.ts index b9bbeba0..cc9deac4 100644 --- a/src/main/state.ts +++ b/src/main/state.ts @@ -87,8 +87,6 @@ class State { const refresh = async () => { const { token } = action; - let time = Date.now(); - try { const rootNode = this.getNode("Nocalhost") as BaseNocalhostNode; if (rootNode) { @@ -120,10 +118,6 @@ class State { await this.startAutoRefresh(); }, 10 * 1000); } - - logger.info( - `refresh size:${this.refreshFolderMap.size} time:${Date.now() - time}` - ); }; this.cancellationToken = action; From b23ca218a05ab6d26ce0a11453300e1b26ad0b77 Mon Sep 17 00:00:00 2001 From: zhangjian10 <18675647281@qq.com> Date: Thu, 20 Jan 2022 15:11:07 +0800 Subject: [PATCH 23/63] fix: Problems under remote deployment (#442) --- global.d.ts | 1 - package.json | 9 +- src/main/commands/LoadWorkloadsCommand.ts | 33 ----- src/main/commands/constants.ts | 1 - src/main/commands/index.ts | 2 - .../MessageManager/handlers/updateURL.ts | 5 +- src/main/ctl/nhctl/cli.ts | 44 ++++-- src/main/debug/provider/goDebugProvider.ts | 29 +--- src/main/tsconfig.json | 2 +- src/main/typings/global.d.ts | 1 - src/main/utils/ga.ts | 20 --- src/main/webview/NocalhostWebviewPanel.ts | 17 +-- src/renderer/AppRouter.tsx | 4 - src/renderer/index.tsx | 2 +- src/renderer/modules/Logs/index.tsx | 8 +- .../modules/Workloads/Deployments/index.tsx | 81 ----------- src/renderer/modules/Workloads/index.tsx | 134 ------------------ src/renderer/tsconfig.json | 4 +- yarn.lock | 5 - 19 files changed, 59 insertions(+), 343 deletions(-) delete mode 100644 global.d.ts delete mode 100644 src/main/commands/LoadWorkloadsCommand.ts delete mode 100644 src/main/utils/ga.ts delete mode 100644 src/renderer/modules/Workloads/Deployments/index.tsx delete mode 100644 src/renderer/modules/Workloads/index.tsx diff --git a/global.d.ts b/global.d.ts deleted file mode 100644 index 2a3db73f..00000000 --- a/global.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module "@dineug/vscode-google-analytics"; diff --git a/package.json b/package.json index 24f68991..b18d1a30 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nocalhost", - "version": "0.6.9", + "version": "0.6.14", "displayName": "Nocalhost", "description": "Makes developing with Kubernetes feel like on local. IDE tool for cloud-native development", "license": "Apache-2.0", @@ -367,10 +367,6 @@ "command": "Nocalhost.rename", "title": "%rename%" }, - { - "command": "Nocalhost.loadWorkloads", - "title": "Load Workloads" - }, { "command": "Nocalhost.applyKubernetesObject", "title": "Apply New Manifest" @@ -598,7 +594,7 @@ }, "scripts": { "prebuild": "node ./scripts/pre.build.js", - "build": "./node_modules/.bin/vsce package", + "build": "vsce package", "vscode:prepublish": "yarn run package", "vscode:uninstall": "node ./dist/cleanup.js", "ts-compile-check": "tsc --noEmit -p src/main", @@ -696,7 +692,6 @@ "webpack-cli": "^3.3.12" }, "dependencies": { - "@dineug/vscode-google-analytics": "^0.1.2", "@types/proper-lockfile": "^4.1.1", "ajv": "^6.12.6", "axios": "^0.21.0", diff --git a/src/main/commands/LoadWorkloadsCommand.ts b/src/main/commands/LoadWorkloadsCommand.ts deleted file mode 100644 index 18700534..00000000 --- a/src/main/commands/LoadWorkloadsCommand.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as vscode from "vscode"; -import ICommand from "./ICommand"; -import { LOAD_WORKLOADS } from "./constants"; -import registerCommand from "./register"; -import host from "../host"; -import NocalhostWebviewPanel from "../webview/NocalhostWebviewPanel"; -import { DeploymentFolder } from "../nodes/workloads/controllerResources/deployment/DeploymentFolder"; - -export default class LoadWorkloadsCommand implements ICommand { - command: string = LOAD_WORKLOADS; - constructor(context: vscode.ExtensionContext) { - registerCommand(context, this.command, false, this.execCommand.bind(this)); - } - async execCommand(node: DeploymentFolder) { - if (!node) { - host.showWarnMessage("Failed to get node configs, please try again."); - return; - } - const appName: string = node.getAppName(); - if (appName) { - NocalhostWebviewPanel.open({ - url: "/workloads", - title: `${appName}/workloads`, - newTab: true, - query: { - id: node.getNodeStateId(), - app: node.getAppName(), - type: node.label, - }, - }); - } - } -} diff --git a/src/main/commands/constants.ts b/src/main/commands/constants.ts index e02211e6..e57dec4d 100644 --- a/src/main/commands/constants.ts +++ b/src/main/commands/constants.ts @@ -44,7 +44,6 @@ export const COPY_TERMINAL = "Nocalhost.copyTerminal"; export const PORT_FORWARD = "Nocalhost.portForward"; export const CLEAN_PVC = "Nocalhost.cleanPvc"; -export const LOAD_WORKLOADS = "Nocalhost.loadWorkloads"; export const VIEW_KUBECONFIG = "Nocalhost.viewKubeConfig"; export const ASSOCIATE_LOCAL_DIRECTORY = "Nocalhost.associateLocalDirectory"; diff --git a/src/main/commands/index.ts b/src/main/commands/index.ts index f473b802..cbf2a618 100644 --- a/src/main/commands/index.ts +++ b/src/main/commands/index.ts @@ -18,7 +18,6 @@ import StartDevModeCommand from "./StartDevModeCommand"; import SwitchEndPointCommand from "./SwitchEndPointCommand"; import UninstallCommand from "./UninstallCommand"; import ViewKubeConfigCommand from "./ViewKubeConfig"; -import LoadWorkloadsCommand from "./LoadWorkloadsCommand"; import ApplyKubernetesObjectCommand from "./ApplyKubernetesObjectCommand"; import DeleteKubernetesObjectCommand from "./DeleteKubernetesObjectCommand"; import SyncServiceCommand from "./SyncServiceCommand"; @@ -79,7 +78,6 @@ export default function initCommands( new ResetCommand(context); new CleanPvcCommand(context); new ResetDevspaceCommand(context); - new LoadWorkloadsCommand(context); new ViewKubeConfigCommand(context); new AssociateLocalDirxectoryCommand(context); diff --git a/src/main/common/MessageManager/handlers/updateURL.ts b/src/main/common/MessageManager/handlers/updateURL.ts index 991d138b..2e78a3da 100644 --- a/src/main/common/MessageManager/handlers/updateURL.ts +++ b/src/main/common/MessageManager/handlers/updateURL.ts @@ -3,9 +3,8 @@ import NocalhostWebviewPanel from "../../../webview/NocalhostWebviewPanel"; export default async function updateURL(message: IMessage, id: number) { const { payload } = message; - const panel: - | NocalhostWebviewPanel - | undefined = NocalhostWebviewPanel.getPanelById(id); + const panel: NocalhostWebviewPanel = NocalhostWebviewPanel.getPanelById(id); + if (!payload || !payload.url || !panel) { return; } diff --git a/src/main/ctl/nhctl/cli.ts b/src/main/ctl/nhctl/cli.ts index 34960fdd..ed196ce2 100644 --- a/src/main/ctl/nhctl/cli.ts +++ b/src/main/ctl/nhctl/cli.ts @@ -1,15 +1,16 @@ -import { - DEV_VERSION, - GLOBAL_TIMEOUT, - PLUGIN_TEMP_DIR, - TEMP_NHCTL_BIN, -} from "./../../constants"; import * as vscode from "vscode"; import * as semver from "semver"; import * as os from "os"; import * as path from "path"; import * as fs from "fs"; +import { delay } from "lodash"; +import { + DEV_VERSION, + GLOBAL_TIMEOUT, + PLUGIN_TEMP_DIR, + TEMP_NHCTL_BIN, +} from "./../../constants"; import { exec, ExecParam, execWithProgress } from "../shell"; import host, { Host } from "../../host"; import * as yaml from "yaml"; @@ -811,11 +812,32 @@ export async function startPortForward( title, command, sudo: !!isSudo(ports), - }).catch(() => { - return Promise.reject( - new Error(`Port-forward (${appName}/${workloadName}) fail`) - ); - }); + }) + .catch(() => { + return Promise.reject( + Error(`Port-forward (${appName}/${workloadName}) fail`) + ); + }) + .then(() => { + if ( + host.getContext().extension.extensionKind === vscode.ExtensionKind.UI + ) { + return; + } + + const localPort = ports[0].split(":")[0]; + + const terminal = host.createTerminal({ + name: "forwarding", + shellPath: "/bin/sh", + shellArgs: [ + "-c", + `echo Automatic forwarding tcp://:127.0.0.1:${localPort}`, + ], + }); + + delay(terminal.dispose, 1000); + }); } export async function endPortForward( diff --git a/src/main/debug/provider/goDebugProvider.ts b/src/main/debug/provider/goDebugProvider.ts index f8780c9a..7376d4ca 100644 --- a/src/main/debug/provider/goDebugProvider.ts +++ b/src/main/debug/provider/goDebugProvider.ts @@ -55,30 +55,15 @@ export class GoDebugProvider extends IDebugProvider { } async checkExtensionDependency(): Promise { - type GoENV = { [key: string]: string }; - - const env: GoENV = await exec({ command: "go env" }) + const env = await exec({ + command: "go", + args: ["env", "-json", "GOPATH"], + }) .promise.then((res) => { - return res.stdout - .split("\n") - .map((str) => { - if (host.isWindow()) { - str = str.substring(4); - } else { - str = str.replaceAll(`"`, ""); - } - - return str.split("="); - }) - .reduce((obj, [key, value]) => { - if (key) { - obj[key] = value; - } - - return obj; - }, {}); + return JSON.parse(res.stdout) as { GOPATH: string }; }) - .catch(() => { + .catch((err) => { + logger.error("checkExtensionDependency", err); return Promise.reject(Error(`Failed to run "go env"`)); }); diff --git a/src/main/tsconfig.json b/src/main/tsconfig.json index dda1f661..b7ee6834 100644 --- a/src/main/tsconfig.json +++ b/src/main/tsconfig.json @@ -6,7 +6,7 @@ "target": "es6", "experimentalDecorators": true, "strictNullChecks": false, - "rootDir": "../../", + "rootDir": "./", "lib": ["es6"], "sourceMap": true, "strict": true /* enable all strict type-checking options */ diff --git a/src/main/typings/global.d.ts b/src/main/typings/global.d.ts index 2a3db73f..e69de29b 100644 --- a/src/main/typings/global.d.ts +++ b/src/main/typings/global.d.ts @@ -1 +0,0 @@ -declare module "@dineug/vscode-google-analytics"; diff --git a/src/main/utils/ga.ts b/src/main/utils/ga.ts deleted file mode 100644 index 61971790..00000000 --- a/src/main/utils/ga.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Analytics } from "@dineug/vscode-google-analytics"; - -import { v4 as uuidv4 } from "uuid"; - -import host from "../host"; - -const analytics = new Analytics("UA-185969461-1"); - -export function getUUID() { - let uuid = host.getGlobalState("UUID"); - if (uuid) { - return uuid; - } - - uuid = uuidv4(); - host.setGlobalState("UUID", uuid); - return uuid; -} - -export default analytics; diff --git a/src/main/webview/NocalhostWebviewPanel.ts b/src/main/webview/NocalhostWebviewPanel.ts index a4a88862..a590e9d8 100644 --- a/src/main/webview/NocalhostWebviewPanel.ts +++ b/src/main/webview/NocalhostWebviewPanel.ts @@ -49,9 +49,9 @@ export default class NocalhostWebviewPanel { if (Object.keys(query).length > 0) { url = `${url}?${qs.stringify(query)}`; } - const panel: - | NocalhostWebviewPanel - | undefined = NocalhostWebviewPanel.getPanelByURL(url); + const panel: NocalhostWebviewPanel = NocalhostWebviewPanel.getPanelByURL( + url + ); if (panel) { NocalhostWebviewPanel.openOnExistPanel(panel, url, title, column); } else { @@ -263,7 +263,7 @@ export default class NocalhostWebviewPanel { const fontPath: vscode.Uri = webview.asWebviewUri( vscode.Uri.file(path.join(extensionPath, "dist", `DroidSansMono_v1.ttf`)) ); - const lang = vscode.env.language; + return ` @@ -280,15 +280,6 @@ export default class NocalhostWebviewPanel { font-style: normal; } -
diff --git a/src/renderer/AppRouter.tsx b/src/renderer/AppRouter.tsx index 902a9ed4..112a6e27 100644 --- a/src/renderer/AppRouter.tsx +++ b/src/renderer/AppRouter.tsx @@ -3,7 +3,6 @@ import { HashRouter, Route, Switch, Redirect } from "react-router-dom"; import Layout from "./components/Layout"; import Landing from "./modules/Landing"; import Welcome from "./modules/Welcome"; -import Workloads from "./modules/Workloads"; import Logs from "./modules/Logs"; const AppRouter: React.FC = () => { @@ -20,9 +19,6 @@ const AppRouter: React.FC = () => { - - - diff --git a/src/renderer/index.tsx b/src/renderer/index.tsx index 730315f7..b0a4e8b8 100644 --- a/src/renderer/index.tsx +++ b/src/renderer/index.tsx @@ -1,6 +1,6 @@ import React from "react"; import { render } from "react-dom"; import App from "./App"; -import i18n from "./i18n"; +import "./i18n"; render(, document.getElementById("root")); diff --git a/src/renderer/modules/Logs/index.tsx b/src/renderer/modules/Logs/index.tsx index e60c4fa6..1f3948bb 100644 --- a/src/renderer/modules/Logs/index.tsx +++ b/src/renderer/modules/Logs/index.tsx @@ -1,15 +1,19 @@ import React, { useContext, useEffect, useRef } from "react"; import { useHistory } from "react-router-dom"; import qs from "qs"; -import hljs from "highlight.js"; +import hljs from "highlight.js/lib/core"; +import haskell from "highlight.js/lib/languages/haskell"; import { createStyles, makeStyles } from "@material-ui/core"; -import { Skeleton } from "@material-ui/lab"; +import Skeleton from "@material-ui/lab/Skeleton"; + import { store } from "../../store/store"; import { CustomThemeOptions } from "../../themes"; import { ThemeType, LOG_TAIL_COUNT } from "../../constants"; import fetchLogs from "../../services/fetchLogs"; import useInterval from "../../hooks/useInterval"; +hljs.registerLanguage("haskell", haskell); + const useStyles = makeStyles((theme: CustomThemeOptions) => createStyles({ root: { diff --git a/src/renderer/modules/Workloads/Deployments/index.tsx b/src/renderer/modules/Workloads/Deployments/index.tsx deleted file mode 100644 index 62ef18eb..00000000 --- a/src/renderer/modules/Workloads/Deployments/index.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import React, { useContext, useState } from "react"; -import { useHistory } from "react-router-dom"; -import qs from "qs"; -import { createStyles, makeStyles } from "@material-ui/core"; -import { DataGrid, GridRowData, GridColumns } from "@material-ui/data-grid"; -import fetchDeployments from "../../../services/fetchDeployments"; -import useInterval from "../../../hooks/useInterval"; -import { store } from "../../../store/store"; -import { IDeployment } from "../../../store/store.types"; -import { CustomThemeOptions } from "../../../themes"; - -const useStyles = makeStyles((theme: CustomThemeOptions) => - createStyles({ - root: { - height: "100%", - }, - }) -); - -const Deployments: React.FC = () => { - const { - state: { deployments }, - dispatch, - } = useContext(store); - const [tabValue, setTabValue] = useState(0); - const history = useHistory(); - const search: string = history.location.search; - const query: qs.ParsedQs = qs.parse(search, { - ignoreQueryPrefix: true, - }); - const classes = useStyles(); - - console.log(history); - useInterval( - fetchDeployments, - [ - { - id: query.id as string, - app: query.app as string, - }, - ], - [search] - ); - - const columns: GridColumns = [ - { field: "name", headerName: "Name", width: 120 }, - { field: "namespace", headerName: "Namespace", width: 130 }, - { field: "pods", headerName: "Pods", width: 120 }, - { field: "replicas", headerName: "Replicas", width: 120 }, - { field: "createdTime", headerName: "Created Time", width: 150 }, - { field: "conditions", headerName: "Conditions", width: 120 }, - ]; - - const rows: GridRowData[] = deployments.items.map( - (deployment: IDeployment, index: number) => ({ - id: index + 1, - name: deployment.name, - namespace: deployment.namespace, - pods: deployment.pods, - replicas: deployment.replicas, - createdTime: deployment.createdTime, - conditions: deployment.conditions, - }) - ); - - return ( -
-

Deployments

-
- -
-
- ); -}; - -export default Deployments; diff --git a/src/renderer/modules/Workloads/index.tsx b/src/renderer/modules/Workloads/index.tsx deleted file mode 100644 index 41c986c9..00000000 --- a/src/renderer/modules/Workloads/index.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { useHistory } from "react-router-dom"; -import qs from "qs"; -import { - Tab, - Tabs, - Theme, - withStyles, - createStyles, - makeStyles, -} from "@material-ui/core"; -import { CustomThemeOptions } from "../../themes"; -import Deployments from "./Deployments"; - -interface StyledTabProps { - label: string; -} - -const tabs: string[] = [ - "StatefulSets", - "Deployments", - "DaemonSets", - "Jobs", - "CronJobs", - "Pods", -]; - -const NHTabs = withStyles((theme: Theme) => - createStyles({ - root: { - borderBottom: `1px solid ${theme.palette?.divider}`, - }, - indicator: { - backgroundColor: "#a10000", - }, - }) -)(Tabs); - -const NHTab = withStyles((theme: Theme) => - createStyles({ - root: { - textTransform: "none", - minWidth: 72, - fontWeight: theme.typography.fontWeightRegular, - marginRight: theme.spacing(4), - "&:hover": { - color: "red", - opacity: 1, - }, - "&$selected": { - color: "blue", - fontWeight: theme.typography.fontWeightMedium, - }, - "&:focus": { - color: "green", - }, - }, - selected: {}, - }) -)((props: StyledTabProps) => ); - -const useStyles = makeStyles((theme: CustomThemeOptions) => - createStyles({ - root: { - height: "100%", - }, - }) -); - -const Workloads: React.FC = () => { - const [tabValue, setTabValue] = useState(0); - const history = useHistory(); - const search: string = history.location.search; - const query: qs.ParsedQs = qs.parse(search, { - ignoreQueryPrefix: true, - }); - const resourceType: string = query.type as string; - const classes = useStyles(); - - useEffect(() => { - const value: number = tabs.indexOf(resourceType); - if (value > 0) { - setTabValue(value); - } - }, [resourceType]); - - const handleTabChange = (event: React.ChangeEvent<{}>, newValue: number) => { - setTabValue(newValue); - }; - - return ( -
- - {tabs.map((label: string) => ( - - ))} - -
- {tabValue === 0 && ( -
- {tabValue}: {tabs[tabValue]} -
- )} - {tabValue === 1 && } - {tabValue === 2 && ( -
- {tabValue}: {tabs[tabValue]} -
- )} - {tabValue === 3 && ( -
- {tabValue}: {tabs[tabValue]} -
- )} - {tabValue === 4 && ( -
- {tabValue}: {tabs[tabValue]} -
- )} - {tabValue === 5 && ( -
- {tabValue}: {tabs[tabValue]} -
- )} -
-
- ); -}; - -export default Workloads; diff --git a/src/renderer/tsconfig.json b/src/renderer/tsconfig.json index 8cb5724b..35dd09ad 100644 --- a/src/renderer/tsconfig.json +++ b/src/renderer/tsconfig.json @@ -2,13 +2,15 @@ "compilerOptions": { "module": "esnext", "moduleResolution": "node", + "typeRoots": ["./typings"], "target": "ES6", - "rootDir": "../../", + "rootDir": "./", "experimentalDecorators": true, "noImplicitAny": true, "strictNullChecks": false, "jsx": "react", "lib": ["dom", "esnext"], + "types": ["@types/jest", "highlight.js/types"], "esModuleInterop": true, "allowJs": true, "allowSyntheticDefaultImports": true diff --git a/yarn.lock b/yarn.lock index 54b219a5..2a38ba5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -322,11 +322,6 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@dineug/vscode-google-analytics@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@dineug/vscode-google-analytics/-/vscode-google-analytics-0.1.2.tgz#03243673d41bc22eb6d247d3ad619708b428c72b" - integrity sha512-M7/Hc9GBh08vUm0W3rqxlAYyByrX/YVcolhknqUvcQ5mGje/FzgWhmfpb6VOthoEsFsYEB+xdT5h8C86w6hfbQ== - "@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" From 7a4f532dda6dc5ede0e5327352dbd5a1ad561d95 Mon Sep 17 00:00:00 2001 From: yuanganping Date: Fri, 21 Jan 2022 09:34:43 +0800 Subject: [PATCH 24/63] feat: add test --- scripts/test.build.js | 5 +++++ test/extension/integration/duplicateDevMode.js | 0 test/extension/integration/duplicateDevMode.test.js | 11 +++++++++++ 3 files changed, 16 insertions(+) create mode 100644 test/extension/integration/duplicateDevMode.js create mode 100644 test/extension/integration/duplicateDevMode.test.js diff --git a/scripts/test.build.js b/scripts/test.build.js index f2a53fcc..96ea8052 100644 --- a/scripts/test.build.js +++ b/scripts/test.build.js @@ -16,6 +16,11 @@ const contextPatch = [ when: "viewItem =~ /^(viewer:|)workload-(deployment|statefulSet|daemonSet|job|cronJob|pod|crd-resources)-dev-(?!vpn_)/i", }, + { + command: "Nocalhost.startCopyDevMode", + when: + "viewItem =~ /^workload-(deployment|statefulSet|job|daemonSet|cronjob|pod|crd-resources)-dev-(?!(developing-duplicate|developing-replace-self|starting|vpn_healthy|vpn_unhealthy))/i", + }, ]; packageJson.contributes.menus["view/item/context"].forEach((context) => { if ( diff --git a/test/extension/integration/duplicateDevMode.js b/test/extension/integration/duplicateDevMode.js new file mode 100644 index 00000000..e69de29b diff --git a/test/extension/integration/duplicateDevMode.test.js b/test/extension/integration/duplicateDevMode.test.js new file mode 100644 index 00000000..b0700559 --- /dev/null +++ b/test/extension/integration/duplicateDevMode.test.js @@ -0,0 +1,11 @@ +const { checkReady } = require("./portForward"); + +const duplicateDevModeTests = () => { + beforeAll(async (done) => { + checkReady().then(done).catch(done.fail); + }); +}; + +module.exports = { + duplicateDevModeTests, +}; From 8ea7f7ab8536f6a2e792efecc25e5c9c0a862cd4 Mon Sep 17 00:00:00 2001 From: zhangjian10 <18675647281@qq.com> Date: Fri, 21 Jan 2022 10:28:17 +0800 Subject: [PATCH 25/63] style: check kubeconfig (#437) --- build/webpack.config.js | 4 +- package-lock.json | 13027 ---------------- package.json | 6 +- src/main/clusters/LocalCuster.ts | 45 +- src/main/constants.ts | 8 +- src/main/ctl/nhctl/cli.ts | 48 +- src/main/ctl/nhctl/type.ts | 5 + src/main/extension.ts | 5 +- src/main/tsconfig.json | 2 +- src/main/utils/fileUtil.ts | 22 +- src/main/webview/HomePage.ts | 228 +- src/renderer/Home.tsx | 43 +- .../KubeConfigAsText/KubeConfigAsText.tsx | 85 - .../components/KubeConfigAsText/index.tsx | 3 - .../components/LocalKubeConfig/asText.tsx | 162 + .../components/LocalKubeConfig/index.tsx | 168 +- .../components/LocalKubeConfig/pathSelect.tsx | 176 + .../components/LocalKubeConfig/status.tsx | 52 + .../components/LocalKubeConfig/validation.tsx | 83 + .../components/NocalHostServer/index.tsx | 33 +- src/renderer/components/Select/Select.tsx | 21 +- .../components/kubeConfigPathSelect/index.tsx | 79 - src/renderer/hooks/vscode.ts | 39 + src/renderer/modules/Welcome/index.tsx | 13 +- src/renderer/tsconfig.json | 8 +- src/renderer/utils/index.ts | 40 +- static/home/main.css | 12 + test/extension/integration/connect.js | 15 +- test/extension/integration/connect.test.js | 4 +- 29 files changed, 881 insertions(+), 13555 deletions(-) delete mode 100644 package-lock.json delete mode 100644 src/renderer/components/KubeConfigAsText/KubeConfigAsText.tsx delete mode 100644 src/renderer/components/KubeConfigAsText/index.tsx create mode 100644 src/renderer/components/LocalKubeConfig/asText.tsx create mode 100644 src/renderer/components/LocalKubeConfig/pathSelect.tsx create mode 100644 src/renderer/components/LocalKubeConfig/status.tsx create mode 100644 src/renderer/components/LocalKubeConfig/validation.tsx delete mode 100644 src/renderer/components/kubeConfigPathSelect/index.tsx create mode 100644 src/renderer/hooks/vscode.ts diff --git a/build/webpack.config.js b/build/webpack.config.js index c34c0d06..ad8e09f5 100644 --- a/build/webpack.config.js +++ b/build/webpack.config.js @@ -56,9 +56,8 @@ const extensionConfig = { ], }; +/**@type {import('webpack').Configuration}*/ const rendererConfig = { - target: "node", - mode: "production", entry: { renderer_v1: "./src/renderer/index.tsx", home: "./src/renderer/HomeIndex.tsx", @@ -66,7 +65,6 @@ const rendererConfig = { output: { path: path.resolve(__dirname, "..", "dist"), }, - devtool: "source-map", resolve: { extensions: [".ts", ".tsx", ".js", ".json"], }, diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2cbfdc68..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13027 +0,0 @@ -{ - "name": "nocalhost", - "version": "0.6.9", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/code-frame/7.14.5/__path/npm/@babel/code-frame/-/code-frame-7.14.5/23b08d740e83f49c5e59945fbf1b43e80bbf4edb.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/compat-data/7.14.5/__path/npm/@babel/compat-data/-/compat-data-7.14.5/8ef4c18e58e801c5c95d3c1c0f2874a2680fadea.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", - "dev": true - }, - "@babel/core": { - "version": "7.14.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/core/7.14.6/__path/npm/@babel/core/-/core-7.14.6/e0814ec1a950032ff16c13a2721de39a8416fcab.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/6.3.0/__path/npm/semver/-/semver-6.3.0/ee0a64c8af5e8ceea67687b133761e1becbd1d3d.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map/0.5.7/__path/npm/source-map/-/source-map-0.5.7/8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/generator/7.14.5/__path/npm/@babel/generator/-/generator-7.14.5/848d7b9f031caca9d0cd0af01b063f226f52d785.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map/0.5.7/__path/npm/source-map/-/source-map-0.5.7/8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-compilation-targets/7.14.5/__path/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5/7a99c5d0967911e972fe2c3411f7d5b498498ecf.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/6.3.0/__path/npm/semver/-/semver-6.3.0/ee0a64c8af5e8ceea67687b133761e1becbd1d3d.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-function-name/7.14.5/__path/npm/@babel/helper-function-name/-/helper-function-name-7.14.5/89e2c474972f15d8e233b52ee8c480e2cfcd50c4.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-get-function-arity/7.14.5/__path/npm/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5/25fbfa579b0937eee1f3b805ece4ce398c431815.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-hoist-variables/7.14.5/__path/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5/e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-member-expression-to-functions/7.14.5/__path/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5/d5c70e4ad13b402c95156c7a53568f504e2fb7b8.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-module-imports/7.14.5/__path/npm/@babel/helper-module-imports/-/helper-module-imports-7.14.5/6d1a44df6a38c957aa7c312da076429f11b422f3.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-module-transforms/7.14.5/__path/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5/7de42f10d789b423eb902ebd24031ca77cb1e10e.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-optimise-call-expression/7.14.5/__path/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5/f27395a8619e0665b3f0364cddb41c25d71b499c.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-plugin-utils/7.14.5/__path/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5/5ac822ce97eec46741ab70a517971e443a70c5a9.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-replace-supers/7.14.5/__path/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5/0ecc0b03c41cd567b4024ea016134c28414abb94.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-simple-access/7.14.5/__path/npm/@babel/helper-simple-access/-/helper-simple-access-7.14.5/66ea85cf53ba0b4e588ba77fc813f53abcaa41c4.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-split-export-declaration/7.14.5/__path/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5/22b23a54ef51c2b7605d851930c1976dd0bc693a.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@babel/helper-validator-identifier/-/@babel/helper-validator-identifier-7.14.5/d0f0e277c512e0c938277faa85a3968c9a44c0e8.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helper-validator-option/7.14.5/__path/npm/@babel/helper-validator-option/-/helper-validator-option-7.14.5/6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/helpers/7.14.6/__path/npm/@babel/helpers/-/helpers-7.14.6/5b58306b95f1b47e2a0199434fa8658fa6c21635.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", - "dev": true, - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/highlight/7.14.5/__path/npm/@babel/highlight/-/highlight-7.14.5/6861a52f03966405001f6aa534a01a24d99e8cd9.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/2.4.2/__path/npm/chalk/-/chalk-2.4.2/cd42541677a54333cf541a49108c1432b44c9424.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/has-flag/-/has-flag-3.0.0/b5d454dc2199ae225699f3467e5a07f3b955bafd.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/5.5.0/__path/npm/supports-color/-/supports-color-5.5.0/e2e69a44ac8772f78a1ec0b35b689df6530efc8f.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.14.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/parser/7.14.6/__path/npm/@babel/parser/-/parser-7.14.6/d85cc68ca3cac84eae384c06f032921f5227f4b2.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-async-generators/7.8.4/__path/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4/a983fb1aeb2ec3f6ed042a210f640e90e786fe0d.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-bigint/7.8.3/__path/npm/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3/4c9a6f669f5d0cdf1b90a1671e9a146be5300cea.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-class-properties/7.12.13/__path/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13/b5c987274c4a3a82b89714796931a6b53544ae10.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-import-meta/7.10.4/__path/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4/ee601348c370fa334d2207be158777496521fd51.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-json-strings/7.8.3/__path/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3/01ca21b668cd8218c9e640cb6dd88c5412b2c96a.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-logical-assignment-operators/7.10.4/__path/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4/ca91ef46303530448b906652bac2e9fe9941f699.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3/__path/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3/167ed70368886081f74b5c36c65a88c03b66d1a9.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-numeric-separator/7.10.4/__path/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4/b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-object-rest-spread/7.8.3/__path/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3/60e225edcbd98a640332a2e72dd3e66f1af55871.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-optional-catch-binding/7.8.3/__path/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3/6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-optional-chaining/7.8.3/__path/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3/4f69c2ab95167e0180cd5336613f8c5788f7d48a.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/plugin-syntax-top-level-await/7.14.5/__path/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5/c1cfdadc35a646240001f06138247b741c34d94c.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/runtime": { - "version": "7.14.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/runtime/7.14.6/__path/npm/@babel/runtime/-/runtime-7.14.6/535203bc0892efc7dec60bdc27b2ecf6e409062d.tgz", - "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.14.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/runtime-corejs3/7.14.6/__path/npm/@babel/runtime-corejs3/-/runtime-corejs3-7.14.6/066b966eda40481740180cb3caab861a3f208cd3.tgz", - "integrity": "sha512-Xl8SPYtdjcMoCsIM4teyVRg7jIcgl8F2kRtoCcXuHzXswt9UxZCS6BzRo8fcnCuP6u2XtPgvyonmEPF57Kxo9Q==", - "dev": true, - "requires": { - "core-js-pure": "^3.14.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/template/7.14.5/__path/npm/@babel/template/-/template-7.14.5/a9bc9d8b33354ff6e55a9c60d1109200a68974f4.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@babel/traverse/7.14.5/__path/npm/@babel/traverse/-/traverse-7.14.5/c111b0f58afab4fea3d3385a406f692748c59870.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/globals/11.12.0/__path/npm/globals/-/globals-11.12.0/ab8795338868a0babd8525758018c2a7eb95c42e.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@babel/types/-/@babel/types-7.14.5/3bb997ba829a2104cedb20689c4a5b8121d383ff.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@bcoe/v8-coverage/0.2.3/__path/npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3/75a2e8b51cb758a7553d6804a5932d7aace75c39.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@blakeembrey/deque": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@blakeembrey/deque/1.0.5/__path/npm/@blakeembrey/deque/-/deque-1.0.5/f4fa17fc5ee18317ec01a763d355782c7b395eaf.tgz", - "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==", - "dev": true - }, - "@blakeembrey/template": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@blakeembrey/template/1.0.0/__path/npm/@blakeembrey/template/-/template-1.0.0/bf8828bc3ae8004d97904d78f64e3cc2cd216438.tgz", - "integrity": "sha512-J6WGZqCLdRMHUkyRG6fBSIFJ0rL60/nsQNh5rQvsYZ5u0PsKw6XQcJcA3DWvd9cN3j/IQx5yB1fexhCafwwUUw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@cnakazawa/watch/1.0.4/__path/npm/@cnakazawa/watch/-/watch-1.0.4/f864ae85004d0fcab6f50be9141c4da368d1656a.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@dineug/vscode-google-analytics": { - "version": "0.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@dineug/vscode-google-analytics/0.1.2/__path/npm/@dineug/vscode-google-analytics/-/vscode-google-analytics-0.1.2/03243673d41bc22eb6d247d3ad619708b428c72b.tgz", - "integrity": "sha512-M7/Hc9GBh08vUm0W3rqxlAYyByrX/YVcolhknqUvcQ5mGje/FzgWhmfpb6VOthoEsFsYEB+xdT5h8C86w6hfbQ==" - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@emotion/hash/0.8.0/__path/npm/@emotion/hash/-/hash-0.8.0/bbbff68978fefdbe68ccb533bc8cbe1d1afb5413.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@eslint/eslintrc/0.2.2/__path/npm/@eslint/eslintrc/-/eslintrc-0.2.2/d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - } - }, - "@ffmpeg-installer/darwin-arm64": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/darwin-arm64/-/darwin-arm64-4.1.5.tgz", - "integrity": "sha512-hYqTiP63mXz7wSQfuqfFwfLOfwwFChUedeCVKkBtl/cliaTM7/ePI9bVzfZ2c+dWu3TqCwLDRWNSJ5pqZl8otA==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/darwin-x64": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/darwin-x64/-/darwin-x64-4.1.0.tgz", - "integrity": "sha512-Z4EyG3cIFjdhlY8wI9aLUXuH8nVt7E9SlMVZtWvSPnm2sm37/yC2CwjUzyCQbJbySnef1tQwGG2Sx+uWhd9IAw==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/ffmpeg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/ffmpeg/-/ffmpeg-1.1.0.tgz", - "integrity": "sha512-Uq4rmwkdGxIa9A6Bd/VqqYbT7zqh1GrT5/rFwCwKM70b42W5gIjWeVETq6SdcL0zXqDtY081Ws/iJWhr1+xvQg==", - "dev": true, - "requires": { - "@ffmpeg-installer/darwin-arm64": "4.1.5", - "@ffmpeg-installer/darwin-x64": "4.1.0", - "@ffmpeg-installer/linux-arm": "4.1.3", - "@ffmpeg-installer/linux-arm64": "4.1.4", - "@ffmpeg-installer/linux-ia32": "4.1.0", - "@ffmpeg-installer/linux-x64": "4.1.0", - "@ffmpeg-installer/win32-ia32": "4.1.0", - "@ffmpeg-installer/win32-x64": "4.1.0" - } - }, - "@ffmpeg-installer/linux-arm": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/linux-arm/-/linux-arm-4.1.3.tgz", - "integrity": "sha512-NDf5V6l8AfzZ8WzUGZ5mV8O/xMzRag2ETR6+TlGIsMHp81agx51cqpPItXPib/nAZYmo55Bl2L6/WOMI3A5YRg==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/linux-arm64": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/linux-arm64/-/linux-arm64-4.1.4.tgz", - "integrity": "sha512-dljEqAOD0oIM6O6DxBW9US/FkvqvQwgJ2lGHOwHDDwu/pX8+V0YsDL1xqHbj1DMX/+nP9rxw7G7gcUvGspSoKg==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/linux-ia32": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/linux-ia32/-/linux-ia32-4.1.0.tgz", - "integrity": "sha512-0LWyFQnPf+Ij9GQGD034hS6A90URNu9HCtQ5cTqo5MxOEc7Rd8gLXrJvn++UmxhU0J5RyRE9KRYstdCVUjkNOQ==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/linux-x64": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/linux-x64/-/linux-x64-4.1.0.tgz", - "integrity": "sha512-Y5BWhGLU/WpQjOArNIgXD3z5mxxdV8c41C+U15nsE5yF8tVcdCGet5zPs5Zy3Ta6bU7haGpIzryutqCGQA/W8A==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/win32-ia32": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/win32-ia32/-/win32-ia32-4.1.0.tgz", - "integrity": "sha512-FV2D7RlaZv/lrtdhaQ4oETwoFUsUjlUiasiZLDxhEUPdNDWcH1OU9K1xTvqz+OXLdsmYelUDuBS/zkMOTtlUAw==", - "dev": true, - "optional": true - }, - "@ffmpeg-installer/win32-x64": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ffmpeg-installer/win32-x64/-/win32-x64-4.1.0.tgz", - "integrity": "sha512-Drt5u2vzDnIONf4ZEkKtFlbvwj6rI3kxw1Ck9fpudmtgaZIHD4ucsWB2lCZBXRxJgXR+2IMSti+4rtM4C4rXgg==", - "dev": true, - "optional": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@istanbuljs/load-nyc-config/1.1.0/__path/npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0/fd3db1d59ecf7cf121e80650bb86712f9b55eced.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/camelcase/5.3.1/__path/npm/camelcase/-/camelcase-5.3.1/e3c9b31569e106811df242f715725a1f4c494320.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-from/5.0.0/__path/npm/resolve-from/-/resolve-from-5.0.0/c35225843df8f776df21c57557bc087e9dfdfc69.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@istanbuljs/schema/0.1.3/__path/npm/@istanbuljs/schema/-/schema-0.1.3/e45e384e4b8ec16bce2fd903af78450f6bf7ec98.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/console/26.6.2/__path/npm/@jest/console/-/console-26.6.2/4e04bc464014358b03ab4937805ee36a0aeb98f2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/core/26.6.3/__path/npm/@jest/core/-/core-26.6.3/7639fcb3833d748a4656ada54bde193051e45fad.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/environment/26.6.2/__path/npm/@jest/environment/-/environment-26.6.2/ba364cc72e221e79cc8f0a99555bf5d7577cf92c.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/fake-timers/26.6.2/__path/npm/@jest/fake-timers/-/fake-timers-26.6.2/459c329bcf70cee4af4d7e3f3e67848123535aad.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/globals/26.6.2/__path/npm/@jest/globals/-/globals-26.6.2/5b613b78a1aa2655ae908eba638cc96a20df720a.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/reporters/26.6.2/__path/npm/@jest/reporters/-/reporters-26.6.2/1f518b99637a5f18307bd3ecf9275f6882a667f6.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/source-map/26.6.2/__path/npm/@jest/source-map/-/source-map-26.6.2/29af5e1e2e324cafccc936f218309f54ab69d535.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/test-result/26.6.2/__path/npm/@jest/test-result/-/test-result-26.6.2/55da58b62df134576cc95476efa5f7949e3f5f18.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/test-sequencer/26.6.3/__path/npm/@jest/test-sequencer/-/test-sequencer-26.6.3/98e8a45100863886d074205e8ffdc5a7eb582b17.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/transform/26.6.2/__path/npm/@jest/transform/-/transform-26.6.2/5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@jest/types/26.6.2/__path/npm/@jest/types/-/types-26.6.2/bef5a532030e1d88a2f5a6d933f84e97226ed48e.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@material-ui/core": { - "version": "4.11.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/core/4.11.1/__path/npm/@material-ui/core/-/core-4.11.1/5bb94adc4257165d6ca1670fd71923a27f07d478.tgz", - "integrity": "sha512-aesI8lOaaw0DRIfNG+Anepf61NH5Q+cmkxJOZvI1oHkmD5cKubkZ0C7INqFKjfFpSFlFnqHkTasoM7ogFAvzOg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.1", - "@material-ui/system": "^4.9.14", - "@material-ui/types": "^5.1.0", - "@material-ui/utils": "^4.10.2", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0", - "react-transition-group": "^4.4.0" - } - }, - "@material-ui/data-grid": { - "version": "4.0.0-alpha.35", - "resolved": "https://registry.npmjs.org/@material-ui/data-grid/-/data-grid-4.0.0-alpha.35.tgz", - "integrity": "sha512-liyubO6MszF61Ceqx/yMGM0iWPVjg2+yf63m95qUSAp/Q1DyJenWP0XD78YZ1ZCqWbH1LIxJiuHEO+9iqKa7wA==", - "dev": true, - "requires": { - "@material-ui/utils": "^5.0.0-alpha.14", - "clsx": "^1.0.4", - "prop-types": "^15.7.2", - "reselect": "^4.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", - "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@material-ui/utils": { - "version": "5.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-5.0.0-beta.5.tgz", - "integrity": "sha512-wtJ3ovXWZdTAz5eLBqvMpYH/IBJb3qMQbGCyL1i00+sf7AUlAuv4QLx+QtX/siA6L7IpxUQVfqpoCpQH1eYRpQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.14.8", - "@types/prop-types": "^15.7.4", - "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", - "dev": true - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "@material-ui/icons": { - "version": "4.9.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/icons/4.9.1/__path/npm/@material-ui/icons/-/icons-4.9.1/fdeadf8cb3d89208945b33dbc50c7c616d0bd665.tgz", - "integrity": "sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4" - } - }, - "@material-ui/lab": { - "version": "4.0.0-alpha.57", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/lab/4.0.0-alpha.57/__path/npm/@material-ui/lab/-/lab-4.0.0-alpha.57/e8961bcf6449e8a8dabe84f2700daacfcafbf83a.tgz", - "integrity": "sha512-qo/IuIQOmEKtzmRD2E4Aa6DB4A87kmY6h0uYhjUmrrgmEAgbbw9etXpWPVXuRK6AGIQCjFzV6WO2i21m1R4FCw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", - "clsx": "^1.0.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - }, - "@material-ui/styles": { - "version": "4.11.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/styles/4.11.4/__path/npm/@material-ui/styles/-/styles-4.11.4/eb9dfccfcc2d208243d986457dff025497afa00d.tgz", - "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", - "clsx": "^1.0.4", - "csstype": "^2.5.2", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.5.1", - "jss-plugin-camel-case": "^10.5.1", - "jss-plugin-default-unit": "^10.5.1", - "jss-plugin-global": "^10.5.1", - "jss-plugin-nested": "^10.5.1", - "jss-plugin-props-sort": "^10.5.1", - "jss-plugin-rule-value-function": "^10.5.1", - "jss-plugin-vendor-prefixer": "^10.5.1", - "prop-types": "^15.7.2" - } - }, - "@material-ui/system": { - "version": "4.11.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/system/4.11.3/__path/npm/@material-ui/system/-/system-4.11.3/466bc14c9986798fd325665927c963eb47cc4143.tgz", - "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" - } - }, - "@material-ui/types": { - "version": "5.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/types/5.1.0/__path/npm/@material-ui/types/-/types-5.1.0/efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", - "dev": true - }, - "@material-ui/utils": { - "version": "4.11.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@material-ui/utils/4.11.2/__path/npm/@material-ui/utils/-/utils-4.11.2/f1aefa7e7dff2ebcb97d31de51aecab1bb57540a.tgz", - "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@nodelib/fs.scandir/-/@nodelib/fs.scandir-2.1.5/7619c2eb21b25483f6d167548b4cfd5a7488c3d5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@nodelib/fs.stat/-/@nodelib/fs.stat-2.0.5/5bd262af94e9d25bd1e71b05deed44876a222e8b.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@nodelib/fs.walk/-/@nodelib/fs.walk-1.2.7/94c23db18ee4653e129abd26fb06f870ac9e1ee2.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@npmcli/move-file/1.1.2/__path/npm/@npmcli/move-file/-/move-file-1.1.2/1a82c3e372f7cae9253eb66d72543d6b8685c674.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@polka/url": { - "version": "1.0.0-next.15", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@polka/url/1.0.0-next.15/__path/npm/@polka/url/-/url-1.0.0-next.15/6a9d143f7f4f49db2d782f9e1c8839a29b43ae23.tgz", - "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@sinonjs/commons/1.8.3/__path/npm/@sinonjs/commons/-/commons-1.8.3/3802ddd21a50a949b6721ddd72da36e67e7f1b2d.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@sinonjs/fake-timers/6.0.1/__path/npm/@sinonjs/fake-timers/-/fake-timers-6.0.1/293674fccb3262ac782c7aadfdeca86b10c75c40.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@sinonjs/samsam/5.3.1/__path/npm/@sinonjs/samsam/-/samsam-5.3.1/375a45fe6ed4e92fca2fb920e007c48232a6507f.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@sinonjs/text-encoding/0.7.1/__path/npm/@sinonjs/text-encoding/-/text-encoding-0.7.1/8da5c6530915653f3a1f38fd5f101d8c3f8079c5.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "@testing-library/dom": { - "version": "7.31.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@testing-library/dom/-/@testing-library/dom-7.31.2/df361db38f5212b88555068ab8119f5d841a8c4a.tgz", - "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^4.2.2", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.6", - "lz-string": "^1.4.4", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.11.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@testing-library/jest-dom/5.11.9/__path/npm/@testing-library/jest-dom/-/jest-dom-5.11.9/e6b3cd687021f89f261bd53cbe367041fbd3e975.tgz", - "integrity": "sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "lodash": "^4.17.15", - "redent": "^3.0.0" - } - }, - "@testing-library/react": { - "version": "11.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@testing-library/react/11.2.3/__path/npm/@testing-library/react/-/react-11.2.3/9971ede1c8465a231d7982eeca3c39fc362d5443.tgz", - "integrity": "sha512-BirBUGPkTW28ULuCwIbYo0y2+0aavHczBT6N9r3LrsswEW3pg25l1wgoE7I8QBIy1upXWkwKpYdWY7NYYP0Bxw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^7.28.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@tootallnate/once/1.1.2/__path/npm/@tootallnate/once/-/once-1.1.2/ccb91445360179a04e7fe6aff78c00ffc1eeaf82.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/aria-query": { - "version": "4.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/aria-query/-/@types/aria-query-4.2.1/78b5433344e2f92e8b306c06a5622c50c245bf6b.tgz", - "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", - "dev": true - }, - "@types/async-retry": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.3.tgz", - "integrity": "sha512-B3C9QmmNULVPL2uSJQ088eGWTNPIeUk35hca6CV8rRDJ8GXuQJP5CCVWA1ZUCrb9xYP7Js/RkLqnNNwKhe+Zsw==", - "dev": true, - "requires": { - "@types/retry": "*" - } - }, - "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/babel__core/7.1.14/__path/npm/@types/babel__core/-/babel__core-7.1.14/faaeefc4185ec71c389f4501ee5ec84b170cc402.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/babel__generator/7.6.2/__path/npm/@types/babel__generator/-/babel__generator-7.6.2/f3d71178e187858f7c45e30380f8f1b7415a12d8.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/babel__template/7.4.0/__path/npm/@types/babel__template/-/babel__template-7.4.0/0c888dd70b3ee9eebb6e4f200e809da0076262be.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/babel__traverse/7.11.1/__path/npm/@types/babel__traverse/-/babel__traverse-7.11.1/654f6c4f67568e24c23b367e947098c6206fa639.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/cheerio": { - "version": "0.22.29", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/cheerio/-/@types/cheerio-0.22.29/7115e9688bfc9e2f2730327c674b3d6a7e753e09.tgz", - "integrity": "sha512-rNX1PsrDPxiNiyLnRKiW2NXHJFHqx0Fl3J2WsZq0MTBspa/FgwlqhXJE2crIcc+/2IglLHtSWw7g053oUR8fOg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/enzyme": { - "version": "3.10.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/enzyme/-/@types/enzyme-3.10.8/ad7ac9d3af3de6fd0673773123fafbc63db50d42.tgz", - "integrity": "sha512-vlOuzqsTHxog6PV79+tvOHFb6hq4QZKMq1lLD9MaWD1oec2lHTKndn76XOpSwCA0oFTaIbKVPrgM3k78Jjd16g==", - "dev": true, - "requires": { - "@types/cheerio": "*", - "@types/react": "*" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/eslint-visitor-keys/-/@types/eslint-visitor-keys-1.0.0/1ee30d79544ca84d68d4b3cdb0af4f205663dd2d.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/glob/7.1.3/__path/npm/@types/glob/-/glob-7.1.3/e6ba80f36b7daad2c685acd9266382e68985c183.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/graceful-fs/4.1.5/__path/npm/@types/graceful-fs/-/graceful-fs-4.1.5/21ffba0d98da4350db64891f92a9e5db3cdb4e15.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/history": { - "version": "4.7.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/history/4.7.8/__path/npm/@types/history/-/history-4.7.8/49348387983075705fe8f4e02fb67f7daaec4934.tgz", - "integrity": "sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==", - "dev": true - }, - "@types/i18next": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@types/i18next/-/i18next-13.0.0.tgz", - "integrity": "sha512-gp/SIShAuf4WOqi8ey0nuI7qfWaVpMNCcs/xLygrh/QTQIXmlDC1E0TtVejweNW+7SGDY7g0lyxyKZIJuCKIJw==", - "dev": true, - "requires": { - "i18next": "*" - } - }, - "@types/iconv-lite": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@types/iconv-lite/-/iconv-lite-0.0.1.tgz", - "integrity": "sha1-qjuL2ivlErGuCgV7lC6GnDcKVWk=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/istanbul-lib-coverage/2.0.3/__path/npm/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3/4ba8ddb720221f432e443bd5f9117fd22cfd4762.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/istanbul-lib-report/3.0.0/__path/npm/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0/c14c24f18ea8190c118ee7562b7ff99a36552686.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/istanbul-reports/-/@types/istanbul-reports-3.0.1/9153fe98bba2bd565a63add9436d6f0d7f8468ff.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.20", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/jest/26.0.20/__path/npm/@types/jest/-/jest-26.0.20/cd2f2702ecf69e86b586e1f5223a60e454056307.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/json-schema/7.0.7/__path/npm/@types/json-schema/-/json-schema-7.0.7/98a993516c859eb0d5c4c8f098317a9ea68db9ad.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/json5/0.0.29/__path/npm/@types/json5/-/json5-0.0.29/ee28707ae94e11d2b827bcbe5270bcea7f3e71ee.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/lodash": { - "version": "4.14.168", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/lodash/4.14.168/__path/npm/@types/lodash/-/lodash-4.14.168/fe24632e79b7ade3f132891afff86caa5e5ce008.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/minimatch/3.0.4/__path/npm/@types/minimatch/-/minimatch-3.0.4/f0ec25dbf2f0e4b18647313ac031134ca5b24b21.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", - "dev": true - }, - "@types/mocha": { - "version": "8.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/mocha/8.0.4/__path/npm/@types/mocha/-/mocha-8.0.4/b840c2dce46bacf286e237bfb59a29e843399148.tgz", - "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==", - "dev": true - }, - "@types/node": { - "version": "14.14.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/node/14.14.10/__path/npm/@types/node/-/node-14.14.10/5958a82e41863cfc71f2307b3748e3491ba03785.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/normalize-package-data/-/@types/normalize-package-data-2.4.0/e486d0d97396d79beedd0a6e33f4534ff6b4973e.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/parse-json/-/@types/parse-json-4.0.0/2f8bb441434d163b35fb8ffdccd7138927ffb8c0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/prettier/-/@types/prettier-2.3.0/2e8332cc7363f887d32ec5496b207d26ba8052bb.tgz", - "integrity": "sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/prop-types/15.7.3/__path/npm/@types/prop-types/-/prop-types-15.7.3/2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true - }, - "@types/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@types/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-kd4LMvcnpYkspDcp7rmXKedn8iJSCoa331zRRamUp5oanKt/CefbEGPQP7G89enz7sKD4bvsr8mHSsC8j5WOvA==", - "requires": { - "@types/retry": "*" - } - }, - "@types/qs": { - "version": "6.9.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/qs/6.9.5/__path/npm/@types/qs/-/qs-6.9.5/434711bdd49eb5ee69d90c1d67c354a9a8ecb18b.tgz", - "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", - "dev": true - }, - "@types/react": { - "version": "16.14.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/react/16.14.2/__path/npm/@types/react/-/react-16.14.2/85dcc0947d0645349923c04ccef6018a1ab7538c.tgz", - "integrity": "sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/csstype/-/csstype-3.0.8/d2266a792729fb227cd216fb572f43728e1ad340.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "dev": true - } - } - }, - "@types/react-dom": { - "version": "16.9.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/react-dom/16.9.10/__path/npm/@types/react-dom/-/react-dom-16.9.10/4485b0bec3d41f856181b717f45fd7831101156f.tgz", - "integrity": "sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw==", - "dev": true, - "requires": { - "@types/react": "^16" - } - }, - "@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-router": { - "version": "5.1.15", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/react-router/-/@types/react-router-5.1.15/c1069e0da4617fd315e381b56b18b89490e14e2a.tgz", - "integrity": "sha512-z3UlMG/x91SFEVmmvykk9FLTliDvfdIUky4k2rCfXWQ0NKbrP8o9BTCaCTPuYsB8gDkUnUmkcA2vYlm2DR+HAA==", - "dev": true, - "requires": { - "@types/history": "*", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/react-router-dom/5.1.6/__path/npm/@types/react-router-dom/-/react-router-dom-5.1.6/07b14e7ab1893a837c8565634960dc398564b1fb.tgz", - "integrity": "sha512-gjrxYqxz37zWEdMVvQtWPFMFj1dRDb4TGOcgyOfSXTrEXdF92L00WE3C471O3TV/RF1oskcStkXsOU0Ete4s/g==", - "dev": true, - "requires": { - "@types/history": "*", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@types/react-transition-group": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/react-transition-group/-/@types/react-transition-group-4.4.1/e1a3cb278df7f47f17b5082b1b3da17170bd44b1.tgz", - "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "@types/semver": { - "version": "7.3.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/semver/7.3.4/__path/npm/@types/semver/-/semver-7.3.4/43d7168fec6fa0988bb1a513a697b29296721afb.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==", - "dev": true - }, - "@types/shelljs": { - "version": "0.8.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/shelljs/-/@types/shelljs-0.8.8/e439c69929b88a2c8123c1a55e09eb708315addf.tgz", - "integrity": "sha512-lD3LWdg6j8r0VRBFahJVaxoW0SIcswxKaFUrmKl33RJVeeoNYQAz4uqCJ5Z6v4oIBOsC5GozX+I5SorIKiTcQA==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/sinon": { - "version": "9.0.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/sinon/9.0.10/__path/npm/@types/sinon/-/sinon-9.0.10/7fb9bcb6794262482859cab66d59132fca18fcf7.tgz", - "integrity": "sha512-/faDC0erR06wMdybwI/uR8wEKV/E83T0k4sepIpB7gXuy2gzx2xiOjmztq6a2Y6rIGJ04D+6UU0VBmWy+4HEMA==", - "dev": true, - "requires": { - "@types/sinonjs__fake-timers": "*" - } - }, - "@types/sinonjs__fake-timers": { - "version": "6.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/sinonjs__fake-timers/6.0.2/__path/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2/3a84cf5ec3249439015e14049bd3161419bf9eae.tgz", - "integrity": "sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/stack-utils/2.0.0/__path/npm/@types/stack-utils/-/stack-utils-2.0.0/7036640b4e21cc2f259ae826ce843d277dad8cff.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/testing-library__jest-dom": { - "version": "5.14.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/testing-library__jest-dom/-/@types/testing-library__jest-dom-5.14.0/98eb7537cb5502bcca7a0d82acf5f245a2e6c322.tgz", - "integrity": "sha512-l2P2GO+hFF4Liye+fAajT1qBqvZOiL79YMpEvgGs1xTK7hECxBI8Wz4J7ntACJNiJ9r0vXQqYovroXRLPDja6A==", - "dev": true, - "requires": { - "@types/jest": "*" - } - }, - "@types/uuid": { - "version": "8.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/uuid/-/@types/uuid-8.3.0/215c231dff736d5ba92410e6d602050cce7e273f.tgz", - "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", - "dev": true - }, - "@types/vscode": { - "version": "1.57.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/@types/vscode/-/@types/vscode-1.57.0/cc648e0573b92f725cd1baf2621f8da9f8bc689f.tgz", - "integrity": "sha512-FeznBFtIDCWRluojTsi9c3LLcCHOXP5etQfBK42+ixo1CoEAchkw39tuui9zomjZuKfUVL33KZUDIwHZ/xvOkQ==", - "dev": true - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/yargs/15.0.13/__path/npm/@types/yargs/-/yargs-15.0.13/34f7fec8b389d7f3c1fd08026a5763e072d3c6dc.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@types/yargs-parser/20.2.0/__path/npm/@types/yargs-parser/-/yargs-parser-20.2.0/dd3e6699ba3237f0348cd085e4698780204842f9.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/eslint-plugin/4.8.2/__path/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2/cf9102ec800391caa574f589ffe0623cca1d9308.tgz", - "integrity": "sha512-gQ06QLV5l1DtvYtqOyFLXD9PdcILYqlrJj2l+CGDlPtmgLUzc1GpqciJFIRvyfvgLALpnxYINFuw+n9AZhPBKQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.8.2", - "@typescript-eslint/scope-manager": "4.8.2", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/experimental-utils/4.8.2/__path/npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2/8909a5732f19329cf5ef0c39766170476bff5e50.tgz", - "integrity": "sha512-hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.8.2", - "@typescript-eslint/types": "4.8.2", - "@typescript-eslint/typescript-estree": "4.8.2", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "3.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/parser/3.10.1/__path/npm/@typescript-eslint/parser/-/parser-3.10.1/1883858e83e8b442627e1ac6f408925211155467.tgz", - "integrity": "sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.10.1", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/experimental-utils/3.10.1/__path/npm/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1/e179ffc81a80ebcae2ea04e0332f8b251345a686.tgz", - "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/types/3.10.1/__path/npm/@typescript-eslint/types/-/types-3.10.1/1d7463fa7c32d8a23ab508a803ca2fe26e758727.tgz", - "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/typescript-estree/3.10.1/__path/npm/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1/fd0061cc38add4fad45136d654408569f365b853.tgz", - "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/visitor-keys/3.10.1/__path/npm/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1/cd4274773e3eb63b2e870ac602274487ecd1e931.tgz", - "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-visitor-keys/1.3.0/__path/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0/30ebd1ef7c2fdff01c3a4f151044af25fab0523e.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/scope-manager/4.8.2/__path/npm/@typescript-eslint/scope-manager/-/scope-manager-4.8.2/a18388c63ae9c17adde519384f539392f2c4f0d9.tgz", - "integrity": "sha512-qHQ8ODi7mMin4Sq2eh/6eu03uVzsf5TX+J43xRmiq8ujng7ViQSHNPLOHGw/Wr5dFEoxq/ubKhzClIIdQy5q3g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.8.2", - "@typescript-eslint/visitor-keys": "4.8.2" - } - }, - "@typescript-eslint/types": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/types/4.8.2/__path/npm/@typescript-eslint/types/-/types-4.8.2/c862dd0e569d9478eb82d6aee662ea53f5661a36.tgz", - "integrity": "sha512-z1/AVcVF8ju5ObaHe2fOpZYEQrwHyZ7PTOlmjd3EoFeX9sv7UekQhfrCmgUO7PruLNfSHrJGQvrW3Q7xQ8EoAw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/typescript-estree/4.8.2/__path/npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.2/eeec34707d8577600fb21661b5287226cc8b3bed.tgz", - "integrity": "sha512-HToGNwI6fekH0dOw3XEVESUm71Onfam0AKin6f26S2FtUmO7o3cLlWgrIaT1q3vjB3wCTdww3Dx2iGq5wtUOCg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.8.2", - "@typescript-eslint/visitor-keys": "4.8.2", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/visitor-keys/4.8.2/__path/npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.2/62cd3fbbbf65f8eccfbe6f159eb1b84a243a3f77.tgz", - "integrity": "sha512-Vg+/SJTMZJEKKGHW7YC21QxgKJrSbxoYYd3MEUGtW7zuytHuEcksewq0DUmo4eh/CTNrVJGSdIY9AtRb6riWFw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.8.2", - "eslint-visitor-keys": "^2.0.0" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@ungap/promise-all-settled/1.1.2/__path/npm/@ungap/promise-all-settled/-/promise-all-settled-1.1.2/aa58042711d6e3275dd37dc597e5d31e8c290a44.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/ast/1.9.0/__path/npm/@webassemblyjs/ast/-/ast-1.9.0/bd850604b4042459a5a41cd7d338cbed695ed964.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/floating-point-hex-parser/1.9.0/__path/npm/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0/3c3d3b271bddfc84deb00f71344438311d52ffb4.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-api-error/1.9.0/__path/npm/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0/203f676e333b96c9da2eeab3ccef33c45928b6a2.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-buffer/1.9.0/__path/npm/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0/a1442d269c5feb23fcbc9ef759dac3547f29de00.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-code-frame/1.9.0/__path/npm/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0/647f8892cd2043a82ac0c8c5e75c36f1d9159f27.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-fsm/1.9.0/__path/npm/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0/c05256b71244214671f4b08ec108ad63b70eddb8.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-module-context/1.9.0/__path/npm/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0/25d8884b76839871a08a6c6f806c3979ef712f07.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-wasm-bytecode/1.9.0/__path/npm/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0/4fed8beac9b8c14f8c58b70d124d549dd1fe5790.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/helper-wasm-section/1.9.0/__path/npm/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0/5a4138d5a6292ba18b04c5ae49717e4167965346.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/ieee754/1.9.0/__path/npm/@webassemblyjs/ieee754/-/ieee754-1.9.0/15c7a0fbaae83fb26143bbacf6d6df1702ad39e4.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/leb128/1.9.0/__path/npm/@webassemblyjs/leb128/-/leb128-1.9.0/f19ca0b76a6dc55623a09cffa769e838fa1e1c95.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/utf8/1.9.0/__path/npm/@webassemblyjs/utf8/-/utf8-1.9.0/04d33b636f78e6a6813227e82402f7637b6229ab.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wasm-edit/1.9.0/__path/npm/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0/3fe6d79d3f0f922183aa86002c42dd256cfee9cf.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wasm-gen/1.9.0/__path/npm/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0/50bc70ec68ded8e2763b01a1418bf43491a7a49c.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wasm-opt/1.9.0/__path/npm/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0/2211181e5b31326443cc8112eb9f0b9028721a61.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wasm-parser/1.9.0/__path/npm/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0/9d48e44826df4a6598294aa6c87469d642fff65e.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wast-parser/1.9.0/__path/npm/@webassemblyjs/wast-parser/-/wast-parser-1.9.0/3031115d79ac5bd261556cecc3fa90a3ef451914.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@webassemblyjs/wast-printer/1.9.0/__path/npm/@webassemblyjs/wast-printer/-/wast-printer-1.9.0/4935d54c85fef637b00ce9f52377451d00d47899.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@wojtekmaj/enzyme-adapter-react-17": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@wojtekmaj/enzyme-adapter-react-17/0.4.1/__path/npm/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.4.1/a9d4a2873025c6de19e1142ca076661bac69f587.tgz", - "integrity": "sha512-WZr8i4C6WVDV7Mb8sbm7GdlEPmk1f+xOMjUKThqrkWgwsfvu90zJyyX54wyAvsS91sjtKZ0JipGj2cJnEDaxPA==", - "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.14.0", - "enzyme-shallow-equal": "^1.0.4", - "has": "^1.0.3", - "object.assign": "^4.1.0", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "react-is": "^17.0.0", - "react-test-renderer": "^17.0.0", - "semver": "^5.7.0" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-is/17.0.2/__path/npm/react-is/-/react-is-17.0.2/e691d4a8e9c789365655539ab372762b0efb54f0.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@xtuc/ieee754/1.2.0/__path/npm/@xtuc/ieee754/-/ieee754-1.2.0/eef014a3145ae477a1cbc00cd1e552336dceb790.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@xtuc/long/4.2.2/__path/npm/@xtuc/long/-/long-4.2.2/d291c6a4e97989b5c61d9acf396ae4fe133a718d.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/abab/2.0.5/__path/npm/abab/-/abab-2.0.5/c0b678fb32d60fc1219c784d6a826fe385aeb79a.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/acorn/7.4.1/__path/npm/acorn/-/acorn-7.4.1/feaed255973d2e77555b83dbc08851a6c63520fa.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/acorn-globals/6.0.0/__path/npm/acorn-globals/-/acorn-globals-6.0.0/46cdd39f0f8ff08a876619b55f5ac8a6dc770b45.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/acorn-jsx/5.3.1/__path/npm/acorn-jsx/-/acorn-jsx-5.3.1/fc8661e11b7ac1539c47dbfea2e72b3af34d267b.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/acorn-walk/7.2.0/__path/npm/acorn-walk/-/acorn-walk-7.2.0/0de889a601203909b0fbe07b8938dc21d2e967bc.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/agent-base/6.0.2/__path/npm/agent-base/-/agent-base-6.0.2/49fff58577cfee3f37176feab4c22e00f86d7f77.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/aggregate-error/3.1.0/__path/npm/aggregate-error/-/aggregate-error-3.1.0/92670ff50f5359bdb7a3e0d40d0ec30c5737687a.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "airbnb-prop-types": { - "version": "2.16.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/airbnb-prop-types/2.16.0/__path/npm/airbnb-prop-types/-/airbnb-prop-types-2.16.0/b96274cefa1abb14f623f804173ee97c13971dc2.tgz", - "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", - "dev": true, - "requires": { - "array.prototype.find": "^2.1.1", - "function.prototype.name": "^1.1.2", - "is-regex": "^1.1.0", - "object-is": "^1.1.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.13.1" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ajv/6.12.6/__path/npm/ajv/-/ajv-6.12.6/baf5a62e802b07d977034586f8c3baf5adf26df4.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ajv-errors/1.0.1/__path/npm/ajv-errors/-/ajv-errors-1.0.1/f35986aceb91afadec4102fbd85014950cefa64d.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ajv-keywords/3.5.2/__path/npm/ajv-keywords/-/ajv-keywords-3.5.2/31f29da5ab6e00d1c2d329acf7b5929614d5014d.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-colors/4.1.1/__path/npm/ansi-colors/-/ansi-colors-4.1.1/cbb9ae256bf750af1eab344f229aa27fe94ba348.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-escapes/4.3.2/__path/npm/ansi-escapes/-/ansi-escapes-4.3.2/6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-fest/0.21.3/__path/npm/type-fest/-/type-fest-0.21.3/d260a24b0198436e133fa26a524a6d65fa3b2e37.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-regex/5.0.0/__path/npm/ansi-regex/-/ansi-regex-5.0.0/388539f55179bf39339c81af30a654d69f87cb75.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/4.3.0/__path/npm/ansi-styles/-/ansi-styles-4.3.0/edd803628ae71c04c85ae7a0906edad34b648937.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/anymatch/3.1.2/__path/npm/anymatch/-/anymatch-3.1.2/c0557c096af32f106198f4f4e2a383537e378716.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/aproba/-/aproba-1.2.0/6802e6264efd18c790a1b0d517f0f2627bf2c94a.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arg": { - "version": "4.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/arg/4.1.3/__path/npm/arg/-/arg-4.1.3/269fc7ad5b8e42cb63c896d5666017261c144089.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/argparse/1.0.10/__path/npm/argparse/-/argparse-1.0.10/bcd6791ea5ae09725e17e5ad988134cd40b3d911.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/aria-query/4.2.2/__path/npm/aria-query/-/aria-query-4.2.2/0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/arr-diff/4.0.0/__path/npm/arr-diff/-/arr-diff-4.0.0/d6461074febfec71e7e15235761a329a5dc7c520.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/arr-flatten/1.1.0/__path/npm/arr-flatten/-/arr-flatten-1.1.0/36048bbff4e7b47e136644316c99669ea5ae91f1.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/arr-union/3.1.0/__path/npm/arr-union/-/arr-union-3.1.0/e39b09aea9def866a8f206e288af63919bae39c4.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-includes": { - "version": "3.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array-includes/3.1.3/__path/npm/array-includes/-/array-includes-3.1.3/c7f619b382ad2afaf5326cddfdc0afc61af7690a.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array-union/2.1.0/__path/npm/array-union/-/array-union-2.1.0/b798420adbeb1de828d84acd8a2e23d3efe85e8d.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array-unique/0.3.2/__path/npm/array-unique/-/array-unique-0.3.2/a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.filter": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array.prototype.filter/1.0.0/__path/npm/array.prototype.filter/-/array.prototype.filter-1.0.0/24d63e38983cdc6bf023a3c574b2f2a3f384c301.tgz", - "integrity": "sha512-TfO1gz+tLm+Bswq0FBOXPqAchtCr2Rn48T8dLJoRFl8NoEosjZmzptmuo1X8aZBzZcqsR1W8U761tjACJtngTQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.5" - } - }, - "array.prototype.find": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array.prototype.find/2.1.1/__path/npm/array.prototype.find/-/array.prototype.find-2.1.1/3baca26108ca7affb08db06bf0be6cb3115a969c.tgz", - "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.4" - } - }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array.prototype.flat/1.2.4/__path/npm/array.prototype.flat/-/array.prototype.flat-1.2.4/6ef638b43312bd401b4c6199fdec7e2dc9e9a123.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/array.prototype.flatmap/1.2.4/__path/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4/94cfd47cc1556ec0747d97f7c7738c58122004c9.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/asn1.js/5.4.1/__path/npm/asn1.js/-/asn1.js-5.4.1/11a980b84ebb91781ce35b0fdc2ee294e3783f07.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/assert/1.5.0/__path/npm/assert/-/assert-1.5.0/55c109aaf6e0aefdb3dc4b71240c70bf574b18eb.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/inherits/2.0.1/__path/npm/inherits/-/inherits-2.0.1/b17d08d326b4423e568eff719f91b0b1cbdf69f1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/util/0.10.3/__path/npm/util/-/util-0.10.3/7afb1afe50805246489e3db7fe0ed379336ac0f9.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/assign-symbols/1.0.0/__path/npm/assign-symbols/-/assign-symbols-1.0.0/59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ast-types-flow/0.0.7/__path/npm/ast-types-flow/-/ast-types-flow-0.0.7/f70b735c6bca1a5c9c22d982c3e39e7feba3bdad.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/astral-regex/1.0.0/__path/npm/astral-regex/-/astral-regex-1.0.0/6c8c3fb827dd43ee3918f27b82782ab7658a6fd9.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", - "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/async-each/1.0.3/__path/npm/async-each/-/async-each-1.0.3/b727dbf87d7651602f06f4d4ac387f47d91b0cbf.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "requires": { - "retry": "0.13.1" - }, - "dependencies": { - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - } - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/asynckit/-/asynckit-0.4.0/c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/atob/2.1.2/__path/npm/atob/-/atob-2.1.2/6d9517eb9e030d2436666651e86bd9f6f13533c9.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "axe-core": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/axe-core/4.2.2/__path/npm/axe-core/-/axe-core-4.2.2/0c987d82c8b82b4b9b7a945f1b5ef0d8fed586ed.tgz", - "integrity": "sha512-OKRkKM4ojMEZRJ5UNJHmq9tht7cEnRnqKG6KyB/trYws00Xtkv12mHtlJ0SK7cmuNbrU8dPUova3ELTuilfBbw==", - "dev": true - }, - "axios": { - "version": "0.21.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/axios/0.21.0/__path/npm/axios/-/axios-0.21.0/26df088803a2350dff2c27f96fef99fe49442aca.tgz", - "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==", - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/axobject-query/2.2.0/__path/npm/axobject-query/-/axobject-query-2.2.0/943d47e10c0b704aa42275e20edf3722648989be.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "azure-devops-node-api": { - "version": "7.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/azure-devops-node-api/7.2.0/__path/npm/azure-devops-node-api/-/azure-devops-node-api-7.2.0/131d4e01cf12ebc6e45569b5e0c5c249e4114d6d.tgz", - "integrity": "sha512-pMfGJ6gAQ7LRKTHgiRF+8iaUUeGAI0c8puLaqHLc7B8AR7W6GJLozK9RFeUHFjEGybC9/EB3r67WPd7e46zQ8w==", - "dev": true, - "requires": { - "os": "0.1.1", - "tunnel": "0.0.4", - "typed-rest-client": "1.2.0", - "underscore": "1.8.3" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/babel-jest/26.6.3/__path/npm/babel-jest/-/babel-jest-26.6.3/d87d25cb0037577a0c89f82e5755c5d293c01056.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/babel-plugin-istanbul/6.0.0/__path/npm/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0/e159ccdc9af95e0b570c75b4573b7c34d671d765.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/babel-plugin-jest-hoist/26.6.2/__path/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2/8185bd030348d254c6d7dd974355e6a28b21e62d.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/babel-preset-current-node-syntax/1.0.1/__path/npm/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1/b4399239b89b2a011f9ddbe3e4f401fc40cff73b.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/babel-preset-jest/26.6.2/__path/npm/babel-preset-jest/-/babel-preset-jest-26.6.2/747872b1171df032252426586881d62d31798fee.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/balanced-match/1.0.2/__path/npm/balanced-match/-/balanced-match-1.0.2/e83e3a7e3f300b34cb9d87f615fa0cbf357690ee.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/base/0.11.2/__path/npm/base/-/base-0.11.2/7bde5ced145b6d551a90db87f83c558b4eb48a8f.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/1.0.0/__path/npm/define-property/-/define-property-1.0.0/769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-accessor-descriptor/1.0.0/__path/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0/169c2f6d3df1f992618072365c9b0ea1f6878656.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-data-descriptor/1.0.0/__path/npm/is-data-descriptor/-/is-data-descriptor-1.0.0/d84876321d0e7add03990406abbbbd36ba9268c7.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-descriptor/1.0.2/__path/npm/is-descriptor/-/is-descriptor-1.0.2/3b159746a66604b04f8c81524ba365c5f14d86ec.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/base64-js/1.5.1/__path/npm/base64-js/-/base64-js-1.5.1/1b1b440160a5bf7ad40b650f095963481903930a.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/big.js/5.2.2/__path/npm/big.js/-/big.js-5.2.2/65f0af382f578bcdc742bd9c281e9cb2d7768328.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/binary-extensions/2.2.0/__path/npm/binary-extensions/-/binary-extensions-2.2.0/75f502eeaf9ffde42fc98829645be4ea76bd9e2d.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bindings/1.5.0/__path/npm/bindings/-/bindings-1.5.0/10353c9e945334bc0511a6d90b38fbc7c9c504df.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bluebird/3.7.2/__path/npm/bluebird/-/bluebird-3.7.2/9f229c15be272454ffa973ace0dbee79a1b0c36f.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/5.2.0/__path/npm/bn.js/-/bn.js-5.2.0/358860674396c6997771a9d051fcc1b57d4ae002.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/boolbase/1.0.0/__path/npm/boolbase/-/boolbase-1.0.0/68dff5fbe60c51eb37725ea9e3ed310dcc1e776e.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/brace-expansion/1.1.11/__path/npm/brace-expansion/-/brace-expansion-1.1.11/3c7fcbf529d87226f3d2f52b966ff5271eb441dd.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/braces/2.3.2/__path/npm/braces/-/braces-2.3.2/5979fd3f14cd531565e5fa2df1abfff1dfaee729.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/brorand/1.1.0/__path/npm/brorand/-/brorand-1.1.0/12c25efe40a45e3c323eb8675a0a0ce57b22371f.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browser-process-hrtime/1.0.0/__path/npm/browser-process-hrtime/-/browser-process-hrtime-1.0.0/3c9b4b7d782c8121e56f10106d84c0d0ffc94626.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browser-stdout/1.3.1/__path/npm/browser-stdout/-/browser-stdout-1.3.1/baa559ee14ced73452229bad7326467c61fabd60.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-aes/1.2.0/__path/npm/browserify-aes/-/browserify-aes-1.2.0/326734642f403dabc3003209853bb70ad428ef48.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-cipher/1.0.1/__path/npm/browserify-cipher/-/browserify-cipher-1.0.1/8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-des/1.0.2/__path/npm/browserify-des/-/browserify-des-1.0.2/3af4f1f59839403572f1c66204375f7a7f703e9c.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-rsa/4.1.0/__path/npm/browserify-rsa/-/browserify-rsa-4.1.0/b2fd06b5b75ae297f7ce2dc651f918f5be158c8d.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-sign/4.2.1/__path/npm/browserify-sign/-/browserify-sign-4.2.1/eaf4add46dd54be3bb3b36c0cf15abbeba7956c3.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/readable-stream/3.6.0/__path/npm/readable-stream/-/readable-stream-3.6.0/337bbda3adc0706bd3e024426a286d4b4b2c9198.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserify-zlib/0.2.0/__path/npm/browserify-zlib/-/browserify-zlib-0.2.0/2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/browserslist/4.16.6/__path/npm/browserslist/-/browserslist-4.16.6/d7901277a5a88e554ed305b183ec9b0c08f66fa2.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bs-logger/0.2.6/__path/npm/bs-logger/-/bs-logger-0.2.6/eb7d365307a72cf974cc6cda76b68354ad336bd8.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bser/2.1.1/__path/npm/bser/-/bser-2.1.1/e6787da20ece9d07998533cfd9de6f5c38f4bc05.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/buffer/4.9.2/__path/npm/buffer/-/buffer-4.9.2/230ead344002988644841ab0244af8c44bbe3ef8.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/buffer-crc32/0.2.13/__path/npm/buffer-crc32/-/buffer-crc32-0.2.13/0d333e3f00eac50aa1454abd30ef8c2a5d9a7242.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/buffer-from/-/buffer-from-1.1.1/32713bc028f75c02fdb710d7c7bcec1f2c6070ef.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/buffer-xor/1.0.3/__path/npm/buffer-xor/-/buffer-xor-1.0.3/26e61ed1422fb70dd42e6e36729ed51d855fe8d9.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/builtin-status-codes/3.0.0/__path/npm/builtin-status-codes/-/builtin-status-codes-3.0.0/85982878e21b98e1c66425e03d0174788f569ee8.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "15.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/cacache/-/cacache-15.2.0/73af75f77c58e72d8c630a7a2858cb18ef523389.tgz", - "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cache-base/1.0.1/__path/npm/cache-base/-/cache-base-1.0.1/0a7f46416831c8b662ee36fe4e7c59d76f666ab2.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/call-bind/1.0.2/__path/npm/call-bind/-/call-bind-1.0.2/b1d4e89e688119c3c9a903ad30abb2f6a919be3c.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/callsites/3.1.0/__path/npm/callsites/-/callsites-3.1.0/b3630abd8943432f54b3f0519238e33cd7df2f73.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/camelcase/6.2.0/__path/npm/camelcase/-/camelcase-6.2.0/924af881c9d525ac9d87f40d964e5cea982a1809.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/caniuse-lite/-/caniuse-lite-1.0.30001239/66e8669985bb2cb84ccb10f68c25ce6dd3e4d2b8.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", - "dev": true - }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/capture-exit/2.0.0/__path/npm/capture-exit/-/capture-exit-2.0.0/fb953bfaebeb781f62898239dabb426d08a509a4.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/3.0.0/__path/npm/chalk/-/chalk-3.0.0/3f73c2bf526591f574cc492c51e2456349f844e4.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/char-regex/1.0.2/__path/npm/char-regex/-/char-regex-1.0.2/d744358226217f981ed58f479b1d6bcc29545dcf.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cheerio/1.0.0-rc.10/__path/npm/cheerio/-/cheerio-1.0.0-rc.10/2ba3dcdfcc26e7956fc1f440e61d51c643379f3e.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "dev": true, - "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - } - }, - "cheerio-select": { - "version": "1.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cheerio-select/1.5.0/__path/npm/cheerio-select/-/cheerio-select-1.5.0/faf3daeb31b17c5e1a9dabcee288aaf8aafa5823.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" - } - }, - "chokidar": { - "version": "3.4.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chokidar/3.4.3/__path/npm/chokidar/-/chokidar-3.4.3/c1df38231448e45ca4ac588e6c79573ba6a57d5b.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/braces/3.0.2/__path/npm/braces/-/braces-3.0.2/3454e1a462ee8d599e236df336cd9ea4f8afe107.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fill-range/7.0.1/__path/npm/fill-range/-/fill-range-7.0.1/1919a6a7c75fe38b2c7c77e5198535da9acdda40.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fsevents/2.1.3/__path/npm/fsevents/-/fsevents-2.1.3/fb738703ae8d2f9fe900c33836ddebee8b97f23e.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-number/-/is-number-7.0.0/7535345b896734d5f80c4d06c50955527a14f12b.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-regex-range/5.0.1/__path/npm/to-regex-range/-/to-regex-range-5.0.1/1648c44aae7c8d988a326018ed72f5b4dd0392e4.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chownr/2.0.0/__path/npm/chownr/-/chownr-2.0.0/15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chrome-trace-event/1.0.3/__path/npm/chrome-trace-event/-/chrome-trace-event-1.0.3/1015eced4741e15d06664a957dbbf50d041e26ac.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ci-info/2.0.0/__path/npm/ci-info/-/ci-info-2.0.0/67a9e964be31a51e15e5010d58e6f12834002f46.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cipher-base/1.0.4/__path/npm/cipher-base/-/cipher-base-1.0.4/8760e4ecc272f4c363532f926d874aae2c1397de.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cjs-module-lexer/0.6.0/__path/npm/cjs-module-lexer/-/cjs-module-lexer-0.6.0/4186fcca0eae175970aee870b9fe2d6cf8d5655f.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/class-utils/0.3.6/__path/npm/class-utils/-/class-utils-0.3.6/f93369ae8b9a7ce02fd41faad0ca83033190c463.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/0.2.5/__path/npm/define-property/-/define-property-0.2.5/c35b1ef918ec3c990f9a5bc57be04aacec5c8116.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/classnames/2.3.1/__path/npm/classnames/-/classnames-2.3.1/dfcfa3891e306ec1dad105d0e88f4417b8535e8e.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/clean-stack/2.2.0/__path/npm/clean-stack/-/clean-stack-2.2.0/ee8472dbb129e727b31e8a10a427dee9dfe4008b.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cliui/6.0.0/__path/npm/cliui/-/cliui-6.0.0/511d702c0c4e41ca156d7d0e96021f23e13225b1.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emoji-regex/8.0.0/__path/npm/emoji-regex/-/emoji-regex-8.0.0/e818fd69ce5ccfcb404594f842963bf53164cc37.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-fullwidth-code-point/3.0.0/__path/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0/f116f8064fe90b3f7844a38997c0b75051269f1d.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string-width/4.2.2/__path/npm/string-width/-/string-width-4.2.2/dafd4f9559a7585cfba529c6a0a4f73488ebd4c5.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/clsx/1.1.1/__path/npm/clsx/-/clsx-1.1.1/98b3134f9abbdf23b2663491ace13c5c03a73188.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/co/4.6.0/__path/npm/co/-/co-4.6.0/6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/collect-v8-coverage/1.0.1/__path/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.1/cc2c8e94fc18bbdffe64d6534570c8a673b27f59.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/collection-visit/1.0.0/__path/npm/collection-visit/-/collection-visit-1.0.0/4bc0373c164bc3291b4d368c829cf1a80a59dca0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/2.0.1/__path/npm/color-convert/-/color-convert-2.0.1/72d3a68d598c9bdb3af2ad1e84f21d896abd4de3.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-name/1.1.4/__path/npm/color-name/-/color-name-1.1.4/c2a09a87acbde69543de6f63fa3995c826c536a2.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/colorette/1.2.2/__path/npm/colorette/-/colorette-1.2.2/cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/combined-stream/1.0.8/__path/npm/combined-stream/-/combined-stream-1.0.8/c3d45a8b34fd730631a110a8a2520682b31d5a7f.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/commander/2.20.3/__path/npm/commander/-/commander-2.20.3/fd485e84c03eb4881c20722ba48035e8531aeb33.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/commondir/1.0.1/__path/npm/commondir/-/commondir-1.0.1/ddd800da0c66127393cca5950ea968a3aaf1253b.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/compare-versions/3.6.0/__path/npm/compare-versions/-/compare-versions-3.6.0/1a5689913685e5a87637b8d3ffca75514ec41d62.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/component-emitter/1.3.0/__path/npm/component-emitter/-/component-emitter-1.3.0/16e4070fba8ae29b679f2215853ee181ab2eabc0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/concat-map/-/concat-map-0.0.1/d8a96bd77fd68df7793a73036a3ba0d5405d477b.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/concat-stream/1.6.2/__path/npm/concat-stream/-/concat-stream-1.6.2/904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/confusing-browser-globals/1.0.10/__path/npm/confusing-browser-globals/-/confusing-browser-globals-1.0.10/30d1e7f3d1b882b25ec4933d1d1adac353d20a59.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/console-browserify/1.2.0/__path/npm/console-browserify/-/console-browserify-1.2.0/67063cef57ceb6cf4993a2ab3a55840ae8c49336.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "console-clear": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/console-clear/1.1.1/__path/npm/console-clear/-/console-clear-1.1.1/995e20cbfbf14dd792b672cde387bd128d674bf7.tgz", - "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", - "dev": true - }, - "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/constants-browserify/1.0.0/__path/npm/constants-browserify/-/constants-browserify-1.0.0/c20b96d8c617748aaf1c16021760cd27fcb8cb75.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/contains-path/0.1.0/__path/npm/contains-path/-/contains-path-0.1.0/fe8cf184ff6670b6baef01a9d4861a5cbec4120a.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/convert-source-map/1.8.0/__path/npm/convert-source-map/-/convert-source-map-1.8.0/f3373c32d21b4d780dd8004514684fb791ca4369.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/safe-buffer/5.1.2/__path/npm/safe-buffer/-/safe-buffer-5.1.2/991ec69d296e0313747d59bdfd2b745c35f8828d.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/copy-concurrently/1.0.5/__path/npm/copy-concurrently/-/copy-concurrently-1.0.5/92297398cae34937fcafd6ec8139c18051f0b5e0.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/0.5.5/__path/npm/mkdirp/-/mkdirp-0.5.5/d91cefd62d1436ca0f41620e251288d420099def.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rimraf/2.7.1/__path/npm/rimraf/-/rimraf-2.7.1/35797f13a7fdadc566142c29d4f07ccad483e3ec.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/copy-descriptor/0.1.1/__path/npm/copy-descriptor/-/copy-descriptor-0.1.1/676f6eb3c39997c2ee1ac3a924fd6124748f578d.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-paste": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/copy-paste/-/copy-paste-1.3.0.tgz", - "integrity": "sha1-p+bEocKP3t8rCB5yuX3y75X0ce0=", - "dev": true, - "requires": { - "iconv-lite": "^0.4.8", - "sync-exec": "~0.6.x" - } - }, - "copy-webpack-plugin": { - "version": "6.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/copy-webpack-plugin/6.3.2/__path/npm/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2/0e920a6c181a5052aa6e2861b164bda03f83afeb.tgz", - "integrity": "sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA==", - "dev": true, - "requires": { - "cacache": "^15.0.5", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "webpack-sources": "^1.4.3" - } - }, - "core-js-pure": { - "version": "3.15.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/core-js-pure/3.15.0/__path/npm/core-js-pure/-/core-js-pure-3.15.0/c19349ae0be197b8bcf304acf4d91c5e29ae2091.tgz", - "integrity": "sha512-RO+LFAso8DB6OeBX9BAcEGvyth36QtxYon1OyVsITNVtSKr/Hos0BXZwnsOJ7o+O6KHtK+O+cJIEj9NGg6VwFA==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/core-util-is/-/core-util-is-1.0.2/b5fd54220aa2bc5ab57aab7140c940754503c1a7.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cosmiconfig/7.0.0/__path/npm/cosmiconfig/-/cosmiconfig-7.0.0/ef9b44d773959cae63ddecd122de23853b60f8d3.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse-json/5.2.0/__path/npm/parse-json/-/parse-json-5.2.0/c76fc66dee54231c962b22bcc8a72cf2f99753cd.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/create-ecdh/4.0.4/__path/npm/create-ecdh/-/create-ecdh-4.0.4/d6e7f4bffa66736085a0762fd3a632684dabcc4e.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/create-hash/1.2.0/__path/npm/create-hash/-/create-hash-1.2.0/889078af11a63756bcfb59bd221996be3a9ef196.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/create-hmac/1.1.7/__path/npm/create-hmac/-/create-hmac-1.1.7/69170c78b3ab957147b2b8b04572e47ead2243ff.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-env": { - "version": "7.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cross-env/7.0.2/__path/npm/cross-env/-/cross-env-7.0.2/bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9.tgz", - "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cross-spawn/7.0.3/__path/npm/cross-spawn/-/cross-spawn-7.0.3/f73a85b9d5d41d045551c177e2882d4ac85728a6.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/crypto-browserify/3.12.0/__path/npm/crypto-browserify/-/crypto-browserify-3.12.0/396cf9f3137f03e4b8e532c58f698254e00f80ec.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/crypto-random-string/2.0.0/__path/npm/crypto-random-string/-/crypto-random-string-2.0.0/ef2a7a966ec11083388369baa02ebead229b30d5.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/css/3.0.0/__path/npm/css/-/css-3.0.0/4447a4d58fdd03367c516ca9f64ae365cee4aa5d.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/css-select/4.1.3/__path/npm/css-select/-/css-select-4.1.3/a70440f70317f2669118ad74ff105e65849c7067.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-vendor": { - "version": "2.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/css-vendor/2.0.8/__path/npm/css-vendor/-/css-vendor-2.0.8/e47f91d3bd3117d49180a3c935e62e3d9f7f449d.tgz", - "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } - }, - "css-what": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/css-what/5.0.1/__path/npm/css-what/-/css-what-5.0.1/3efa820131f4669a8ac2408f9c32e7c7de9f4cad.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", - "dev": true - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/css.escape/1.5.1/__path/npm/css.escape/-/css.escape-1.5.1/42e27d4fa04ae32f931a4b4d4191fa9cddee97cb.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cssom/0.4.4/__path/npm/cssom/-/cssom-0.4.4/5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cssstyle/2.3.0/__path/npm/cssstyle/-/cssstyle-2.3.0/ff665a0ddbdc31864b09647f34163443d90b0852.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cssom/0.3.8/__path/npm/cssom/-/cssom-0.3.8/9f1276f5b2b463f2114d3f2c75250af8c1a36f4a.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csstype": { - "version": "2.6.17", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/csstype/2.6.17/__path/npm/csstype/-/csstype-2.6.17/4cf30eb87e1d1a005d8b6510f95292413f6a1c0e.tgz", - "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cyclist/1.0.1/__path/npm/cyclist/-/cyclist-1.0.1/596e9698fd0c80e12038c2b82d6eb1b35b6224d9.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/damerau-levenshtein/1.0.7/__path/npm/damerau-levenshtein/-/damerau-levenshtein-1.0.7/64368003512a1a6992593741a09a9d31a836f55d.tgz", - "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", - "dev": true - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/data-urls/2.0.0/__path/npm/data-urls/-/data-urls-2.0.0/156485a72963a970f5d5821aaf642bef2bf2db9b.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "date-format": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/date-format/3.0.0/__path/npm/date-format/-/date-format-3.0.0/eb8780365c7d2b1511078fb491e6479780f3ad95.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==" - }, - "debug": { - "version": "4.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/4.3.1/__path/npm/debug/-/debug-4.3.1/f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/decamelize/-/decamelize-1.2.0/f6534d15148269b20352e7bee26f501f9a191290.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/decimal.js/10.2.1/__path/npm/decimal.js/-/decimal.js-10.2.1/238ae7b0f0c793d3e3cea410108b35a2c01426a3.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/decode-uri-component/-/decode-uri-component-0.2.0/eb3913333458775cb84cd1a1fae062106bb87545.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/deep-is/0.1.3/__path/npm/deep-is/-/deep-is-0.1.3/b369d6fb5dbc13eecf524f91b070feedc357cf34.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/deepmerge/4.2.2/__path/npm/deepmerge/-/deepmerge-4.2.2/44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/define-properties/-/define-properties-1.1.3/cf88da6cbee26fe6db7094f61d870cbd84cee9f1.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/2.0.2/__path/npm/define-property/-/define-property-2.0.2/d459689e8d654ba77e02a817f8710d702cb16e9d.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-accessor-descriptor/1.0.0/__path/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0/169c2f6d3df1f992618072365c9b0ea1f6878656.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-data-descriptor/1.0.0/__path/npm/is-data-descriptor/-/is-data-descriptor-1.0.0/d84876321d0e7add03990406abbbbd36ba9268c7.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-descriptor/1.0.2/__path/npm/is-descriptor/-/is-descriptor-1.0.2/3b159746a66604b04f8c81524ba365c5f14d86ec.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/del/6.0.0/__path/npm/del/-/del-6.0.0/0b40d0332cea743f1614f818be4feb717714c952.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/delayed-stream/-/delayed-stream-1.0.0/df3ae199acadfb7d440aaae0b29e2272b24ec619.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/denodeify/1.2.1/__path/npm/denodeify/-/denodeify-1.2.1/3a36287f5034e699e7577901052c2e6c94251631.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/des.js/1.0.1/__path/npm/des.js/-/des.js-1.0.1/5382142e1bdc53f85d86d53e5f4aa7deb91e0843.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/detect-file/1.0.0/__path/npm/detect-file/-/detect-file-1.0.0/f0d66d03672a825cb1b73bdb3fe62310c8e552b7.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/detect-newline/3.1.0/__path/npm/detect-newline/-/detect-newline-3.1.0/576f5dfc63ae1a192ff192d8ad3af6308991b651.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/diff/4.0.2/__path/npm/diff/-/diff-4.0.2/60f3aecb89d5fae520c11aa19efc2bb982aade7d.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/diff-sequences/26.6.2/__path/npm/diff-sequences/-/diff-sequences-26.6.2/48ba99157de1923412eed41db6b6d4aa9ca7c0b1.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/diffie-hellman/5.0.3/__path/npm/diffie-hellman/-/diffie-hellman-5.0.3/40e8ee98f55a2149607146921c63e1ae5f3d2875.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/dir-glob/3.0.1/__path/npm/dir-glob/-/dir-glob-3.0.1/56dbf73d992a4a93ba1584f4534063fd2e41717f.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "discontinuous-range": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/discontinuous-range/1.0.0/__path/npm/discontinuous-range/-/discontinuous-range-1.0.0/e38331f0844bba49b9a9cb71c771585aab1bc65a.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/doctrine/3.0.0/__path/npm/doctrine/-/doctrine-3.0.0/addebead72a6574db783639dc87a121773973961.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/dom-accessibility-api/0.5.6/__path/npm/dom-accessibility-api/-/dom-accessibility-api-0.5.6/3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9.tgz", - "integrity": "sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw==", - "dev": true - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/dom-helpers/5.2.1/__path/npm/dom-helpers/-/dom-helpers-5.2.1/d9400536b2bf8225ad98fe052e029451ac40e902.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/csstype/-/csstype-3.0.8/d2266a792729fb227cd216fb572f43728e1ad340.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "dev": true - } - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/dom-serializer/1.3.2/__path/npm/dom-serializer/-/dom-serializer-1.3.2/6206437d32ceefaec7161803230c7a20bc1b4d91.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/domain-browser/1.2.0/__path/npm/domain-browser/-/domain-browser-1.2.0/3d31f50191a6749dd1375a7f522e823d42e54eda.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/domelementtype/2.2.0/__path/npm/domelementtype/-/domelementtype-2.2.0/9a0b6c2782ed6a1c7323d42267183df9bd8b1d57.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/domexception/2.0.1/__path/npm/domexception/-/domexception-2.0.1/fb44aefba793e1574b0af6aed2801d057529f304.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/webidl-conversions/5.0.0/__path/npm/webidl-conversions/-/webidl-conversions-5.0.0/ae59c8a00b121543a2acc65c0434f57b0fc11aff.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "4.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/domhandler/4.2.0/__path/npm/domhandler/-/domhandler-4.2.0/f9768a5f034be60a89a27c2e4d0f74eba0d8b059.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.7.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/domutils/2.7.0/__path/npm/domutils/-/domutils-2.7.0/8ebaf0c41ebafcf55b0b72ec31c56323712c5442.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/duplexify/3.7.1/__path/npm/duplexify/-/duplexify-3.7.1/2a4df5317f6ccfd91f86d6fd25d8d8a103b88309.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/electron-to-chromium/-/electron-to-chromium-1.3.752/0728587f1b9b970ec9ffad932496429aef750d09.tgz", - "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/elliptic/6.5.4/__path/npm/elliptic/-/elliptic-6.5.4/da37cebd31e79a1367e941b592ed1fbebd58abbb.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emittery/0.7.2/__path/npm/emittery/-/emittery-0.7.2/25595908e13af0f5674ab419396e2fb394cdfa82.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emoji-regex/7.0.3/__path/npm/emoji-regex/-/emoji-regex-7.0.3/933a04052860c85e83c122479c4748a8e4c72156.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emojis-list/3.0.0/__path/npm/emojis-list/-/emojis-list-3.0.0/5570662046ad29e2e916e71aae260abdff4f6a78.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/end-of-stream/1.4.4/__path/npm/end-of-stream/-/end-of-stream-1.4.4/5ae64a5f45057baf3626ec14da0ca5e4b2431eb0.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/enhanced-resolve/4.5.0/__path/npm/enhanced-resolve/-/enhanced-resolve-4.5.0/2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/enquirer/2.3.6/__path/npm/enquirer/-/enquirer-2.3.6/2a7fe5dd634a1e4125a975ec994ff5456dc3734d.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/entities/2.2.0/__path/npm/entities/-/entities-2.2.0/098dc90ebb83d8dffa089d55256b351d34c4da55.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "enzyme": { - "version": "3.11.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/enzyme/3.11.0/__path/npm/enzyme/-/enzyme-3.11.0/71d680c580fe9349f6f5ac6c775bc3e6b7a79c28.tgz", - "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", - "dev": true, - "requires": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - } - }, - "enzyme-adapter-utils": { - "version": "1.14.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/enzyme-adapter-utils/1.14.0/__path/npm/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0/afbb0485e8033aa50c744efb5f5711e64fbf1ad0.tgz", - "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", - "dev": true, - "requires": { - "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.3", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.fromentries": "^2.0.3", - "prop-types": "^15.7.2", - "semver": "^5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "enzyme-shallow-equal": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/enzyme-shallow-equal/1.0.4/__path/npm/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4/b9256cb25a5f430f9bfe073a84808c1d74fced2e.tgz", - "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==", - "dev": true, - "requires": { - "has": "^1.0.3", - "object-is": "^1.1.2" - } - }, - "errno": { - "version": "0.1.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/errno/0.1.8/__path/npm/errno/-/errno-0.1.8/8bb3e9c7d463be4976ff888f76b4809ebc2e811f.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/error-ex/-/error-ex-1.3.2/b4ac40648107fdcdcfae242f428bea8a14d4f1bf.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/es-abstract/-/es-abstract-1.18.3/25c4c3380a27aa203c44b2b685bba94da31b63e0.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/es-array-method-boxes-properly/1.0.0/__path/npm/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0/873f3e84418de4ee19c5be752990b2e44718d09e.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/es-to-primitive/1.2.1/__path/npm/es-to-primitive/-/es-to-primitive-1.2.1/e55cd4c9cdc188bcefb03b366c736323fc5c898a.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/escalade/3.1.1/__path/npm/escalade/-/escalade-3.1.1/d8cfdc7000965c5a0174b4a82eaa5c0552742e40.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/escape-string-regexp/-/escape-string-regexp-1.0.5/1b61c0562190a8dff6ae3bb2cf0200ca130b86d4.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/escodegen/2.0.0/__path/npm/escodegen/-/escodegen-2.0.0/5e32b12833e8aa8fa35e1bf0befa89380484c7dd.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/estraverse/5.2.0/__path/npm/estraverse/-/estraverse-5.2.0/307df42547e6cc7324d3cf03c155d5cdb8c53880.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/levn/0.3.0/__path/npm/levn/-/levn-0.3.0/3b09924edf9f083c0490fdd4c0bc4421e04764ee.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/optionator/0.8.3/__path/npm/optionator/-/optionator-0.8.3/84fa1d036fe9d3c7e21d99884b601167ec8fb495.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prelude-ls/1.1.2/__path/npm/prelude-ls/-/prelude-ls-1.1.2/21932a549f5e52ffd9a827f570e04be62a97da54.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-check/0.3.2/__path/npm/type-check/-/type-check-0.3.2/5884cab512cf1d355e3fb784f30804b2b520db72.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "7.14.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint/7.14.0/__path/npm/eslint/-/eslint-7.14.0/2d2cac1d28174c510a97b377f122a5507958e344.tgz", - "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "eslint-config-airbnb": { - "version": "18.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-config-airbnb/18.2.0/__path/npm/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0/8a82168713effce8fc08e10896a63f1235499dcd.tgz", - "integrity": "sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^14.2.0", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2" - } - }, - "eslint-config-airbnb-base": { - "version": "14.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-config-airbnb-base/14.2.0/__path/npm/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0/fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4.tgz", - "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.9", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2" - } - }, - "eslint-config-airbnb-typescript": { - "version": "12.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-config-airbnb-typescript/12.0.0/__path/npm/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-12.0.0/4bb6b4b72b1cfc45ef1fa0607735679ceb9a3814.tgz", - "integrity": "sha512-TUCVru1Z09eKnVAX5i3XoNzjcCOU3nDQz2/jQGkg1jVYm+25fKClveziSl16celfCq+npU0MBPW/ZnXdGFZ9lw==", - "dev": true, - "requires": { - "@typescript-eslint/parser": "4.4.1", - "eslint-config-airbnb": "18.2.0", - "eslint-config-airbnb-base": "14.2.0" - }, - "dependencies": { - "@typescript-eslint/parser": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/parser/4.4.1/__path/npm/@typescript-eslint/parser/-/parser-4.4.1/25fde9c080611f303f2f33cedb145d2c59915b80.tgz", - "integrity": "sha512-S0fuX5lDku28Au9REYUsV+hdJpW/rNW0gWlc4SXzF/kdrRaAVX9YCxKpziH7djeWT/HFAjLZcnY7NJD8xTeUEg==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.4.1", - "@typescript-eslint/types": "4.4.1", - "@typescript-eslint/typescript-estree": "4.4.1", - "debug": "^4.1.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/scope-manager/4.4.1/__path/npm/@typescript-eslint/scope-manager/-/scope-manager-4.4.1/d19447e60db2ce9c425898d62fa03b2cce8ea3f9.tgz", - "integrity": "sha512-2oD/ZqD4Gj41UdFeWZxegH3cVEEH/Z6Bhr/XvwTtGv66737XkR4C9IqEkebCuqArqBJQSj4AgNHHiN1okzD/wQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.4.1", - "@typescript-eslint/visitor-keys": "4.4.1" - } - }, - "@typescript-eslint/types": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/types/4.4.1/__path/npm/@typescript-eslint/types/-/types-4.4.1/c507b35cf523bc7ba00aae5f75ee9b810cdabbc1.tgz", - "integrity": "sha512-KNDfH2bCyax5db+KKIZT4rfA8rEk5N0EJ8P0T5AJjo5xrV26UAzaiqoJCxeaibqc0c/IvZxp7v2g3difn2Pn3w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/typescript-estree/4.4.1/__path/npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.4.1/598f6de488106c2587d47ca2462c60f6e2797cb8.tgz", - "integrity": "sha512-wP/V7ScKzgSdtcY1a0pZYBoCxrCstLrgRQ2O9MmCUZDtmgxCO/TCqOTGRVwpP4/2hVfqMz/Vw1ZYrG8cVxvN3g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.4.1", - "@typescript-eslint/visitor-keys": "4.4.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/@typescript-eslint/visitor-keys/4.4.1/__path/npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.4.1/1769dc7a9e2d7d2cfd3318b77ed8249187aed5c3.tgz", - "integrity": "sha512-H2JMWhLaJNeaylSnMSQFEhT/S/FsJbebQALmoJxMPMxLtlVAMy2uJP/Z543n9IizhjRayLSqoInehCeNW9rWcw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.4.1", - "eslint-visitor-keys": "^2.0.0" - } - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-import-resolver-node/0.3.4/__path/npm/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4/85ffa81942c25012d8231096ddf679c03042c717.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/2.6.9/__path/npm/debug/-/debug-2.6.9/5d128515df134ff327e90a4c93f4e077a536341f.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ms/2.0.0/__path/npm/ms/-/ms-2.0.0/5608aeadfc00be6c2901df5f9861788de0d597c8.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-loader": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-loader/4.0.2/__path/npm/eslint-loader/-/eslint-loader-4.0.2/386a1e21bcb613b3cf2d252a3b708023ccfb41ec.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/schema-utils/2.7.1/__path/npm/schema-utils/-/schema-utils-2.7.1/1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-module-utils/2.6.1/__path/npm/eslint-module-utils/-/eslint-module-utils-2.6.1/b51be1e473dd0de1c5ea638e22429c2490ea8233.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/3.2.7/__path/npm/debug/-/debug-3.2.7/72580b7e9145fb39b6676f9c5e5fb100b934179a.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/find-up/-/find-up-2.1.0/45d1b7e506c717ddd482775a2b77920a3c0c57a7.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/locate-path/-/locate-path-2.0.0/2b568b265eec944c6d9c0de9c3dbbbca0354cd8e.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/1.3.0/__path/npm/p-limit/-/p-limit-1.3.0/b86bd5f0c25690911c7590fcbfc2010d54b3ccb8.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/p-locate/-/p-locate-2.0.0/20a0103b222a70c8fd39cc2e580680f3dde5ec43.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/p-try/-/p-try-1.0.0/cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-exists/-/path-exists-3.0.0/ce0ebeaa5f78cb18925ea7d810d7b59b010fd515.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pkg-dir/2.0.0/__path/npm/pkg-dir/-/pkg-dir-2.0.0/f6d5d1109e19d63edf428e0bd57e12777615334b.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-plugin-import/2.22.1/__path/npm/eslint-plugin-import/-/eslint-plugin-import-2.22.1/0896c7e6a0cf44109a2d97b95903c2bb689d7702.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/2.6.9/__path/npm/debug/-/debug-2.6.9/5d128515df134ff327e90a4c93f4e077a536341f.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/doctrine/1.5.0/__path/npm/doctrine/-/doctrine-1.5.0/379dce730f6166f76cefa4e6707a159b02c5a6fa.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ms/2.0.0/__path/npm/ms/-/ms-2.0.0/5608aeadfc00be6c2901df5f9861788de0d597c8.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-plugin-jsx-a11y/6.4.1/__path/npm/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1/a2d84caa49756942f42f1ffab9002436391718fd.tgz", - "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - }, - "dependencies": { - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emoji-regex/9.2.2/__path/npm/emoji-regex/-/emoji-regex-9.2.2/840c8803b0d8047f4ff0cf963176b32d4ef3ed72.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.21.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-plugin-react/7.21.5/__path/npm/eslint-plugin-react/-/eslint-plugin-react-7.21.5/50b21a412b9574bfe05b21db176e8b7b3b15bff3.tgz", - "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/doctrine/2.1.0/__path/npm/doctrine/-/doctrine-2.1.0/5cd01fc101621b42c4cd7f5d1a66243716d3f39d.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-plugin-react-hooks/4.2.0/__path/npm/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0/8c229c268d468956334c943bb45fc860280f5556.tgz", - "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-scope/5.1.1/__path/npm/eslint-scope/-/eslint-scope-5.1.1/e786e59a66cb92b3f6c1fb0d508aab174848f48c.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-utils/2.1.0/__path/npm/eslint-utils/-/eslint-utils-2.1.0/d2de5e03424e707dc10c74068ddedae708741b27.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-visitor-keys/1.3.0/__path/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0/30ebd1ef7c2fdff01c3a4f151044af25fab0523e.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-visitor-keys/2.1.0/__path/npm/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0/f65328259305927392c938ed44eb0a5c9b2bd303.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/espree/7.3.1/__path/npm/espree/-/espree-7.3.1/f2df330b752c6f55019f8bd89b7660039c1bbbb6.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-visitor-keys/1.3.0/__path/npm/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0/30ebd1ef7c2fdff01c3a4f151044af25fab0523e.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/esprima/4.0.1/__path/npm/esprima/-/esprima-4.0.1/13b04cdb3e6c5d19df91ab6987a8695619b0aa71.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/esquery/1.4.0/__path/npm/esquery/-/esquery-1.4.0/2148ffc38b82e8c7057dfed48425b3e61f0f24a5.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/estraverse/5.2.0/__path/npm/estraverse/-/estraverse-5.2.0/307df42547e6cc7324d3cf03c155d5cdb8c53880.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/esrecurse/4.3.0/__path/npm/esrecurse/-/esrecurse-4.3.0/7ad7964d679abb28bee72cec63758b1c5d2c9921.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/estraverse/5.2.0/__path/npm/estraverse/-/estraverse-5.2.0/307df42547e6cc7324d3cf03c155d5cdb8c53880.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/estraverse/4.3.0/__path/npm/estraverse/-/estraverse-4.3.0/398ad3f3c5a24948be7725e83d11a7de28cdbd1d.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/esutils/2.0.3/__path/npm/esutils/-/esutils-2.0.3/74d2eb4de0b8da1293711910d50775b9b710ef64.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/events/3.3.0/__path/npm/events/-/events-3.3.0/31a95ad0a924e2d2c419a813aeb2c4e878ea7400.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/evp_bytestokey/1.0.3/__path/npm/evp_bytestokey/-/evp_bytestokey-1.0.3/7fcbdb198dc71959432efe13842684e0525acb02.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/exec-sh/0.3.6/__path/npm/exec-sh/-/exec-sh-0.3.6/ff264f9e325519a60cb5e273692943483cca63bc.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/execa/1.0.0/__path/npm/execa/-/execa-1.0.0/c6236a5bb4df6d6f15e88e7f017798216749ddd8.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cross-spawn/6.0.5/__path/npm/cross-spawn/-/cross-spawn-6.0.5/4a5ec7c64dfae22c3a14124dbacdee846d80cbc4.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-stream/1.1.0/__path/npm/is-stream/-/is-stream-1.1.0/12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-key/2.0.1/__path/npm/path-key/-/path-key-2.0.1/411cadb574c5a140d3a4b1910d40d80cc9f40b40.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-command/1.2.0/__path/npm/shebang-command/-/shebang-command-1.2.0/44aac65b695b03398968c39f363fee5deafdf1ea.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-regex/1.0.0/__path/npm/shebang-regex/-/shebang-regex-1.0.0/da42f49740c0b42db2ca9728571cb190c98efea3.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which/1.3.1/__path/npm/which/-/which-1.3.1/a45043d54f5805316da8d62f9f50918d3da70b0a.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/exit/0.1.2/__path/npm/exit/-/exit-0.1.2/0632638f8d877cc82107d30a0fff1a17cba1cd0c.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/expand-brackets/2.1.4/__path/npm/expand-brackets/-/expand-brackets-2.1.4/b77735e315ce30f6b6eff0f83b04151a22449622.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/2.6.9/__path/npm/debug/-/debug-2.6.9/5d128515df134ff327e90a4c93f4e077a536341f.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/0.2.5/__path/npm/define-property/-/define-property-0.2.5/c35b1ef918ec3c990f9a5bc57be04aacec5c8116.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ms/2.0.0/__path/npm/ms/-/ms-2.0.0/5608aeadfc00be6c2901df5f9861788de0d597c8.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/expand-tilde/2.0.2/__path/npm/expand-tilde/-/expand-tilde-2.0.2/97e801aa052df02454de46b02bf621642cdc8502.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/expect/26.6.2/__path/npm/expect/-/expect-26.6.2/c6b996bf26bf3fe18b67b2d0f51fc981ba934417.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/3.0.2/__path/npm/extend-shallow/-/extend-shallow-3.0.2/26a71aaf073b39fb2127172746131c2704028db8.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-extendable/1.0.1/__path/npm/is-extendable/-/is-extendable-1.0.1/a7470f9e426733d81bd81e1155264e3a3507cab4.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extglob/2.0.4/__path/npm/extglob/-/extglob-2.0.4/ad00fe4dc612a9232e8718711dc5cb5ab0285543.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/1.0.0/__path/npm/define-property/-/define-property-1.0.0/769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-accessor-descriptor/1.0.0/__path/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0/169c2f6d3df1f992618072365c9b0ea1f6878656.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-data-descriptor/1.0.0/__path/npm/is-data-descriptor/-/is-data-descriptor-1.0.0/d84876321d0e7add03990406abbbbd36ba9268c7.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-descriptor/1.0.2/__path/npm/is-descriptor/-/is-descriptor-1.0.2/3b159746a66604b04f8c81524ba365c5f14d86ec.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fast-deep-equal/3.1.3/__path/npm/fast-deep-equal/-/fast-deep-equal-3.1.3/3a7d56b559d6cbc3eb512325244e619a65c6c525.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fast-glob/3.2.4/__path/npm/fast-glob/-/fast-glob-3.2.4/d20aefbf99579383e7f3cc66529158c9b98554d3.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fast-json-stable-stringify/2.1.0/__path/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0/874bf69c6f404c2b5d99c481341399fd55892633.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fast-levenshtein/2.0.6/__path/npm/fast-levenshtein/-/fast-levenshtein-2.0.6/3d8a5c66883a16a30ca8643e851f19baa7797917.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.11.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fastq/1.11.0/__path/npm/fastq/-/fastq-1.11.0/bb9fb955a07130a918eb63c1f5161cc32a5d0858.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fb-watchman/2.0.1/__path/npm/fb-watchman/-/fb-watchman-2.0.1/fc84fb39d2709cf3ff6d743706157bb5708a8a85.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fd-slicer/1.1.0/__path/npm/fd-slicer/-/fd-slicer-1.1.0/25c7c89cb1f9077f8891bbe61d8f390eae256f1e.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/figgy-pudding/3.5.2/__path/npm/figgy-pudding/-/figgy-pudding-3.5.2/b4eee8148abb01dcf1d1ac34367d59e12fa61d6e.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/file-entry-cache/5.0.1/__path/npm/file-entry-cache/-/file-entry-cache-5.0.1/ca0f6efa6dd3d561333fb14515065c2fafdf439c.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/file-uri-to-path/-/file-uri-to-path-1.0.0/553a7b8446ff6f684359c445f1e37a05dacc33dd.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fill-range/4.0.0/__path/npm/fill-range/-/fill-range-4.0.0/d544811d428f98eb06a63dc402d2403c328c38f7.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-cache-dir/3.3.1/__path/npm/find-cache-dir/-/find-cache-dir-3.3.1/89b33fad4a4670daa94f855f7fbe31d6d84fe880.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-up/4.1.0/__path/npm/find-up/-/find-up-4.1.0/97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-versions": { - "version": "3.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-versions/3.2.0/__path/npm/find-versions/-/find-versions-3.2.0/10297f98030a786829681690545ef659ed1d254e.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", - "dev": true, - "requires": { - "semver-regex": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/findup-sync/3.0.0/__path/npm/findup-sync/-/findup-sync-3.0.0/17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/micromatch/3.1.10/__path/npm/micromatch/-/micromatch-3.1.10/70859bc95c9840952f359a068a3fc49f9ecfac23.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/flat/5.0.2/__path/npm/flat/-/flat-5.0.2/8ca6fe332069ffa9d324c327198c598259ceb241.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/flat-cache/2.0.1/__path/npm/flat-cache/-/flat-cache-2.0.1/5d296d6f04bda44a4630a301413bdbc2ec085ec0.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rimraf/2.6.3/__path/npm/rimraf/-/rimraf-2.6.3/b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/flatted/2.0.2/__path/npm/flatted/-/flatted-2.0.2/4575b21e2bcee7434aa9be662f4b7b5f9c2b5138.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "fluent-ffmpeg": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", - "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", - "dev": true, - "requires": { - "async": ">=0.2.9", - "which": "^1.1.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/flush-write-stream/1.1.1/__path/npm/flush-write-stream/-/flush-write-stream-1.1.1/8dd7d873a1babc207d94ead0c2e0e44276ebf2e8.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/for-in/1.0.2/__path/npm/for-in/-/for-in-1.0.2/81068d295a8142ec0ac726c6e2200c30fb6d5e80.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fragment-cache/0.2.1/__path/npm/fragment-cache/-/fragment-cache-0.2.1/4290fad27f13e89be7f33799c6bc5a0abfff0d19.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/from2/2.3.0/__path/npm/from2/-/from2-2.3.0/8bfb5502bde4a4d36cfdeea007fcca21d7e382af.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fs-minipass/2.1.0/__path/npm/fs-minipass/-/fs-minipass-2.1.0/7f5036fdbf12c63c169190cbe4199c852271f9fb.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fs-write-stream-atomic/1.0.10/__path/npm/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10/b47df53493ef911df75731e70a9ded0189db40c9.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/fs.realpath/-/fs.realpath-1.0.0/1504ad2523158caa40db4a2787cb01411994ea4f.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fsevents/2.3.2/__path/npm/fsevents/-/fsevents-2.3.2/8a526f78b8fdf4623b709e0b975c52c24c02fd1a.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/function-bind/-/function-bind-1.1.1/a56899d3ea3c9bab874bb9773b7c5ede92f4895d.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/function.prototype.name/1.1.4/__path/npm/function.prototype.name/-/function.prototype.name-1.1.4/e4ea839b9d3672ae99d0efd9f38d9191c5eaac83.tgz", - "integrity": "sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/functional-red-black-tree/1.0.1/__path/npm/functional-red-black-tree/-/functional-red-black-tree-1.0.1/1b0ab3bd553b2a0d6399d29c0e3ea0b252078327.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "functions-have-names": { - "version": "1.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/functions-have-names/1.2.2/__path/npm/functions-have-names/-/functions-have-names-1.2.2/98d93991c39da9361f8e50b337c4f6e41f120e21.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/gensync/1.0.0-beta.2/__path/npm/gensync/-/gensync-1.0.0-beta.2/32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-caller-file/2.0.5/__path/npm/get-caller-file/-/get-caller-file-2.0.5/4f94412a82db32f36e3b0b9741f8a97feb031f7e.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-intrinsic/1.1.1/__path/npm/get-intrinsic/-/get-intrinsic-1.1.1/15f59f376f855c446963948f0d24cd3637b4abc6.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-package-type/0.1.0/__path/npm/get-package-type/-/get-package-type-0.1.0/8de2d803cff44df3bc6c456e6668b36c3926e11a.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-port": { - "version": "3.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-port/3.2.0/__path/npm/get-port/-/get-port-3.2.0/dd7ce7de187c06c8bf353796ac71e099f0980ebc.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-stream/4.1.0/__path/npm/get-stream/-/get-stream-4.1.0/c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-value/2.0.6/__path/npm/get-value/-/get-value-2.0.6/dc15ca1c672387ca76bd37ac0a395ba2042a2c28.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/glob/7.1.6/__path/npm/glob/-/glob-7.1.6/141f33b81a7c2492e125594307480c46679278a6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/glob-parent/5.1.1/__path/npm/glob-parent/-/glob-parent-5.1.1/b6c1ef417c4e5663ea498f1c45afac6916bbc229.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/global-modules/2.0.0/__path/npm/global-modules/-/global-modules-2.0.0/997605ad2345f27f51539bea26574421215c7780.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/global-prefix/3.0.0/__path/npm/global-prefix/-/global-prefix-3.0.0/fc85f73064df69f50421f47f883fe5b913ba9b97.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which/1.3.1/__path/npm/which/-/which-1.3.1/a45043d54f5805316da8d62f9f50918d3da70b0a.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/global-prefix/1.0.2/__path/npm/global-prefix/-/global-prefix-1.0.2/dbf743c6c14992593c655568cb66ed32c0122ebe.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which/1.3.1/__path/npm/which/-/which-1.3.1/a45043d54f5805316da8d62f9f50918d3da70b0a.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/globals/12.4.0/__path/npm/globals/-/globals-12.4.0/a18813576a41b00a24a97e7f815918c2e19925f8.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/globby/-/globby-11.0.1/9a2bf107a068f3ffeabc49ad702c79ede8cfd357.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ignore/5.1.8/__path/npm/ignore/-/ignore-5.1.8/f150a8b50a34289b33e22f5889abd4d8016f0e57.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - } - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/graceful-fs/4.2.4/__path/npm/graceful-fs/-/graceful-fs-4.2.4/2256bde14d3632958c465ebc96dc467ca07a29fb.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/growl/1.10.5/__path/npm/growl/-/growl-1.10.5/f2735dc2283674fa67478b10181059355c369e5e.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/growly/1.3.0/__path/npm/growly/-/growly-1.3.0/f10748cbe76af964b7c96c93c6bcc28af120c081.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/harmony-reflect/1.6.2/__path/npm/harmony-reflect/-/harmony-reflect-1.6.2/31ecbd32e648a34d030d86adb67d4d47547fe710.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/has/-/has-1.0.3/722d7cbfc1f6aa8241f16dd814e011e1f41e8796.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-bigints/1.0.1/__path/npm/has-bigints/-/has-bigints-1.0.1/64fe6acb020673e3b78db035a5af69aa9d07b113.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-flag/4.0.0/__path/npm/has-flag/-/has-flag-4.0.0/944771fd9c81c81265c4d6941860da06bb59479b.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-symbols/1.0.2/__path/npm/has-symbols/-/has-symbols-1.0.2/165d3070c00309752a1236a479331e3ac56f1423.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-value/1.0.0/__path/npm/has-value/-/has-value-1.0.0/18b281da585b1c5c51def24c930ed29a0be6b177.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-values/1.0.0/__path/npm/has-values/-/has-values-1.0.0/95b0b63fec2146619a6fe57fe75628d5a39efe4f.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/4.0.0/__path/npm/kind-of/-/kind-of-4.0.0/20813df3d712928b207378691a45066fae72dd57.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hash-base/3.1.0/__path/npm/hash-base/-/hash-base-3.1.0/55c381d9e06e1d2997a883b4a3fddfe7f0d3af33.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/readable-stream/3.6.0/__path/npm/readable-stream/-/readable-stream-3.6.0/337bbda3adc0706bd3e024426a286d4b4b2c9198.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hash.js/1.1.7/__path/npm/hash.js/-/hash.js-1.1.7/0babca538e8d4ee4a0f8988d68866537a003cf42.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/he/1.2.0/__path/npm/he/-/he-1.2.0/84ae65fa7eafb165fddb61566ae14baf05664f0f.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "highlight.js": { - "version": "10.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/highlight.js/10.5.0/__path/npm/highlight.js/-/highlight.js-10.5.0/3f09fede6a865757378f2d9ebdcbc15ba268f98f.tgz", - "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/history/4.10.1/__path/npm/history/-/history-4.10.1/33371a65e3a83b267434e2b3f3b1b4c58aad4cf3.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hmac-drbg/1.0.1/__path/npm/hmac-drbg/-/hmac-drbg-1.0.1/d2745701025a6c775a6c545793ed502fc0c649a1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hoist-non-react-statics/3.3.2/__path/npm/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2/ece0acaf71d62c2969c2ec59feff42a4b1a85b45.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "requires": { - "react-is": "^16.7.0" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/homedir-polyfill/1.0.3/__path/npm/homedir-polyfill/-/homedir-polyfill-1.0.3/743298cef4e5af3e194161fbadcc2151d3a058e8.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hosted-git-info/2.8.9/__path/npm/hosted-git-info/-/hosted-git-info-2.8.9/dffc0bf9a21c02209090f2aa69429e1414daf3f9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-element-map": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/html-element-map/1.3.1/__path/npm/html-element-map/-/html-element-map-1.3.1/44b2cbcfa7be7aa4ff59779e47e51012e1c73c08.tgz", - "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", - "dev": true, - "requires": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/html-encoding-sniffer/2.0.1/__path/npm/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1/42a6dc4fd33f00281176e8b23759ca4e4fa185f3.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/html-escaper/2.0.2/__path/npm/html-escaper/-/html-escaper-2.0.2/dfd60027da36a36dfcbe236262c00a5822681453.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/htmlparser2/6.1.0/__path/npm/htmlparser2/-/htmlparser2-6.1.0/c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/http-proxy-agent/4.0.1/__path/npm/http-proxy-agent/-/http-proxy-agent-4.0.1/8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/https-browserify/1.0.0/__path/npm/https-browserify/-/https-browserify-1.0.0/ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/https-proxy-agent/5.0.0/__path/npm/https-proxy-agent/-/https-proxy-agent-5.0.0/e2a90542abb68a762e0a0850f6c9edadfd8506b2.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/human-signals/1.1.1/__path/npm/human-signals/-/human-signals-1.1.1/c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "husky": { - "version": "4.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/husky/4.3.0/__path/npm/husky/-/husky-4.3.0/0b2ec1d66424e9219d359e26a51c58ec5278f0de.tgz", - "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^3.2.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/hyphenate-style-name/1.0.4/__path/npm/hyphenate-style-name/-/hyphenate-style-name-1.0.4/691879af8e220aea5750e8827db4ef62a54e361d.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==", - "dev": true - }, - "i18next": { - "version": "20.3.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.3.5.tgz", - "integrity": "sha512-//MGeU6n4TencJmCgG+TCrpdgAD/NDEU/KfKQekYbJX6QV7sD/NjWQdVdBi+bkT0snegnSoB7QhjSeatrk3a0w==", - "requires": { - "@babel/runtime": "^7.12.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/iconv-lite/0.4.24/__path/npm/iconv-lite/-/iconv-lite-0.4.24/2022b4b25fbddc21d2f524974a474aafe733908b.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/identity-obj-proxy/3.0.0/__path/npm/identity-obj-proxy/-/identity-obj-proxy-3.0.0/94d2bda96084453ef36fbc5aaec37e0f79f1fc14.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dev": true, - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ieee754/1.2.1/__path/npm/ieee754/-/ieee754-1.2.1/8eb7a10a63fff25d15a57b001586d177d1b0d352.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/iferr/0.1.5/__path/npm/iferr/-/iferr-0.1.5/c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ignore/4.0.6/__path/npm/ignore/-/ignore-4.0.6/750e3db5862087b4737ebac8207ffd1ef27b25fc.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/import-fresh/3.3.0/__path/npm/import-fresh/-/import-fresh-3.3.0/37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/import-local/3.0.2/__path/npm/import-local/-/import-local-3.0.2/a8cfd0431d1de4a2199703d003e3e62364fa6db6.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/imurmurhash/-/imurmurhash-0.1.4/9218b9b2b928a238b13dc4fb6b6d576f231453ea.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indefinite-observable": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/indefinite-observable/2.0.1/__path/npm/indefinite-observable/-/indefinite-observable-2.0.1/574af29bfbc17eb5947793797bddc94c9d859400.tgz", - "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==", - "dev": true, - "requires": { - "symbol-observable": "1.2.0" - } - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/indent-string/4.0.0/__path/npm/indent-string/-/indent-string-4.0.0/624f8f4497d619b2d9768531d58f4122854d7251.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/infer-owner/1.0.4/__path/npm/infer-owner/-/infer-owner-1.0.4/c4cefcaa8e51051c2a40ba2ce8a3d27295af9467.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/inflight/-/inflight-1.0.6/49bd6331d7d02d0c09bc910a1075ba8165b56df9.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/inherits/2.0.4/__path/npm/inherits/-/inherits-2.0.4/0fa2c64f932917c3433a0ded55363aae37416b7c.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ini/1.3.8/__path/npm/ini/-/ini-1.3.8/a29da425b48806f34767a4efce397269af28432c.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/internal-slot/1.0.3/__path/npm/internal-slot/-/internal-slot-1.0.3/7347e307deeea2faac2ac6205d4bc7d34967f59c.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/interpret/1.4.0/__path/npm/interpret/-/interpret-1.4.0/665ab8bc4da27a774a40584e812e3e0fa45b1a1e.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-accessor-descriptor/0.1.6/__path/npm/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6/a9e12cb3ae8d876727eeef3843f8a0897b5c98d6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-arrayish/-/is-arrayish-0.2.1/77c99840527aa8ecb1a8ba697b80645a7a926a9d.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-bigint/-/is-bigint-1.0.2/ffb381442503235ad245ea89e45b3dbff040ee5a.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-binary-path/2.1.0/__path/npm/is-binary-path/-/is-binary-path-2.1.0/ea1f7f3b80f064236e83470f86c09c254fb45b09.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-boolean-object/-/is-boolean-object-1.1.1/3c0878f035cb821228d350d2e1e36719716a3de8.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-buffer/1.1.6/__path/npm/is-buffer/-/is-buffer-1.1.6/efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-callable/1.2.3/__path/npm/is-callable/-/is-callable-1.2.3/8b1e0500b73a1d76c70487636f368e519de8db8e.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-ci/2.0.0/__path/npm/is-ci/-/is-ci-2.0.0/6bc6334181810e04b5c22b3d589fdca55026404c.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-core-module/2.4.0/__path/npm/is-core-module/-/is-core-module-2.4.0/8e9fc8e15027b011418026e98f0e6f4d86305cc1.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-data-descriptor/0.1.4/__path/npm/is-data-descriptor/-/is-data-descriptor-0.1.4/0b5ee648388e2c860282e793f1856fec3f301b56.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-date-object/-/is-date-object-1.0.4/550cfcc03afada05eea3dd30981c7b09551f73e5.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-descriptor/0.1.6/__path/npm/is-descriptor/-/is-descriptor-0.1.6/366d8240dde487ca51823b1ab9f07a10a78251ca.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/5.1.0/__path/npm/kind-of/-/kind-of-5.1.0/729c91e2d857b7a419a1f9aa65685c4c33f5845d.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-docker/-/is-docker-2.2.1/33eeabe23cfe86f14bde4408a02c0cfb853acdaa.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-extendable/0.1.1/__path/npm/is-extendable/-/is-extendable-0.1.1/62b110e289a471418e3ec36a617d472e301dfc89.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-extglob/-/is-extglob-2.1.1/a88c02535791f02ed37c76a1b9ea9773c833f8c2.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0/a3b30a5c4f199183167aaab93beefae3ddfb654f.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-generator-fn/2.1.0/__path/npm/is-generator-fn/-/is-generator-fn-2.1.0/7d140adc389aaf3011a8f2a2a4cfa6faadffb118.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-glob/4.0.1/__path/npm/is-glob/-/is-glob-4.0.1/7567dbe9f2f5e2467bc77ab83c4a29482407a5dc.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-in-browser/1.1.3/__path/npm/is-in-browser/-/is-in-browser-1.1.3/56ff4db683a078c6082eb95dad7dc62e1d04f835.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-negative-zero/2.0.1/__path/npm/is-negative-zero/-/is-negative-zero-2.0.1/3de746c18dda2319241a53675908d8f766f11c24.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-number/3.0.0/__path/npm/is-number/-/is-number-3.0.0/24fd6201a4782cf50561c810276afc7d12d71195.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-number-object/-/is-number-object-1.0.5/6edfaeed7950cff19afedce9fbfca9ee6dd289eb.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-path-cwd/2.2.0/__path/npm/is-path-cwd/-/is-path-cwd-2.2.0/67d43b82664a7b5191fd9119127eb300048a9fdb.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-path-inside/3.0.3/__path/npm/is-path-inside/-/is-path-inside-3.0.3/d231362e53a07ff2b0e0ea7fed049161ffd16283.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-plain-obj/2.1.0/__path/npm/is-plain-obj/-/is-plain-obj-2.1.0/45e42e37fccf1f40da8e5f76ee21515840c09287.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-plain-object/-/is-plain-object-2.0.4/2c163b3fafb1b606d9d17928f05c2a1c38e07677.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-port-reachable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-3.1.0.tgz", - "integrity": "sha512-vjc0SSRNZ32s9SbZBzGaiP6YVB+xglLShhgZD/FHMZUXBvQWaV9CtzgeVhjccFJrI6RAMV+LX7NYxueW/A8W5A==", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-potential-custom-element-name/1.0.1/__path/npm/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1/171ed6f19e3ac554394edf78caa05784a45bebb5.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-regex/-/is-regex-1.1.3/d029f9aff6448b93ebbe3f33dac71511fdcbef9f.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-stream/2.0.0/__path/npm/is-stream/-/is-stream-2.0.0/bde9c32680d6fae04129d6ac9d921ce7815f78e3.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-string/-/is-string-1.0.6/3fe5d5992fb0d93404f32584d4b0179a71b54a5f.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-subset/0.1.1/__path/npm/is-subset/-/is-subset-0.1.1/8a59117d932de1de00f245fcdd39ce43f1e939a6.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-symbol/-/is-symbol-1.0.4/a6dac93b635b063ca6872236de88910a57af139c.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-typedarray/-/is-typedarray-1.0.0/e479c80858df0c1b11ddda6940f96011fcda4a9a.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-windows/1.0.2/__path/npm/is-windows/-/is-windows-1.0.2/d1850eb9791ecd18e6182ce12a30f396634bb19d.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-wsl/-/is-wsl-2.2.0/74a4c76e77ca9fd3f932f290c17ea326cd157271.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/isarray/-/isarray-1.0.0/bb935d48582cba168c06834957a54a3e07124f11.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/isexe/-/isexe-2.0.0/e8fbf374dc556ff8947a10dcb0572d633f2cfa10.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/isobject/-/isobject-3.0.1/4e431e92b11a9731636aa1f9c8d1ccbcfdab78df.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/istanbul-lib-coverage/3.0.0/__path/npm/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0/f5944a37c70b550b02a78a5c3b2055b280cec8ec.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/istanbul-lib-instrument/4.0.3/__path/npm/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3/873c6fff897450118222774696a3f28902d77c1d.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/6.3.0/__path/npm/semver/-/semver-6.3.0/ee0a64c8af5e8ceea67687b133761e1becbd1d3d.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/istanbul-lib-report/3.0.0/__path/npm/istanbul-lib-report/-/istanbul-lib-report-3.0.0/7518fe52ea44de372f460a76b5ecda9ffb73d8a6.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/istanbul-lib-source-maps/4.0.0/__path/npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0/75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/istanbul-reports/3.0.2/__path/npm/istanbul-reports/-/istanbul-reports-3.0.2/d593210e5000683750cb09fc0644e4b6e27fd53b.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest/26.6.3/__path/npm/jest/-/jest-26.6.3/40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-cli/26.6.3/__path/npm/jest-cli/-/jest-cli-26.6.3/43117cfef24bc4cd691a174a8796a532e135e92a.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-changed-files/26.6.2/__path/npm/jest-changed-files/-/jest-changed-files-26.6.2/f6198479e1cc66f22f9ae1e22acaa0b429c042d0.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/execa/4.1.0/__path/npm/execa/-/execa-4.1.0/4e5491ad1572f2f17a77d388c6c857135b22847a.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/get-stream/5.2.0/__path/npm/get-stream/-/get-stream-5.2.0/4966a1795ee5ace65e706c4b7beb71257d6e22d3.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/npm-run-path/4.0.1/__path/npm/npm-run-path/-/npm-run-path-4.0.1/b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-config/26.6.3/__path/npm/jest-config/-/jest-config-26.6.3/64f41444eef9eb03dc51d5c53b75c8c71f645349.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-diff/26.6.2/__path/npm/jest-diff/-/jest-diff-26.6.2/1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-docblock/26.0.0/__path/npm/jest-docblock/-/jest-docblock-26.0.0/3e2fa20899fc928cb13bd0ff68bd3711a36889b5.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-each/26.6.2/__path/npm/jest-each/-/jest-each-26.6.2/02526438a77a67401c8a6382dfe5999952c167cb.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-environment-jsdom/26.6.2/__path/npm/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2/78d09fe9cf019a357009b9b7e1f101d23bd1da3e.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-environment-node/26.6.2/__path/npm/jest-environment-node/-/jest-environment-node-26.6.2/824e4c7fb4944646356f11ac75b229b0035f2b0c.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-get-type/26.3.0/__path/npm/jest-get-type/-/jest-get-type-26.3.0/e97dc3c3f53c2b406ca7afaed4493b1d099199e0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-haste-map/26.6.2/__path/npm/jest-haste-map/-/jest-haste-map-26.6.2/dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-jasmine2/26.6.3/__path/npm/jest-jasmine2/-/jest-jasmine2-26.6.3/adc3cf915deacb5212c93b9f3547cd12958f2edd.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-leak-detector/26.6.2/__path/npm/jest-leak-detector/-/jest-leak-detector-26.6.2/7717cf118b92238f2eba65054c8a0c9c653a91af.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-matcher-utils/26.6.2/__path/npm/jest-matcher-utils/-/jest-matcher-utils-26.6.2/8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-message-util/26.6.2/__path/npm/jest-message-util/-/jest-message-util-26.6.2/58173744ad6fc0506b5d21150b9be56ef001ca07.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-mock/26.6.2/__path/npm/jest-mock/-/jest-mock-26.6.2/d6cb712b041ed47fe0d9b6fc3474bc6543feb302.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-pnp-resolver/1.2.2/__path/npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2/b704ac0ae028a89108a4d040b3f919dfddc8e33c.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-regex-util/26.0.0/__path/npm/jest-regex-util/-/jest-regex-util-26.0.0/d25e7184b36e39fd466c3bc41be0971e821fee28.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-resolve/26.6.2/__path/npm/jest-resolve/-/jest-resolve-26.6.2/a3ab1517217f469b504f1b56603c5bb541fbb507.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse-json/5.2.0/__path/npm/parse-json/-/parse-json-5.2.0/c76fc66dee54231c962b22bcc8a72cf2f99753cd.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/read-pkg/5.2.0/__path/npm/read-pkg/-/read-pkg-5.2.0/7bf295438ca5a33e56cd30e053b34ee7250c93cc.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-fest/0.6.0/__path/npm/type-fest/-/type-fest-0.6.0/8d2a2370d3df886eb5c90ada1c5bf6188acf838b.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/read-pkg-up/7.0.1/__path/npm/read-pkg-up/-/read-pkg-up-7.0.1/f3a6135758459733ae2b95638056e1854e7ef507.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-resolve-dependencies/26.6.3/__path/npm/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3/6680859ee5d22ee5dcd961fe4871f59f4c784fb6.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-runner/26.6.3/__path/npm/jest-runner/-/jest-runner-26.6.3/2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-runtime/26.6.3/__path/npm/jest-runtime/-/jest-runtime-26.6.3/4f64efbcfac398331b74b4b3c82d27d401b8fa2b.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-bom/4.0.0/__path/npm/strip-bom/-/strip-bom-4.0.0/9c3505c1db45bcedca3d9cf7a16f5c5aa3901878.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-serializer/26.6.2/__path/npm/jest-serializer/-/jest-serializer-26.6.2/d139aafd46957d3a448f3a6cdabe2919ba0742d1.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-snapshot/26.6.2/__path/npm/jest-snapshot/-/jest-snapshot-26.6.2/f3b0af1acb223316850bd14e1beea9837fb39c84.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-util/26.6.2/__path/npm/jest-util/-/jest-util-26.6.2/907535dbe4d5a6cb4c47ac9b926f6af29576cbc1.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-validate/26.6.2/__path/npm/jest-validate/-/jest-validate-26.6.2/23d380971587150467342911c3d7b4ac57ab20ec.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-watcher/26.6.2/__path/npm/jest-watcher/-/jest-watcher-26.6.2/a5b683b8f9d68dbcb1d7dae32172d2cca0592975.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jest-worker/26.6.2/__path/npm/jest-worker/-/jest-worker-26.6.2/7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/js-tokens/-/js-tokens-4.0.0/19203fb59991df98e3a287050d4647cdeaf32499.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/js-yaml/3.14.1/__path/npm/js-yaml/-/js-yaml-3.14.1/dae812fdb3825fa306609a8717383c50c36a0537.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jsdom/16.6.0/__path/npm/jsdom/-/jsdom-16.6.0/f79b3786682065492a3da6a60a4695da983805ac.tgz", - "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.5", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/acorn/-/acorn-8.4.0/af53266e698d7cffa416714b503066a82221be60.tgz", - "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", - "dev": true - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/form-data/3.0.1/__path/npm/form-data/-/form-data-3.0.1/ebd53791b78356a99af9a300d4282c4d5eb9755f.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jsesc/2.5.2/__path/npm/jsesc/-/jsesc-2.5.2/80564d2e483dacf6e8ef209650a67df3f0c283a4.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/json-parse-better-errors/-/json-parse-better-errors-1.0.2/bb867cfb3450e69107c131d1c514bab3dc8bcaa9.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json-parse-even-better-errors/2.3.1/__path/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1/7c47805a94319928e05777405dc12e1f7a4ee02d.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json-schema-traverse/0.4.1/__path/npm/json-schema-traverse/-/json-schema-traverse-0.4.1/69f6a87d9513ab8bb8fe63bdb0979c448e684660.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json-stable-stringify-without-jsonify/1.0.1/__path/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1/9db7b59496ad3f3cfef30a75142d2d930ad72651.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json5/2.2.0/__path/npm/json5/-/json5-2.2.0/2dfefe720c6ba525d9ebd909950f0515316c89a3.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } - } - }, - "jss": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss/10.6.0/__path/npm/jss/-/jss-10.6.0/d92ff9d0f214f65ca1718591b68e107be4774149.tgz", - "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "indefinite-observable": "^2.0.1", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/csstype/-/csstype-3.0.8/d2266a792729fb227cd216fb572f43728e1ad340.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "dev": true - } - } - }, - "jss-plugin-camel-case": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-camel-case/10.6.0/__path/npm/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0/93d2cd704bf0c4af70cc40fb52d74b8a2554b170.tgz", - "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.6.0" - } - }, - "jss-plugin-default-unit": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-default-unit/10.6.0/__path/npm/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0/af47972486819b375f0f3a9e0213403a84b5ef3b.tgz", - "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.6.0" - } - }, - "jss-plugin-global": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-global/10.6.0/__path/npm/jss-plugin-global/-/jss-plugin-global-10.6.0/3e8011f760f399cbadcca7f10a485b729c50e3ed.tgz", - "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.6.0" - } - }, - "jss-plugin-nested": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-nested/10.6.0/__path/npm/jss-plugin-nested/-/jss-plugin-nested-10.6.0/5f83c5c337d3b38004834e8426957715a0251641.tgz", - "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.6.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-props-sort": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-props-sort/10.6.0/__path/npm/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0/297879f35f9fe21196448579fee37bcde28ce6bc.tgz", - "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.6.0" - } - }, - "jss-plugin-rule-value-function": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-rule-value-function/10.6.0/__path/npm/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0/3c1a557236a139d0151e70a82c810ccce1c1c5ea.tgz", - "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.6.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-vendor-prefixer": { - "version": "10.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jss-plugin-vendor-prefixer/10.6.0/__path/npm/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0/e1fcd499352846890c38085b11dbd7aa1c4f2c78.tgz", - "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.6.0" - } - }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/jsx-ast-utils/3.2.0/__path/npm/jsx-ast-utils/-/jsx-ast-utils-3.2.0/41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/just-extend/4.2.1/__path/npm/just-extend/-/just-extend-4.2.1/ef5e589afb61e5d66b24eca749409a8939a8c744.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/6.0.3/__path/npm/kind-of/-/kind-of-6.0.3/07c05034a6c349fa06e24fa35aa76db4580ce4dd.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kleur/3.0.3/__path/npm/kleur/-/kleur-3.0.3/a79c9ecc86ee1ce3fa6206d1216c501f147fc07e.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/language-subtag-registry/0.3.21/__path/npm/language-subtag-registry/-/language-subtag-registry-0.3.21/04ac218bea46f04cb039084602c6da9e788dd45a.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/language-tags/1.0.5/__path/npm/language-tags/-/language-tags-1.0.5/d321dbc4da30ba8bf3024e040fa5c14661f9193a.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/leven/3.1.0/__path/npm/leven/-/leven-3.1.0/77891de834064cccba82ae7842bb6b14a13ed7f2.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/levn/0.4.1/__path/npm/levn/-/levn-0.4.1/ae4562c007473b932a6200d403268dd2fffc6ade.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/lines-and-columns/-/lines-and-columns-1.1.6/1c00c743b433cd0a4e80758f7b64a57440d9ff00.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/linkify-it/2.2.0/__path/npm/linkify-it/-/linkify-it-2.2.0/e3b54697e78bf915c70a38acd78fd09e0058b1cf.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "requires": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "dependencies": { - "braces": { - "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" - } - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "fill-range": { - "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" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "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 - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "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" - } - } - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.4.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/load-json-file/2.0.0/__path/npm/load-json-file/-/load-json-file-2.0.0/7947e42149af80d696cbf797bcaabcfe1fe29ca8.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loader-runner/2.4.0/__path/npm/loader-runner/-/loader-runner-2.4.0/ed47066bfe534d7e84c4c7b9998c2a75607d9357.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loader-utils/2.0.0/__path/npm/loader-utils/-/loader-utils-2.0.0/e4cace5b816d425a166b5f097e10cd12b36064b0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "local-access": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/local-access/1.1.0/__path/npm/local-access/-/local-access-1.1.0/e007c76ba2ca83d5877ba1a125fc8dfe23ba4798.tgz", - "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/locate-path/5.0.0/__path/npm/locate-path/-/locate-path-5.0.0/1afba396afd676a6d42504d0a67a3a7eb9f62aa0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash/4.17.21/__path/npm/lodash/-/lodash-4.17.21/679591c564c3bffaae8454cf0b3df370c3d6911c.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash.escape/4.0.1/__path/npm/lodash.escape/-/lodash.escape-4.0.1/c9044690c21e04294beaa517712fded1fa88de98.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash.flattendeep/4.4.0/__path/npm/lodash.flattendeep/-/lodash.flattendeep-4.4.0/fb030917f86a3134e5bc9bec0d69e0013ddfedb2.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash.get/4.4.2/__path/npm/lodash.get/-/lodash.get-4.4.2/2d177f652fa31e939b4438d5341499dfa3825e99.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash.isequal/4.5.0/__path/npm/lodash.isequal/-/lodash.isequal-4.5.0/415c4478f2bcc30120c22ce10ed3226f7d3e18e0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lodash.memoize/4.1.2/__path/npm/lodash.memoize/-/lodash.memoize-4.1.2/bcc6c49a42a2840ed997f323eada5ecd182e0bfe.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/log-symbols/4.0.0/__path/npm/log-symbols/-/log-symbols-4.0.0/69b3cc46d20f448eccdb75ea1fa733d9e821c920.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/4.1.1/__path/npm/chalk/-/chalk-4.1.1/c80b3fab28bf6371e6863325eee67e618b77e6ad.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, - "log4js": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/log4js/6.3.0/__path/npm/log4js/-/log4js-6.3.0/10dfafbb434351a3e30277a00b9879446f715bcb.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loose-envify/1.4.0/__path/npm/loose-envify/-/loose-envify-1.4.0/71ee51fa7be4caec1a63839f7e682d8132d30caf.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lru-cache/6.0.0/__path/npm/lru-cache/-/lru-cache-6.0.0/6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lz-string/1.4.4/__path/npm/lz-string/-/lz-string-1.4.4/c0d8eaf36059f705796e1e344811cf4c498d3a26.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/make-dir/3.1.0/__path/npm/make-dir/-/make-dir-3.1.0/415e967046b3a7f1d185277d84aa58203726a13f.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/6.3.0/__path/npm/semver/-/semver-6.3.0/ee0a64c8af5e8ceea67687b133761e1becbd1d3d.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/make-error/1.3.6/__path/npm/make-error/-/make-error-1.3.6/2eb2e37ea9b67c4891f684a1394799af484cf7a2.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/makeerror/1.0.11/__path/npm/makeerror/-/makeerror-1.0.11/e01a5c9109f2af79660e4e8b9587790184f5a96c.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/map-cache/0.2.2/__path/npm/map-cache/-/map-cache-0.2.2/c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/map-visit/1.0.0/__path/npm/map-visit/-/map-visit-1.0.0/ecdca8f13144e660f1b5bd41f12f3479d98dfb8f.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/markdown-it/10.0.0/__path/npm/markdown-it/-/markdown-it-10.0.0/abfc64f141b1722d663402044e43927f1f50a8dc.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "entities": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/entities/2.0.3/__path/npm/entities/-/entities-2.0.3/5c487e5742ab93c15abb5da22759b8590ec03b7f.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true - } - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/md5.js/1.3.5/__path/npm/md5.js/-/md5.js-1.3.5/b5d07b8e3216e3e27cd728d72f70d1e6a342005f.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mdurl/1.0.1/__path/npm/mdurl/-/mdurl-1.0.1/fe85b2ec75a59037f2adfec100fd6c601761152e.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/memory-fs/0.5.0/__path/npm/memory-fs/-/memory-fs-0.5.0/324c01288b88652966d161db77838720845a8e3c.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/merge-stream/2.0.0/__path/npm/merge-stream/-/merge-stream-2.0.0/52823629a14dd00c9770fb6ad47dc6310f2c1f60.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/merge2/1.4.1/__path/npm/merge2/-/merge2-1.4.1/4368892f885e907455a6fd7dc55c0c9d404990ae.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/micromatch/4.0.2/__path/npm/micromatch/-/micromatch-4.0.2/4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/braces/3.0.2/__path/npm/braces/-/braces-3.0.2/3454e1a462ee8d599e236df336cd9ea4f8afe107.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fill-range/7.0.1/__path/npm/fill-range/-/fill-range-7.0.1/1919a6a7c75fe38b2c7c77e5198535da9acdda40.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/is-number/-/is-number-7.0.0/7535345b896734d5f80c4d06c50955527a14f12b.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-regex-range/5.0.1/__path/npm/to-regex-range/-/to-regex-range-5.0.1/1648c44aae7c8d988a326018ed72f5b4dd0392e4.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/miller-rabin/4.0.1/__path/npm/miller-rabin/-/miller-rabin-4.0.1/f080351c865b0dc562a8462966daa53543c78a4d.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mime/2.5.2/__path/npm/mime/-/mime-2.5.2/6e3dc6cc2b9510643830e5f19d5cb753da5eeabe.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/mime-db/-/mime-db-1.48.0/e35b31045dd7eada3aaad537ed88a33afbef2d1d.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/mime-types/-/mime-types-2.1.31/a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mimic-fn/2.1.0/__path/npm/mimic-fn/-/mimic-fn-2.1.0/7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/min-indent/1.0.1/__path/npm/min-indent/-/min-indent-1.0.1/a63f681673b30571fbe8bc25686ae746eefa9869.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mini-create-react-context/0.4.1/__path/npm/mini-create-react-context/-/mini-create-react-context-0.4.1/072171561bfdc922da08a60c2197a497cc2d1d5e.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minimalistic-assert/1.0.1/__path/npm/minimalistic-assert/-/minimalistic-assert-1.0.1/2e194de044626d4a10e7f7fbc00ce73e83e4d5c7.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minimalistic-crypto-utils/1.0.1/__path/npm/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1/f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/minimatch/-/minimatch-3.0.4/5166e286457f03306064be5497e8dbb0c3d32083.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minimist/1.2.5/__path/npm/minimist/-/minimist-1.2.5/67d66014b66a6a8aaa0c083c5fd58df4e4e97602.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minipass/3.1.3/__path/npm/minipass/-/minipass-3.1.3/7d42ff1f39635482e15f9cdb53184deebd5815fd.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minipass-collect/1.0.2/__path/npm/minipass-collect/-/minipass-collect-1.0.2/22b813bf745dc6edba2576b940022ad6edc8c617.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minipass-flush/1.0.5/__path/npm/minipass-flush/-/minipass-flush-1.0.5/82e7135d7e89a50ffe64610a787953c4c4cbb373.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minipass-pipeline/1.2.4/__path/npm/minipass-pipeline/-/minipass-pipeline-1.2.4/68472f79711c084657c067c5c6ad93cddea8214c.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/minizlib/2.1.2/__path/npm/minizlib/-/minizlib-2.1.2/e90d3466ba209b932451508a11ce3d3632145931.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mississippi/3.0.0/__path/npm/mississippi/-/mississippi-3.0.0/ea0a3291f97e0b5e8776b363d5f0a12d94c67022.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mixin-deep/1.3.2/__path/npm/mixin-deep/-/mixin-deep-1.3.2/1120b43dc359a785dce65b55b82e257ccf479566.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-extendable/1.0.1/__path/npm/is-extendable/-/is-extendable-1.0.1/a7470f9e426733d81bd81e1155264e3a3507cab4.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/1.0.4/__path/npm/mkdirp/-/mkdirp-1.0.4/3eb5ed62622756d79a5f0e2a221dfebad75c2f7e.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mocha": { - "version": "8.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mocha/8.2.1/__path/npm/mocha/-/mocha-8.2.1/f2fa68817ed0e53343d989df65ccd358bc3a4b39.tgz", - "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.4.3", - "debug": "4.2.0", - "diff": "4.0.2", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.14.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.2", - "nanoid": "3.1.12", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "7.2.0", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.0.2", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-regex/4.1.0/__path/npm/ansi-regex/-/ansi-regex-4.1.0/8b9f8f08cf1acb843756a839ca8c7e3168c51997.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/camelcase/5.3.1/__path/npm/camelcase/-/camelcase-5.3.1/e3c9b31569e106811df242f715725a1f4c494320.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cliui/5.0.0/__path/npm/cliui/-/cliui-5.0.0/deefcfdb2e800784aa34f46fa08e06851c7bbbc5.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/4.2.0/__path/npm/debug/-/debug-4.2.0/7f150f93920e94c58f5574c2fd01a3110effe7f1.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/escape-string-regexp/4.0.0/__path/npm/escape-string-regexp/-/escape-string-regexp-4.0.0/14ba83a5d373e3d311e5afca29cf5bfad965bf34.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-up/5.0.0/__path/npm/find-up/-/find-up-5.0.0/4c92819ecb7083561e4f4a240a86be5198f536fc.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/js-yaml/3.14.0/__path/npm/js-yaml/-/js-yaml-3.14.0/a7a34170f26a21bb162424d8adacb4113a69e482.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/locate-path/6.0.0/__path/npm/locate-path/-/locate-path-6.0.0/55321eb309febbc59c4801d931a72452a681d286.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-locate/5.0.0/__path/npm/p-locate/-/p-locate-5.0.0/83c8315c6785005e3bd021839411c9e110e6d834.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-ansi/5.2.0/__path/npm/strip-ansi/-/strip-ansi-5.2.0/8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/wrap-ansi/5.1.0/__path/npm/wrap-ansi/-/wrap-ansi-5.1.0/1fd1f67235d5b6d0fee781056001bfb694c03b09.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs/13.3.2/__path/npm/yargs/-/yargs-13.3.2/ad7ffefec1aa59565ac915f82dccb38a9c31a2dd.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-up/3.0.0/__path/npm/find-up/-/find-up-3.0.0/49169f1d7993430646da61ecc5ae355c21c97b73.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/locate-path/3.0.0/__path/npm/locate-path/-/locate-path-3.0.0/dbec3b3ab759758071b58fe59fc41871af21400e.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/2.3.0/__path/npm/p-limit/-/p-limit-2.3.0/3dd33c647a214fdfffd835933eb086da0dc21db1.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-locate/3.0.0/__path/npm/p-locate/-/p-locate-3.0.0/322d69a05c0264b25997d9f40cd8a891ab0064a4.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-exists/-/path-exists-3.0.0/ce0ebeaa5f78cb18925ea7d810d7b59b010fd515.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs-parser/13.1.2/__path/npm/yargs-parser/-/yargs-parser-13.1.2/130f09702ebaeef2650d54ce6e3e5706f7a4fb38.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "moo": { - "version": "0.5.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/moo/0.5.1/__path/npm/moo/-/moo-0.5.1/7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/move-concurrently/1.0.1/__path/npm/move-concurrently/-/move-concurrently-1.0.1/be2c005fda32e0b29af1f05d7c4b33214c701f92.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/0.5.5/__path/npm/mkdirp/-/mkdirp-0.5.5/d91cefd62d1436ca0f41620e251288d420099def.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rimraf/2.7.1/__path/npm/rimraf/-/rimraf-2.7.1/35797f13a7fdadc566142c29d4f07ccad483e3ec.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "mri": { - "version": "1.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mri/1.1.6/__path/npm/mri/-/mri-1.1.6/49952e1044db21dbf90f6cd92bc9c9a777d415a6.tgz", - "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ms/2.1.2/__path/npm/ms/-/ms-2.1.2/d09d1f357b443f493382a8eb3ccd183872ae6009.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mute-stream/0.0.8/__path/npm/mute-stream/-/mute-stream-0.0.8/1630c42b2251ff81e2a283de96a5497ea92e5e0d.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nan/2.14.2/__path/npm/nan/-/nan-2.14.2/f5376400695168f4cc694ac9393d0c9585eeea19.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, - "nanoid": { - "version": "3.1.12", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nanoid/3.1.12/__path/npm/nanoid/-/nanoid-3.1.12/6f7736c62e8d39421601e4a0c77623a97ea69654.tgz", - "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nanomatch/1.2.13/__path/npm/nanomatch/-/nanomatch-1.2.13/b87a8aa4fc0de8fe6be88895b38983ff265bd119.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/natural-compare/1.4.0/__path/npm/natural-compare/-/natural-compare-1.4.0/4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "nearley": { - "version": "2.20.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nearley/2.20.1/__path/npm/nearley/-/nearley-2.20.1/246cd33eff0d012faf197ff6774d7ac78acdd474.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - } - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/neo-async/2.6.2/__path/npm/neo-async/-/neo-async-2.6.2/b4aafb93e3aeb2d8174ca53cf163ab7d7308305f.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nice-try/1.0.5/__path/npm/nice-try/-/nice-try-1.0.5/a3378a7696ce7d223e88fc9b764bd7ef1089e366.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nise": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nise/4.1.0/__path/npm/nise/-/nise-4.1.0/8fb75a26e90b99202fa1e63f448f58efbcdedaf6.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/node-int64/0.4.0/__path/npm/node-int64/-/node-int64-0.4.0/87a9065cdb355d3182d8f94ce11188b825c68a3b.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/node-libs-browser/2.2.1/__path/npm/node-libs-browser/-/node-libs-browser-2.2.1/b64f513d18338625f90346d27b0d235e631f6425.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/punycode/1.4.1/__path/npm/punycode/-/punycode-1.4.1/c0d5a63b2718800ad8e1eb0fa5269c84dd41845e.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/node-modules-regexp/1.0.0/__path/npm/node-modules-regexp/-/node-modules-regexp-1.0.0/8d9dbe28964a4ac5712e9131642107c71e90ec40.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/node-notifier/8.0.2/__path/npm/node-notifier/-/node-notifier-8.0.2/f3167a38ef0d2c8a866a83e318c1ba0efeb702c5.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/node-releases/-/node-releases-1.1.73/dd4e81ddd5277ff846b80b52bb40c49edf7a7b20.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/normalize-package-data/2.5.0/__path/npm/normalize-package-data/-/normalize-package-data-2.5.0/e66db1838b200c1dfc233225d12cb36520e234a8.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/normalize-path/3.0.0/__path/npm/normalize-path/-/normalize-path-3.0.0/0dcd69ff23a1c9b11fd0978316644a0388216a65.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/npm-run-path/2.0.2/__path/npm/npm-run-path/-/npm-run-path-2.0.2/35a9232dfa35d7067b4cb2ddf2357b1871536c5f.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-key/2.0.1/__path/npm/path-key/-/path-key-2.0.1/411cadb574c5a140d3a4b1910d40d80cc9f40b40.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } - } - }, - "nth-check": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nth-check/2.0.0/__path/npm/nth-check/-/nth-check-2.0.0/1bb4f6dac70072fc313e8c9cd1417b5074c0a125.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nwsapi/2.2.0/__path/npm/nwsapi/-/nwsapi-2.2.0/204879a9e3d068ff2a55139c2c772780681a38b7.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/object-assign/-/object-assign-4.1.1/2109adc7965887cfc05cbbd442cac8bfbb360863.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object-copy/0.1.0/__path/npm/object-copy/-/object-copy-0.1.0/7e7d858b781bd7c991a41ba975ed3812754e998c.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/0.2.5/__path/npm/define-property/-/define-property-0.2.5/c35b1ef918ec3c990f9a5bc57be04aacec5c8116.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object-hash/2.2.0/__path/npm/object-hash/-/object-hash-2.2.0/5ad518581eefc443bd763472b8ff2e9c2c0d54a5.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/object-inspect/-/object-inspect-1.10.3/c2aa7d2d09f50c99375704f7a0adf24c5782d369.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object-is/1.1.5/__path/npm/object-is/-/object-is-1.1.5/b9deeaa5fc7f1846a0faecdceec138e5778f53ac.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object-keys/1.1.1/__path/npm/object-keys/-/object-keys-1.1.1/1c47f272df277f3b1daf061677d9c82e2322c60e.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object-visit/1.0.1/__path/npm/object-visit/-/object-visit-1.0.1/f79c4493af0c5377b59fe39d395e41042dd045bb.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object.assign/4.1.2/__path/npm/object.assign/-/object.assign-4.1.2/0ed54a342eceb37b38ff76eb831a0e788cb63940.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object.entries/1.1.4/__path/npm/object.entries/-/object.entries-1.1.4/43ccf9a50bc5fd5b649d45ab1a579f24e088cafd.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object.fromentries/2.0.4/__path/npm/object.fromentries/-/object.fromentries-2.0.4/26e1ba5c4571c5c6f0890cef4473066456a120b8.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object.pick/1.3.0/__path/npm/object.pick/-/object.pick-1.3.0/87a10ac4c1694bd2e1cbf53591a66141fb5dd747.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/object.values/1.1.4/__path/npm/object.values/-/object.values-1.1.4/0d273762833e816b693a637d30073e7051535b30.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/once/-/once-1.4.0/583b1aa775961d4b113ac17d9c50baef9dd76bd1.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onchange": { - "version": "7.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/onchange/7.1.0/__path/npm/onchange/-/onchange-7.1.0/a6f0f7733e4d47014b4cd70aa1ad36c2b4cf3804.tgz", - "integrity": "sha512-ZJcqsPiWUAUpvmnJri5TPBooqJOPmC0ttN65juhN15Q8xA+Nbg3BaxBHXQ45EistKKlKElb0edmbPWnKSBkvMg==", - "dev": true, - "requires": { - "@blakeembrey/deque": "^1.0.5", - "@blakeembrey/template": "^1.0.0", - "arg": "^4.1.3", - "chokidar": "^3.3.1", - "cross-spawn": "^7.0.1", - "ignore": "^5.1.4", - "tree-kill": "^1.2.2" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ignore/5.1.8/__path/npm/ignore/-/ignore-5.1.8/f150a8b50a34289b33e22f5889abd4d8016f0e57.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/onetime/5.1.2/__path/npm/onetime/-/onetime-5.1.2/d0e96ebb56b07476df1dd9c4806e5237985ca45e.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/opencollective-postinstall/2.0.3/__path/npm/opencollective-postinstall/-/opencollective-postinstall-2.0.3/7a0fff978f6dbfa4d006238fbac98ed4198c3259.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/optionator/0.9.1/__path/npm/optionator/-/optionator-0.9.1/4f236a6373dae0566a6d43e1326674f50c291499.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "os": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/os/0.1.1/__path/npm/os/-/os-0.1.1/208845e89e193ad4d971474b93947736a56d13f3.tgz", - "integrity": "sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/os-browserify/0.3.0/__path/npm/os-browserify/-/os-browserify-0.3.0/854373c7f5c2315914fc9bfc6bd8238fdda1ec27.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/os-homedir/-/os-homedir-1.0.2/ffbc4988336e0e833de0c168c7ef152121aa7fb3.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/os-tmpdir/-/os-tmpdir-1.0.2/bbe67406c79aa85c5cfec766fe5734555dfa1274.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/osenv/0.1.5/__path/npm/osenv/-/osenv-0.1.5/85cdfafaeb28e8677f416e287592b5f3f49ea410.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "ovsx": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.2.1.tgz", - "integrity": "sha512-STCpZrGq5YW4TiR+IFRqnTeKm6SBAYewHbgD75NYh9Zzy0/G72Y3zScvLiCRMGkhu+4HfP41X8sB83RUBmO0XA==", - "dev": true, - "requires": { - "commander": "^6.1.0", - "follow-redirects": "^1.13.2", - "is-ci": "^2.0.0", - "leven": "^3.1.0", - "tmp": "^0.2.1", - "vsce": "~1.97.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "azure-devops-node-api": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.1.0.tgz", - "integrity": "sha512-6/2YZuf+lJzJLrjXNYEA5RXAkMCb8j/4VcHD0qJQRsgG/KsRMYo0HgDh0by1FGHyZkQWY5LmQyJqCwRVUB3Y7Q==", - "dev": true, - "requires": { - "tunnel": "0.0.6", - "typed-rest-client": "^1.8.4" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true - }, - "typed-rest-client": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz", - "integrity": "sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==", - "dev": true, - "requires": { - "qs": "^6.9.1", - "tunnel": "0.0.6", - "underscore": "^1.12.1" - } - }, - "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", - "dev": true - }, - "vsce": { - "version": "1.97.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.97.0.tgz", - "integrity": "sha512-5Rxj6qO0dN4FnzVS9G94osstx8R3r1OQP39G7WYERpoO9X+OSodVVkRhFDapPNjekfUNo+d5Qn7W1EtNQVoLCg==", - "dev": true, - "requires": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "denodeify": "^1.2.1", - "glob": "^7.0.6", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "osenv": "^0.1.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^1.1.0", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - } - } - } - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-each-series/2.2.0/__path/npm/p-each-series/-/p-each-series-2.2.0/105ab0357ce72b202a8a8b94933672657b5e2a9a.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/p-finally/-/p-finally-1.0.0/3fbcfb15b899a44123b34b6dcc18b724336a2cae.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/3.1.0/__path/npm/p-limit/-/p-limit-3.1.0/e1daccbe78d0d1388ca18c64fea38e3e57e3706b.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-locate/4.1.0/__path/npm/p-locate/-/p-locate-4.1.0/a3428bb7088b3a60292f66919278b7c297ad4f07.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/2.3.0/__path/npm/p-limit/-/p-limit-2.3.0/3dd33c647a214fdfffd835933eb086da0dc21db1.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-map/4.0.0/__path/npm/p-map/-/p-map-4.0.0/bb2f95a5eda2ec168ec9274e06a747c3e2904d2b.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-try/2.2.0/__path/npm/p-try/-/p-try-2.2.0/cb2868540e313d61de58fafbe35ce9004d5540e6.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pako/1.0.11/__path/npm/pako/-/pako-1.0.11/6c9599d340d54dfd3946380252a35705a6b992bf.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parallel-transform/1.2.0/__path/npm/parallel-transform/-/parallel-transform-1.2.0/9049ca37d6cb2182c3b1d2c720be94d14a5814fc.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parent-module/1.0.1/__path/npm/parent-module/-/parent-module-1.0.1/691d2709e78c79fae3a156622452d00762caaaa2.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse-asn1/5.1.6/__path/npm/parse-asn1/-/parse-asn1-5.1.6/385080a3ec13cb62a62d39409cb3e88844cdaed4.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/parse-json/-/parse-json-2.2.0/f480f40434ef80741f8469099f8dea18f55a4dc9.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse-passwd/1.0.0/__path/npm/parse-passwd/-/parse-passwd-1.0.0/6d5b934a456993b23d37f40a382d6f1666a8e5c6.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse-semver": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse-semver/1.1.1/__path/npm/parse-semver/-/parse-semver-1.1.1/9a4afd6df063dc4826f93fba4a99cf223f666cb8.tgz", - "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", - "dev": true, - "requires": { - "semver": "^5.1.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse5/6.0.1/__path/npm/parse5/-/parse5-6.0.1/e1a1c085c569b3dc08321184f19a39cc27f7c30b.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/parse5-htmlparser2-tree-adapter/6.0.1/__path/npm/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1/2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pascalcase/0.1.1/__path/npm/pascalcase/-/pascalcase-0.1.1/b363e55e8006ca6fe21784d2db22bd15d7917f14.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-browserify/0.0.1/__path/npm/path-browserify/-/path-browserify-0.0.1/e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-dirname/1.0.2/__path/npm/path-dirname/-/path-dirname-1.0.2/cc33d24d525e099a5388c0336c6e32b9160609e0.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-exists/4.0.0/__path/npm/path-exists/-/path-exists-4.0.0/513bdbe2d3b95d7762e8c1137efa195c6c61b5b3.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-is-absolute/-/path-is-absolute-1.0.1/174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-key/3.1.1/__path/npm/path-key/-/path-key-3.1.1/581f6ade658cbba65a0d3380de7753295054f375.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-parse/-/path-parse-1.0.7/fbc114b60ca42b30d9daf5858e4bd68bbedb6735.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-to-regexp/1.8.0/__path/npm/path-to-regexp/-/path-to-regexp-1.8.0/887b3ba9d84393e87a0a0b9f4cb756198b53548a.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/isarray/0.0.1/__path/npm/isarray/-/isarray-0.0.1/8a18acfca9a8f4177e09abfc6038939b05d1eedf.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-type/4.0.0/__path/npm/path-type/-/path-type-4.0.0/84ed01c0a7ba380afe09d90a8c180dcd9d03043b.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pbkdf2/3.1.2/__path/npm/pbkdf2/-/pbkdf2-3.1.2/dd822aa0887580e52f1a039dc3eda108efae3075.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pend/1.2.0/__path/npm/pend/-/pend-1.2.0/7a57eb550a6783f9115331fcf4663d5c8e007a50.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/performance-now/-/performance-now-2.1.0/6309f4e0e5fa913ec1c69307ae364b4b377c9e7b.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/picomatch/2.2.2/__path/npm/picomatch/-/picomatch-2.2.2/21f333e9b6b8eaff02468f5146ea406d345f4dad.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/pify/-/pify-2.3.0/ed141a6ac043a849ea588498e7dca8b15330e90c.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pirates/4.0.1/__path/npm/pirates/-/pirates-4.0.1/643a92caf894566f91b2b986d2c66950a8e2fb87.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pkg-dir/4.2.0/__path/npm/pkg-dir/-/pkg-dir-4.2.0/f099133df7ede422e81d1d8448270eeb3e4261f3.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/please-upgrade-node/3.2.0/__path/npm/please-upgrade-node/-/please-upgrade-node-3.2.0/aeddd3f994c933e4ad98b99d9a556efa0e2fe942.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "popper.js": { - "version": "1.16.1-lts", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/popper.js/1.16.1-lts/__path/npm/popper.js/-/popper.js-1.16.1-lts/cf6847b807da3799d80ee3d6d2f90df8a3f50b05.tgz", - "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/posix-character-classes/0.1.1/__path/npm/posix-character-classes/-/posix-character-classes-0.1.1/01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prelude-ls/1.2.1/__path/npm/prelude-ls/-/prelude-ls-1.2.1/debc6489d7a6e6b0e7611888cec880337d316396.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prettier/2.2.1/__path/npm/prettier/-/prettier-2.2.1/795a1a78dd52f073da0cd42b21f9c91381923ff5.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pretty-format/26.6.2/__path/npm/pretty-format/-/pretty-format-26.6.2/e35c2705f14cb7fe2fe94fa078345b444120fc93.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-is/17.0.2/__path/npm/react-is/-/react-is-17.0.2/e691d4a8e9c789365655539ab372762b0efb54f0.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/process/0.11.10/__path/npm/process/-/process-0.11.10/7332300e840161bda3e69a1d1d91a7d4bc16f182.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/process-nextick-args/2.0.1/__path/npm/process-nextick-args/-/process-nextick-args-2.0.1/7820d9b16120cc55ca9ae7792680ae7dba6d7fe2.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/progress/2.0.3/__path/npm/progress/-/progress-2.0.3/7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/promise-inflight/-/promise-inflight-1.0.1/98472870bf228132fcbdd868129bad12c3c029e3.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prompts": { - "version": "2.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prompts/2.4.1/__path/npm/prompts/-/prompts-2.4.1/befd3b1195ba052f9fd2fde8a486c4e82ee77f61.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prop-types/15.7.2/__path/npm/prop-types/-/prop-types-15.7.2/52c41e75b8c87e72b9d9360e0206b99dcbffa6c5.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prop-types-exact/1.2.0/__path/npm/prop-types-exact/-/prop-types-exact-1.2.0/825d6be46094663848237e3925a98c6e944e9869.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" - } - }, - "proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/prr/1.0.1/__path/npm/prr/-/prr-1.0.1/d3fc114ba06995a45ec6893f484ceb1d78f5f476.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/psl/1.8.0/__path/npm/psl/-/psl-1.8.0/9326f8bcfb013adcc005fdff056acce020e51c24.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/public-encrypt/4.0.3/__path/npm/public-encrypt/-/public-encrypt-4.0.3/4fcc9d77a07e48ba7527e7cbe0de33d0701331e0.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/bn.js/4.12.0/__path/npm/bn.js/-/bn.js-4.12.0/775b3f278efbb9718eec7361f483fb36fbbfea88.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pump/3.0.0/__path/npm/pump/-/pump-3.0.0/b4a2116815bde2f4e1ea602354e8c75565107a64.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pumpify/1.5.1/__path/npm/pumpify/-/pumpify-1.5.1/36513be246ab27570b1a374a5ce278bfd74370ce.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pump/2.0.1/__path/npm/pump/-/pump-2.0.1/12399add6e4cf7526d973cbc8b5ce2e2908b3909.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/punycode/-/punycode-2.1.1/b58b010ac40c22c5657616c8d2c2c02c7bf479ec.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "puppeteer-core": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.4.0.tgz", - "integrity": "sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==", - "dev": true, - "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "dependencies": { - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true - } - } - }, - "qs": { - "version": "6.9.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/qs/6.9.4/__path/npm/qs/-/qs-6.9.4/9090b290d1f91728d3c22e54843ca44aea5ab687.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/querystring/0.2.0/__path/npm/querystring/-/querystring-0.2.0/b209849203bb25df820da756e747005878521620.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/querystring-es3/0.2.1/__path/npm/querystring-es3/-/querystring-es3-0.2.1/9ec61f79049875707d69414596fd907a4d711e73.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/queue-microtask/1.2.3/__path/npm/queue-microtask/-/queue-microtask-1.2.3/4929228bbc724dfac43e0efb058caf7b6cfb6243.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/raf/3.4.1/__path/npm/raf/-/raf-3.4.1/0742e99a4a6552f445d73e3ee0328af0ff1ede39.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, - "requires": { - "performance-now": "^2.1.0" - } - }, - "railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/railroad-diagrams/1.0.0/__path/npm/railroad-diagrams/-/railroad-diagrams-1.0.0/eb7e6267548ddedfb899c1b90e57374559cddb7e.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", - "dev": true - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/randexp/0.4.6/__path/npm/randexp/-/randexp-0.4.6/e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dev": true, - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/randombytes/2.1.0/__path/npm/randombytes/-/randombytes-2.1.0/df6f84372f0270dc65cdf6291349ab7a473d4f2a.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/randomfill/1.0.4/__path/npm/randomfill/-/randomfill-1.0.4/c92196fc86ab42be983f1bf31778224931d61458.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "react": { - "version": "17.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react/17.0.1/__path/npm/react/-/react-17.0.1/6e0600416bd57574e3f86d92edba3d9008726127.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-dom": { - "version": "17.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-dom/17.0.1/__path/npm/react-dom/-/react-dom-17.0.1/1de2560474ec9f0e334285662ede52dbc5426fc6.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-is/16.13.1/__path/npm/react-is/-/react-is-16.13.1/789729a4dc36de2999dc156dd6c1d9c18cea56a4.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "react-router": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-router/5.2.0/__path/npm/react-router/-/react-router-5.2.0/424e75641ca8747fbf76e5ecca69781aa37ea293.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-router-dom": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-router-dom/5.2.0/__path/npm/react-router-dom/-/react-router-dom-5.2.0/9e65a4d0c45e13289e66c7b17c7e175d0ea15662.tgz", - "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-shallow-renderer": { - "version": "16.14.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-shallow-renderer/16.14.1/__path/npm/react-shallow-renderer/-/react-shallow-renderer-16.14.1/bf0d02df8a519a558fd9b8215442efa5c840e124.tgz", - "integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0" - } - }, - "react-test-renderer": { - "version": "17.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-test-renderer/17.0.2/__path/npm/react-test-renderer/-/react-test-renderer-17.0.2/4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c.tgz", - "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-is/17.0.2/__path/npm/react-is/-/react-is-17.0.2/e691d4a8e9c789365655539ab372762b0efb54f0.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/react-transition-group/4.4.2/__path/npm/react-transition-group/-/react-transition-group-4.4.2/8b59a56f09ced7b55cbd53c36768b922890d5470.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/read/-/read-1.0.7/b3da19bd052431a97671d44a42634adf710b40c4.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/read-pkg/2.0.0/__path/npm/read-pkg/-/read-pkg-2.0.0/8ef1c0623c6a6db0dc6713c4bfac46332b2368f8.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-type/2.0.0/__path/npm/path-type/-/path-type-2.0.0/f012ccb8415b7096fc2daa1054c3d72389594c73.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/read-pkg-up/2.0.0/__path/npm/read-pkg-up/-/read-pkg-up-2.0.0/6b72a8048984e0c41e79510fd5e9fa99b3b549be.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/find-up/-/find-up-2.1.0/45d1b7e506c717ddd482775a2b77920a3c0c57a7.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/locate-path/-/locate-path-2.0.0/2b568b265eec944c6d9c0de9c3dbbbca0354cd8e.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/1.3.0/__path/npm/p-limit/-/p-limit-1.3.0/b86bd5f0c25690911c7590fcbfc2010d54b3ccb8.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/p-locate/-/p-locate-2.0.0/20a0103b222a70c8fd39cc2e580680f3dde5ec43.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/p-try/-/p-try-1.0.0/cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-exists/-/path-exists-3.0.0/ce0ebeaa5f78cb18925ea7d810d7b59b010fd515.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/readable-stream/2.3.7/__path/npm/readable-stream/-/readable-stream-2.3.7/1eca1cf711aef814c04f62252a36a62f6cb23b57.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/safe-buffer/5.1.2/__path/npm/safe-buffer/-/safe-buffer-5.1.2/991ec69d296e0313747d59bdfd2b745c35f8828d.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/readdirp/3.5.0/__path/npm/readdirp/-/readdirp-3.5.0/9ba74c019b15d365278d2e91bb8c48d7b4d42c9e.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/rechoir/-/rechoir-0.6.2/85204b54dba82d5742e28c96756ef43af50e3384.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/redent/3.0.0/__path/npm/redent/-/redent-3.0.0/e557b7998316bb53c9f1f56fa626352c6963059f.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/reflect.ownkeys/0.2.0/__path/npm/reflect.ownkeys/-/reflect.ownkeys-0.2.0/749aceec7f3fdf8b63f927a04809e90c5c0b3460.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/regenerator-runtime/0.13.7/__path/npm/regenerator-runtime/-/regenerator-runtime-0.13.7/cac2dacc8a1ea675feaabaeb8ae833898ae46f55.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/regex-not/1.0.2/__path/npm/regex-not/-/regex-not-1.0.2/1f4ece27e00b0b65e0247a6810e6a85d83a5752c.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/regexp.prototype.flags/1.3.1/__path/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1/7ef352ae8d159e758c0eadca6f8fcb4eef07be26.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/regexpp/3.2.0/__path/npm/regexpp/-/regexpp-3.2.0/0425a2768d8f23bad70ca4b90461fa2f1213e1b2.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/remove-trailing-separator/1.1.0/__path/npm/remove-trailing-separator/-/remove-trailing-separator-1.1.0/c24bce2a283adad5bc3f58e0d48249b92379d8ef.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/repeat-element/1.1.4/__path/npm/repeat-element/-/repeat-element-1.1.4/be681520847ab58c7568ac75fbfad28ed42d39e9.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/repeat-string/1.6.1/__path/npm/repeat-string/-/repeat-string-1.6.1/8dcae470e1c88abc2d600fff4a776286da75e637.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/require-directory/-/require-directory-2.1.1/8c64ad5fd30dab1c976e2344ffe7f792a6a6df42.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/require-main-filename/2.0.0/__path/npm/require-main-filename/-/require-main-filename-2.0.0/d0b329ecc7cc0f61649f62215be69af54aa8989b.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "reselect": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", - "integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve/1.19.0/__path/npm/resolve/-/resolve-1.19.0/1af5bf630409734a067cae29318aac7fa29a267c.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-cwd/3.0.0/__path/npm/resolve-cwd/-/resolve-cwd-3.0.0/0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-from/5.0.0/__path/npm/resolve-from/-/resolve-from-5.0.0/c35225843df8f776df21c57557bc087e9dfdfc69.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-dir/1.0.1/__path/npm/resolve-dir/-/resolve-dir-1.0.1/79a40644c362be82f26effe739c9bb5382046f43.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/global-modules/1.0.0/__path/npm/global-modules/-/global-modules-1.0.0/6d770f0eb523ac78164d72b5e71a8877265cc3ea.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/resolve-from/-/resolve-from-4.0.0/4abcd852ad32dd7baabfe9b40e00a36db5f392e6.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-pathname/3.0.0/__path/npm/resolve-pathname/-/resolve-pathname-3.0.0/99d02224d3cf263689becbb393bc560313025dcd.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-url/0.2.1/__path/npm/resolve-url/-/resolve-url-0.2.1/2c637fe77c893afd2a663fe21aa9080068e2052a.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ret/0.1.15/__path/npm/ret/-/ret-0.1.15/b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/reusify/-/reusify-1.0.4/90da382b1e126efc02146e90845a88db12925d76.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rfdc/1.3.0/__path/npm/rfdc/-/rfdc-1.3.0/d0b7c441ab2720d05dc4cf26e01c89631d9da08b.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rimraf/3.0.2/__path/npm/rimraf/-/rimraf-3.0.2/f1a5402ba6220ad52cc1282bac1ae3aa49fd061a.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ripemd160/2.0.2/__path/npm/ripemd160/-/ripemd160-2.0.2/a1c1a6f624751577ba5d07914cbc92850585890c.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rst-selector-parser/2.2.3/__path/npm/rst-selector-parser/-/rst-selector-parser-2.2.3/81b230ea2fcc6066c89e3472de794285d9b03d91.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", - "dev": true, - "requires": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rsvp/4.8.5/__path/npm/rsvp/-/rsvp-4.8.5/c8f155311d167f68f21e168df71ec5b083113734.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/run-parallel/1.2.0/__path/npm/run-parallel/-/run-parallel-1.2.0/66d1368da7bdf921eb9d95bd1a9229e7f21a43ee.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/run-queue/1.0.3/__path/npm/run-queue/-/run-queue-1.0.3/e848396f057d223f24386924618e25694161ec47.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "dev": true, - "requires": { - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "sade": { - "version": "1.7.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sade/1.7.4/__path/npm/sade/-/sade-1.7.4/ea681e0c65d248d2095c90578c03ca0bb1b54691.tgz", - "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", - "dev": true, - "requires": { - "mri": "^1.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/safe-buffer/5.2.1/__path/npm/safe-buffer/-/safe-buffer-5.2.1/1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/safe-regex/1.1.0/__path/npm/safe-regex/-/safe-regex-1.1.0/40a3669f3b077d1e943d44629e157dd48023bf2e.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/safer-buffer/-/safer-buffer-2.1.2/44fa161b0187b9549dd84bb91802f9bd8385cd6a.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sane/4.1.0/__path/npm/sane/-/sane-4.1.0/ed881fd922733a6c461bc189dc2b6c006f3ffded.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/anymatch/2.0.0/__path/npm/anymatch/-/anymatch-2.0.0/bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/micromatch/3.1.10/__path/npm/micromatch/-/micromatch-3.1.10/70859bc95c9840952f359a068a3fc49f9ecfac23.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/normalize-path/2.1.1/__path/npm/normalize-path/-/normalize-path-2.1.1/1ab28b556e198363a8c1a6f7e6fa20137fe6aed9.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/saxes/5.0.1/__path/npm/saxes/-/saxes-5.0.1/eebab953fa3b7608dbe94e5dadb15c888fa6696d.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/scheduler/0.20.2/__path/npm/scheduler/-/scheduler-0.20.2/4baee39436e34aa93b4874bddcbf0fe8b8b50e91.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/schema-utils/3.0.0/__path/npm/schema-utils/-/schema-utils-3.0.0/67502f6aa2b66a2d4032b4279a2944978a0913ef.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semiver": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semiver/1.1.0/__path/npm/semiver/-/semiver-1.1.0/9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f.tgz", - "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/7.3.4/__path/npm/semver/-/semver-7.3.4/27aaa7d2e4ca76452f98d3add093a72c943edc97.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver-compare/1.0.0/__path/npm/semver-compare/-/semver-compare-1.0.0/0dee216a1c941ab37e9efb1788f6afc5ff5537fc.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver-regex/2.0.0/__path/npm/semver-regex/-/semver-regex-2.0.0/a93c2c5844539a770233379107b38c7b4ac9d338.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true - }, - "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/serialize-javascript/5.0.1/__path/npm/serialize-javascript/-/serialize-javascript-5.0.1/7886ec848049a462467a97d3d918ebb2aaf934f4.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/set-blocking/-/set-blocking-2.0.0/045f9782d011ae9a6803ddd382b24392b3d890f7.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/set-value/2.0.1/__path/npm/set-value/-/set-value-2.0.1/a18d40530e6f07de4228c7defe4227af8cad005b.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/setimmediate/1.0.5/__path/npm/setimmediate/-/setimmediate-1.0.5/290cbb232e306942d7d7ea9b83732ab7856f8285.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sha.js/2.4.11/__path/npm/sha.js/-/sha.js-2.4.11/37a5cf0b81ecbc6943de109ba2960d1b26584ae7.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-command/2.0.0/__path/npm/shebang-command/-/shebang-command-2.0.0/ccd0af4f8835fbdc265b82461aaf0c36663f34ea.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-regex/3.0.0/__path/npm/shebang-regex/-/shebang-regex-3.0.0/ae16f1644d873ecad843b0307b143362d4c42172.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shelljs/0.8.4/__path/npm/shelljs/-/shelljs-0.8.4/de7684feeb767f8716b326078a8a00875890e3c2.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shellwords/0.1.1/__path/npm/shellwords/-/shellwords-0.1.1/d6b9181c1a48d397324c84871efbcfc73fc0654b.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "shortid": { - "version": "2.2.16", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shortid/2.2.16/__path/npm/shortid/-/shortid-2.2.16/b742b8f0cb96406fd391c76bfc18a67a57fe5608.tgz", - "integrity": "sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==", - "requires": { - "nanoid": "^2.1.0" - }, - "dependencies": { - "nanoid": { - "version": "2.1.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/nanoid/2.1.11/__path/npm/nanoid/-/nanoid-2.1.11/ec24b8a758d591561531b4176a01e3ab4f0f0280.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" - } - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/side-channel/1.0.4/__path/npm/side-channel/-/side-channel-1.0.4/efce5c8fdc104ee751b25c58d4290011fa5ea2cf.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/signal-exit/3.0.3/__path/npm/signal-exit/-/signal-exit-3.0.3/a1410c2edd8f077b08b4e253c8eacfcaf057461c.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "sinon": { - "version": "9.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sinon/9.2.3/__path/npm/sinon/-/sinon-9.2.3/f68ce414e843e2fd638703043c97f260697caa52.tgz", - "integrity": "sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.0", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - } - }, - "sirv": { - "version": "1.0.12", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sirv/1.0.12/__path/npm/sirv/-/sirv-1.0.12/d816c882b35489b3c63290e2f455ae3eccd5f652.tgz", - "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.15", - "mime": "^2.3.1", - "totalist": "^1.0.0" - } - }, - "sirv-cli": { - "version": "1.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sirv-cli/1.0.8/__path/npm/sirv-cli/-/sirv-cli-1.0.8/150c3f62694203a86cf5d71ec60e6ff4c34064a9.tgz", - "integrity": "sha512-bJI+kkzQvMKfAOfgLzv09kWsdymLm39LgKmGjacB19GHIAQLCvXXg8e8HzcofTjDZlA8zVv4dQjU9SWkNzkJhw==", - "dev": true, - "requires": { - "console-clear": "^1.1.0", - "get-port": "^3.2.0", - "kleur": "^3.0.0", - "local-access": "^1.0.1", - "sade": "^1.6.0", - "semiver": "^1.0.0", - "sirv": "^1.0.7", - "tinydate": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sisteransi/1.0.5/__path/npm/sisteransi/-/sisteransi-1.0.5/134d681297756437cc05ca01370d3a7a571075ed.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/slash/3.0.0/__path/npm/slash/-/slash-3.0.0/6539be870c165adbd5240220dbe361f1bc4d4634.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/slice-ansi/2.1.0/__path/npm/slice-ansi/-/slice-ansi-2.1.0/cacd7693461a637a5788d92a7dd4fba068e81636.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/snapdragon/0.8.2/__path/npm/snapdragon/-/snapdragon-0.8.2/64922e7c565b0e14204ba1aa7d6964278d25182d.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/debug/2.6.9/__path/npm/debug/-/debug-2.6.9/5d128515df134ff327e90a4c93f4e077a536341f.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/0.2.5/__path/npm/define-property/-/define-property-0.2.5/c35b1ef918ec3c990f9a5bc57be04aacec5c8116.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/extend-shallow/2.0.1/__path/npm/extend-shallow/-/extend-shallow-2.0.1/51af7d614ad9a9f610ea1bafbb989d6b1c56890f.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ms/2.0.0/__path/npm/ms/-/ms-2.0.0/5608aeadfc00be6c2901df5f9861788de0d597c8.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map/0.5.7/__path/npm/source-map/-/source-map-0.5.7/8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map-resolve/0.5.3/__path/npm/source-map-resolve/-/source-map-resolve-0.5.3/190866bece7553e1f8f267a2ee82c606b5509a1a.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/snapdragon-node/2.1.1/__path/npm/snapdragon-node/-/snapdragon-node-2.1.1/6c175f86ff14bdb0724563e8f3c1b021a286853b.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/1.0.0/__path/npm/define-property/-/define-property-1.0.0/769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-accessor-descriptor/1.0.0/__path/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0/169c2f6d3df1f992618072365c9b0ea1f6878656.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-data-descriptor/1.0.0/__path/npm/is-data-descriptor/-/is-data-descriptor-1.0.0/d84876321d0e7add03990406abbbbd36ba9268c7.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-descriptor/1.0.2/__path/npm/is-descriptor/-/is-descriptor-1.0.2/3b159746a66604b04f8c81524ba365c5f14d86ec.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/snapdragon-util/3.0.1/__path/npm/snapdragon-util/-/snapdragon-util-3.0.1/f956479486f2acd79700693f6f7b805e45ab56e2.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-list-map/2.0.1/__path/npm/source-list-map/-/source-list-map-2.0.1/3993bd873bfc48479cca9ea3a547835c7c154b34.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/source-map/-/source-map-0.6.1/74722af32e9614e9c287a8d0bbde48b5e2f1a263.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map-resolve/0.6.0/__path/npm/source-map-resolve/-/source-map-resolve-0.6.0/3d9df87e236b53f16d01e58150fc7711138e5ed2.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map-support/0.5.19/__path/npm/source-map-support/-/source-map-support-0.5.19/a98b62f86dcaf4f67399648c085291ab9e8fed61.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map-url/0.4.1/__path/npm/source-map-url/-/source-map-url-0.4.1/0af66605a745a5a2f91cf1bbf8a7afbc283dec56.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/spdx-correct/3.1.1/__path/npm/spdx-correct/-/spdx-correct-3.1.1/dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/spdx-exceptions/2.3.0/__path/npm/spdx-exceptions/-/spdx-exceptions-2.3.0/3f28ce1a77a00372683eade4a433183527a2163d.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/spdx-expression-parse/3.0.1/__path/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1/cf70f50482eefdc98e3ce0a6833e4a53ceeba679.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/spdx-license-ids/-/spdx-license-ids-3.0.9/8a595135def9592bda69709474f1cbeea7c2467f.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/split-string/3.1.0/__path/npm/split-string/-/split-string-3.1.0/7cb09dda3a86585705c64b39a6466038682e8fe2.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/sprintf-js/1.0.3/__path/npm/sprintf-js/-/sprintf-js-1.0.3/04e6926f662895354f3dd015203633b857297e2c.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ssri/8.0.1/__path/npm/ssri/-/ssri-8.0.1/638e4e439e2ffbd2cd289776d5ca457c4f51a2af.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/stack-utils/2.0.3/__path/npm/stack-utils/-/stack-utils-2.0.3/cd5f030126ff116b78ccb3c027fe302713b61277.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/escape-string-regexp/-/escape-string-regexp-2.0.0/a30304e99daa32e23b2fd20f51babd07cffca344.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/static-extend/0.1.2/__path/npm/static-extend/-/static-extend-0.1.2/60809c39cbff55337226fd5e0b520f341f1fb5c6.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/define-property/0.2.5/__path/npm/define-property/-/define-property-0.2.5/c35b1ef918ec3c990f9a5bc57be04aacec5c8116.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/stream-browserify/2.0.2/__path/npm/stream-browserify/-/stream-browserify-2.0.2/87521d38a44aa7ee91ce1cd2a47df0cb49dd660b.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/stream-each/1.2.3/__path/npm/stream-each/-/stream-each-1.2.3/ebe27a0c389b04fbcc233642952e10731afa9bae.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/stream-http/2.8.3/__path/npm/stream-http/-/stream-http-2.8.3/b2d242469288a5a27ec4fe8933acf623de6514fc.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/stream-shift/1.0.1/__path/npm/stream-shift/-/stream-shift-1.0.1/d7088281559ab2778424279b0877da3c392d5a3d.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "streamroller": { - "version": "2.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/streamroller/2.2.4/__path/npm/streamroller/-/streamroller-2.2.4/c198ced42db94086a6193608187ce80a5f2b0e53.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/date-format/2.1.0/__path/npm/date-format/-/date-format-2.1.0/31d5b5ea211cf5fd764cd38baf9d033df7e125cf.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string-length/4.0.2/__path/npm/string-length/-/string-length-4.0.2/a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string-width/3.1.0/__path/npm/string-width/-/string-width-3.1.0/22767be21b62af1081574306f69ac51b62203961.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-regex/4.1.0/__path/npm/ansi-regex/-/ansi-regex-4.1.0/8b9f8f08cf1acb843756a839ca8c7e3168c51997.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-ansi/5.2.0/__path/npm/strip-ansi/-/strip-ansi-5.2.0/8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string.prototype.matchall/4.0.5/__path/npm/string.prototype.matchall/-/string.prototype.matchall-4.0.5/59370644e1db7e4c0c045277690cf7b01203c4da.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string.prototype.trim/1.2.4/__path/npm/string.prototype.trim/-/string.prototype.trim-1.2.4/6014689baf5efaf106ad031a5fa45157666ed1bd.tgz", - "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string.prototype.trimend/1.0.4/__path/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.4/e75ae90c2942c63504686c18b287b4a0b1a45f80.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string.prototype.trimstart/1.0.4/__path/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4/b36399af4ab2999b4c9c648bd7a3fb2bb26feeed.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string_decoder/1.1.1/__path/npm/string_decoder/-/string_decoder-1.1.1/9cf1611ba62685d7030ae9e4ba34149c3af03fc8.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/safe-buffer/5.1.2/__path/npm/safe-buffer/-/safe-buffer-5.1.2/991ec69d296e0313747d59bdfd2b745c35f8828d.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-ansi/6.0.0/__path/npm/strip-ansi/-/strip-ansi-6.0.0/0b1571dd7669ccd4f3e06e14ef1eed26225ae532.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/strip-bom/-/strip-bom-3.0.0/2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-eof/1.0.0/__path/npm/strip-eof/-/strip-eof-1.0.0/bb43ff5598a6eb05d89b59fcd129c983313606bf.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-final-newline/2.0.0/__path/npm/strip-final-newline/-/strip-final-newline-2.0.0/89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-indent/3.0.0/__path/npm/strip-indent/-/strip-indent-3.0.0/c32e1cee940b6b3432c771bc2c54bcce73cd3001.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-json-comments/3.1.1/__path/npm/strip-json-comments/-/strip-json-comments-3.1.1/31f1281b3832630434831c310c01cccda8cbe006.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/7.2.0/__path/npm/supports-color/-/supports-color-7.2.0/1b7dcdcb32b8138801b3e478ba6a51caa89648da.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-hyperlinks/2.2.0/__path/npm/supports-hyperlinks/-/supports-hyperlinks-2.2.0/4f77b42488765891774b70c79babd87f9bd594bb.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/symbol-observable/1.2.0/__path/npm/symbol-observable/-/symbol-observable-1.2.0/c22688aed4eab3cdc2dfeacbb561660560a00804.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/symbol-tree/3.2.4/__path/npm/symbol-tree/-/symbol-tree-3.2.4/430637d248ba77e078883951fb9aa0eed7c63fa2.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "sync-exec": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", - "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", - "dev": true, - "optional": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/table/5.4.6/__path/npm/table/-/table-5.4.6/1292d19500ce3f86053b05f0e8e7e4a3bb21079e.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tapable/1.1.3/__path/npm/tapable/-/tapable-1.1.3/a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/temp-dir/2.0.0/__path/npm/temp-dir/-/temp-dir-2.0.0/bde92b05bdfeb1516e804c9c00ad45177f31321e.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" - }, - "tempy": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tempy/1.0.0/__path/npm/tempy/-/tempy-1.0.0/4f192b3ee3328a2684d0e3fc5c491425395aab65.tgz", - "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-fest/0.16.0/__path/npm/type-fest/-/type-fest-0.16.0/3240b891a78b0deae910dbeb86553e552a148860.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/terminal-link/2.1.1/__path/npm/terminal-link/-/terminal-link-2.1.1/14a64a27ab3c0df933ea546fba55f2d078edc994.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/terser/4.8.0/__path/npm/terser/-/terser-4.8.0/63056343d7c70bb29f3af665865a46fe03a0df17.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/terser-webpack-plugin/1.4.5/__path/npm/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5/a217aefaea330e734ffacb6120ec1fa312d6040b.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cacache/12.0.4/__path/npm/cacache/-/cacache-12.0.4/668bcbd105aeb5f1d92fe25570ec9525c8faa40c.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chownr/1.1.4/__path/npm/chownr/-/chownr-1.1.4/6fc9d7b42d32a583596337666e7d08084da2cc6b.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-cache-dir/2.1.0/__path/npm/find-cache-dir/-/find-cache-dir-2.1.0/8d0f94cd13fe43c6c7c261a0d86115ca918c05f7.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-up/3.0.0/__path/npm/find-up/-/find-up-3.0.0/49169f1d7993430646da61ecc5ae355c21c97b73.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-wsl/1.1.0/__path/npm/is-wsl/-/is-wsl-1.1.0/1f16e4aa22b04d1336b66188a66af3c600c3a66d.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/locate-path/3.0.0/__path/npm/locate-path/-/locate-path-3.0.0/dbec3b3ab759758071b58fe59fc41871af21400e.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/lru-cache/5.1.1/__path/npm/lru-cache/-/lru-cache-5.1.1/1da27e6710271947695daf6848e847f01d84b920.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/make-dir/2.1.0/__path/npm/make-dir/-/make-dir-2.1.0/5f0310e18b8be898cc07009295a30ae41e91e6f5.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/0.5.5/__path/npm/mkdirp/-/mkdirp-0.5.5/d91cefd62d1436ca0f41620e251288d420099def.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/2.3.0/__path/npm/p-limit/-/p-limit-2.3.0/3dd33c647a214fdfffd835933eb086da0dc21db1.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-locate/3.0.0/__path/npm/p-locate/-/p-locate-3.0.0/322d69a05c0264b25997d9f40cd8a891ab0064a4.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-exists/-/path-exists-3.0.0/ce0ebeaa5f78cb18925ea7d810d7b59b010fd515.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pify/4.0.1/__path/npm/pify/-/pify-4.0.1/4b2cd25c50d598735c50292224fd8c6df41e3231.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pkg-dir/3.0.0/__path/npm/pkg-dir/-/pkg-dir-3.0.0/2749020f239ed990881b1f71210d51eb6523bea3.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/rimraf/2.7.1/__path/npm/rimraf/-/rimraf-2.7.1/35797f13a7fdadc566142c29d4f07ccad483e3ec.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/schema-utils/1.0.0/__path/npm/schema-utils/-/schema-utils-1.0.0/0b79a93204d7b600d4b2850d1f66c2a34951c770.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/serialize-javascript/4.0.0/__path/npm/serialize-javascript/-/serialize-javascript-4.0.0/b525e1238489a5ecfc42afacc3fe99e666f4b1aa.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ssri/6.0.2/__path/npm/ssri/-/ssri-6.0.2/157939134f20464e7301ddba3e90ffa8f7728ac5.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yallist/3.1.1/__path/npm/yallist/-/yallist-3.1.1/dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/test-exclude/6.0.0/__path/npm/test-exclude/-/test-exclude-6.0.0/04a8698661d805ea6fa293b6cb9e63ac044ef15e.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/text-table/0.2.0/__path/npm/text-table/-/text-table-0.2.0/7f5ee823ae805207c00af2df4a84ec3fcfa570b4.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/throat/5.0.0/__path/npm/throat/-/throat-5.0.0/c5199235803aad18754a667d659b5e72ce16764b.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/through2/2.0.5/__path/npm/through2/-/through2-2.0.5/01c1e39eb31d07cb7d03a96a70823260b23132cd.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/timers-browserify/2.0.12/__path/npm/timers-browserify/-/timers-browserify-2.0.12/44a45c11fbf407f34f97bccd1577c652361b00ee.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tiny-invariant": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tiny-invariant/1.1.0/__path/npm/tiny-invariant/-/tiny-invariant-1.1.0/634c5f8efdc27714b7f386c35e6760991d230875.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==", - "dev": true - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tiny-warning/1.0.3/__path/npm/tiny-warning/-/tiny-warning-1.0.3/94a30db453df4c643d0fd566060d60a875d84754.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "dev": true - }, - "tinydate": { - "version": "1.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tinydate/1.3.0/__path/npm/tinydate/-/tinydate-1.3.0/e6ca8e5a22b51bb4ea1c3a2a4fd1352dbd4c57fb.tgz", - "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", - "dev": true - }, - "tmp": { - "version": "0.0.29", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tmp/0.0.29/__path/npm/tmp/-/tmp-0.0.29/f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-arraybuffer/1.0.1/__path/npm/to-arraybuffer/-/to-arraybuffer-1.0.1/7d229b1fcc637e466ca081180836a7aabff83f43.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-fast-properties/2.0.0/__path/npm/to-fast-properties/-/to-fast-properties-2.0.0/dc5e698cbd079265bc73e0377681a4e4e83f616e.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-object-path/0.3.0/__path/npm/to-object-path/-/to-object-path-0.3.0/297588b7b0e7e0ac08e04e672f85c1f4999e17af.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/kind-of/3.2.2/__path/npm/kind-of/-/kind-of-3.2.2/31ea21a734bab9bbb0f32466d893aea51e4a3c64.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-regex/3.0.2/__path/npm/to-regex/-/to-regex-3.0.2/13cfdd9b336552f30b51f33a8ae1b42a7a7599ce.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/to-regex-range/2.1.1/__path/npm/to-regex-range/-/to-regex-range-2.1.1/7c80c17b9dfebe599e27367e0d4dd5590141db38.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/totalist/1.1.0/__path/npm/totalist/-/totalist-1.1.0/a4d65a3e546517701e3e5c37a47a70ac97fe56df.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "dev": true - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tough-cookie/4.0.0/__path/npm/tough-cookie/-/tough-cookie-4.0.0/d822234eeca882f991f0f908824ad2622ddbece4.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/tr46/-/tr46-2.1.0/fa87aa81ca5d5941da8cbf1f9b749dc969a4e240.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tree-kill/1.2.2/__path/npm/tree-kill/-/tree-kill-1.2.2/4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-jest": { - "version": "26.4.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ts-jest/26.4.4/__path/npm/ts-jest/-/ts-jest-26.4.4/61f13fb21ab400853c532270e52cc0ed7e502c49.tgz", - "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", - "dev": true, - "requires": { - "@types/jest": "26.x", - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs-parser/20.2.9/__path/npm/yargs-parser/-/yargs-parser-20.2.9/2eb7dc3b0289718fc295f362753845c41a0c94ee.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "ts-loader": { - "version": "8.0.11", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ts-loader/8.0.11/__path/npm/ts-loader/-/ts-loader-8.0.11/35d58a65932caacb120426eea59eca841786c899.tgz", - "integrity": "sha512-06X+mWA2JXoXJHYAesUUL4mHFYhnmyoCdQVMXofXF552Lzd4wNwSGg7unJpttqUP7ziaruM8d7u8LUB6I1sgzA==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^4.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/2.4.2/__path/npm/chalk/-/chalk-2.4.2/cd42541677a54333cf541a49108c1432b44c9424.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/has-flag/-/has-flag-3.0.0/b5d454dc2199ae225699f3467e5a07f3b955bafd.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json5/1.0.1/__path/npm/json5/-/json5-1.0.1/779fb0018604fa854eacbf6252180d83543e3dbe.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loader-utils/1.4.0/__path/npm/loader-utils/-/loader-utils-1.4.0/c579b5e34cb34b1a74edc6c1fb36bfa371d5a613.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/6.3.0/__path/npm/semver/-/semver-6.3.0/ee0a64c8af5e8ceea67687b133761e1becbd1d3d.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/5.5.0/__path/npm/supports-color/-/supports-color-5.5.0/e2e69a44ac8772f78a1ec0b35b689df6530efc8f.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tsconfig-paths/3.9.0/__path/npm/tsconfig-paths/-/tsconfig-paths-3.9.0/098547a6c4448807e8fcb8eae081064ee9a3c90b.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json5/1.0.1/__path/npm/json5/-/json5-1.0.1/779fb0018604fa854eacbf6252180d83543e3dbe.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tslib/2.3.0/__path/npm/tslib/-/tslib-2.3.0/803b8cdab3e12ba581a4ca41c8839bbb0dacb09e.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tsutils/3.21.0/__path/npm/tsutils/-/tsutils-3.21.0/b48717d394cea6c1e096983eed58e9d61715b623.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tslib/1.14.1/__path/npm/tslib/-/tslib-1.14.1/cf2d38bdc34a134bcaf1091c41f6619e2f672d00.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tty-browserify/0.0.0/__path/npm/tty-browserify/-/tty-browserify-0.0.0/a157ba402da24e9bf957f9aa69d524eed42901a6.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel": { - "version": "0.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/tunnel/0.0.4/__path/npm/tunnel/-/tunnel-0.0.4/2d3785a158c174c9a16dc2c046ec5fc5f1742213.tgz", - "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-check/0.4.0/__path/npm/type-check/-/type-check-0.4.0/07b8203bfa7056c0657050e3ccd2c37730bab8f1.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-detect/4.0.8/__path/npm/type-detect/-/type-detect-4.0.8/7646fb5f18871cfbb7749e69bd39a6388eb7450c.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/type-fest/0.8.1/__path/npm/type-fest/-/type-fest-0.8.1/09e249ebde851d3b1e48d27c105444667f17b83d.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typed-rest-client": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/typed-rest-client/1.2.0/__path/npm/typed-rest-client/-/typed-rest-client-1.2.0/723085d203f38d7d147271e5ed3a75488eb44a02.tgz", - "integrity": "sha512-FrUshzZ1yxH8YwGR29PWWnfksLEILbWJydU7zfIRkyH7kAEzB62uMAl2WY6EyolWpLpVHeJGgQm45/MaruaHpw==", - "dev": true, - "requires": { - "tunnel": "0.0.4", - "underscore": "1.8.3" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/typedarray/-/typedarray-0.0.6/867ac74e3864187b1d3d47d996a78ec5c8830777.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5/a97ee7a9ff42691b9f783ff1bc5112fe3fca9080.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/typescript/4.0.2/__path/npm/typescript/-/typescript-4.0.2/7ea7c88777c723c681e33bf7988be5d008d05ac2.tgz", - "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/uc.micro/1.0.6/__path/npm/uc.micro/-/uc.micro-1.0.6/9c411a802a409a91fc6cf74081baba34b24499ac.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/unbox-primitive/1.0.1/__path/npm/unbox-primitive/-/unbox-primitive-1.0.1/085e215625ec3162574dc8859abee78a59b14471.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/underscore/1.8.3/__path/npm/underscore/-/underscore-1.8.3/4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/union-value/1.0.1/__path/npm/union-value/-/union-value-1.0.1/0b6fe7b835aecda61c6ea4d4f02c14221e109847.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/unique-filename/1.1.1/__path/npm/unique-filename/-/unique-filename-1.1.1/1d69769369ada0583103a1e6ae87681b56573230.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/unique-slug/2.0.2/__path/npm/unique-slug/-/unique-slug-2.0.2/baabce91083fc64e945b0f3ad613e264f7cd4e6c.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/unique-string/2.0.0/__path/npm/unique-string/-/unique-string-2.0.0/39c6451f81afb2749de2b233e3f7c5e8843bd89d.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/universalify/0.1.2/__path/npm/universalify/-/universalify-0.1.2/b646f69be3942dabcecc9d6639c80dc105efaa66.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/unset-value/1.0.0/__path/npm/unset-value/-/unset-value-1.0.0/8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-value/0.3.1/__path/npm/has-value/-/has-value-0.3.1/7b1f58bada62ca827ec0a2078025654845995e1f.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/isobject/2.1.0/__path/npm/isobject/-/isobject-2.1.0/f065561096a3f1da2ef46272f815c840d87e0c89.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/has-values/0.1.4/__path/npm/has-values/-/has-values-0.1.4/6d61de95d91dfca9b9a02089ad384bff8f62b771.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/upath/1.2.0/__path/npm/upath/-/upath-1.2.0/8f66dbcd55a883acdae4408af8b035a5044c1894.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/uri-js/4.4.1/__path/npm/uri-js/-/uri-js-4.4.1/9b1a52595225859e55f669d928f88c6c57f2a77e.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/urix/0.1.0/__path/npm/urix/-/urix-0.1.0/da937f7a62e21fec1fd18d49b35c2935067a6c72.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/url/0.11.0/__path/npm/url/-/url-0.11.0/3838e97cfc60521eb73c525a8e55bfdd9e2e28f1.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/punycode/1.3.2/__path/npm/punycode/-/punycode-1.3.2/9653a036fb7c1ee42342f2325cceefea3926c48d.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-join": { - "version": "1.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/url-join/1.1.0/__path/npm/url-join/-/url-join-1.1.0/741c6c2f4596c4830d6718460920d0c92202dc78.tgz", - "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/use/3.1.1/__path/npm/use/-/use-3.1.1/d50c8cac79a19fbc20f2911f56eb973f4e10070f.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/util/0.11.1/__path/npm/util/-/util-0.11.1/3236733720ec64bb27f6e26f421aaa2e1b588d61.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/inherits/2.0.3/__path/npm/inherits/-/inherits-2.0.3/633c2c83e3da42a502f52466022480f4208261de.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/util-deprecate/-/util-deprecate-1.0.2/450d4dc9fa70de732762fbd2d4a28981419a0ccf.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/uuid/8.3.2/__path/npm/uuid/-/uuid-8.3.2/80d5b5ced271bb9af6c445f21a1a04c606cefbe2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/v8-compile-cache/2.3.0/__path/npm/v8-compile-cache/-/v8-compile-cache-2.3.0/2de19618c66dc247dcfb6f99338035d8245a2cee.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/v8-to-istanbul/7.1.2/__path/npm/v8-to-istanbul/-/v8-to-istanbul-7.1.2/30898d1a7fa0c84d225a2c1434fb958f290883c1.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/source-map/0.7.3/__path/npm/source-map/-/source-map-0.7.3/5302f8169031735226544092e64981f751750383.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/validate-npm-package-license/-/validate-npm-package-license-3.0.4/fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/value-equal/1.0.1/__path/npm/value-equal/-/value-equal-1.0.1/1e0b794c734c5c0cade179c437d356d931a34d6c.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/vm-browserify/1.1.2/__path/npm/vm-browserify/-/vm-browserify-1.1.2/78641c488b8e6ca91a75f511e7a3b32a86e5dda0.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "vsce": { - "version": "1.81.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/vsce/1.81.1/__path/npm/vsce/-/vsce-1.81.1/c741e9830cc750925e5f37b1e048341b98125262.tgz", - "integrity": "sha512-1yWAYRxTx/PKSFZnuELe7GPyIo70H/XKJqf6wGikofUK3f3TCNGI6F9xkTQFvXKNe0AygUuxN7kITyPIQGMP+w==", - "dev": true, - "requires": { - "azure-devops-node-api": "^7.2.0", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.1", - "commander": "^6.1.0", - "denodeify": "^1.2.1", - "glob": "^7.0.6", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "osenv": "^0.1.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "0.0.29", - "typed-rest-client": "1.2.0", - "url-join": "^1.1.0", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/2.4.2/__path/npm/chalk/-/chalk-2.4.2/cd42541677a54333cf541a49108c1432b44c9424.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "6.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/commander/6.2.1/__path/npm/commander/-/commander-6.2.1/0792eb682dfbc325999bb2b84fddddba110ac73c.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/has-flag/-/has-flag-3.0.0/b5d454dc2199ae225699f3467e5a07f3b955bafd.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mime/1.6.0/__path/npm/mime/-/mime-1.6.0/32cd9e5c64553bd58d19a568af452acff04981b1.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/5.5.0/__path/npm/supports-color/-/supports-color-5.5.0/e2e69a44ac8772f78a1ec0b35b689df6530efc8f.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "vscode-nls": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/vscode-nls/5.0.0/__path/npm/vscode-nls/-/vscode-nls-5.0.0/99f0da0bd9ea7cda44e565a74c54b1f2bc257840.tgz", - "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==" - }, - "vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/w3c-hr-time/1.0.2/__path/npm/w3c-hr-time/-/w3c-hr-time-1.0.2/0a89cdf5cc15822df9c360543676963e0cc308cd.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/w3c-xmlserializer/2.0.0/__path/npm/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0/3e7104a05b75146cc60f564380b7f683acf1020a.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/walker/1.0.7/__path/npm/walker/-/walker-1.0.7/2f7f9b8fd10d677262b18a884e28d19618e028fb.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/watchpack/1.7.5/__path/npm/watchpack/-/watchpack-1.7.5/1267e6c55e0b9b5be44c2023aed5437a2c26c453.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/watchpack-chokidar2/2.0.1/__path/npm/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1/38500072ee6ece66f3769936950ea1771be1c957.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/anymatch/2.0.0/__path/npm/anymatch/-/anymatch-2.0.0/bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/normalize-path/2.1.1/__path/npm/normalize-path/-/normalize-path-2.1.1/1ab28b556e198363a8c1a6f7e6fa20137fe6aed9.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/binary-extensions/1.13.1/__path/npm/binary-extensions/-/binary-extensions-1.13.1/598afe54755b2868a5330d2aff9d4ebb53209b65.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chokidar/2.1.8/__path/npm/chokidar/-/chokidar-2.1.8/804b3a7b6a99358c3c5c61e71d8728f041cff917.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/fsevents/1.2.13/__path/npm/fsevents/-/fsevents-1.2.13/f325cb0455592428bcf11b383370ef70e3bfcc38.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/glob-parent/3.1.0/__path/npm/glob-parent/-/glob-parent-3.1.0/9e6af6299d8d3bd2bd40430832bd113df906c5ae.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-glob/3.1.0/__path/npm/is-glob/-/is-glob-3.1.0/7ba5ae24217804ac70707b96922567486cc3e84a.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-binary-path/1.0.1/__path/npm/is-binary-path/-/is-binary-path-1.0.1/75f16642b480f187a711c814161fd3a4a7655898.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/micromatch/3.1.10/__path/npm/micromatch/-/micromatch-3.1.10/70859bc95c9840952f359a068a3fc49f9ecfac23.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/readdirp/2.2.1/__path/npm/readdirp/-/readdirp-2.2.1/0e87622a3325aa33e892285caf8b4e846529a525.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - } - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/webidl-conversions/6.1.0/__path/npm/webidl-conversions/-/webidl-conversions-6.1.0/9111b4d7ea80acd40f5270d666621afa78b69514.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/webpack/4.46.0/__path/npm/webpack/-/webpack-4.46.0/bf9b4404ea20a073605e0a011d188d77cb6ad542.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/acorn/6.4.2/__path/npm/acorn/-/acorn-6.4.2/35866fd710528e92de10cf06016498e47e39e1e6.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/eslint-scope/4.0.3/__path/npm/eslint-scope/-/eslint-scope-4.0.3/ca03833310f6889a3264781aa82e63eb9cfe7848.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json5/1.0.1/__path/npm/json5/-/json5-1.0.1/779fb0018604fa854eacbf6252180d83543e3dbe.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loader-utils/1.4.0/__path/npm/loader-utils/-/loader-utils-1.4.0/c579b5e34cb34b1a74edc6c1fb36bfa371d5a613.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/memory-fs/0.4.1/__path/npm/memory-fs/-/memory-fs-0.4.1/3a9a20b8462523e447cfbc7e8bb80ed667bfc552.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/micromatch/3.1.10/__path/npm/micromatch/-/micromatch-3.1.10/70859bc95c9840952f359a068a3fc49f9ecfac23.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/0.5.5/__path/npm/mkdirp/-/mkdirp-0.5.5/d91cefd62d1436ca0f41620e251288d420099def.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/schema-utils/1.0.0/__path/npm/schema-utils/-/schema-utils-1.0.0/0b79a93204d7b600d4b2850d1f66c2a34951c770.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/webpack-cli/3.3.12/__path/npm/webpack-cli/-/webpack-cli-3.3.12/94e9ada081453cd0aa609c99e500012fd3ad2d4a.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-regex/4.1.0/__path/npm/ansi-regex/-/ansi-regex-4.1.0/8b9f8f08cf1acb843756a839ca8c7e3168c51997.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ansi-styles/3.2.1/__path/npm/ansi-styles/-/ansi-styles-3.2.1/41fbb20243e50b12be0f04b8dedbf07520ce841d.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/camelcase/5.3.1/__path/npm/camelcase/-/camelcase-5.3.1/e3c9b31569e106811df242f715725a1f4c494320.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/chalk/2.4.2/__path/npm/chalk/-/chalk-2.4.2/cd42541677a54333cf541a49108c1432b44c9424.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/5.5.0/__path/npm/supports-color/-/supports-color-5.5.0/e2e69a44ac8772f78a1ec0b35b689df6530efc8f.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cliui/5.0.0/__path/npm/cliui/-/cliui-5.0.0/deefcfdb2e800784aa34f46fa08e06851c7bbbc5.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/color-convert/1.9.3/__path/npm/color-convert/-/color-convert-1.9.3/bb71850690e1f136567de629d2d5471deda4c1e8.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/color-name/-/color-name-1.1.3/a7d0558bd89c42f795dd42328f740831ca53bc25.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/cross-spawn/6.0.5/__path/npm/cross-spawn/-/cross-spawn-6.0.5/4a5ec7c64dfae22c3a14124dbacdee846d80cbc4.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/find-up/3.0.0/__path/npm/find-up/-/find-up-3.0.0/49169f1d7993430646da61ecc5ae355c21c97b73.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/has-flag/-/has-flag-3.0.0/b5d454dc2199ae225699f3467e5a07f3b955bafd.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/import-local/2.0.0/__path/npm/import-local/-/import-local-2.0.0/55070be38a5993cf18ef6db7e961f5bee5c5a09d.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/json5/1.0.1/__path/npm/json5/-/json5-1.0.1/779fb0018604fa854eacbf6252180d83543e3dbe.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/loader-utils/1.4.0/__path/npm/loader-utils/-/loader-utils-1.4.0/c579b5e34cb34b1a74edc6c1fb36bfa371d5a613.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/locate-path/3.0.0/__path/npm/locate-path/-/locate-path-3.0.0/dbec3b3ab759758071b58fe59fc41871af21400e.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-limit/2.3.0/__path/npm/p-limit/-/p-limit-2.3.0/3dd33c647a214fdfffd835933eb086da0dc21db1.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/p-locate/3.0.0/__path/npm/p-locate/-/p-locate-3.0.0/322d69a05c0264b25997d9f40cd8a891ab0064a4.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/path-exists/-/path-exists-3.0.0/ce0ebeaa5f78cb18925ea7d810d7b59b010fd515.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/path-key/2.0.1/__path/npm/path-key/-/path-key-2.0.1/411cadb574c5a140d3a4b1910d40d80cc9f40b40.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/pkg-dir/3.0.0/__path/npm/pkg-dir/-/pkg-dir-3.0.0/2749020f239ed990881b1f71210d51eb6523bea3.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-cwd/2.0.0/__path/npm/resolve-cwd/-/resolve-cwd-2.0.0/00a9f7387556e27038eae232caa372a6a59b665a.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/resolve-from/3.0.0/__path/npm/resolve-from/-/resolve-from-3.0.0/b22c7af7d9d6881bc8b6e653335eebcb0a188748.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/semver/5.7.1/__path/npm/semver/-/semver-5.7.1/a954f931aeba508d307bbf069eff0c01c96116f7.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-command/1.2.0/__path/npm/shebang-command/-/shebang-command-1.2.0/44aac65b695b03398968c39f363fee5deafdf1ea.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/shebang-regex/1.0.0/__path/npm/shebang-regex/-/shebang-regex-1.0.0/da42f49740c0b42db2ca9728571cb190c98efea3.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/strip-ansi/5.2.0/__path/npm/strip-ansi/-/strip-ansi-5.2.0/8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/supports-color/6.1.0/__path/npm/supports-color/-/supports-color-6.1.0/0764abc69c63d5ac842dd4867e8d025e880df8f3.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which/1.3.1/__path/npm/which/-/which-1.3.1/a45043d54f5805316da8d62f9f50918d3da70b0a.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/wrap-ansi/5.1.0/__path/npm/wrap-ansi/-/wrap-ansi-5.1.0/1fd1f67235d5b6d0fee781056001bfb694c03b09.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs/13.3.2/__path/npm/yargs/-/yargs-13.3.2/ad7ffefec1aa59565ac915f82dccb38a9c31a2dd.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs-parser/13.1.2/__path/npm/yargs-parser/-/yargs-parser-13.1.2/130f09702ebaeef2650d54ce6e3e5706f7a4fb38.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/webpack-sources/1.4.3/__path/npm/webpack-sources/-/webpack-sources-1.4.3/eedd8ec0b928fbf1cbfe994e22d2d890f330a933.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/whatwg-encoding/1.0.5/__path/npm/whatwg-encoding/-/whatwg-encoding-1.0.5/5abacf777c32166a51d085d6b4f3e7d27113ddb0.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/whatwg-mimetype/2.3.0/__path/npm/whatwg-mimetype/-/whatwg-mimetype-2.3.0/3d4b1e0312d2079879f826aff18dbeeca5960fbf.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.6.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/whatwg-url/8.6.0/__path/npm/whatwg-url/-/whatwg-url-8.6.0/27c0205a4902084b872aecb97cf0f2a7a3011f4c.tgz", - "integrity": "sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which/2.0.2/__path/npm/which/-/which-2.0.2/7c6a8dd0a636a0327e10b59c9286eee93f3f51b1.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which-boxed-primitive/1.0.2/__path/npm/which-boxed-primitive/-/which-boxed-primitive-1.0.2/13757bc89b209b049fe5d86430e21cf40a89a8e6.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which-module/2.0.0/__path/npm/which-module/-/which-module-2.0.0/d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/which-pm-runs/1.0.0/__path/npm/which-pm-runs/-/which-pm-runs-1.0.0/670b3afbc552e0b55df6b7780ca74615f23ad1cb.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/wide-align/-/wide-align-1.1.3/ae074e6bdc0c14a431e804e624549c633b000457.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/ansi-regex/-/ansi-regex-3.0.0/ed0317c322064f79466c02966bddb605ab37d998.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/string-width/-/string-width-2.1.1/ab93f27a8dc13d28cac815c462143a6d9012ae9e.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/strip-ansi/-/strip-ansi-4.0.0/a8479022eb1ac368a871389b635262c505ee368f.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/word-wrap/1.2.3/__path/npm/word-wrap/-/word-wrap-1.2.3/610636f6b1f703891bd34771ccb17fb93b47079c.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/worker-farm/1.7.0/__path/npm/worker-farm/-/worker-farm-1.7.0/26a94c5391bbca926152002f69b84a4bf772e5a8.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "workerpool": { - "version": "6.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/workerpool/6.0.2/__path/npm/workerpool/-/workerpool-6.0.2/e241b43d8d033f1beb52c7851069456039d1d438.tgz", - "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/wrap-ansi/6.2.0/__path/npm/wrap-ansi/-/wrap-ansi-6.2.0/e9393ba07102e6c91a3b221478f0257cd2856e53.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emoji-regex/8.0.0/__path/npm/emoji-regex/-/emoji-regex-8.0.0/e818fd69ce5ccfcb404594f842963bf53164cc37.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-fullwidth-code-point/3.0.0/__path/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0/f116f8064fe90b3f7844a38997c0b75051269f1d.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string-width/4.2.2/__path/npm/string-width/-/string-width-4.2.2/dafd4f9559a7585cfba529c6a0a4f73488ebd4c5.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/wrappy/-/wrappy-1.0.2/b5243d8f3ec1aa35f1364605bc0d1036e30ab69f.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/write/1.0.3/__path/npm/write/-/write-1.0.3/0800e14523b923a387e415123c865616aae0f5c3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/mkdirp/0.5.5/__path/npm/mkdirp/-/mkdirp-0.5.5/d91cefd62d1436ca0f41620e251288d420099def.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/write-file-atomic/3.0.3/__path/npm/write-file-atomic/-/write-file-atomic-3.0.3/56bd5c5a5c70481cd19c571bd39ab965a5de56e8.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/ws/7.5.0/__path/npm/ws/-/ws-7.5.0/0033bafea031fb9df041b2026fc72a571ca44691.tgz", - "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/xml-name-validator/3.0.0/__path/npm/xml-name-validator/-/xml-name-validator-3.0.0/6ae73e06de4d8c6e47f9fb181f78d648ad457c6a.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/xmlchars/2.2.0/__path/npm/xmlchars/-/xmlchars-2.2.0/060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/xtend/4.0.2/__path/npm/xtend/-/xtend-4.0.2/bb72779f5fa465186b1f438f674fa347fdb5db54.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/y18n/4.0.3/__path/npm/y18n/-/y18n-4.0.3/b5f259c82cd6e336921efd7bfd8bf560de9eeedf.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yallist/4.0.0/__path/npm/yallist/-/yallist-4.0.0/9bb92790d9c0effec63be73519e11a35019a3a72.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yaml/1.10.0/__path/npm/yaml/-/yaml-1.10.0/3b593add944876077d4d683fee01081bd9fff31e.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs/15.4.1/__path/npm/yargs/-/yargs-15.4.1/0d87a16de01aee9d8bec2bfbf74f67851730f4f8.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/emoji-regex/8.0.0/__path/npm/emoji-regex/-/emoji-regex-8.0.0/e818fd69ce5ccfcb404594f842963bf53164cc37.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/is-fullwidth-code-point/3.0.0/__path/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0/f116f8064fe90b3f7844a38997c0b75051269f1d.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/string-width/4.2.2/__path/npm/string-width/-/string-width-4.2.2/dafd4f9559a7585cfba529c6a0a4f73488ebd4c5.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs-parser/18.1.3/__path/npm/yargs-parser/-/yargs-parser-18.1.3/be68c4975c6b2abf469236b0c870362fab09a7b0.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/camelcase/5.3.1/__path/npm/camelcase/-/camelcase-5.3.1/e3c9b31569e106811df242f715725a1f4c494320.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yargs-unparser/2.0.0/__path/npm/yargs-unparser/-/yargs-unparser-2.0.0/f131f9226911ae5d9ad38c432fe809366c2325eb.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/decamelize/4.0.0/__path/npm/decamelize/-/decamelize-4.0.0/aa472d7bf660eb15f3494efd531cab7f2a709837.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yauzl/2.10.0/__path/npm/yauzl/-/yauzl-2.10.0/c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yazl": { - "version": "2.5.1", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yazl/2.5.1/__path/npm/yazl/-/yazl-2.5.1/a3d65d3dd659a5b0937850e8609f22fffa2b5c35.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://enzuo-npm.pkg.coding.net/blog/public/__tarballs/yocto-queue/0.1.0/__path/npm/yocto-queue/-/yocto-queue-0.1.0/0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json index b18d1a30..ceadaa74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nocalhost", - "version": "0.6.14", + "version": "0.6.10", "displayName": "Nocalhost", "description": "Makes developing with Kubernetes feel like on local. IDE tool for cloud-native development", "license": "Apache-2.0", @@ -36,7 +36,7 @@ "main": "./dist/extension.js", "nhctl": { "serverVersion": "0.4.7", - "version": "0.6.1" + "version": "0.6.13" }, "contributes": { "configuration": [ @@ -599,7 +599,7 @@ "vscode:uninstall": "node ./dist/cleanup.js", "ts-compile-check": "tsc --noEmit -p src/main", "compile": "webpack --devtool nosources-source-map --config ./build/webpack.config.js", - "watch": "webpack --watch --devtool nosources-source-map --info-verbosity verbose --config ./build/webpack.config.js", + "watch": "webpack --mode development --watch --info-verbosity verbose --config ./build/webpack.config.js", "package": "webpack --mode production --config ./build/webpack.config.js", "lint": "eslint src --ext ts", "prettier": "prettier --write \"./**/*@(.js|.jsx|.ts|.tsx|.json)\"", diff --git a/src/main/clusters/LocalCuster.ts b/src/main/clusters/LocalCuster.ts index 9556d778..45e934ba 100644 --- a/src/main/clusters/LocalCuster.ts +++ b/src/main/clusters/LocalCuster.ts @@ -8,7 +8,12 @@ import { IRootNode } from "../domain"; import { IDevSpaceInfo, IV2ApplicationInfo } from "../domain"; import { getStringHash } from "../utils/common"; import * as yaml from "yaml"; -import { checkCluster, getAllNamespace, kubeconfig } from "../ctl/nhctl"; +import { + checkCluster, + getAllNamespace, + IKubeconfig, + kubeconfig, +} from "../ctl/nhctl"; import { ClusterSource } from "../common/define"; import { ClustersState } from "."; @@ -113,38 +118,37 @@ export default class LocalCluster { }; static appendLocalClusterByKubeConfig = async ( - kubeConfig: string, - contextName?: string + kubeConfig: IKubeconfig ): Promise => { const localClusterNodes = host.getGlobalState(LOCAL_PATH) || []; - const yamlObj = yamlUtils.parse(kubeConfig); - if (contextName) { - yamlObj["current-context"] = contextName; - } - const yamlStr = yamlUtils.stringify(yamlObj); - if (!fs.existsSync(KUBE_CONFIG_DIR)) { - fs.mkdirSync(KUBE_CONFIG_DIR); - } + const yamlStr = yamlUtils.stringify(kubeConfig); + const hash = getStringHash(yamlStr.trim()); const resultFilePath = path.resolve(KUBE_CONFIG_DIR, hash); - const state = await checkCluster(resultFilePath); - - const newCluster = new LocalClusterNode( - resultFilePath, - hash, - Date.now(), - state - ); - if ( !localClusterNodes.find( (it: LocalClusterNode) => it.filePath === resultFilePath ) ) { + if (!fs.existsSync(KUBE_CONFIG_DIR)) { + fs.mkdirSync(KUBE_CONFIG_DIR); + } + writeFileAsync(resultFilePath, yamlStr); + + const state = await checkCluster(resultFilePath); + + const newCluster = new LocalClusterNode( + resultFilePath, + hash, + Date.now(), + state + ); + localClusterNodes.push(newCluster); + host.setGlobalState(LOCAL_PATH, localClusterNodes); await kubeconfig(resultFilePath, "add"); @@ -153,6 +157,7 @@ export default class LocalCluster { } else { host.log(`The cluster already exists`, true); } + return null; }; } diff --git a/src/main/constants.ts b/src/main/constants.ts index a86eb0b2..afb5062c 100644 --- a/src/main/constants.ts +++ b/src/main/constants.ts @@ -1,6 +1,8 @@ import { homedir, tmpdir } from "os"; import * as path from "path"; +const isWindow = require("is-windows"); + export const NOCALHOST = "Nocalhost"; export const HOME_DIR = homedir(); @@ -12,9 +14,13 @@ export const USER_CONFIG_FULLPATH = path.resolve( PLUGIN_CONFIG_DIR, "config.json" ); + export const NHCTL_DIR = path.resolve(NH_CONFIG_DIR, "nhctl"); export const NH_BIN = path.resolve(NH_CONFIG_DIR, "bin"); -export const NH_BIN_NHCTL = path.resolve(NH_BIN, "nhctl"); +export const NH_BIN_NHCTL = path.resolve( + NH_BIN, + `nhctl${isWindow() ? ".exe" : ""}` +); export const KUBE_CONFIG_DIR = path.resolve(PLUGIN_CONFIG_DIR, "kubeConfigs"); export const HELM_NH_CONFIG_DIR = path.resolve( diff --git a/src/main/ctl/nhctl/cli.ts b/src/main/ctl/nhctl/cli.ts index ed196ce2..c3eff712 100644 --- a/src/main/ctl/nhctl/cli.ts +++ b/src/main/ctl/nhctl/cli.ts @@ -8,6 +8,7 @@ import { delay } from "lodash"; import { DEV_VERSION, GLOBAL_TIMEOUT, + NH_BIN_NHCTL, PLUGIN_TEMP_DIR, TEMP_NHCTL_BIN, } from "./../../constants"; @@ -49,19 +50,17 @@ export interface AllInstallAppInfo { export class NhctlCommand { public baseCommand: string = null; private argTheTail: string = null; - public static nhctlPath: string = path.resolve( - NH_BIN, - host.isWindow() ? "nhctl.exe" : "nhctl" - ); private outputMethod: string = "toJson"; + public static nhctlPath: string = NH_BIN_NHCTL; + constructor( base: string, private baseParams?: IBaseCommand, private execParam: Omit = {}, public args: string[] = [] ) { - this.baseCommand = `${NhctlCommand.nhctlPath} ${base || ""}`; + this.baseCommand = `${NH_BIN_NHCTL} ${base || ""}`; } static create( base: string, @@ -1345,13 +1344,13 @@ export async function checkVersion() { requiredVersion ); + const isTest = + host.getContext().extensionMode === vscode.ExtensionMode.Development || + ["beta", "alpha"].find((identifier) => pluginVersion.includes(identifier)); + if ( - !getBooleanValue("nhctl.checkVersion") || - !requiredVersion || - (fs.existsSync(binPath) && - ["beta", "alpha"].find((identifier) => - pluginVersion.includes(identifier) - )) + fs.existsSync(binPath) && + (!getBooleanValue("nhctl.checkVersion") || isTest) ) { return; } @@ -1476,7 +1475,7 @@ export function nhctlCommand( namespace: string, baseCommand: string ) { - const command = `${NhctlCommand.nhctlPath} ${baseCommand} ${ + const command = `${NH_BIN_NHCTL} ${baseCommand} ${ namespace ? `-n ${namespace}` : "" } ${kubeconfigPath ? `--kubeconfig ${kubeconfigPath}` : ""}`; return command; @@ -1513,6 +1512,29 @@ export async function kubeconfig( return result; } +export async function checkKubeconfig( + kubeconfig: { str?: string; path?: string }, + context: string +) { + const { path, str } = kubeconfig; + + const args = ["-i", `-c ${context}`, "--kubeconfig", str ? "-" : path]; + + const { promise, proc } = await exec({ + command: `${NH_BIN_NHCTL} kubeconfig check`, + args: args, + }); + + if (str) { + proc.stdin.write(str); + proc.stdin.end(); + } + + const { stdout } = await promise; + + return JSON.parse(stdout)[0]; +} + export async function devTerminal( appName: string, workloadName: string, @@ -1537,7 +1559,7 @@ export async function devTerminal( } const terminal = host.createTerminal({ - shellPath: NhctlCommand.nhctlPath, + shellPath: NH_BIN_NHCTL, shellArgs, name: `${appName}-${workloadName}`, iconPath: { diff --git a/src/main/ctl/nhctl/type.ts b/src/main/ctl/nhctl/type.ts index 07f32adc..86d23df3 100644 --- a/src/main/ctl/nhctl/type.ts +++ b/src/main/ctl/nhctl/type.ts @@ -44,3 +44,8 @@ export interface IPortForward { svcName: string; updated: string; } + +export interface IKubeconfig { + contexts: Array<{ name: string; context: { namespace: string } }>; + "current-context": string; +} diff --git a/src/main/extension.ts b/src/main/extension.ts index 5d85df57..c2357d98 100644 --- a/src/main/extension.ts +++ b/src/main/extension.ts @@ -69,10 +69,7 @@ export async function activate(context: vscode.ExtensionContext) { // TODO: DO NOT DELETE, FOR: [webview integration] // const dataCenter: DataCenter = DataCenter.getInstance(); // dataCenter.addListener(() => appTreeProvider.refresh()); - let homeWebViewProvider = new HomeWebViewProvider( - context.extensionUri, - appTreeProvider - ); + let homeWebViewProvider = new HomeWebViewProvider(context.extensionUri); context.subscriptions.push( vscode.window.registerWebviewViewProvider( diff --git a/src/main/tsconfig.json b/src/main/tsconfig.json index b7ee6834..dda1f661 100644 --- a/src/main/tsconfig.json +++ b/src/main/tsconfig.json @@ -6,7 +6,7 @@ "target": "es6", "experimentalDecorators": true, "strictNullChecks": false, - "rootDir": "./", + "rootDir": "../../", "lib": ["es6"], "sourceMap": true, "strict": true /* enable all strict type-checking options */ diff --git a/src/main/utils/fileUtil.ts b/src/main/utils/fileUtil.ts index 2dfa0318..210ca053 100644 --- a/src/main/utils/fileUtil.ts +++ b/src/main/utils/fileUtil.ts @@ -1,19 +1,23 @@ import * as fs from "fs"; import * as path from "path"; -import { ColorThemeKind } from "vscode"; import * as ProperLockfile from "proper-lockfile"; import * as yaml from "yaml"; import * as vscode from "vscode"; import host from "../host"; import logger from "./logger"; +import { IKubeconfig } from "../ctl/nhctl/type"; -export function getYamlDefaultContext(yaml: any) { - const contexts = yaml.contexts || []; - const currentContext = yaml["current-context"]; - if (currentContext) { - return currentContext; +export function getKubeconfigContext( + kubeconfig: IKubeconfig, + contextName?: string +): IKubeconfig["contexts"][number] | undefined { + const contexts = kubeconfig.contexts || []; + + if (!contextName) { + contextName = kubeconfig["current-context"]; } - return contexts.length > 0 ? contexts[0].name : null; + + return contexts.find((item) => item.name === contextName); } export function readYamlSync(filePath: string) { @@ -33,7 +37,7 @@ export function readYamlSync(filePath: string) { } return yamlObj; } -export async function readYaml(filePath: string) { +export async function readYaml(filePath: string) { let yamlObj = null; const result = await isExist(filePath); @@ -46,7 +50,7 @@ export async function readYaml(filePath: string) { } catch (e) { logger.error(e); } - return yamlObj; + return yamlObj as T; } export async function readFile(filePath: string): Promise { diff --git a/src/main/webview/HomePage.ts b/src/main/webview/HomePage.ts index 58cd6dfb..8a1ac3b7 100644 --- a/src/main/webview/HomePage.ts +++ b/src/main/webview/HomePage.ts @@ -1,36 +1,31 @@ import * as vscode from "vscode"; -import * as yamlUtils from "yaml"; import * as os from "os"; import * as path from "path"; -import NocalhostAppProvider from "../appProvider"; +import * as yaml from "yaml"; +import assert = require("assert"); +import { isObject } from "lodash"; + import { SIGN_IN } from "../commands/constants"; import { NocalhostRootNode } from "../nodes/NocalhostRootNode"; import { LocalCluster } from "../clusters"; import host from "../host"; -import { readYaml, readFile, getYamlDefaultContext } from "../utils/fileUtil"; +import { readYaml } from "../utils/fileUtil"; import state from "../state"; import { NOCALHOST } from "../constants"; +import { checkKubeconfig, IKubeconfig } from "../ctl/nhctl"; +import logger from "../utils/logger"; export class HomeWebViewProvider implements vscode.WebviewViewProvider { public static readonly viewType = "Nocalhost.Home"; - private _view?: vscode.WebviewView; - private appTreeProvider: NocalhostAppProvider; - constructor( - private readonly _extensionUri: vscode.Uri, - appTreeProvider: NocalhostAppProvider - ) { - this.appTreeProvider = appTreeProvider; - } + constructor(private readonly _extensionUri: vscode.Uri) {} - public resolveWebviewView( + resolveWebviewView( webviewView: vscode.WebviewView, - context: vscode.WebviewViewResolveContext, + _: vscode.WebviewViewResolveContext, _token: vscode.CancellationToken ) { - this._view = webviewView; - webviewView.webview.options = { // Allow scripts in the webview enableScripts: true, @@ -39,88 +34,159 @@ export class HomeWebViewProvider implements vscode.WebviewViewProvider { }; webviewView.webview.html = this._getHtmlForWebview(webviewView.webview); - webviewView.webview.onDidReceiveMessage(async (data) => { - switch (data.type) { - case "connectServer": { - vscode.commands.executeCommand(SIGN_IN, data.data); - break; - } - case "selectKubeConfig": { - const kubeConfigUri = await host.showSelectFileDialog( - "select your kubeConfig" - ); - if (!kubeConfigUri || kubeConfigUri.length < 1) { - return; + webviewView.webview.onDidReceiveMessage( + async (data: { data: any; type: string }) => { + const { type } = data; + + switch (type) { + case "connectServer": { + vscode.commands.executeCommand(SIGN_IN, data.data); + break; } - const filePath = kubeConfigUri[0].fsPath; - const yaml = await readYaml(filePath); - const contexts = yaml.contexts || []; - webviewView.webview.postMessage({ - type: "kubeConfig", - payload: { - path: filePath, - currentContext: getYamlDefaultContext(yaml), - contexts, - }, - }); - break; - } - case "initKubePath": { - const homeDir = os.homedir(); - try { - const defaultKubePath = path.resolve(homeDir, ".kube", "config"); - const yaml = await readYaml(defaultKubePath); - if (!yaml) { - break; + case "parseKubeConfig": + case "selectKubeConfig": { + const payload = data.data ?? {}; + let { strKubeconfig, path: localPath } = payload; + + if (type === "selectKubeConfig" && !localPath) { + const kubeConfigUri = await host.showSelectFileDialog( + "select your kubeConfig" + ); + if (!kubeConfigUri || kubeConfigUri.length < 1) { + return; + } + localPath = kubeConfigUri[0].fsPath; } - const contexts = yaml.contexts || []; + + const { kubeconfig } = await this.getKubeconfig({ + path: localPath, + strKubeconfig, + }); + webviewView.webview.postMessage({ - type: "initKubePath-response", + type, payload: { - defaultKubePath, - contexts, - currentContext: getYamlDefaultContext(yaml), + ...payload, + path: localPath, + strKubeconfig, + kubeconfig, }, }); break; - } catch (e) { - break; } - } - case "local": { - host.showProgressing("Adding ...", async () => { - const localData = data.data; - - const { localPath, kubeConfig, contextName } = localData; - - let newLocalCluster = null; - if (localPath) { - const str = await readFile(localPath); - newLocalCluster = await LocalCluster.appendLocalClusterByKubeConfig( - str, - contextName - ); + case "initKubePath": { + const payload = data.data ?? {}; + + let { path: defaultKubePath } = payload; + + let kubeconfig: IKubeconfig; + if (defaultKubePath) { + kubeconfig = await readYaml(defaultKubePath); + } else { + defaultKubePath = path.resolve(os.homedir(), ".kube", "config"); + kubeconfig = await readYaml(defaultKubePath); } - if (kubeConfig) { - newLocalCluster = await LocalCluster.appendLocalClusterByKubeConfig( - kubeConfig + + webviewView.webview.postMessage({ + type, + payload: { + ...payload, + path: defaultKubePath, + kubeconfig, + }, + }); + break; + } + case "checkKubeconfig": + this.checkKubeconfig(type, data.data, webviewView); + break; + + case "local": { + host.showProgressing("Adding ...", async () => { + let { kubeconfig } = await this.getKubeconfig(data.data); + + let newLocalCluster = await LocalCluster.appendLocalClusterByKubeConfig( + kubeconfig ); - } - if (newLocalCluster) { - await LocalCluster.getLocalClusterRootNode(newLocalCluster); - const node = state.getNode(NOCALHOST) as NocalhostRootNode; + if (newLocalCluster) { + await LocalCluster.getLocalClusterRootNode(newLocalCluster); - node && (await node.addCluster(newLocalCluster)); - } + const node = state.getNode(NOCALHOST) as NocalhostRootNode; + + node && (await node.addCluster(newLocalCluster)); + + await state.refreshTree(true); + + vscode.window.showInformationMessage("Success"); + } + }); + break; + } + } + } + ); + } + private async getKubeconfig(data: { + currentContext?: string; + strKubeconfig?: string; + namespace?: string; + path?: string; + }) { + const { path, strKubeconfig, currentContext, namespace } = data; + let kubeconfig: IKubeconfig; + + if (path) { + kubeconfig = await readYaml(path); + } else if (strKubeconfig) { + try { + kubeconfig = yaml.parse(strKubeconfig); + } catch (error) { + logger.error("checkKubeconfig yaml parse", error); + } + } - await state.refreshTree(true); + if (kubeconfig) { + if (namespace) { + const context = kubeconfig.contexts?.find( + (context) => context.name === currentContext + )?.context; - vscode.window.showInformationMessage("Success"); - }); - break; + if (context) { + context.namespace = namespace; } } + if (currentContext) { + kubeconfig["current-context"] = currentContext; + } + } + + return { kubeconfig, currentContext, namespace, path, strKubeconfig }; + } + + private async checkKubeconfig( + type: string, + data: any, + webviewView: vscode.WebviewView + ) { + let { + kubeconfig, + currentContext, + path, + strKubeconfig, + } = await this.getKubeconfig(data); + + let str: string = strKubeconfig; + + if (kubeconfig) { + str = yaml.stringify(kubeconfig); + } + + let payload = await checkKubeconfig({ path, str }, currentContext); + + webviewView.webview.postMessage({ + type, + payload, }); } diff --git a/src/renderer/Home.tsx b/src/renderer/Home.tsx index 7ec8d873..fb343167 100644 --- a/src/renderer/Home.tsx +++ b/src/renderer/Home.tsx @@ -1,26 +1,10 @@ -import React, { useState, useEffect } from "react"; -import FolderOpenIcon from "@material-ui/icons/FolderOpen"; -import RemoveCircleIcon from "@material-ui/icons/RemoveCircle"; -import Tabs from "@material-ui/core/Tabs"; -import Tab from "@material-ui/core/Tab"; +import React, { useState } from "react"; import NocalHostTab from "./components/Tab"; -import BottomNavigation from "@material-ui/core/BottomNavigation"; -import BottomNavigationAction from "@material-ui/core/BottomNavigationAction"; -import * as yaml from "yaml"; -import { makeStyles } from "@material-ui/core"; -import { postMessage, vscode } from "./utils/index"; +import { getState, setState } from "./utils/index"; import TabPanel from "./components/TabPanel"; import LocalKubeConfig from "./components/LocalKubeConfig"; import NocalHostServer from "./components/NocalHostServer"; import i18n from "./i18n"; -// const useStyles = makeStyles({ -// localToggle: { -// height: 35, -// }, -// kubeconfigToggle: { -// fontSize: 10, -// }, -// }); const options = [ { @@ -33,23 +17,16 @@ const options = [ }, ]; +const STATE_KEY = "navTab"; + export default function Home() { - const oldState = vscode.getState() || { - username: "", - password: "", - baseUrl: "", - navTab: 0, - localPaths: [], - kubeConfigs: [], - }; - const [navTab, setNavTab] = useState(oldState.navTab || "local"); + const [navTab, setNavTab] = useState( + getState(STATE_KEY) || "local" + ); const handleChange = (newValue: string) => { - vscode.setState({ - ...oldState, - navTab: newValue, - }); setNavTab(newValue); + setState(STATE_KEY, newValue); }; return ( @@ -63,10 +40,10 @@ export default function Home() { /> - + - + ); diff --git a/src/renderer/components/KubeConfigAsText/KubeConfigAsText.tsx b/src/renderer/components/KubeConfigAsText/KubeConfigAsText.tsx deleted file mode 100644 index 88d0dca4..00000000 --- a/src/renderer/components/KubeConfigAsText/KubeConfigAsText.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React from "react"; -import * as yaml from "yaml"; -import { postMessage } from "../../utils/index"; -import Select from "../Select"; - -interface IKubeConfigAsTextProps { - contextValue: string; - value: string; - onSubmit: (kubeConfigs: string) => void; - onChangeContextValue: (v: string) => void; - onChangeKubeConfig: (v: string) => void; -} - -const KubeConfigAsText: React.FC = (props) => { - const { - value, - onSubmit, - contextValue, - onChangeContextValue, - onChangeKubeConfig, - } = props; - const options = React.useMemo(() => { - if (!value) { - return; - } - try { - const kubeObj = yaml.parse(value); - const opts = (kubeObj.contexts || []).map((it: { name: string }) => ({ - label: it.name, - value: it.name, - })); - const defaultContext = opts.length > 0 ? opts[0].value : null; - let hasUpdateContext = true; - if (contextValue) { - hasUpdateContext = !Boolean( - opts.find( - (it: { label: string; value: string }) => it.value === contextValue - ) - ); - } - if (hasUpdateContext) { - onChangeContextValue(kubeObj["current-context"] || defaultContext); - } - - return opts; - } catch (e) { - return []; - } - }, [value]); - function submit() { - if (!value || !contextValue) { - return; - } - const kubeObj = yaml.parse(value); - kubeObj["current-context"] = contextValue; - onSubmit(yaml.stringify(kubeObj)); - } - return ( -
- -