From 04f4d5274dda641aa9691a2a080f16dcf881e1ed Mon Sep 17 00:00:00 2001
From: Nick O'Leary Erro ao adicionar fluxos __message__ Fluxos parados devido a tipos de nós ausentes. Os fluxos pararam devido à falta de módulos. Fluxos parados no modo de segurança. Você pode modificar seus fluxos e implementar as mudanças para reiniciar. Os fluxos pararam porque as credenciais não puderam ser descriptografadas. O arquivo de credencial de fluxo está criptografado, mas a chave de criptografia do projeto está ausente ou é inválida. As credenciais não puderam ser descriptografadas O arquivo de credencial do fluxo está criptografado, mas a chave de criptografia do projeto está ausente ou é inválida. O arquivo de credencial de fluxo será redefinido na próxima implantação. Todas as credenciais de fluxo existentes serão apagadas. Arquivo de fluxo de projeto não encontrado. O projeto não está configurado com um arquivo de fluxo. Arquivo de pacote de projeto não encontrado. O projeto está sem um arquivo package.json. O projeto está vazio. Você deseja criar um conjunto padrão de arquivos de projeto? Projeto '__project__' não encontrado. A mesclagem automática de alterações falhou. Corrija os conflitos não mesclados e confirme os resultados. Usando uma versão não suportada do Node.js Você deve atualizar para a versão mais recente do Node.js LTS Falha ao carregar '__module__' __error__ Nós importados sem um ID de fluxo válido Eles foram adicionados a um novo fluxo chamado '__flowName__'. \"__file__\" já existe. Deseja substituir? Este módulo não pode ser instalado porque inclui um Conflitos com Falha ao carregar o catálogo de nós. Verifique o console do navegador para obter mais informações Falha ao instalar: __module__ __message__ Verifique o log para obter mais informações Falha ao remover: __module__ __message__ Verifique o log para obter mais informações Falha ao atualizar: __module__ __message__ Verifique o log para obter mais informações Falha ao ativar: __module__ __message__ Verifique o log para obter mais informações Falha ao desativar: __module__ __message__ Verifique o log para obter mais informações Instalando '__module__' Antes de instalar, leia a documentação do nó. Alguns nós têm dependências que não podem ser resolvidas automaticamente e podem exigir a reinicialização do Node-RED. Remover '__module__' Remover o nó irá desinstalá-lo do Node-RED. O nó pode continuar a usar recursos até que o Node-RED seja reiniciado. Atualizar '__module__' Atualizar o nó exigirá a reinicialização do Node-RED para concluir a atualização. Isso deve ser feito manualmente. Incapaz de puxar as alterações remotas; suas alterações locais não realizadas seriam sobrescritas. Cometa suas alterações e tente novamente. O remoto tem um histórico não relacionado de cometimentos. Tem certeza que deseja puxar as mudanças para o seu repositório local? A expressão atual parece ainda fazer referência a Quando o suporte JSONata foi adicionado pela primeira vez ao Node-RED, era necessária a expressão para fazer referência ao objeto Isso não é mais necessário, pois a expressão será avaliada em relação à mensagem diretamente. Para acessar a carga útil, a expressão deve ser apenas O tipo de armazenamento temporário é armazenado como uma matriz JSON de valores de bytes. O editor tentará analisar o valor inserido como uma matriz JSON. Se não for um JSON válido, será tratada como uma cadeia de caracteres UTF-8 e convertida em uma matriz de pontos de código de caractere individual. Por exemplo, um valor de
Caso contrário, você terá que adicionar arquivos manualmente ao projeto fora do editor.
"
+ },
+ "editor": {
+ "title": "Gerenciar paleta",
+ "palette": "Paleta",
+ "times": {
+ "seconds": "segundos atrás",
+ "minutes": "minutos atrás",
+ "minutesV": "__count__ minutos atrás",
+ "hoursV": "__count__ hora atrás",
+ "hoursV_plural": "__count__ horas atrás",
+ "daysV": "__count__ dia atrás",
+ "daysV_plural": "__count__ dias atrás",
+ "weeksV": "__count__ semana atrás",
+ "weeksV_plural": "__count__ semanas atrás",
+ "monthsV": "__count__ mês atrás",
+ "monthsV_plural": "__count__ meses atrás",
+ "yearsV": "__count__ ano atrás",
+ "yearsV_plural": "__count__ anos atrás",
+ "yearMonthsV": "__y__ ano, __count__ mês atrás",
+ "yearMonthsV_plural": "__y__ ano, __count__ meses atrás",
+ "yearsMonthsV": "__y__ anos, __count__ mês atrás",
+ "yearsMonthsV_plural": "__y__ anos, __count__ meses atrás"
+ },
+ "nodeCount": "__label__ node",
+ "nodeCount_plural": "__label__ nodes",
+ "moduleCount": "módulo __count__ disponível",
+ "moduleCount_plural": "__count__ módulos disponíveis",
+ "inuse": "em uso",
+ "enableall": "habilitar todos",
+ "disableall": "desabilitar todos",
+ "enable": "habilitar",
+ "disable": "desabilitar",
+ "remove": "remover",
+ "update": "atualizar para __version__",
+ "updated": "atualizado",
+ "install": "instalar",
+ "installed": "instalado",
+ "conflict": "conflito",
+ "conflictTip": "
__error__
tipo de nó que já foi instalado __module__
Consulte a documentação para saber como atualizar este nó."
+ },
+ "button": {
+ "review": "Abrir informação do nó",
+ "install": "Instalar",
+ "remove": "Remover",
+ "update": "Atualizar"
+ }
+ }
+ }
+ },
+ "sidebar": {
+ "info": {
+ "name": "Informação",
+ "tabName": "Nome",
+ "label": "informações",
+ "node": "Nó",
+ "type": "Tipo",
+ "group": "Grupo",
+ "module": "Módulo",
+ "id": "ID",
+ "status": "Estado",
+ "enabled": "Habilitado",
+ "disabled": "Desabilitado",
+ "subflow": "Subfluxo",
+ "instances": "Instâncias",
+ "properties": "Propriedades",
+ "info": "Informação",
+ "desc": "Descrição",
+ "blank": "branco",
+ "null": "nulo",
+ "showMore": "mostrar mais",
+ "showLess": "mostrar menos",
+ "flow": "Fluxo",
+ "selection": "Seleção",
+ "nodes": "__count__ nós",
+ "flowDesc": "Descrição do Fluxo",
+ "subflowDesc": "Descrição do Subfluxo",
+ "nodeHelp": "Ajuda do Nó",
+ "none": "Nenhum",
+ "arrayItems": "__count__ items",
+ "showTips": "Você pode abrir as dicas a partir do painel de configurações",
+ "outline": "Contorno",
+ "empty": "vazio",
+ "globalConfig": "Nós de configuração global",
+ "triggerAction": "Ação de gatilho",
+ "find": "Encontre no espaço de trabalho",
+ },
+ "help": {
+ "name": "Ajuda",
+ "label": "ajuda",
+ "search": "Ajuda sobre a procura",
+ "nodeHelp": "Ajuda sobre o nó",
+ "showHelp": "Mostrar ajuda",
+ "showInOutline": "Mostrar no contorno",
+ "showTopics": "Mostrar tópicos",
+ "noHelp": "Nenhum tópico de ajuda selecionado",
+ "changeLog": "Log de alteração"
+ },
+ "config": {
+ "name": "Configuração dos nós",
+ "label": "configuração",
+ "global": "Em todos os fluxos",
+ "none": "nenhum",
+ "subfluxo": "subfluxos",
+ "flows": "fluxos",
+ "filterAll": "todos",
+ "showAllConfigNodes": "Ver todas as configurações dos nós",
+ "filterUnused": "não utilizados",
+ "showAllUnusedConfigNodes": "Mostrar todas os nós de configuração não usados",
+ "filtered": "__count__ hidden"
+ },
+ "context": {
+ "name": "Contexto dos Dados",
+ "label": "contexto",
+ "none": "nenhum selecionado",
+ "refresh": "atualize para carregar",
+ "empty": "vazio",
+ "node": "Nó",
+ "flow": "Fluxo",
+ "global": "Global",
+ "deleteConfirm": "Você tem certeza que deseja remover este item?",
+ "autoRefresh": "Atualizar na mudança de seleção",
+ "refrsh": "Atualizar",
+ "delete": "Remover"
+ },
+ "palette": {
+ "name": "Gerenciamento de paleta",
+ "label": "paleta"
+ },
+ "project": {
+ "label": "projeto",
+ "name": "Projeto",
+ "description": "Descrição",
+ "dependencies": "Dependências",
+ "settings": "Configurações",
+ "noSummaryAvailable": "Nenhum resumo disponível",
+ "editDescription": "Editar a descrição do projeto",
+ "editDependencies": "Editar dependências do projeto",
+ "noDescriptionAvailable": "Descrição não disponível",
+ "editReadme": "Editar README.md",
+ "showProjectSettings": "Mostrar configurações do projeto",
+ "projectSettings": {
+ "title": "Configurações do Projeto",
+ "edit": "editar",
+ "none": "Nenhum",
+ "install": "instalar",
+ "removeFromProject": "remover do projeto",
+ "addToProject": "adicionar ao projeto",
+ "files": "Arquivos",
+ "flow": "Fluxos",
+ "credentials": "Credenciais",
+ "package": "Pacote",
+ "packageCreate": "O arquivo será criado quando as alterações forem salvas",
+ "fileNotExist": "Arquivo não existe",
+ "selectFile": "Selecione o arquivo",
+ "invalidEncryptionKey": "Chave de criptografia inválida",
+ "encryptionEnabled": "Criptografia habilitada",
+ "encryptionDisabled": "Criptografia desabilitada",
+ "setTheEncryptionKey": "Defina a chave de criptografia",
+ "resetTheEncryptionKey": "Redefina a chave de criptografia",
+ "changeTheEncryptionKey": "Troque a chave de criptografia",
+ "currentKey": "Chave atual",
+ "newKey": "Nova chave",
+ "credentialsAlert": "Isso excluirá todas as credenciais existentes",
+ "versionControl": "Controle de versão",
+ "branches": "Ramos",
+ "noBranches": "Sem ramos",
+ "deleteConfirm": "Tem certeza de que deseja excluir o ramo local '__name__'? Isto não pode ser desfeito.",
+ "unmergedConfirm": "O ramo local '__name__' tem alterações não mescladas que serão perdidas. Tem certeza que deseja excluir?",
+ "deleteUnmergedBranch": "Excluir ramo não mesclado",
+ "gitRemotes": "Git remoto",
+ "addRemote": "adicionar remoto",
+ "addRemote2": "Adicionar remoto",
+ "remoteName": "Nome do remoto",
+ "nameRule": "Deve conter apenas A-Z 0-9 _ -",
+ "url": "URL",
+ "urlRule": "https://, ssh:// ou file://",
+ "urlRule2": "Não inclua o nome de usuário / senha na URL",
+ "noRemotes": "Sem remotos",
+ "deleteRemoteConfrim": "Tem certeza de que deseja excluir o remoto '__name__'?",
+ "deleteRemote": "Excluir remoto"
+ },
+ "userSettings": {
+ "committerDetail": "Detalhes do Cometedor",
+ "committerTip": "Deixe em branco para usar o padrão do sistema",
+ "userName": "Nome de usuário",
+ "email": "Email",
+ "workflow": "Fluxo de trabalho",
+ "workfowTip": "Escolha seu fluxo de trabalho git preferido",
+ "workflowManual": "Manual",
+ "workflowManualTip": "Todas as alterações devem ser confirmadas manualmente na barra lateral 'histórico'",
+ "workflowAuto": "Automático",
+ "workflowAutoTip": "As alterações são confirmadas automaticamente a cada implantação",
+ "sshKeys": "Chaves SSH",
+ "sshKeysTip": "Permite que você crie conexões seguras para repositórios git remotos.",
+ "add": "adicionar chave",
+ "addSshKey": "Adicionar chave SSH",
+ "addSshKeyTip": "Gerar um novo par de chaves públicas / privadas",
+ "name": "Nome",
+ "nameRule": "Deve conter apenas A-Z 0-9 _ -",
+ "passphrase": "Frase de passe",
+ "passphraseShort": "Frase de passe muito curta",
+ "optional": "Opcional",
+ "cancel": "Cancelar",
+ "generate": "Gerar chave",
+ "noSshKeys": "Sem chaves SSH",
+ "copyPublicKey": "Copiar chave pública para a área de transferência",
+ "delete": "Excluir chave key",
+ "gitConfig": "Configuração do Git",
+ "deleteConfirm": "Tem certeza de que deseja excluir a chave SSH __name__? Isso não pode ser desfeito."
+ },
+ "versionControl": {
+ "unstagedChanges": "Alterações não realizadas",
+ "stagedChanges": "Alterações realizadas",
+ "unstageChange": "Desfazer alteração",
+ "stageChange": "Realizar alteração",
+ "unstageAllChange": "Desfazer todas as alterações",
+ "stageAllChange": "Realizar todas as alterações",
+ "commitChanges": "Cometer alterações",
+ "resolveConflicts": "Resolver conflitos",
+ "head": "CABEÇA",
+ "staged": "Alterado",
+ "unstaged": "Desfeita Alteração",
+ "local": "Local",
+ "remote": "Remoto",
+ "revert": "Tem certeza de que deseja reverter as alterações para '__file__'? Essa ação não poderá ser desfeita.",
+ "revertChanges": "Reverter alterações",
+ "localChanges": "Mudanças locais",
+ "none": "Nenhum",
+ "conflictResolve": "Todos os conflitos resolvidos. Cometa as alterações para concluir a mesclagem.",
+ "localFiles": "Arquivos locais",
+ "all": "todos",
+ "unmergedChanges": "Alterações não mescladas",
+ "abortMerge": "interromper mesclagem",
+ "commit": "cometer",
+ "changeToCommit": "Alterações para cometer",
+ "commitPlaceholder": "Digite sua mensagem de cometimento",
+ "cancelCapital": "Cancelar",
+ "commitCapital": "Cometer",
+ "commitHistory": "Histórico do cometimento",
+ "branch": "Ramo:",
+ "moreCommits": "mais cometimentos",
+ "changeLocalBranch": "Alterar ramo local",
+ "createBranchPlaceholder": "Encontrar ou criar um ramo",
+ "upstream": "subir do cliente ao servidor",
+ "localOverwrite": "Você tem alterações locais que seriam sobrescritas alterando o ramo. Você deve cometer ou desfazer essas alterações primeiro.",
+ "manageRemoteBranch": "Gerenciar ramo remoto",
+ "unableToAccess": "Incapaz de acessar o repositório remoto",
+ "retry": "Tentar novamente",
+ "setUpstreamBranch": "Definir como ramo de subida do cliente para o servidor",
+ "createRemoteBranchPlaceholder": "Encontrar ou criar um ramo remoto",
+ "trackedUpstreamBranch": "O ramo criado será definido como o ramo de subida do cliente para o servidor rastreado.",
+ "selectUpstreamBranch": "O ramo será criado. Selecione abaixo para defini-lo como o ramo de subida do cliente para o servidor rastreado.",
+ "pushFailed": "falha ao empurrar porque o remoto tem cometimentos mais recentes. Puxe e mescle primeiro, depois empurre novamente.",
+ "push": "empurrar",
+ "pull": "puxar",
+ "unablePull": " Modo de compatibilidade JSONata
msg
, então será avaliada no modo de compatibilidade. Atualize a expressão para não usar msg
, pois este modo será removido no futuro. msg
. Por exemplo, msg.payload
seria usado para acessar a carga útil. payload
. Editor de armazenamento temporário
Hello World
será convertido na matriz JSON: [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
Você tem alterações não implantadas que serão perdidas.
Deseja continuar?
" + }, + "send-req": { + "auth-req": "Autenticação necessária para repositório", + "username": "Nome do usuário", + "password": "Senha", + "passphrase": "Frase de Passe", + "retry": "Tentar novamente", + "update-failed": "Falha ao atualizar autenticação", + "unhandled": "Resposta de erro não tratada", + "host-key-verify-failed": "Falha na verificação da chave do servidor anfitrião.
A chave do servidor anfitrião do repositório não pôde ser verificada. Atualize seu arquivo known_hosts
e tente novamente.
Este nó é desconhecido para a sua instalação do Node-RED.
Se você decidir implementar com o nó neste estado, sua configuração será preservada, mas o fluxo não será iniciado até que o tipo ausente seja instalado.
Consulte a barra lateral de informações para obter mais ajuda
" + }, + "mqtt": { + "label": { + "broker": "Servidor", + "example": "por exemplo, localhost", + "output": "Saída", + "qos": "QoS", + "retain": "Reter", + "clientid": "ID do cliente", + "port": "Porta", + "keepalive": "Mantenha-se vivo", + "cleansession": "Usar sessão limpa", + "cleanstart": "Usar um começo limpo", + "use-tls": "Usar TLS", + "tls-config": "Configuração TLS", + "verify-server-cert": "Verifique o certificado do servidor", + "compatmode": "Usar suporte MQTT 3.1 legado", + "userProperties": "Propriedades do usuário", + "subscriptionIdentifier": "ID de inscrição", + "flags": "Bandeiras", + "nl": "Não receber mensagens publicadas por este cliente", + "rap": "Manter a bandeira de retenção da publicação original", + "rh": "Tratamento de mensagens retidas", + "rh0": "Enviar mensagens retidas", + "rh1": "Enviar apenas para novas assinaturas", + "rh2": "Não enviar", + "responseTopic": "Tópico de resposta", + "contentType": "Tipo de conteúdo", + "correlationData": "Dados de Correlação", + "expiry": "Expira (s)", + "sessionExpiry": "Expiração da Sessão (s)", + "topicAlias": "Apelido", + "payloadFormatIndicator": "Formato", + "payloadFormatIndicatorFalse": "bytes não especificados (padrão)", + "payloadFormatIndicatorTrue": "Mensagem codificada em UTF-8", + "protocolVersion": "Protocolo", + "protocolVersion3": "MQTT V3.1 (legado)", + "protocolVersion4": "MQTT V3.1.1", + "protocolVersion5": "MQTT V5", + "topicAliasMaximum": "Alias Max", + "maximumPacketSize": "Tamanho máximo do pacote", + "receiveMaximum": "Recebimento Máximo", + "session": "Sessão", + "delay": "Atraso", + "action": "Ação", + "staticTopic": "Assinar um tópico único", + "dynamicTopic": "Assinatura dinâmica", + "auto-connect": "Conectar automaticamente", + "auto-mode-depreciated": "Esta opção está deprecada. Favor utilizar o novo modo de auto-detecção.", + }, + "sections-label": { + "birth-message": "Mensagem enviada na conexão (mensagem de nascimento)", + "will-message": "Mensagem enviada em uma desconexão inesperada (mensagem de dever)", + "close-message": "Mensagem enviada antes de desconectar (mensagem de fechamento)" + }, + "tabs-label": { + "connection": "Conexão", + "security": "Segurança", + "messages": "Mensagens" + }, + "placeholder": { + "clientid": "Deixe em branco para geração automática", + "clientid-nonclean": "Deve ser definido para sessões não limpas", + "will-topic": "Deixe em branco para desativar a mensagem de dever", + "birth-topic": "Deixe em branco para desativar a mensagem de nascimento", + "close-topic": "Deixe em branco para desativar a mensagem de fechamento" + }, + "state": { + "connected": "Conectado ao negociante: _ broker _", + "disconnected": "Desconectado do negociante: _ broker _", + "connect-failed": "Falha na conexão com o negociante: __broker__", + "broker-disconnected": "Cliente de negociante __broker__ desconectado: __reasonCode__ __reasonString__" + }, + "retain": "Reter", + "output": { + "buffer": "um armazenamento temporário", + "string": "uma cadeia de caracteres", + "base64": "uma cadeia de caracteres codificada em Base64", + "auto": "detecção automática (cadeia de caracteres ou armazenamento temporário)", + "auto-detect": "auto-detecção(objeto JSON, cadeia de caracteres ou armazenamento temporário analisados sintaticamente)", + "json": "um objeto JSON analisado sintaticamente" + }, + "true": "verdadeiro", + "false": "falso", + "tip": "Dica: deixe o tópico, qos ou retenha em branco se quiser defini-los por meio das propriedades da mensagem.", + "errors": { + "not-defined": "tópico não definido", + "missing-config": "configuração do corretor ausente", + "invalid-topic": "Tópico inválido especificado", + "nonclean-missingclientid": "Nenhum ID de cliente definido, usando sessão limpa", + "invalid-json-string": "Cadeia de caracteres JSON inválida", + "invalid-json-parse": "Falha ao analisar a cadeia de caracteres JSON", + "invalid-action-action": "ação inválida especificada", + "invalid-action-alreadyconnected": "Desconectado do agente antes de estar conectado", + "invalid-action-badsubscription": "msg.topic não encontrado ou inválido", + "invalid-client-id": "Faltando ID do cliente" + } + }, + "httpin": { + "label": { + "method": "Método", + "url": "URL", + "doc": "Documentos", + "return": "Retorno", + "upload": "Aceitar Subir arquivos?", + "status": "Código de estado", + "headers": "Cabeçalhos", + "other": "outro", + "paytoqs" : { + "ignore": "Ignorar", + "query": "Anexar aos parâmetros da cadeia de caracteres de consulta", + "body": "Enviar como corpo de pedido" + }, + "utf8String": "cadeia de caracteres UTF8", + "binaryBuffer": "armazenamento temporário binário", + "jsonObject": "objeto JSON analisado", + "authType": "Tipo", + "bearerToken": "Ficha" + }, + "setby": "- definido por msg.method -", + "basicauth": "Usar autenticação", + "use-tls": "Ativar conexão segura (SSL / TLS)", + "tls-config": "Configuração TLS", + "basic": "autenticação básica", + "digest": "processar autenticação", + "bearer": "autenticação do portador", + "use-proxy": "Use proxy", + "persist": "Habilitar conexão mantenha-se vivo", + "proxy-config": "Configuração de proxy", + "use-proxyauth": "Usar autenticação de proxy", + "noproxy-hosts": "Ignorar servidores", + "senderr": "Somente envie respostas não-2xx para o nó de Captura", + "utf8": "uma cadeia de caracteres UTF-8", + "binary": "um armazenamento temporário binário", + "json": "um objeto JSON analisado", + "tip": { + "in": "A url será relativa a", + "res": "As mensagens enviadas para este nó tem que ser originadas a partir de um nó http input", + "req": "Dica: Se a análise sintática JSON falhar, a cadeia de caracteres coletada é retornada assim como está." + }, + "httpreq": "requisição http", + "errors": { + "not-created": "Não é possível criar o nó http-in quando o httpNodeRoot estiver definido como falso", + "missing-path": "caminho ausente", + "no-response": "Objeto sem resposta", + "json-error": "Erro de análise sintática JSON", + "no-url": "Nenhuma url especificada", + "deprecated-call": "Chamada obsoleta para __method__", + "invalid-transport": "transporte não-http solicitado", + "timeout-isnan": "O valor do tempo de expiração não é um número válido, ignorando", + "timeout-isnegative": "O valor do tempo de expiração é negativo, ignorando", + "invalid-payload": "carga útil inválida", + "invalid-url": "URL inválida" + }, + "status": { + "requesting": "solicitando" + } + }, + "websocket": { + "label": { + "type": "Tipo", + "path": "Caminho", + "url": "URL", + "subprotocol": "Subprotocolo" + }, + "listenon": "Ouvir em", + "connectto": "Conectar-se a", + "sendrec": "Enviar/Receber", + "payload": "carga útil", + "message": "mensagem inteira", + "sendheartbeat": "Enviar batida de coração", + "tip": { + "path1": "Por padrão, acarga útil
conterá os dados a serem enviados ou recebidos de um websocket. O ouvinte pode ser configurado para enviar ou receber todo o objeto de mensagem como uma cadeia de caracteres formatada em JSON.",
+ "path2": "Este caminho será relativo a __path__
.",
+ "url1": "A URL deve usar o esquema ws:// ou wss:// e apontar para um ouvinte de websocket existente.",
+ "url2": "Por padrão, carga útil
conterá os dados a serem enviados ou recebidos de um websocket. O cliente pode ser configurado para enviar ou receber todo o objeto de mensagem como uma cadeia de caracteres formatada em JSON."
+ },
+ "status": {
+ "conectado": "conectado __count__",
+ "conectado_plural": "conectado __count__"
+ },
+ "errors": {
+ "connect-error": "Ocorreu um erro na conexão ws:",
+ "send-error": "Ocorreu um erro ao enviar:",
+ "missing-conf": "Configuração do servidor ausente",
+ "duplicate-path": "Não é possível ter dois ouvintes WebSocket no mesmo caminho: __path__",
+ "missing-server": "Configuração de servidor não encontrada",
+ "missing-client": "Configuração de cliente não encontrada"
+ }
+ },
+ "watch": {
+ "watch": "Observar",
+ "label": {
+ "files": "Arquivo(s)",
+ "recursive": "Observe os subdiretórios recursivamente"
+ },
+ "placeholder": {
+ "files": "Lista separada por vírgulas de arquivos e/ou diretórios"
+ },
+ "tip": "No Windows você deve usar barras invertidas duplas \\\\ em qualquer nome de diretório."
+ },
+ "tcpin": {
+ "label": {
+ "type": "Tipo",
+ "output": "Saída",
+ "port": "porta",
+ "host": "no servidor",
+ "payload": "carga(s) útil(eis)",
+ "delimited": "delimitado por",
+ "close-connection": "Fechar a conexão após o envio de cada mensagem?",
+ "decode-base64": "Decodificar mensagem Base64?",
+ "server": "Servidor",
+ "return": "Retornar",
+ "ms": "ms",
+ "chars": "caracteres",
+ "close": "Fechar",
+ "optional": "(opcional)",
+ "reattach": "Reanexar delimitador"
+ },
+ "type": {
+ "listen": "Ouvindo na",
+ "connect": "Conectar a",
+ "reply": "Responder ao TCP"
+ },
+ "output": {
+ "stream": "transmissão de",
+ "single": "único",
+ "buffer": "Armazenamento Temporário",
+ "string": "Cadeia de caracteres",
+ "base64": "Cadeia de caracteres Base64"
+ },
+ "return": {
+ "timeout": "após um tempo de expiração fixo de",
+ "character": "quando o caractere recebido é",
+ "number": "depois de um número fixo de caracteres",
+ "never": "nunca - mantenha a conexão aberta",
+ "immed": "imediatamente - não espere por resposta"
+ },
+ "status": {
+ "connecting": "conectando a __host __: __ port__",
+ "connected": "conectado a __host __: __ port__",
+ "listening-port": "escutando na porta __port__",
+ "stopped-listening": "parou de ouvir na porta",
+ "connection-from": "conexão de __host __: __ port__",
+ "connection-closed": "conexão fechada de __host __: __ port__",
+ "connections": "__count__ conexão",
+ "connections_plural": "__count__ conexões"
+ },
+ "errors": {
+ "connection-lost": "conexão perdida para __host __: __ port__",
+ "timeout": "tempo limite fechado porta do soquete __port__",
+ "cannot-listen": "não é possível escutar na porta __port__, erro: __error__",
+ "error": "erro: __error__",
+ "socket-error": "erro de soquete __host __: __ port__",
+ "no-host": "Servidor e/ou porta não configurada",
+ "connect-timeout": "tempo limite de conexão",
+ "connect-fail": "falha de conexão",
+ "bad-string": "falha ao converter para cadeia de caracteres",
+ "invalid-host": "Servidor inválido",
+ "invalid-port": "Porta inválida"
+ }
+ },
+ "udp": {
+ "label": {
+ "listen": "Ouvindo ao",
+ "onport": "na porta",
+ "using": "usando",
+ "output": "Saída",
+ "group": "Grupo",
+ "interface": "IF Local",
+ "send": "Enviar um",
+ "toport": "para a porta",
+ "address": "Endereço",
+ "decode-base64": "Decodificar carga útil codificada em Base64?",
+ "port": "porta"
+ },
+ "placeholder": {
+ "interface": "(opcional) interface local ou endereço para vincular a",
+ "interfaceprompt": "(opcional) interface local ou endereço para vincular a",
+ "address": "ip de destino"
+ },
+ "udpmsgs": "mensagens udp",
+ "mcmsgs": "mensagens multidifusão",
+ "udpmsg": "mensagem udp",
+ "bcmsg": "mensagem de transmissão abrangente",
+ "mcmsg": "mensagem multidifusão",
+ "output": {
+ "buffer": "um Armazenamento temporário",
+ "string": "uma Cadeia de caracteres",
+ "base64": "uma Cadeia de caracteres codificada em Base64"
+ },
+ "bind": {
+ "random": "vincular a porta local aleatória",
+ "local": "vincular à porta local",
+ "target": "vincular à porta de destino"
+ },
+ "tip": {
+ "in": "Dica: certifique-se de que seu dispositivo firewall permitirá a entrada de dados.",
+ "out": "Dica: deixe o endereço e a porta em branco se quiser definir usando msg.ip
e msg.port
.",
+ "port": "Portas já em uso:"
+ },
+ "status": {
+ "listener-at": "ouvinte udp em __host __: __ port__",
+ "mc-group": "grupo multidifusão udp __group__",
+ "listener-stopped": "ouvinte udp parado",
+ "output-stopped": "saída udp parada",
+ "mc-ready": "multidifusão udp pronto: __iface __: __ outport__ -> __host __: __ port__",
+ "bc-ready": "transmissão abrangente udp pronta: __outport__ -> __host __: __ port__",
+ "ready": "udp pronto: __outport__ -> __host __: __ port__",
+ "ready-nolocal": "udp pronto: __host __: __ port__",
+ "re-use": "udp reutilizar soquete: __outport__ -> __host __: __ port__"
+ },
+ "errors": {
+ "access-error": "Erro de acesso UDP, você pode precisar de acesso root para portas abaixo de 1024",
+ "error": "erro: __error__",
+ "bad-mcaddress": "Endereço multidifusão Ruim",
+ "interface": "Deve ser o endereço IP da interface necessária",
+ "ip-notset": "udp: endereço ip não definido",
+ "port-notset": "udp: porta não configurada",
+ "port-invalid": "udp: número da porta não é válido",
+ "alreadyused": "udp: porta __port__ já em uso",
+ "ifnotfound": "udp: interface __iface__ não encontrada",
+ "invalid-group": "grupo multidifusão inválido"
+ }
+ },
+ "switch": {
+ "switch": "interruptor",
+ "label": {
+ "property": "Propriedade",
+ "rule": "regra",
+ "repair": "recriar sequências de mensagens",
+ "value-rules": "regras de valores",
+ "sequence-rules": "regras de sequencia"
+ },
+ "previous": "valor anterior",
+ "and": "e",
+ "checkall": "checando todas as regras",
+ "stopfirst": "parando após a primeira correspondência",
+ "ignorecase": "ignorar caso",
+ "rules": {
+ "btwn": "está entre",
+ "cont": "contém",
+ "regex": "corresponde a regex",
+ "true": "é verdadeiro",
+ "false": "é falso",
+ "null": "é nulo",
+ "nnull": "não é nulo",
+ "istype": "é do tipo",
+ "empty": "está vazio",
+ "nempty": "não está vazio",
+ "head": "topo",
+ "tail": "final",
+ "index": "índice entre",
+ "exp": "JSONata exp",
+ "else": "caso contrário",
+ "hask": "tem chave"
+ },
+ "errors": {
+ "invalid-expr": "Expressão JSONata inválida: __error__",
+ "too-many": "muitas mensagens pendentes no nó interruptor"
+ }
+ },
+ "change": {
+ "label": {
+ "rules": "Regras",
+ "rule": "regra",
+ "set": "definir __property__",
+ "change": "alterar __property__",
+ "delete": "apagar __property__",
+ "move": "mover __property__",
+ "changeCount": "alterar: __count__ regras",
+ "regex": "Use expressões regulares",
+ "deepCopy": "Valor de copia profunda"
+ },
+ "action": {
+ "set": "Definir",
+ "change": "Mudar",
+ "delete": "Apagar",
+ "move": "Mover",
+ "toValue": "para o valor",
+ "to": "para",
+ "search": "Procurar por",
+ "replace": "Substituir por"
+ },
+ "errors": {
+ "invalid-from": "Propriedade 'from' inválida: __error__",
+ "invalid-json": "Propriedade 'to' JSON inválida",
+ "invalid-expr": "Expressão JSONata inválida: __error__",
+ "no-override": "Não é possível definir a propriedade do tipo não objeto: __property__",
+ "invalid-prop": "expressão de propriedade inválida: __property__",
+ "invalid-json-data": " Dados JSON inválidos: __error__"
+ }
+ },
+ "range": {
+ "range": "alcance",
+ "label": {
+ "action": "Ação",
+ "inputrange": "Mapeie o intervalo de entrada",
+ "resultrange": "para o intervalo alvo",
+ "from": "de",
+ "to": "para",
+ "roundresult": "Arredonda o resultado para o número inteiro mais próximo?",
+ "minin": "entrada de",
+ "maxin": "entrada para",
+ "minout": "destino de",
+ "maxout": "destino para"
+ },
+ "placeholder": {
+ "min": "ex: 0",
+ "maxin": "ex: 99",
+ "maxout": "ex: 255"
+ },
+ "scale": {
+ "payload": "Dimensione a propriedade da mensagem",
+ "limit": "Escala e limite para o intervalo desejado",
+ "wrap": "Escala e quebra dentro do intervalo desejado"
+ },
+ "tip": "Dica: Este nó SOMENTE funciona com números.",
+ "errors": {
+ "notnumber": "Não é um número"
+ }
+ },
+ "csv": {
+ "label": {
+ "columns": "Colunas",
+ "separator": "Separador",
+ "c2o": "opções CSV para objeto",
+ "o2c": "opções Objeto para CSV",
+ "input": "Entrada",
+ "skip-s": "Pular primeiro",
+ "skip-e": "linhas",
+ "firstrow": "a primeira linha contém os nomes das colunas",
+ "output": "Saída",
+ "includerow": "incluir linha de nome de coluna",
+ "newline": "Nova linha",
+ "usestrings": "analise sintática de valores numéricos",
+ "include_empty_strings": "incluir cadeia de caracteres vazias",
+ "include_null_values": "incluir valores nulos"
+ },
+ "placeholder": {
+ "columns": "nomes de colunas separados por vírgulas"
+ },
+ "separator": {
+ "comma": "vírgula",
+ "tab": "tabulação",
+ "space": "espaço",
+ "semicolon": "ponto e vírgula",
+ "colon": "dois pontos",
+ "hashtag": "tralha",
+ "other": "outro..."
+ },
+ "output": {
+ "row": "uma mensagem por linha",
+ "array": "uma única mensagem [matriz]"
+ },
+ "newline": {
+ "linux": "Linux (\\n)",
+ "mac": "Mac (\\r)",
+ "windows": "Windows (\\r\\n)"
+ },
+ "hdrout": {
+ "none": "nunca enviar cabeçalhos de coluna",
+ "all": "sempre enviar cabeçalhos de coluna",
+ "once": "envia cabeçalhos uma vez, até msg.reset"
+ },
+ "errors": {
+ "csv_js": "Este nó lida apenas com cadeia de caracteres CSV ou objetos js.",
+ "obj_csv": "Nenhum modelo de colunas especificado para o objeto -> CSV.",
+ "bad_csv": "Dados CSV malformados - saída provavelmente corrompida."
+ }
+ },
+ "html": {
+ "label": {
+ "select": "Seletor",
+ "output": "Saída",
+ "in": "entrada"
+ },
+ "output": {
+ "html": "o conteúdo HTML dos elementos",
+ "text": "apenas o conteúdo de texto dos elementos",
+ "attr": "um objeto de quaisquer atributos dos elementos"
+ },
+ "format": {
+ "single": "como uma única mensagem contendo uma matriz",
+ "multi": "como mensagens múltiplas, uma para cada elemento"
+ }
+ },
+ "json": {
+ "errors": {
+ "dropped-object": "Carga útil não objeto ignorada",
+ "dropped": "Tipo de carga útil não suportada ignorada",
+ "dropped-error": "Falha ao converter carga útil",
+ "schema-error": "Erro de esquema JSON",
+ "schema-error-compile": "Erro de esquema JSON: falha ao compilar o esquema"
+ },
+ "label": {
+ "o2j": "Objeto para opções JSON",
+ "pretty": "Formatar cadeia de caracteres JSON",
+ "action": "Ação",
+ "property": "Propriedade",
+ "actions": {
+ "toggle": "Converter entre cadeia de caracteres JSON e Objeto",
+ "str": "Sempre converter em cadeia de caracteres JSON",
+ "obj": "Sempre converter para objeto JavaScript"
+ }
+ }
+ },
+ "yaml": {
+ "errors": {
+ "dropped-object": "Carga útil não objeto ignorada",
+ "dropped": "Tipo de carga útil não suportada ignorado",
+ "dropped-error": "Falha ao converter carga útil"
+ }
+ },
+ "xml": {
+ "label": {
+ "represent": "Nome da propriedade para atributos de tag XML",
+ "prefix": "Nome da propriedade para o conteúdo do texto da tag",
+ "advanced": "Opções avançadas",
+ "x2o": "Opções de XML para objeto"
+ },
+ "errors": {
+ "xml_js": "Este nó lida apenas com cadeia de caracteres xml ou objetos js."
+ }
+ },
+ "file": {
+ "label": {
+ "write": "escrever arquivo",
+ "read": "ler arquivo",
+ "filename": "Nome do arquivo",
+ "path": "caminho",
+ "action": "Ação",
+ "addnewline": "Adicionar nova linha (\\n) a cada carga útil?",
+ "createdir": "Criar diretório se não existir?",
+ "outputas": "Gerar como",
+ "breakchunks": "Quebre em pedaços",
+ "breaklines": "Quebra nas linhas",
+ "sendError": "Enviar mensagem em caso de erro (modo legado)",
+ "encoding": "Codificação",
+ "deletelabel": "excluir __file__",
+ "utf8String": "cadeia de caracteres UTF8",
+ "utf8String_plural": "cadeia de caracteres UTF8",
+ "binaryBuffer": "armazenamento temporário binário",
+ "binaryBuffer_plural": "armazenamentos temporários binários",
+ "allProps": "inclui todas as propriedades existentes em cada mensagem"
+ },
+ "action": {
+ "append": "adicionar ao arquivo",
+ "overwrite": "sobrescrever file",
+ "delete": "apagar file"
+ },
+ "output": {
+ "utf8": "uma única cadeia de caracteres utf8",
+ "buffer": "um único objeto de armazenamento temporário",
+ "lines": "uma mensagem por linha",
+ "stream": "um transmissão do armazenamento temporário"
+ },
+ "status": {
+ "wrotefile": "escreveu no arquivo: __file__",
+ "deletedfile": "arquivo excluído: __file__",
+ "appendedfile": "anexado ao arquivo: __file__"
+ },
+ "encoding": {
+ "none": "padrão",
+ "setbymsg": "definido por msg.encoding",
+ "native": "Nativo",
+ "unicode": "Unicode",
+ "japanese": "Japonês",
+ "chinese": "Chinês",
+ "korean": "Coreano",
+ "taiwan": "Taiwan / Hong Kong",
+ "windows": "Páginas de código do Windows",
+ "iso": "Páginas de código ISO",
+ "ibm": "Páginas de código IBM",
+ "mac": "Páginas de código Mac",
+ "koi8": "Páginas de código KOI8",
+ "misc": "Diversos"
+ },
+ "errors": {
+ "nofilename": "Nenhum nome de arquivo especificado",
+ "invaliddelete": "Aviso: exclusão inválida. Use a opção de exclusão específica na caixa de diálogo de configuração.",
+ "deletefail": "falhou ao apagar o arquivo: __error__",
+ "writefail": "falha ao gravar no arquivo: __error__",
+ "appendfail": "falhou ao adicionar ao final do arquivo: __error__",
+ "createfail": "falhou ao criar o arquivo: __error__"
+ },
+ "tip": "Dica: O nome do arquivo deve ser um caminho absoluto, caso contrário, será relativo ao diretório de trabalho do processo Node-RED."
+ },
+ "split": {
+ "split": "dividir",
+ "intro": "Divida msg.payload
com base no tipo:",
+ "object": "Objeto",
+ "objectSend": "Envia uma mensagem para cada par chave/valor",
+ "strBuff": "Cadeia de caracteres / Armazenamento Temporário",
+ "array": "Matriz",
+ "splitUsing": "Dividir usando",
+ "splitLength": "Comprimento fixo de",
+ "stream": "Tratar como uma transmissão de mensagens",
+ "addname": "Copiar chave para"
+ },
+ "join": {
+ "join": "junte",
+ "mode": {
+ "mode": "Modo",
+ "auto": "automático",
+ "merge": "sequências de mesclagem",
+ "reduce": "reduzir sequência",
+ "custom": "manual"
+ },
+ "combine": "Combine cada",
+ "completeMessage": "mensagem completa",
+ "create": "para criar",
+ "type": {
+ "string": "uma Cadeia de caracteres",
+ "array": "uma Matriz",
+ "buffer": "um Armazenamento Temporário",
+ "object": "um Objeto chave/valor",
+ "merged": "um Objeto mesclado"
+ },
+ "using": "usando o valor de",
+ "key": "como a chave",
+ "joinedUsing": "juntou-se usando",
+ "send": "Envie a mensagem:",
+ "afterCount": "Depois de várias partes da mensagem",
+ "count": "contar",
+ "subsequent": "e todas as mensagens subsequentes.",
+ "afterTimeout": "Após um tempo limite esgotado em seguida da primeira mensagem",
+ "seconds": "segundos",
+ "complete": "Após uma mensagem com a propriedade msg.complete
definida",
+ "tip": "Este modo assume que este nó ou está pareado com um nó de divisão ou as mensagens recebidas terão uma propriedade msg.parts
devidamente configurada.",
+ "too-many": "muitas mensagens pendentes no nó de junção",
+ "message-prop": "propriedade da mensagem",
+ "merge": {
+ "topics-label": "Tópicos mesclados",
+ "topics": "tópicos",
+ "topic": "tópico",
+ "on-change": "Enviar mensagem mesclada na chegada de um novo tópico"
+ },
+ "reduce": {
+ "exp": "Reduzir exp",
+ "exp-value": "valor da exp",
+ "init": "Valor inicial",
+ "right": "Avalie na ordem inversa (do último ao primeiro)",
+ "fixup": "Exp de reparo"
+ },
+ "errors": {
+ "invalid-expr": "Expressão JSONata inválida: __error__",
+ "invalid-type": "Não é possível juntar __error__ ao armazenamento temporário"
+ }
+ },
+ "sort": {
+ "sort": "ordenar",
+ "target": "Classificar",
+ "seq": "sequência de mensagens",
+ "key": "Chave",
+ "elem": "valor do elemento",
+ "order": "Pedido",
+ "ascending": "ascendente",
+ "descending": "descendente",
+ "as-number": "como número",
+ "invalid-exp": "Expressão JSONata inválida no nó de classificação: __message__",
+ "too-many": "Muitas mensagens pendentes no nó de classificação",
+ "clear": "limpar a mensagem pendente no nó de classificação"
+ },
+ "batch" : {
+ "batch": "lote",
+ "mode": {
+ "label": "Modo",
+ "num-msgs": "Agrupar por número de mensagens",
+ "interval": "Agrupar por intervalo de tempo",
+ "concat": "Concatenar sequências"
+ },
+ "count": {
+ "label": "Número de mensagens",
+ "overlap": "Sobreposição",
+ "count": "contar",
+ "invalid": "Contagem inválida e sobreposição"
+ },
+ "interval": {
+ "label": "Intervalo",
+ "seconds": "segundos",
+ "empty": "enviar mensagem vazia quando nenhuma mensagem chegar"
+ },
+ "concat": {
+ "topics-label": "Tópicos",
+ "topic": "tópico"
+ },
+ "too-many": "muitas mensagens pendentes no nó de lote",
+ "unexpected": "modo inesperado",
+ "no-parts": "sem partes de propriedades na mensagem",
+ "error": {
+ "invalid-count": "Contador inválido",
+ "invalid-overlap": "Sobreposição inválida",
+ "invalid-interval": "Intervalo inválido"
+ }
+ },
+ "rbe": {
+ "rbe": "filtro",
+ "label": {
+ "func": "Modo",
+ "init": "Enviar valor inicial",
+ "start": "Valor inicial",
+ "name": "Nome",
+ "septopics": "Aplicar modo separadamente para cada",
+ "gap": "troca de valor",
+ "property": "propriedade",
+ "topic": "tópico"
+ },
+ "placeholder":{
+ "bandgap": "por exemplo, 10 ou 5%",
+ "start": "deixe em branco para usar os primeiros dados recebidos"
+ },
+ "opts": {
+ "rbe": "bloquear a menos que o valor mude",
+ "rbei": "bloquear a menos que o valor mude (ignorar o valor inicial)",
+ "deadband": "bloquear a menos que a alteração do valor seja maior que",
+ "deadbandEq": "bloquear a menos que a alteração do valor seja maior ou igual a",
+ "narrowband": "bloquear se a alteração do valor for maior que",
+ "narrowbandEq": "bloquear se a alteração do valor for maior ou igual a",
+ "in": "em comparação com o último valor de entrada",
+ "out": "em comparação com o último valor de saída válido"
+ },
+ "warn": {
+ "nonumber": "nenhum número encontrado na carga útil"
+ }
+ }
+}
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/05-tls.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/05-tls.html
new file mode 100644
index 000000000..74c9ff97f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/05-tls.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/06-httpproxy.html
new file mode 100644
index 000000000..1a7b14a51
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/06-httpproxy.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/10-mqtt.html
new file mode 100644
index 000000000..6d25c14ed
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/10-mqtt.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httpin.html
new file mode 100644
index 000000000..88212eab3
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httpin.html
@@ -0,0 +1,100 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html
new file mode 100644
index 000000000..5a333e6ea
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html
@@ -0,0 +1,90 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/22-websocket.html
new file mode 100644
index 000000000..91abd8cdd
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/22-websocket.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/31-tcpin.html
new file mode 100644
index 000000000..1329e79eb
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/31-tcpin.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/32-udp.html
new file mode 100644
index 000000000..661d43083
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/32-udp.html
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-CSV.html
new file mode 100644
index 000000000..3bb441857
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-CSV.html
@@ -0,0 +1,49 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-HTML.html
new file mode 100644
index 000000000..46ab6f60c
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-HTML.html
@@ -0,0 +1,36 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-JSON.html
new file mode 100644
index 000000000..4c91e4f9e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-JSON.html
@@ -0,0 +1,53 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-XML.html
new file mode 100644
index 000000000..757d38dbf
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-XML.html
@@ -0,0 +1,50 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-YAML.html
new file mode 100644
index 000000000..cdc73673f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/parsers/70-YAML.html
@@ -0,0 +1,34 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html
new file mode 100644
index 000000000..0e1cd10f9
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html
@@ -0,0 +1,165 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/18-sort.html
new file mode 100644
index 000000000..8d4bfac3a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/18-sort.html
@@ -0,0 +1,41 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/19-batch.html
new file mode 100644
index 000000000..e1f33f3bc
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/19-batch.html
@@ -0,0 +1,43 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/10-file.html
new file mode 100644
index 000000000..f2299a230
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/10-file.html
@@ -0,0 +1,67 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/23-watch.html
new file mode 100644
index 000000000..478103586
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/storage/23-watch.html
@@ -0,0 +1,30 @@
+
+
+
diff --git a/packages/node_modules/@node-red/runtime/locales/pt-BR/runtime.json b/packages/node_modules/@node-red/runtime/locales/pt-BR/runtime.json
new file mode 100644
index 000000000..7ef9c8676
--- /dev/null
+++ b/packages/node_modules/@node-red/runtime/locales/pt-BR/runtime.json
@@ -0,0 +1,199 @@
+{
+ "runtime": {
+ "welcome": "Bem vindo ao Node-RED",
+ "version": "__component__ versão: __version__",
+ "unsupported_version": "Versão não suportada de __component__. Requer: __requires__ Encontrado: __version__",
+ "paths": {
+ "settings": "Arquivo de configurações : __path__",
+ "httpStatic": "HTTP Estático : __path__"
+ }
+ },
+
+ "server": {
+ "loading": "Carregando paletá de nós",
+ "palette-editor": {
+ "disabled": "Editor de paletas desativado : configurações do usuário",
+ "npm-not-found": "Editor de paleta desativado : comando npm não encontrado",
+ "npm-too-old": "Editor de paleta desativado : versão npm muito antiga. Requer npm> = 3.x"
+ },
+ "errors": "Falha ao registrar __count__ tipo de nó",
+ "errors_plural": "Falha ao registrar __count__ tipos de nós",
+ "errors-help": "Execute com -v para obter detalhes",
+ "missing-modules": "Módulos de nó que estão faltando:",
+ "node-version-mismatch": "O módulo de nó não pode ser carregado nesta versão. Requer: __version__",
+ "type-already-registered": "'__type__' já registrado pelo módulo __module__",
+ "removing-modules": "Removendo os módulos da configuração",
+ "added-types": "Tipos de nós adicionados:",
+ "removed-types": "Tipos de nós removidos:",
+ "install": {
+ "invalid": "Nome de módulo inválido",
+ "installing": "Módulo de instalação: __name__, versão: __version__",
+ "installed": "Módulo instalado: __name__",
+ "install-failed": "Instalação falhou",
+ "install-failed-long": "Instalação do módulo __name__ falhou:",
+ "install-failed-not-found": "Módulo $t(server.install.install-failed-long) não encontrado",
+ "install-failed-name": "$t(server.install.install-failed-long) nome do módulo inválido: __name__",
+ "install-failed-url": "$t(server.install.install-failed-long) url inválido: __url__",
+ "post-install-error": "Erro ao executar o gancho 'postInstall':",
+ "upgrading": "Módulo de atualização: __name__ para a versão: __version__",
+ "upgraded": "Módulo atualizado: __name__. Reinicie o Node-RED para usar a nova versão",
+ "upgrade-failed-not-found": "$t(server.install.install-failed-long) versão não encontrada",
+ "uninstalling": "Desinstalando módulo: __name__",
+ "uninstall-failed": "Desinstalação falhou",
+ "uninstall-failed-long": "A desinstalação do módulo __name__ falhou:",
+ "uninstalled": "Módulo desinstalado: __name__",
+ "old-ext-mod-dir-warning": "\n\n---------------------------------------------------------------------\ndetectado diretório de módulos externos do Node-RED 1.3:\n __oldDir__\nEste diretório não é mais usado. Módulos externos serão\nreinstalados em seu diretório de usuário Node-RED:\n __newDir__\nExclua o diretório 'externalModules' antigo para interromper esta mensagem.\n---------------------------------------------------------------------\n"
+ },
+ "deprecatedOption": "O uso de __old__ está DESCONTINUADO. Use __new__ em seu lugar",
+ "unable-to-listen": "Incapaz de ouvir em __listenpath__",
+ "port-in-use": "Erro: porta em uso",
+ "uncaught-exception": "Exceção não capturada:",
+ "admin-ui-disabled": "Admin UI desativada",
+ "now-running": "servidor rodando agora em __listenpath__",
+ "failed-to-start": "Falhou ao iniciar o servidor:",
+ "headless-mode": "Executando no modo sem interface gráfica",
+ "httpadminauth-deprecated": "O uso de 'httpAdminAuth' está DESCONTINUADO. Use 'adminAuth' em seu lugar",
+ "https": {
+ "refresh-interval": "Atualizando as configurações de https a cada __interval__ hora(s)",
+ "settings-refreshed": "As configurações https do servidor foram atualizadas",
+ "refresh-failed": "Falha ao atualizar as configurações https: __message__",
+ "nodejs-version": "httpsRefreshInterval requer Node.js 11 ou posterior",
+ "function-required": "httpsRefreshInterval requer que a propriedade https seja uma função"
+ }
+ },
+
+ "api": {
+ "flows": {
+ "error-save": "Erro ao salvar fluxos: __message__",
+ "error-reload": "Erro ao recarregar fluxos: __message__"
+ },
+ "library": {
+ "error-load-entry": "Erro ao carregar a entrada da biblioteca '__path__': __message__",
+ "error-save-entry": "Erro ao salvar a entrada da biblioteca '__path__': __message__",
+ "error-load-flow": "Erro ao carregar o fluxo '__path__': __message__",
+ "error-save-flow": "Erro ao salvar o fluxo '__path__': __message__"
+ },
+ "nodes": {
+ "enabled": "Tipos de nós habilitados:",
+ "disabled": "Tipos de nós desabilitados:",
+ "error-enable": "Falha ao habilitar o nó:"
+ }
+ },
+ "comms": {
+ "error": "Erro do canal de comunicação: __message__",
+ "error-server": "Erro do servidor de comunicação: __message__",
+ "error-send": "Erro de envio de comunicação: __message__"
+ },
+ "settings": {
+ "user-not-available": "Não é possível salvar as configurações do usuário: __message__",
+ "not-available": "Configurações não disponíveis",
+ "property-read-only": "A propriedade '__prop__' é somente leitura",
+ "readonly-mode": "Execução em modo leitura somente. As alterações não serão salvas."
+ },
+ "library": {
+ "unknownLibrary": "Biblioteca desconhecida: __library__",
+ "unknownType": "Tipo de biblioteca desconhecido: __type__",
+ "readOnly": "A biblioteca __library__ é somente de leitura",
+ "failedToInit": "Falha ao inicializar a biblioteca __library__: __error__",
+ "invalidProperty": "Propriedade inválida __prop__: '__value__'"
+ },
+ "nodes": {
+ "credentials": {
+ "error": "Erro ao carregar credenciais: __message__",
+ "error-saving": "Erro ao salvar credenciais: __message__",
+ "not-registered": "O tipo de credencial '__type__' não está registrado",
+ "system-key-warning": "\n\n------------------------------------- --------------------------------\nSeu arquivo de credenciais de fluxo é criptografado usando uma chave gerada pelo sistema.\n\nSe a chave gerada pelo sistema foi perdida por qualquer motivo, seu arquivo de credenciais \nnão será recuperável; você terá que excluí-lo e inserir novamente \nsuas credenciais. \n\nVocê deve definir sua própria chave usando a opção 'credentialSecret' em \n seu arquivo de configurações. O Node-RED irá então criptografar novamente o arquivo de credenciais \n usando a chave escolhida na próxima vez que você implantar uma alteração. \n ------------------- -------------------------------------------------- \n ",
+ "unencrypted": "Usando credenciais não criptografadas",
+ "encryptedNotFound": "Credenciais criptografadas não encontradas"
+ },
+ "flows": {
+ "safe-mode": "Fluxos interrompidos no modo de segurança. Implementar para iniciar.",
+ "registered-missing": "Tipo ausente registrado: __type__",
+ "error": "Erro ao carregar fluxos: __message__",
+ "starting-modified-nodes": "Iniciando nós modificados",
+ "starting-modified-flows": "Iniciando fluxos modificados",
+ "starting-flows": "Iniciando fluxos",
+ "started-modified-nodes": "Nós modificados iniciados",
+ "started-modified-flows": "Fluxos modificados iniciados",
+ "started-flows": "Fluxos iniciados",
+ "stopping-modified-nodes": "Parando nós modificados",
+ "stopping-modified-flows": "Parando fluxos modificados",
+ "stopping-flows": "Parando fluxos",
+ "stopped-modified-nodes": "Nós modificados interrompidos",
+ "stopped-modified-flows": "Fluxos modificados interrompidos",
+ "stopped-flows": "Fluxos interrompidos",
+ "stopped": "Parado",
+ "stopping-error": "Erro ao parar o nó: __message__",
+ "updated-flows": "Fluxos atualizados",
+ "added-flow": "Adicionando fluxo: __label__",
+ "updated-flow": "Fluxo atualizado: __label__",
+ "removed-flow": "Fluxo removido: __label__",
+ "missing-types": "Esperando que os tipos ausentes sejam registrados:",
+ "missing-type-provided": "- __type__ (fornecido pelo módulo npm __module__)",
+ "missing-type-install-1": "Para instalar qualquer um desses módulos ausentes, execute:",
+ "missing-type-install-2": "no diretório:"
+ },
+ "flow": {
+ "unknown-type": "Tipo desconhecido: __type__",
+ "missing-types": "tipos ausentes",
+ "error-loop": "A mensagem excedeu o número máximo de capturas"
+
+ },
+ "index": {
+ "unrecognised-id": "Não reconhecido id: __id__",
+ "type-in-use": "Tipo em uso: __msg__",
+ "unrecognised-module": "Módulo não reconhecido: __module__"
+ },
+ "registry": {
+ "localfilesystem": {
+ "module-not-found": "Não é possível encontrar o módulo '__module__'"
+ }
+ }
+ },
+ "storage": {
+ "index": {
+ "forbidden-flow-name": "nome do fluxo proibido"
+ },
+ "localfilesystem": {
+ "user-dir": "Diretório do usuário: __path__",
+ "flows-file": "Arquivo de fluxos: __path__",
+ "create": "Criando novo arquivo __type__",
+ "empty": "O arquivo __type__ existente está vazio",
+ "invalid": "O arquivo __type__ existente não é json válido",
+ "restore": "Restaurando backup de arquivo __type__: __path__",
+ "restore-fail": "Falha ao restaurar o backup do arquivo __type__: __message__",
+ "fsync-fail": "A liberação do arquivo __path__ para o disco falhou: __message__",
+ "warn_name": "Nome do arquivo de fluxo não definido. Gerando nome usando o nome do servidor.",
+ "projects": {
+ "changing-project": "Configurando projeto ativo: __project__",
+ "active-project": "Projeto ativo: __projeto__",
+ "projects-directory": "Diretório de projetos: __projectsDirectory__",
+ "project-not-found": "Projeto não encontrado: __project__",
+ "no-active-project": "Nenhum projeto ativo: usando arquivo de fluxos padrão",
+ "disabled": "Projetos desativados: editorTheme.projects.enabled = false",
+ "disabledNoFlag": "Projetos desativados: defina editorTheme.projects.enabled = true para ativar",
+ "git-not-found": "Projetos desativados: comando git não encontrado",
+ "git-version-old": "Projetos desativados: git __version__ não é compatível. Requer 2.x",
+ "summary": "Um Projeto Node-RED",
+ "readme": "### Sobre\n\nEste é o arquivo README.md do seu projeto. O Arquivo ajuda usuários a entender o que seu \nprojeto faz, como usá-lo e qualquer outra coisa que eles precisem saber."
+ }
+ }
+ },
+
+ "context": {
+ "log-store-init": "Armazenamento de contexto: '__name__' [__info__]",
+ "error-loading-module": "Erro ao carregar armazenamento de contexto: __message__",
+ "error-loading-module2": "Erro ao carregar o armazenamento de contexto '__module__': __message__",
+ "error-module-not-defined": "Armazenamento de contexto '__storage__' opção de 'módulo' ausente",
+ "error-invalid-module-name": "Nome de armazenamento de contexto inválido: '__name__'",
+ "error-invalid-default-module": "Armazenamento de contexto padrão desconhecido: '__storage__'",
+ "unknown-store": "Armazenamento de contexto desconhecido '__name__' especificado. Usando armazenamento padrão.",
+
+ "localfilesystem": {
+ "invalid-json": "JSON inválido no arquivo de contexto '__file__'",
+ "error-circular": "O contexto __scope__ contém uma referência circular que não pode ser continuada",
+ "error-write": "Erro ao escrever o contexto: __message__"
+ }
+ }
+
+}
From b937c37be325991debaf37b23d16a90af9b1092e Mon Sep 17 00:00:00 2001
From: Fabulous Muller The cookies
property passed to the node must be an object of name/value pairs.
The value can be either a string to set the value of the cookie or it can be an
- object with a single value
property.
+ object with a single value
property.
Any cookies returned by the request are passed back under the responseCookies
property.
If msg.payload
is an Object, the node will automatically set the content type
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/function/80-template.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/function/80-template.html
index 2eba49478..907fc5eca 100644
--- a/packages/node_modules/@node-red/nodes/locales/pt-BR/function/80-template.html
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/function/80-template.html
@@ -47,5 +47,9 @@ payload:{
{{global.name}}
, ou para armazenamento persistente armazenar
usando {{flow [store] .name}}
ou
{{global [store] .name}}
.
Nota: Por padrão, bigode usará códigos de escape de quaisquer entidades não alfanuméricas ou HTML nos valores que ele substitui.
- Para evitar isso, use colchetes {{{triplos}}}
.
+ Para evitar isso, use colchetes {{{triplos}}}
.
Se precisar usar {{ }}
em seu conteúdo, você poderá alterar os caracteres
+ usados para marcar as seções do modelo. Por exemplo, ao invés de utilizar [[ ]]
;
+ adicione a seguinte linha ao topo do modelo:
{{=[[ ]]=}}diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/messages.json b/packages/node_modules/@node-red/nodes/locales/pt-BR/messages.json index b55e336a3..00058ddf3 100755 --- a/packages/node_modules/@node-red/nodes/locales/pt-BR/messages.json +++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/messages.json @@ -576,8 +576,8 @@ "url2": "Por padrão,
carga útil
conterá os dados a serem enviados ou recebidos de um websocket. O cliente pode ser configurado para enviar ou receber todo o objeto de mensagem como uma cadeia de caracteres formatada em JSON."
},
"status": {
- "conectado": "conectado __count__",
- "conectado_plural": "conectado __count__"
+ "connected": "conectado __count__",
+ "connected_plural": "conectados __count__"
},
"errors": {
"connect-error": "Ocorreu um erro na conexão ws:",
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html
index 5a333e6ea..6604708da 100644
--- a/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/network/21-httprequest.html
@@ -73,10 +73,15 @@
A propriedade cookies
passada ao nó deve ser um objeto de pares nome/valor.
O valor pode ser uma cadeia de caracteres para definir o valor do cookie ou pode ser um
- objeto com uma única propriedade value
.
+ objeto com uma única propriedade value
.
Todos os cookies retornados pela solicitação são devolvidos à propriedade responseCookies
.
Se msg.payload
for um objeto, o nó definirá automaticamente o tipo de conteúdo
+ da solicitação para application/json
e irá codificar o corpo como tal.
Para codificar a solicitação como dados de formulário, msg.headers["content-type"]
deve ser definido como application/x-www-form-urlencoded
.
Para subir um arquivo, msg.headers["content-type"]
deve ser definido como multipart/form-data
+ e o msg.payload
passado para o nó deve ser um objeto com a seguinte estrutura:
{
"KEY": {
"value": FILE_CONTENTS,
diff --git a/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html
index 0e1cd10f9..96b86f438 100644
--- a/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html
+++ b/packages/node_modules/@node-red/nodes/locales/pt-BR/sequence/17-split.html
@@ -162,4 +162,9 @@
Valor inicial: 0
Expressão de correção: $A/$N
+
+ Armazenando mensagens
+ Este nó armazenará temporariamente de forma interna as mensagens para ir trabalhando através das sequências.
+ A configuração de tempo de execução nodeMessageBufferMaxLength
pode ser usada para limitar quantos nós de mensagens
+ serão armazenados temporariamente.
From d6bb3a558f6da935e05488cb1708562b0b242ebb Mon Sep 17 00:00:00 2001
From: Steve-Mcl
Date: Sat, 3 Sep 2022 21:23:38 +0100
Subject: [PATCH 008/178] fix loading node package in nodesDir on linux fixes
#3861
---
.../@node-red/registry/lib/loader.js | 39 ++++++++++---------
.../@node-red/registry/lib/localfilesystem.js | 10 +++++
.../@node-red/registry/lib/registry.js | 11 +++++-
3 files changed, 40 insertions(+), 20 deletions(-)
diff --git a/packages/node_modules/@node-red/registry/lib/loader.js b/packages/node_modules/@node-red/registry/lib/loader.js
index 61f28ab86..3f0487750 100644
--- a/packages/node_modules/@node-red/registry/lib/loader.js
+++ b/packages/node_modules/@node-red/registry/lib/loader.js
@@ -43,37 +43,40 @@ function load(disableNodePathScan) {
return loadModuleFiles(modules);
}
+function splitPath(p) {
+ return path.posix.normalize((p || '').replace(/\\/g, path.sep)).split(path.sep)
+}
function loadModuleTypeFiles(module, type) {
const things = module[type];
- var first = true;
- var promises = [];
- for (var thingName in things) {
+ let first = true;
+ const promises = [];
+ for (let thingName in things) {
/* istanbul ignore else */
if (things.hasOwnProperty(thingName)) {
if (module.name != "node-red" && first) {
// Check the module directory exists
first = false;
- var fn = things[thingName].file;
- var parts = fn.split("/");
- var i = parts.length-1;
- for (;i>=0;i--) {
- if (parts[i] == "node_modules") {
- break;
- }
+ let moduleFn = module.path
+ const fn = things[thingName].file
+ const parts = splitPath(fn)
+ const nmi = parts.indexOf('node_modules')
+ if(nmi > -1) {
+ moduleFn = parts.slice(0,nmi+2).join(path.sep);
+ }
+ if (!moduleFn) {
+ // shortcut - skip calling statSync on empty string
+ break; // Module not found, don't attempt to load its nodes
}
- var moduleFn = parts.slice(0,i+2).join("/");
-
try {
- var stat = fs.statSync(moduleFn);
+ const stat = fs.statSync(moduleFn);
} catch(err) {
- // Module not found, don't attempt to load its nodes
- break;
+ break; // Module not found, don't attempt to load its nodes
}
}
try {
- var promise;
+ let promise;
if (type === "nodes") {
promise = loadNodeConfig(things[thingName]);
} else if (type === "plugins") {
@@ -82,8 +85,7 @@ function loadModuleTypeFiles(module, type) {
promises.push(
promise.then(
(function() {
- var m = module.name;
- var n = thingName;
+ const n = thingName;
return function(nodeSet) {
things[n] = nodeSet;
return nodeSet;
@@ -93,7 +95,6 @@ function loadModuleTypeFiles(module, type) {
);
} catch(err) {
console.log(err)
- //
}
}
}
diff --git a/packages/node_modules/@node-red/registry/lib/localfilesystem.js b/packages/node_modules/@node-red/registry/lib/localfilesystem.js
index da4006ecc..edb805572 100644
--- a/packages/node_modules/@node-red/registry/lib/localfilesystem.js
+++ b/packages/node_modules/@node-red/registry/lib/localfilesystem.js
@@ -156,6 +156,16 @@ function scanDirForNodesModules(dir,moduleName,package) {
}
}
}
+
+ // if we have found a package.json, this IS a node_module, lets see if it is a node-red node
+ if (!isNodeRedModule && files.indexOf('package.json') > -1) {
+ package = getPackageDetails(dir) // get package details
+ if(package && package.isNodeRedModule) {
+ isNodeRedModule = true
+ files = ['package.json'] // shortcut the file scan
+ }
+ }
+
for (let i=0;i
Date: Sat, 3 Sep 2022 21:37:27 +0100
Subject: [PATCH 009/178] add test for specific arrangement of node package
---
.../registry/lib/localfilesystem_spec.js | 21 ++++++++++++++-
.../@lower-case2/lower-case2/lower-case.html | 26 +++++++++++++++++++
.../@lower-case2/lower-case2/lower-case.js | 11 ++++++++
.../nodesDir2/@lower-case2/package.json | 9 +++++++
.../lower-case/lower-case/lower-case.html | 26 +++++++++++++++++++
.../lower-case/lower-case/lower-case.js | 11 ++++++++
.../nodesDir2/lower-case/package.json | 9 +++++++
7 files changed, 112 insertions(+), 1 deletion(-)
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.html
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.js
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/package.json
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.html
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.js
create mode 100644 test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/package.json
diff --git a/test/unit/@node-red/registry/lib/localfilesystem_spec.js b/test/unit/@node-red/registry/lib/localfilesystem_spec.js
index 3b1bb63f3..3ce74c158 100644
--- a/test/unit/@node-red/registry/lib/localfilesystem_spec.js
+++ b/test/unit/@node-red/registry/lib/localfilesystem_spec.js
@@ -329,17 +329,36 @@ describe("red/nodes/registry/localfilesystem",function() {
localfilesystem.init({nodesDir:[nodesDir2]});
const nodeModule = localfilesystem.getModuleFiles();
const loaded = Object.keys(nodeModule)
- loaded.should.have.a.property("length", 3)
loaded.indexOf('@test/testnode').should.greaterThan(-1, "Should load @test/testnode")
+ loaded.indexOf('lower-case').should.greaterThan(-1, "Should load lower-case")
+ loaded.indexOf('@lowercase/lower-case2').should.greaterThan(-1, "Should load @lowercase/lower-case2")
loaded.indexOf('testnode2').should.greaterThan(-1, "Should load testnode2")
loaded.indexOf('test-theme2').should.greaterThan(-1, "Should load test-theme2")
+ loaded.should.have.a.property("length", 5)
+ // scoped module with nodes in same dir as package.json
nodeModule['@test/testnode'].should.have.a.property('name','@test/testnode');
nodeModule['@test/testnode'].should.have.a.property('version','1.0.0');
nodeModule['@test/testnode'].should.have.a.property('nodes');
nodeModule['@test/testnode'].should.have.a.property('path');
nodeModule['@test/testnode'].should.have.a.property('user', false);
+ // node-red module with nodes in sub dir
+ nodeModule['@lowercase/lower-case2'].should.have.a.property('name','@lowercase/lower-case2');
+ nodeModule['@lowercase/lower-case2'].should.have.a.property('version','2.0.0');
+ nodeModule['@lowercase/lower-case2'].should.have.a.property('nodes');
+ nodeModule['@lowercase/lower-case2'].nodes.should.have.a.property('lower-case');
+ nodeModule['@lowercase/lower-case2'].should.have.a.property('path');
+ nodeModule['@lowercase/lower-case2'].should.have.a.property('user', false);
+
+ // scoped module with nodes in sub dir
+ nodeModule['lower-case'].should.have.a.property('name', 'lower-case');
+ nodeModule['lower-case'].should.have.a.property('version','1.0.0');
+ nodeModule['lower-case'].should.have.a.property('nodes');
+ nodeModule['lower-case'].nodes.should.have.a.property('lower-case');
+ nodeModule['lower-case'].should.have.a.property('path');
+ nodeModule['lower-case'].should.have.a.property('user', false);
+
nodeModule['testnode2'].should.have.a.property('name','testnode2');
nodeModule['testnode2'].should.have.a.property('version','1.0.0');
nodeModule['testnode2'].should.have.a.property('nodes');
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.html b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.html
new file mode 100644
index 000000000..617f48491
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.html
@@ -0,0 +1,26 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.js b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.js
new file mode 100644
index 000000000..73579ba04
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/lower-case2/lower-case.js
@@ -0,0 +1,11 @@
+module.exports = function(RED) {
+function LowerCaseNode(config) {
+ RED.nodes.createNode(this,config);
+ var node = this;
+ node.on('input', function(msg) {
+ msg.payload = msg.payload.toLowerCase();
+ node.send(msg);
+ });
+ }
+ RED.nodes.registerType("lower-case2",LowerCaseNode);
+}
\ No newline at end of file
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/package.json b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/package.json
new file mode 100644
index 000000000..6b6ce9aa9
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/@lower-case2/package.json
@@ -0,0 +1,9 @@
+{
+ "name" : "@lowercase/lower-case2",
+ "node-red" : {
+ "nodes": {
+ "lower-case": "lower-case2/lower-case.js"
+ }
+ },
+ "version": "2.0.0"
+}
\ No newline at end of file
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.html b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.html
new file mode 100644
index 000000000..e57d51131
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.html
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.js b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.js
new file mode 100644
index 000000000..006b35eb6
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/lower-case/lower-case.js
@@ -0,0 +1,11 @@
+module.exports = function(RED) {
+ function LowerCaseNode(config) {
+ RED.nodes.createNode(this,config);
+ var node = this;
+ node.on('input', function(msg) {
+ msg.payload = msg.payload.toLowerCase();
+ node.send(msg);
+ });
+ }
+ RED.nodes.registerType("lower-case",LowerCaseNode);
+}
diff --git a/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/package.json b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/package.json
new file mode 100644
index 000000000..a632eaddd
--- /dev/null
+++ b/test/unit/@node-red/registry/lib/resources/nodesDir2/lower-case/package.json
@@ -0,0 +1,9 @@
+{
+ "name" : "lower-case",
+ "node-red" : {
+ "nodes": {
+ "lower-case": "lower-case/lower-case.js"
+ }
+ },
+ "version": "1.0.0"
+}
From 1fa8f30550e18d6ddb5fe95c9d03691329349c0e Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Mon, 5 Sep 2022 21:08:36 +0100
Subject: [PATCH 010/178] Support uri fragments for nodes and groups including
edit support
---
.../@node-red/editor-client/src/js/red.js | 31 +++++++++++++++++--
.../@node-red/editor-client/src/js/ui/view.js | 4 ++-
.../editor-client/src/js/ui/workspaces.js | 2 +-
3 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/red.js b/packages/node_modules/@node-red/editor-client/src/js/red.js
index 55446418b..129c46799 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/red.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/red.js
@@ -249,8 +249,35 @@ var RED = (function() {
RED.nodes.import(nodes.flows);
RED.nodes.dirty(false);
RED.view.redraw(true);
- if (/^#flow\/.+$/.test(currentHash)) {
- RED.workspaces.show(currentHash.substring(6),true);
+ if (/^#(flow|node|group)\/.+$/.test(currentHash)) {
+ const hashParts = currentHash.split('/')
+ const showEditDialog = hashParts.length > 2 && hashParts[2] === 'edit'
+ if (hashParts[0] === '#flow') {
+ RED.workspaces.show(hashParts[1], true);
+ if (showEditDialog) {
+ RED.workspaces.edit()
+ }
+ } else if (hashParts[0] === '#node') {
+ const nodeToShow = RED.nodes.node(hashParts[1])
+ if (nodeToShow) {
+ setTimeout(() => {
+ RED.view.reveal(nodeToShow.id)
+ window.location.hash = currentHash
+ if (showEditDialog) {
+ RED.editor.edit(nodeToShow)
+ }
+ }, 50)
+ }
+ } else if (hashParts[0] === '#group') {
+ const nodeToShow = RED.nodes.group(hashParts[1])
+ if (nodeToShow) {
+ RED.view.reveal(nodeToShow.id)
+ window.location.hash = currentHash
+ if (showEditDialog) {
+ RED.editor.editGroup(nodeToShow)
+ }
+ }
+ }
}
if (RED.workspaces.count() > 0) {
const hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}");
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
index 8c7ea22a3..c6c49c942 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
@@ -6137,7 +6137,9 @@ RED.view = (function() {
if (node.z && (node.type === "group" || node._def.category !== 'config')) {
node.dirty = true;
RED.workspaces.show(node.z);
-
+ if (node.type === "group" && !node.w && !node.h) {
+ _redraw();
+ }
var screenSize = [chart[0].clientWidth/scaleFactor,chart[0].clientHeight/scaleFactor];
var scrollPos = [chart.scrollLeft()/scaleFactor,chart.scrollTop()/scaleFactor];
var cx = node.x;
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index 1f5cdf0f1..ae38f2c4d 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -138,7 +138,7 @@ RED.workspaces = (function() {
activeWorkspace = tab.id;
window.location.hash = 'flow/'+tab.id;
$("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!tab.disabled);
- } else {
+ } else {
$("#red-ui-workspace-chart").hide();
activeWorkspace = 0;
window.location.hash = '';
From 0caa3087574363cb6efda1bcfef9fcb805fd4122 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Mon, 12 Sep 2022 20:53:46 +0100
Subject: [PATCH 011/178] Add core:copy-item-link action and expose in info
sidebar
---
.../editor-client/locales/en-US/editor.json | 3 ++-
.../editor-client/src/js/ui/tab-info.js | 22 ++++++++++++---
.../editor-client/src/js/ui/view-tools.js | 27 +++++++++++++++++++
3 files changed, 48 insertions(+), 4 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index c8abada3e..1cc571200 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -683,7 +683,8 @@
"empty": "empty",
"globalConfig": "Global Configuration Nodes",
"triggerAction": "Trigger action",
- "find": "Find in workspace"
+ "find": "Find in workspace",
+ "copyItemUrl": "Copy item url"
},
"help": {
"name": "Help",
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info.js
index dfd4b1e43..c46aa97e8 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info.js
@@ -25,6 +25,7 @@ RED.sidebar.info = (function() {
var propertiesPanelHeaderLabel;
var propertiesPanelHeaderReveal;
var propertiesPanelHeaderHelp;
+ var propertiesPanelHeaderCopyLink;
var selectedObject;
@@ -67,10 +68,20 @@ RED.sidebar.info = (function() {
propertiesPanelHeaderIcon = $("").appendTo(propertiesPanelHeader);
propertiesPanelHeaderLabel = $("").appendTo(propertiesPanelHeader);
- propertiesPanelHeaderHelp = $('').css({
+
+ propertiesPanelHeaderCopyLink = $('').css({
position: 'absolute',
top: '12px',
right: '32px'
+ }).on("click", function(evt) {
+ RED.actions.invoke('core:copy-item-url',selectedObject)
+ }).appendTo(propertiesPanelHeader);
+ RED.popover.tooltip(propertiesPanelHeaderCopyLink,RED._("sidebar.info.copyItemUrl"));
+
+ propertiesPanelHeaderHelp = $('').css({
+ position: 'absolute',
+ top: '12px',
+ right: '56px'
}).on("click", function(evt) {
evt.preventDefault();
evt.stopPropagation();
@@ -80,8 +91,7 @@ RED.sidebar.info = (function() {
}).appendTo(propertiesPanelHeader);
RED.popover.tooltip(propertiesPanelHeaderHelp,RED._("sidebar.help.showHelp"));
-
- propertiesPanelHeaderReveal = $('').css({
+ propertiesPanelHeaderReveal = $('').css({
position: 'absolute',
top: '12px',
right: '8px'
@@ -185,6 +195,7 @@ RED.sidebar.info = (function() {
propertiesPanelHeaderLabel.text("");
propertiesPanelHeaderReveal.hide();
propertiesPanelHeaderHelp.hide();
+ propertiesPanelHeaderCopyLink.hide();
return;
} else if (Array.isArray(node)) {
// Multiple things selected
@@ -196,6 +207,7 @@ RED.sidebar.info = (function() {
propertiesPanelHeaderLabel.text("Selection");
propertiesPanelHeaderReveal.hide();
propertiesPanelHeaderHelp.hide();
+ propertiesPanelHeaderCopyLink.hide();
selectedObject = null;
var types = {
@@ -277,9 +289,11 @@ RED.sidebar.info = (function() {
if (node.type === "tab" || node.type === "subflow") {
// If nothing is selected, but we're on a flow or subflow tab.
propertiesPanelHeaderHelp.hide();
+ propertiesPanelHeaderCopyLink.show();
} else if (node.type === "group") {
propertiesPanelHeaderHelp.hide();
+ propertiesPanelHeaderCopyLink.show();
propRow = $(' ').appendTo(tableBody);
@@ -304,8 +318,10 @@ RED.sidebar.info = (function() {
}
} else if (node.type === 'junction') {
propertiesPanelHeaderHelp.hide();
+ propertiesPanelHeaderCopyLink.hide();
} else {
propertiesPanelHeaderHelp.show();
+ propertiesPanelHeaderCopyLink.show();
if (!subflowRegex) {
propRow = $(''+RED._("sidebar.info.type")+' ').appendTo(tableBody);
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
index bc81d4a43..1ed5791a6 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
@@ -1192,6 +1192,30 @@ RED.view.tools = (function() {
RED.view.redraw(true);
}
+ function copyItemUrl(node, isEdit) {
+ if (!node) {
+ const selection = RED.view.selection();
+ if (selection.nodes && selection.nodes.length > 0) {
+ node = selection.nodes[0]
+ }
+ }
+ if (node) {
+ let thingType = 'node'
+ if (node.type === 'group') {
+ thingType = 'group'
+ } else if (node.type === 'tab' || node.type === 'subflow') {
+ thingType = 'flow'
+ }
+ let url = `${window.location.origin}${window.location.pathname}#${thingType}/${node.id}`
+ if (isEdit) {
+ url += '/edit'
+ }
+ if (RED.clipboard.copyText(url)) {
+ RED.notify('Copied url to clipboard', { timeout: 2000 })
+ }
+ }
+ }
+
return {
init: function() {
RED.actions.add("core:show-selected-node-labels", function() { setSelectedNodeLabelState(true); })
@@ -1258,6 +1282,9 @@ RED.view.tools = (function() {
RED.actions.add("core:generate-node-names", generateNodeNames )
+ RED.actions.add("core:copy-item-url", function (node) { copyItemUrl(node) })
+ RED.actions.add("core:copy-item-edit-url", function (node) { copyItemUrl(node, true) })
+
// RED.actions.add("core:add-node", function() { addNode() })
},
/**
From fc657ecc717be7ea5e199a2e042e915d2ef02046 Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Thu, 22 Sep 2022 10:51:48 +0100
Subject: [PATCH 012/178] let delay node handle both flush then reset
and add tests
---
.../@node-red/nodes/core/function/89-delay.js | 74 +++++++-------
test/nodes/core/function/89-delay_spec.js | 99 +++++++++++++++++++
2 files changed, 138 insertions(+), 35 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/function/89-delay.js b/packages/node_modules/@node-red/nodes/core/function/89-delay.js
index 6524aa040..6d4843caf 100644
--- a/packages/node_modules/@node-red/nodes/core/function/89-delay.js
+++ b/packages/node_modules/@node-red/nodes/core/function/89-delay.js
@@ -201,6 +201,7 @@ module.exports = function(RED) {
});
node.on("close", function() { clearDelayList(); });
}
+
else if (node.pauseType === "random") {
node.on("input", function(msg, send, done) {
var wait = node.randomFirst + (node.diff * Math.random());
@@ -226,34 +227,19 @@ module.exports = function(RED) {
// The rate limit/queue type modes
else if (node.pauseType === "rate") {
node.on("input", function(msg, send, done) {
- if (msg.hasOwnProperty("reset")) {
- if (node.intervalID !== -1 ) {
- clearInterval(node.intervalID);
- node.intervalID = -1;
- }
- delete node.lastSent;
- node.buffer = [];
- node.rate = node.fixedrate;
- node.status({fill:"blue",shape:"ring",text:0});
- done();
- return;
- }
-
if (!node.drop) {
var m = RED.util.cloneMessage(msg);
- delete m.flush;
- delete m.lifo;
if (Object.keys(m).length > 1) {
if (node.intervalID !== -1) {
- if (node.allowrate && msg.hasOwnProperty("rate") && !isNaN(parseFloat(msg.rate)) && node.rate !== msg.rate) {
- node.rate = msg.rate;
+ if (node.allowrate && m.hasOwnProperty("rate") && !isNaN(parseFloat(m.rate)) && node.rate !== m.rate) {
+ node.rate = m.rate;
clearInterval(node.intervalID);
node.intervalID = setInterval(sendMsgFromBuffer, node.rate);
}
var max_msgs = maxKeptMsgsCount(node);
if ((max_msgs > 0) && (node.buffer.length >= max_msgs)) {
node.buffer = [];
- node.error(RED._("delay.errors.too-many"), msg);
+ node.error(RED._("delay.errors.too-many"), m);
} else if (msg.toFront === true) {
node.buffer.unshift({msg: m, send: send, done: done});
node.reportDepth();
@@ -263,8 +249,8 @@ module.exports = function(RED) {
}
}
else {
- if (node.allowrate && msg.hasOwnProperty("rate") && !isNaN(parseFloat(msg.rate))) {
- node.rate = msg.rate;
+ if (node.allowrate && m.hasOwnProperty("rate") && !isNaN(parseFloat(m.rate))) {
+ node.rate = m.rate;
}
send(m);
node.reportDepth();
@@ -282,6 +268,8 @@ module.exports = function(RED) {
else {
while (len > 0) {
const msgInfo = node.buffer.shift();
+ delete msgInfo.msg.flush;
+ delete msgInfo.msg.reset;
if (Object.keys(msgInfo.msg).length > 1) {
node.send(msgInfo.msg);
msgInfo.done();
@@ -335,6 +323,21 @@ module.exports = function(RED) {
}
done();
}
+
+ if (msg.hasOwnProperty("reset")) {
+ if (msg.flush === undefined) {
+ if (node.intervalID !== -1 ) {
+ clearInterval(node.intervalID);
+ node.intervalID = -1;
+ }
+ delete node.lastSent;
+ }
+ node.buffer = [];
+ node.rate = node.fixedrate;
+ node.status({fill:"blue",shape:"ring",text:0});
+ done();
+ return;
+ }
});
node.on("close", function() {
clearInterval(node.intervalID);
@@ -387,6 +390,22 @@ module.exports = function(RED) {
node.buffer.push({msg, send, done}); // if not add to end of queue
node.reportDepth();
}
+ if (msg.hasOwnProperty("flush")) {
+ var len = node.buffer.length;
+ if (typeof(msg.flush) == 'number') { len = Math.min(Math.floor(msg.flush,len)); }
+ while (len > 0) {
+ const msgInfo = node.buffer.shift();
+ delete msgInfo.msg.flush;
+ delete msgInfo.msg.reset;
+ if (Object.keys(msgInfo.msg).length > 2) {
+ node.send(msgInfo.msg);
+ msgInfo.done();
+ }
+ len = len - 1;
+ }
+ node.status({});
+ done();
+ }
if (msg.hasOwnProperty("reset")) {
while (node.buffer.length > 0) {
const msgInfo = node.buffer.shift();
@@ -397,21 +416,6 @@ module.exports = function(RED) {
node.status({text:"reset"});
done();
}
- if (msg.hasOwnProperty("flush")) {
- var len = node.buffer.length;
- if (typeof(msg.flush) == 'number') { len = Math.min(Math.floor(msg.flush,len)); }
- while (len > 0) {
- const msgInfo = node.buffer.shift();
- delete msgInfo.msg.flush;
- if (Object.keys(msgInfo.msg).length > 2) {
- node.send(msgInfo.msg);
- msgInfo.done();
- }
- len = len - 1;
- }
- node.status({});
- done();
- }
});
node.on("close", function() {
clearInterval(node.intervalID);
diff --git a/test/nodes/core/function/89-delay_spec.js b/test/nodes/core/function/89-delay_spec.js
index 17958b95b..46b0037bc 100644
--- a/test/nodes/core/function/89-delay_spec.js
+++ b/test/nodes/core/function/89-delay_spec.js
@@ -817,6 +817,105 @@ describe('delay Node', function() {
});
});
+ it('can part flush and reset rate limit queue', function(done) {
+ this.timeout(2000);
+ var flow = [{"id":"delayNode1","type":"delay","name":"delayNode","pauseType":"rate","timeout":1,"timeoutUnits":"seconds","rate":1,"rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"wires":[["helperNode1"]]},
+ {id:"helperNode1", type:"helper", wires:[]}];
+ helper.load(delayNode, flow, function() {
+ var delayNode1 = helper.getNode("delayNode1");
+ var helperNode1 = helper.getNode("helperNode1");
+ var t = Date.now();
+ var c = 0;
+ helperNode1.on("input", function(msg) {
+ // console.log("GOT",Date.now() - t,msg)
+ msg.should.have.a.property('payload');
+ msg.should.have.a.property('topic');
+ try {
+ if (msg.topic === "foo") {
+ msg.payload.should.equal(1);
+ (Date.now() - t).should.be.approximately(0,50);
+ c = c + 1;
+ }
+ else if (msg.topic === "bar") {
+ msg.payload.should.equal(2);
+ (Date.now() - t).should.be.approximately(200,100);
+ c = c + 1;
+ }
+ else if (msg.topic === "fob") {
+ msg.payload.should.equal(5);
+ (Date.now() - t).should.be.approximately(400,100);
+ c = 5;
+ }
+ if (c === 5) { done(); }
+ } catch(e) {
+ done(e);
+ }
+ });
+
+ // send test messages
+ // delayNode1.receive({payload:1,topic:"foo"});
+ setImmediate( function() { delayNode1.receive({payload:1,topic:"foo"}); } );
+ setTimeout( function() { delayNode1.receive({payload:2,topic:"far"}); }, 10 );
+ setTimeout( function() { delayNode1.receive({payload:3,topic:"boo"}); }, 20 );
+ setTimeout( function() { delayNode1.receive({payload:4,topic:"bar"}); }, 30 );
+ setTimeout( function() { delayNode1.receive({flush:2,reset:true}); }, 200);
+ setTimeout( function() { delayNode1.receive({payload:5,topic:"fob"}); }, 300 );
+ setTimeout( function() { delayNode1.receive({flush:1,reset:true}); }, 400);
+ });
+ });
+
+ it('can full flush and reset rate limit queue', function(done) {
+ this.timeout(2000);
+ var flow = [{"id":"delayNode1","type":"delay","name":"delayNode","pauseType":"rate","timeout":1,"timeoutUnits":"seconds","rate":1,"rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"wires":[["helperNode1"]]},
+ {id:"helperNode1", type:"helper", wires:[]}];
+ helper.load(delayNode, flow, function() {
+ var delayNode1 = helper.getNode("delayNode1");
+ var helperNode1 = helper.getNode("helperNode1");
+ var t = Date.now();
+ var c = 0;
+ helperNode1.on("input", function(msg) {
+ // console.log("GOT",Date.now() - t,msg)
+ msg.should.have.a.property('payload');
+ msg.should.have.a.property('topic');
+ try {
+ if (msg.topic === "foo") {
+ msg.payload.should.equal(1);
+ (Date.now() - t).should.be.approximately(0,50);
+ c = c + 1;
+ }
+ else if (msg.topic === "bar") {
+ msg.payload.should.equal(4);
+ (Date.now() - t).should.be.approximately(200,100);
+ c = c + 1;
+ }
+ else if (msg.topic === "all") {
+ msg.payload.should.equal(5);
+ (Date.now() - t).should.be.approximately(200,100);
+ c = c + 1;
+ }
+ else if (msg.topic === "fob") {
+ msg.payload.should.equal(6);
+ (Date.now() - t).should.be.approximately(400,100);
+ c = 5;
+ }
+ if (c === 5) { done(); }
+ } catch(e) {
+ done(e);
+ }
+ });
+
+ // send test messages
+ // delayNode1.receive({payload:1,topic:"foo"});
+ setImmediate( function() { delayNode1.receive({payload:1,topic:"foo"}); } );
+ setTimeout( function() { delayNode1.receive({payload:2,topic:"far"}); }, 10 );
+ setTimeout( function() { delayNode1.receive({payload:3,topic:"boo"}); }, 20 );
+ setTimeout( function() { delayNode1.receive({payload:4,topic:"bar"}); }, 30 );
+ setTimeout( function() { delayNode1.receive({payload:5,topic:"last",flush:true,reset:true}); }, 200);
+ setTimeout( function() { delayNode1.receive({payload:6,topic:"fob"}); }, 300 );
+ setTimeout( function() { delayNode1.receive({flush:1,reset:true}); }, 400);
+ });
+ });
+
it('can part push to front of rate limit queue', function(done) {
this.timeout(2000);
var flow = [{"id":"delayNode1","type":"delay","name":"delayNode","pauseType":"rate","timeout":1,"timeoutUnits":"seconds","rate":1,"rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"wires":[["helperNode1"]]},
From e6b379358aa1278d261bc7bee2a1be09f9fc41f0 Mon Sep 17 00:00:00 2001
From: Steve-Mcl
Date: Thu, 29 Sep 2022 21:28:13 +0100
Subject: [PATCH 013/178] better logging of set with no types
---
.../@node-red/registry/lib/registry.js | 15 ++++++++-------
.../node_modules/@node-red/runtime/lib/index.js | 2 ++
.../@node-red/runtime/locales/en-US/runtime.json | 1 +
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/packages/node_modules/@node-red/registry/lib/registry.js b/packages/node_modules/@node-red/registry/lib/registry.js
index 6e3ed6d5b..b0ca22717 100644
--- a/packages/node_modules/@node-red/registry/lib/registry.js
+++ b/packages/node_modules/@node-red/registry/lib/registry.js
@@ -185,17 +185,18 @@ function loadNodeConfigs() {
function addModule(module) {
moduleNodes[module.name] = [];
moduleConfigs[module.name] = module;
- for (var setName in module.nodes) {
+ for (const setName in module.nodes) {
if (module.nodes.hasOwnProperty(setName)) {
- var set = module.nodes[setName];
+ const set = module.nodes[setName];
+ if(setName === 'lower-case') {
+ delete set.types
+ }
if (!set.types) {
- const err = new Error("Node has no types")
- err.code = "has_no_types"
+ const err = new Error("Set has no types")
+ err.code = "set_has_no_types"
err.details = {
- setName: set.name,
- set: { ...set }
+ ...set
}
- console.warn(err)
set.err = err
}
moduleNodes[module.name].push(set.name);
diff --git a/packages/node_modules/@node-red/runtime/lib/index.js b/packages/node_modules/@node-red/runtime/lib/index.js
index 88b3b8293..a886cd2ca 100644
--- a/packages/node_modules/@node-red/runtime/lib/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/index.js
@@ -161,6 +161,8 @@ function start() {
for (i=0;i
Date: Tue, 4 Oct 2022 11:28:26 +0100
Subject: [PATCH 014/178] Ensure msg.req.headers is enumerable Fixes #3878
---
.../@node-red/nodes/core/network/21-httpin.js | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/core/network/21-httpin.js b/packages/node_modules/@node-red/nodes/core/network/21-httpin.js
index 604df653f..22e83b411 100644
--- a/packages/node_modules/@node-red/nodes/core/network/21-httpin.js
+++ b/packages/node_modules/@node-red/nodes/core/network/21-httpin.js
@@ -46,7 +46,7 @@ module.exports = function(RED) {
isText = true;
} else if (parsedType.type !== "application") {
isText = false;
- } else if ((parsedType.subtype !== "octet-stream")
+ } else if ((parsedType.subtype !== "octet-stream")
&& (parsedType.subtype !== "cbor")
&& (parsedType.subtype !== "x-protobuf")) {
checkUTF = true;
@@ -200,6 +200,15 @@ module.exports = function(RED) {
this.callback = function(req,res) {
var msgid = RED.util.generateId();
res._msgid = msgid;
+ // Since Node 15, req.headers are lazily computed and the property
+ // marked as non-enumerable.
+ // That means it doesn't show up in the Debug sidebar.
+ // This redefines the property causing it to be evaluated *and*
+ // marked as enumerable again.
+ Object.defineProperty(req, 'headers', {
+ value: req.headers,
+ enumerable: true
+ })
if (node.method.match(/^(post|delete|put|options|patch)$/)) {
node.send({_msgid:msgid,req:req,res:createResponseWrapper(node,res),payload:req.body});
} else if (node.method == "get") {
From a40e5dbcd440b04da86455e218e87ad993837eeb Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 4 Oct 2022 11:49:49 +0100
Subject: [PATCH 015/178] Add check that node sends object rather than
primitive type Fixes #3876
---
.../@node-red/runtime/lib/nodes/Node.js | 49 +++++++++++--------
.../runtime/locales/en-US/runtime.json | 3 +-
2 files changed, 31 insertions(+), 21 deletions(-)
diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/Node.js b/packages/node_modules/@node-red/runtime/lib/nodes/Node.js
index f20359b8a..7a7445a92 100644
--- a/packages/node_modules/@node-red/runtime/lib/nodes/Node.js
+++ b/packages/node_modules/@node-red/runtime/lib/nodes/Node.js
@@ -373,6 +373,11 @@ Node.prototype.send = function(msg) {
if (msg === null || typeof msg === "undefined") {
return;
} else if (!util.isArray(msg)) {
+ // A single message has been passed in
+ if (typeof msg !== 'object') {
+ this.error(Log._("nodes.flow.non-message-returned", { type: typeof msg }));
+ return
+ }
if (this._wire) {
// A single message and a single wire on output 0
// TODO: pre-load flows.get calls - cannot do in constructor
@@ -425,27 +430,31 @@ Node.prototype.send = function(msg) {
for (k = 0; k < msgs.length; k++) {
var m = msgs[k];
if (m !== null && m !== undefined) {
- if (!m._msgid) {
- hasMissingIds = true;
+ if (typeof m !== 'object') {
+ this.error(Log._("nodes.flow.non-message-returned", { type: typeof m }));
+ } else {
+ if (!m._msgid) {
+ hasMissingIds = true;
+ }
+ /* istanbul ignore else */
+ if (!sentMessageId) {
+ sentMessageId = m._msgid;
+ }
+ sendEvents.push({
+ msg: m,
+ source: {
+ id: this.id,
+ node: this,
+ port: i
+ },
+ destination: {
+ id: wires[j],
+ node: undefined
+ },
+ cloneMessage: msgSent
+ });
+ msgSent = true;
}
- /* istanbul ignore else */
- if (!sentMessageId) {
- sentMessageId = m._msgid;
- }
- sendEvents.push({
- msg: m,
- source: {
- id: this.id,
- node: this,
- port: i
- },
- destination: {
- id: wires[j],
- node: undefined
- },
- cloneMessage: msgSent
- });
- msgSent = true;
}
}
}
diff --git a/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json b/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json
index ecd010abb..6bd3fc43b 100644
--- a/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json
+++ b/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json
@@ -134,7 +134,8 @@
"flow": {
"unknown-type": "Unknown type: __type__",
"missing-types": "missing types",
- "error-loop": "Message exceeded maximum number of catches"
+ "error-loop": "Message exceeded maximum number of catches",
+ "non-message-returned": "Node tried to send a message of type __type__"
},
"index": {
"unrecognised-id": "Unrecognised id: __id__",
From 6d1a12af4ba3c26a221962eb7aa56dbe129375d7 Mon Sep 17 00:00:00 2001
From: Stephen McLaughlin <44235289+Steve-Mcl@users.noreply.github.com>
Date: Tue, 4 Oct 2022 13:36:23 +0100
Subject: [PATCH 016/178] remove debug/test code
---
packages/node_modules/@node-red/registry/lib/registry.js | 3 ---
1 file changed, 3 deletions(-)
diff --git a/packages/node_modules/@node-red/registry/lib/registry.js b/packages/node_modules/@node-red/registry/lib/registry.js
index b0ca22717..389285dbc 100644
--- a/packages/node_modules/@node-red/registry/lib/registry.js
+++ b/packages/node_modules/@node-red/registry/lib/registry.js
@@ -188,9 +188,6 @@ function addModule(module) {
for (const setName in module.nodes) {
if (module.nodes.hasOwnProperty(setName)) {
const set = module.nodes[setName];
- if(setName === 'lower-case') {
- delete set.types
- }
if (!set.types) {
const err = new Error("Set has no types")
err.code = "set_has_no_types"
From 24b055b1b826f94c67600818eab261335ad78683 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 4 Oct 2022 15:44:29 +0100
Subject: [PATCH 017/178] Ensure key_path is quoted in GIT_SSH_COMMAND in case
of spaces in pathname
---
.../runtime/lib/storage/localfilesystem/projects/git/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
index f9d809231..111365307 100644
--- a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
@@ -106,7 +106,7 @@ function runGitCommandWithSSHCommand(args,cwd,auth,emit) {
commandEnv.GIT_SSH = path.join(__dirname,"node-red-ssh.sh");
commandEnv.NODE_RED_KEY_FILE=auth.key_path;
// GIT_SSH_COMMAND - added in git 2.3.0
- commandEnv.GIT_SSH_COMMAND = "ssh -i " + auth.key_path + " -F /dev/null";
+ commandEnv.GIT_SSH_COMMAND = "ssh -i \"" + auth.key_path + "\" -F /dev/null";
// console.log('commandEnv:', commandEnv);
return runGitCommand(args,cwd,commandEnv,emit).then( result => {
rs.close();
From c4e277853cf2ce5b2fcb032d7be80848793d5b61 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Wed, 12 Oct 2022 23:19:11 +0900
Subject: [PATCH 018/178] Add Japanese translation for button of node URL
---
.../@node-red/editor-client/locales/ja/editor.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index fb3458eed..ce5fdd696 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -683,7 +683,8 @@
"empty": "空",
"globalConfig": "グローバル設定ノード",
"triggerAction": "アクションを実行",
- "find": "ワークスペース内を検索"
+ "find": "ワークスペース内を検索",
+ "copyItemUrl": "要素のURLをコピー"
},
"help": {
"name": "ヘルプ",
@@ -1168,8 +1169,7 @@
"takeATour": "ツアーを開始",
"start": "開始",
"next": "次へ",
- "welcomeTours": "ウェルカムツアー",
- "tours": "ツアー"
+ "welcomeTours": "ウェルカムツアー"
},
"diagnostics": {
"title": "システム情報"
From 75725a38df6aec69936c0bab861e301b5aba4ea5 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Wed, 12 Oct 2022 23:50:33 +0900
Subject: [PATCH 019/178] Fix file permission
---
.../node_modules/@node-red/editor-client/locales/de/editor.json | 0
.../node_modules/@node-red/editor-client/locales/de/infotips.json | 0
.../node_modules/@node-red/editor-client/locales/de/jsonata.json | 0
.../@node-red/editor-client/locales/en-US/editor.json | 0
.../@node-red/editor-client/locales/en-US/infotips.json | 0
.../@node-red/editor-client/locales/en-US/jsonata.json | 0
.../node_modules/@node-red/editor-client/locales/ko/editor.json | 0
.../node_modules/@node-red/editor-client/locales/ko/infotips.json | 0
.../node_modules/@node-red/editor-client/locales/ko/jsonata.json | 0
.../node_modules/@node-red/editor-client/locales/ru/editor.json | 0
.../node_modules/@node-red/editor-client/locales/ru/infotips.json | 0
.../node_modules/@node-red/editor-client/locales/ru/jsonata.json | 0
.../node_modules/@node-red/editor-client/src/js/ui/library.js | 0
.../node_modules/@node-red/editor-client/src/js/ui/palette.js | 0
.../@node-red/editor-client/src/js/ui/projects/projects.js | 0
packages/node_modules/@node-red/editor-client/src/js/ui/view.js | 0
packages/node_modules/@node-red/nodes/core/storage/10-file.html | 0
.../node_modules/@node-red/nodes/locales/de/common/20-inject.html | 0
.../node_modules/@node-red/nodes/locales/de/common/21-debug.html | 0
.../node_modules/@node-red/nodes/locales/de/common/25-catch.html | 0
.../node_modules/@node-red/nodes/locales/de/common/25-status.html | 0
.../node_modules/@node-red/nodes/locales/de/common/60-link.html | 0
.../@node-red/nodes/locales/de/common/90-comment.html | 0
.../@node-red/nodes/locales/de/common/98-unknown.html | 0
.../@node-red/nodes/locales/de/function/10-function.html | 0
.../@node-red/nodes/locales/de/function/10-switch.html | 0
.../@node-red/nodes/locales/de/function/15-change.html | 0
.../@node-red/nodes/locales/de/function/16-range.html | 0
.../@node-red/nodes/locales/de/function/80-template.html | 0
.../@node-red/nodes/locales/de/function/89-delay.html | 0
.../@node-red/nodes/locales/de/function/89-trigger.html | 0
.../node_modules/@node-red/nodes/locales/de/function/90-exec.html | 0
packages/node_modules/@node-red/nodes/locales/de/messages.json | 0
.../node_modules/@node-red/nodes/locales/de/network/05-tls.html | 0
.../@node-red/nodes/locales/de/network/06-httpproxy.html | 0
.../node_modules/@node-red/nodes/locales/de/network/10-mqtt.html | 0
.../@node-red/nodes/locales/de/network/21-httpin.html | 0
.../@node-red/nodes/locales/de/network/21-httprequest.html | 0
.../@node-red/nodes/locales/de/network/22-websocket.html | 0
.../node_modules/@node-red/nodes/locales/de/network/31-tcpin.html | 0
.../node_modules/@node-red/nodes/locales/de/network/32-udp.html | 0
.../node_modules/@node-red/nodes/locales/de/parsers/70-CSV.html | 0
.../node_modules/@node-red/nodes/locales/de/parsers/70-HTML.html | 0
.../node_modules/@node-red/nodes/locales/de/parsers/70-JSON.html | 0
.../node_modules/@node-red/nodes/locales/de/parsers/70-XML.html | 0
.../node_modules/@node-red/nodes/locales/de/parsers/70-YAML.html | 0
.../@node-red/nodes/locales/de/sequence/17-split.html | 0
.../node_modules/@node-red/nodes/locales/de/sequence/18-sort.html | 0
.../@node-red/nodes/locales/de/sequence/19-batch.html | 0
.../node_modules/@node-red/nodes/locales/de/storage/10-file.html | 0
.../node_modules/@node-red/nodes/locales/de/storage/23-watch.html | 0
packages/node_modules/@node-red/nodes/locales/ko/messages.json | 0
packages/node_modules/@node-red/nodes/locales/ru/messages.json | 0
packages/node_modules/@node-red/runtime/locales/de/runtime.json | 0
packages/node_modules/@node-red/runtime/locales/ko/runtime.json | 0
55 files changed, 0 insertions(+), 0 deletions(-)
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/de/editor.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/de/infotips.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/de/jsonata.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/en-US/infotips.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/en-US/jsonata.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ko/editor.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ko/infotips.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ko/jsonata.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ru/editor.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ru/infotips.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/src/js/ui/library.js
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/src/js/ui/palette.js
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js
mode change 100755 => 100644 packages/node_modules/@node-red/editor-client/src/js/ui/view.js
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/core/storage/10-file.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/20-inject.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/21-debug.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/25-catch.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/25-status.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/60-link.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/90-comment.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/common/98-unknown.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/10-function.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/10-switch.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/15-change.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/16-range.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/80-template.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/89-delay.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/89-trigger.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/function/90-exec.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/messages.json
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/05-tls.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/06-httpproxy.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/10-mqtt.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/21-httpin.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/21-httprequest.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/22-websocket.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/31-tcpin.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/network/32-udp.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/parsers/70-CSV.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/parsers/70-HTML.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/parsers/70-JSON.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/parsers/70-XML.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/parsers/70-YAML.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/sequence/17-split.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/sequence/18-sort.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/sequence/19-batch.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/storage/10-file.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/de/storage/23-watch.html
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/ko/messages.json
mode change 100755 => 100644 packages/node_modules/@node-red/nodes/locales/ru/messages.json
mode change 100755 => 100644 packages/node_modules/@node-red/runtime/locales/de/runtime.json
mode change 100755 => 100644 packages/node_modules/@node-red/runtime/locales/ko/runtime.json
diff --git a/packages/node_modules/@node-red/editor-client/locales/de/editor.json b/packages/node_modules/@node-red/editor-client/locales/de/editor.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/de/infotips.json b/packages/node_modules/@node-red/editor-client/locales/de/infotips.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/de/jsonata.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/infotips.json b/packages/node_modules/@node-red/editor-client/locales/en-US/infotips.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/en-US/jsonata.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ko/editor.json b/packages/node_modules/@node-red/editor-client/locales/ko/editor.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ko/infotips.json b/packages/node_modules/@node-red/editor-client/locales/ko/infotips.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ko/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/ko/jsonata.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/editor.json b/packages/node_modules/@node-red/editor-client/locales/ru/editor.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/infotips.json b/packages/node_modules/@node-red/editor-client/locales/ru/infotips.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/library.js b/packages/node_modules/@node-red/editor-client/src/js/ui/library.js
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js b/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js b/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/core/storage/10-file.html b/packages/node_modules/@node-red/nodes/core/storage/10-file.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/20-inject.html b/packages/node_modules/@node-red/nodes/locales/de/common/20-inject.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/21-debug.html b/packages/node_modules/@node-red/nodes/locales/de/common/21-debug.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/25-catch.html b/packages/node_modules/@node-red/nodes/locales/de/common/25-catch.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/25-status.html b/packages/node_modules/@node-red/nodes/locales/de/common/25-status.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/60-link.html b/packages/node_modules/@node-red/nodes/locales/de/common/60-link.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/90-comment.html b/packages/node_modules/@node-red/nodes/locales/de/common/90-comment.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/common/98-unknown.html b/packages/node_modules/@node-red/nodes/locales/de/common/98-unknown.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/10-function.html b/packages/node_modules/@node-red/nodes/locales/de/function/10-function.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/10-switch.html b/packages/node_modules/@node-red/nodes/locales/de/function/10-switch.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/15-change.html b/packages/node_modules/@node-red/nodes/locales/de/function/15-change.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/16-range.html b/packages/node_modules/@node-red/nodes/locales/de/function/16-range.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/80-template.html b/packages/node_modules/@node-red/nodes/locales/de/function/80-template.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/89-delay.html b/packages/node_modules/@node-red/nodes/locales/de/function/89-delay.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/89-trigger.html b/packages/node_modules/@node-red/nodes/locales/de/function/89-trigger.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/function/90-exec.html b/packages/node_modules/@node-red/nodes/locales/de/function/90-exec.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/messages.json b/packages/node_modules/@node-red/nodes/locales/de/messages.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/05-tls.html b/packages/node_modules/@node-red/nodes/locales/de/network/05-tls.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/de/network/06-httpproxy.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/de/network/10-mqtt.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/de/network/21-httpin.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/de/network/21-httprequest.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/de/network/22-websocket.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/de/network/31-tcpin.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/de/network/32-udp.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/de/parsers/70-CSV.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/de/parsers/70-HTML.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/de/parsers/70-JSON.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/de/parsers/70-XML.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/de/parsers/70-YAML.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/de/sequence/17-split.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/de/sequence/18-sort.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/de/sequence/19-batch.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/de/storage/10-file.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/de/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/de/storage/23-watch.html
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/ko/messages.json b/packages/node_modules/@node-red/nodes/locales/ko/messages.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/messages.json b/packages/node_modules/@node-red/nodes/locales/ru/messages.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/runtime/locales/de/runtime.json b/packages/node_modules/@node-red/runtime/locales/de/runtime.json
old mode 100755
new mode 100644
diff --git a/packages/node_modules/@node-red/runtime/locales/ko/runtime.json b/packages/node_modules/@node-red/runtime/locales/ko/runtime.json
old mode 100755
new mode 100644
From 5b27bcd7814350a0ad26a4450fae497451aa730a Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Sun, 16 Oct 2022 18:05:21 +0100
Subject: [PATCH 020/178] CSV node check header properties for ' and "
and add test
to close #3919
---
.../@node-red/nodes/core/parsers/70-CSV.js | 5 +++-
test/nodes/core/parsers/70-CSV_spec.js | 27 +++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
index 39d03f05c..ca193c2b9 100644
--- a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
+++ b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
@@ -135,7 +135,10 @@ module.exports = function(RED) {
ou += node.sep;
}
else {
- var p = RED.util.getMessageProperty(msg,"payload["+s+"]['"+template[t]+"']");
+ var tt = template[t];
+ if (template[t].indexOf('"') >=0 ) { tt = "'"+tt+"'"; }
+ else { tt = '"'+tt+'"'; }
+ var p = RED.util.getMessageProperty(msg,'payload["'+s+'"]['+tt+']');
/* istanbul ignore else */
if (p === undefined) { p = ""; }
// fix to honour include null values flag
diff --git a/test/nodes/core/parsers/70-CSV_spec.js b/test/nodes/core/parsers/70-CSV_spec.js
index d56f05db3..681711b3b 100644
--- a/test/nodes/core/parsers/70-CSV_spec.js
+++ b/test/nodes/core/parsers/70-CSV_spec.js
@@ -766,6 +766,33 @@ describe('CSV node', function() {
});
});
+ it('should handle a template with quotes in the property names', function(done) {
+ var flow = [ { id:"n1", type:"csv", temp:"", hdrout:"all", wires:[["n2"]] },
+ {id:"n2", type:"helper"} ];
+ helper.load(csvNode, flow, function() {
+ var n1 = helper.getNode("n1");
+ var n2 = helper.getNode("n2");
+ n2.on("input", function(msg) {
+ try {
+ msg.should.have.property('payload', 'a"a,b\'b\nA1,B1\nA2,B2\n');
+ done();
+ }
+ catch(e) { done(e); }
+ });
+ var testJson = [
+ {
+ "a\"a": "A1",
+ "b'b": "B1"
+ },
+ {
+ "a\"a": "A2",
+ "b'b": "B2"
+ }
+ ]
+ n1.emit("input", {payload:testJson});
+ });
+ });
+
it('should convert an array of objects to a multi-line csv', function(done) {
var flow = [ { id:"n1", type:"csv", temp:"a,d,c,b", wires:[["n2"]] },
{id:"n2", type:"helper"} ];
From b40551a8fa939fec70da9191595339437971a1e8 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Sun, 16 Oct 2022 22:38:11 +0100
Subject: [PATCH 021/178] Handle replacing unknown node inside group or subflow
---
.../@node-red/editor-client/src/js/nodes.js | 24 +++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index d387f01b3..4291f8b2e 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -1768,6 +1768,7 @@ RED.nodes = (function() {
unknownTypes.push(n.type);
}
if (n.z) {
+if (n.id === '42051f44c151e5d7') console.log('importing',n.z)
nodeZmap[n.z] = nodeZmap[n.z] || [];
nodeZmap[n.z].push(n);
} else if (isInitialLoad && n.hasOwnProperty('x') && n.hasOwnProperty('y') && !n.z) {
@@ -1965,7 +1966,7 @@ RED.nodes = (function() {
}
}
} else {
- const keepNodesCurrentZ = reimport && n.z && RED.workspaces.contains(n.z)
+ const keepNodesCurrentZ = reimport && n.z && (RED.workspaces.contains(n.z) || RED.nodes.subflow(n.z))
if (!keepNodesCurrentZ && n.z && !workspace_map[n.z] && !subflow_map[n.z]) {
n.z = activeWorkspace;
}
@@ -2067,7 +2068,7 @@ RED.nodes = (function() {
node.id = getID();
} else {
node.id = n.id;
- const keepNodesCurrentZ = reimport && node.z && RED.workspaces.contains(node.z)
+ const keepNodesCurrentZ = reimport && node.z && (RED.workspaces.contains(node.z) || RED.nodes.subflow(node.z))
if (!keepNodesCurrentZ && (node.z == null || (!workspace_map[node.z] && !subflow_map[node.z]))) {
if (createMissingWorkspace) {
if (missingWorkspace === null) {
@@ -2740,6 +2741,7 @@ RED.nodes = (function() {
}
});
+ var nodeGroupMap = {}
var replaceNodeIds = Object.keys(replaceNodes);
if (replaceNodeIds.length > 0) {
var reimportList = [];
@@ -2750,6 +2752,12 @@ RED.nodes = (function() {
} else {
allNodes.removeNode(n);
}
+ if (n.g) {
+ // reimporting a node *without* including its group object
+ // will cause the g property to be cleared. Cache it
+ // here so we can restore it
+ nodeGroupMap[n.id] = n.g
+ }
reimportList.push(convertNode(n));
RED.events.emit('nodes:remove',n);
});
@@ -2771,6 +2779,18 @@ RED.nodes = (function() {
var newNodeMap = {};
result.nodes.forEach(function(n) {
newNodeMap[n.id] = n;
+ if (nodeGroupMap[n.id]) {
+ // This node is in a group - need to substitute the
+ // node reference inside the group
+ n.g = nodeGroupMap[n.id]
+ const group = RED.nodes.group(n.g)
+ if (group) {
+ var index = group.nodes.findIndex(gn => gn.id === n.id)
+ if (index > -1) {
+ group.nodes[index] = n
+ }
+ }
+ }
});
RED.nodes.eachLink(function(l) {
if (newNodeMap.hasOwnProperty(l.source.id)) {
From 69a575097d1d7bc6bfdea65d597244cbc3173951 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Sun, 16 Oct 2022 22:47:34 +0100
Subject: [PATCH 022/178] Remove debug
---
packages/node_modules/@node-red/editor-client/src/js/nodes.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index 4291f8b2e..32651d8d1 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -1768,7 +1768,6 @@ RED.nodes = (function() {
unknownTypes.push(n.type);
}
if (n.z) {
-if (n.id === '42051f44c151e5d7') console.log('importing',n.z)
nodeZmap[n.z] = nodeZmap[n.z] || [];
nodeZmap[n.z].push(n);
} else if (isInitialLoad && n.hasOwnProperty('x') && n.hasOwnProperty('y') && !n.z) {
From fb499be9795f667d2c0810dbd657d61dae6ed4a2 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 25 Oct 2022 23:44:59 +0100
Subject: [PATCH 023/178] Add context menu to tab bar
---
.../editor-client/locales/en-US/editor.json | 4 +-
.../editor-client/src/js/ui/clipboard.js | 21 +-
.../editor-client/src/js/ui/common/menu.js | 4 +-
.../editor-client/src/js/ui/common/tabs.js | 49 +++-
.../editor-client/src/js/ui/contextMenu.js | 217 ++++++++---------
.../@node-red/editor-client/src/js/ui/view.js | 1 +
.../editor-client/src/js/ui/workspaces.js | 228 +++++++++++-------
7 files changed, 300 insertions(+), 224 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 1cc571200..f226cb79e 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -57,11 +57,11 @@
"addFlowToRight": "Add flow to the right",
"hideFlow": "Hide flow",
"hideOtherFlows": "Hide other flows",
- "showAllFlows": "Show all flows",
+ "showAllFlows": "Show all flows (__count__ hidden)",
"hideAllFlows": "Hide all flows",
"hiddenFlows": "List __count__ hidden flow",
"hiddenFlows_plural": "List __count__ hidden flows",
- "showLastHiddenFlow": "Show last hidden flow",
+ "showLastHiddenFlow": "Reopen hidden flow",
"listFlows": "List flows",
"listSubflows": "List subflows",
"status": "Status",
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
index f547203d4..61435f6ad 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js
@@ -423,11 +423,10 @@ RED.clipboard = (function() {
}
}
- function showImportNodes(mode) {
+ function showImportNodes(library = 'clipboard') {
if (disabled) {
return;
}
- mode = mode || "clipboard";
dialogContainer.empty();
dialogContainer.append($(importNodesDialog));
@@ -533,8 +532,8 @@ RED.clipboard = (function() {
$("#red-ui-clipboard-dialog-import-file-upload").trigger("click");
})
- tabs.activateTab("red-ui-clipboard-dialog-import-tab-"+mode);
- if (mode === 'clipboard') {
+ tabs.activateTab("red-ui-clipboard-dialog-import-tab-"+library);
+ if (library === 'clipboard') {
setTimeout(function() {
$("#red-ui-clipboard-dialog-import-text").trigger("focus");
},100)
@@ -558,13 +557,16 @@ RED.clipboard = (function() {
});
}
- function showExportNodes(mode) {
+ /**
+ * Show the export dialog
+ * @params library which export destination to show
+ * @params mode whether to default to 'auto' (default) or 'flow'
+ **/
+ function showExportNodes(library = 'clipboard', mode = 'auto' ) {
if (disabled) {
return;
}
- mode = mode || "clipboard";
-
dialogContainer.empty();
dialogContainer.append($(exportNodesDialog));
@@ -766,12 +768,15 @@ RED.clipboard = (function() {
}
}
}
+ if (mode === 'flow' && !$("#red-ui-clipboard-dialog-export-rng-flow").hasClass('disabled')) {
+ $("#red-ui-clipboard-dialog-export-rng-flow").trigger("click");
+ }
if (format === "red-ui-clipboard-dialog-export-fmt-full") {
$("#red-ui-clipboard-dialog-export-fmt-full").trigger("click");
} else {
$("#red-ui-clipboard-dialog-export-fmt-mini").trigger("click");
}
- tabs.activateTab("red-ui-clipboard-dialog-export-tab-"+mode);
+ tabs.activateTab("red-ui-clipboard-dialog-export-tab-"+library);
var dialogHeight = 400;
var winHeight = $(window).height();
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js
index 2d95f894a..8d0f1dbd3 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js
@@ -94,8 +94,8 @@ RED.menu = (function() {
var link = $(linkContent).appendTo(item);
opt.link = link;
- if (typeof opt.onselect === 'string') {
- var shortcut = RED.keyboard.getShortcut(opt.onselect);
+ if (typeof opt.onselect === 'string' || opt.shortcut) {
+ var shortcut = opt.shortcut || RED.keyboard.getShortcut(opt.onselect);
if (shortcut && shortcut.key) {
opt.shortcutSpan = $(''+RED.keyboard.formatKey(shortcut.key, true)+'').appendTo(link.find(".red-ui-menu-label"));
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
index 8901cf11f..a8e7ea727 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
@@ -141,7 +141,29 @@ RED.tabs = (function() {
})
}
-
+ if (options.contextmenu) {
+ wrapper.on('contextmenu', function(evt) {
+ let clickedTab
+ let target = evt.target
+ while(target.nodeName !== 'A' && target.nodeName !== 'UL' && target.nodeName !== 'BODY') {
+ target = target.parentNode
+ }
+ if (target.nodeName === 'A') {
+ const href = target.getAttribute('href')
+ if (href) {
+ clickedTab = tabs[href.slice(1)]
+ }
+ }
+ evt.preventDefault()
+ evt.stopPropagation()
+ RED.contextMenu.show({
+ x:evt.clientX-5,
+ y:evt.clientY-5,
+ options: options.contextmenu(clickedTab)
+ })
+ return false
+ })
+ }
var scrollLeft;
var scrollRight;
@@ -809,17 +831,17 @@ RED.tabs = (function() {
});
RED.popover.tooltip(closeLink,RED._("workspace.hideFlow"));
}
- if (tab.hideable) {
- li.addClass("red-ui-tabs-closeable")
- var closeLink = $("",{href:"#",class:"red-ui-tab-close red-ui-tab-hide"}).appendTo(li);
- closeLink.append('');
- closeLink.append('');
- closeLink.on("click",function(event) {
- event.preventDefault();
- hideTab(tab.id);
- });
- RED.popover.tooltip(closeLink,RED._("workspace.hideFlow"));
- }
+ // if (tab.hideable) {
+ // li.addClass("red-ui-tabs-closeable")
+ // var closeLink = $("",{href:"#",class:"red-ui-tab-close red-ui-tab-hide"}).appendTo(li);
+ // closeLink.append('');
+ // closeLink.append('');
+ // closeLink.on("click",function(event) {
+ // event.preventDefault();
+ // hideTab(tab.id);
+ // });
+ // RED.popover.tooltip(closeLink,RED._("workspace.hideFlow"));
+ // }
var badges = $('').appendTo(li);
if (options.onselect) {
@@ -938,6 +960,9 @@ RED.tabs = (function() {
activeIndex: function() {
return ul.find("li.active").index()
},
+ getTabIndex: function (id) {
+ return ul.find("a[href='#"+id+"']").parent().index()
+ },
contains: function(id) {
return ul.find("a[href='#"+id+"']").length > 0;
},
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/contextMenu.js b/packages/node_modules/@node-red/editor-client/src/js/ui/contextMenu.js
index 66ae2b943..8052d561f 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/contextMenu.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/contextMenu.js
@@ -1,21 +1,6 @@
RED.contextMenu = (function () {
let menu;
- function createMenu() {
- // menu = RED.popover.menu({
- // options: [
- // {
- // label: 'delete selection',
- // onselect: function() {
- // RED.actions.invoke('core:delete-selection')
- // RED.view.focus()
- // }
- // },
- // { label: 'world' }
- // ],
- // width: 200,
- // })
- }
function disposeMenu() {
$(document).off("mousedown.red-ui-workspace-context-menu");
@@ -28,114 +13,118 @@ RED.contextMenu = (function () {
if (menu) {
menu.remove()
}
+ let menuItems = []
+ if (options.options) {
+ menuItems = options.options
+ } else if (options.type === 'workspace') {
+ const selection = RED.view.selection()
+ const noSelection = !selection || Object.keys(selection).length === 0
+ const hasSelection = (selection.nodes && selection.nodes.length > 0);
+ const hasMultipleSelection = hasSelection && selection.nodes.length > 1;
+ const virtulLinks = (selection.links && selection.links.filter(e => !!e.link)) || [];
+ const wireLinks = (selection.links && selection.links.filter(e => !e.link)) || [];
+ const hasLinks = wireLinks.length > 0;
+ const isSingleLink = !hasSelection && hasLinks && wireLinks.length === 1
+ const isMultipleLinks = !hasSelection && hasLinks && wireLinks.length > 1
+ const canDelete = hasSelection || hasLinks
+ const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
- const selection = RED.view.selection()
- const noSelection = !selection || Object.keys(selection).length === 0
- const hasSelection = (selection.nodes && selection.nodes.length > 0);
- const hasMultipleSelection = hasSelection && selection.nodes.length > 1;
- const virtulLinks = (selection.links && selection.links.filter(e => !!e.link)) || [];
- const wireLinks = (selection.links && selection.links.filter(e => !e.link)) || [];
- const hasLinks = wireLinks.length > 0;
- const isSingleLink = !hasSelection && hasLinks && wireLinks.length === 1
- const isMultipleLinks = !hasSelection && hasLinks && wireLinks.length > 1
- const canDelete = hasSelection || hasLinks
- const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
-
- const canRemoveFromGroup = hasSelection && !!selection.nodes[0].g
- const offset = $("#red-ui-workspace-chart").offset()
-
- let addX = options.x - offset.left + $("#red-ui-workspace-chart").scrollLeft()
- let addY = options.y - offset.top + $("#red-ui-workspace-chart").scrollTop()
-
- if (RED.view.snapGrid) {
- const gridSize = RED.view.gridSize()
- addX = gridSize * Math.floor(addX / gridSize)
- addY = gridSize * Math.floor(addY / gridSize)
- }
-
- const menuItems = [
- { onselect: 'core:show-action-list', onpostselect: function () { } },
- {
- label: RED._("contextMenu.insert"),
- options: [
- {
- label: RED._("contextMenu.node"),
- onselect: function () {
- RED.view.showQuickAddDialog({
- position: [addX, addY],
- touchTrigger: true,
- splice: isSingleLink ? selection.links[0] : undefined,
- // spliceMultiple: isMultipleLinks
- })
- }
- },
- (hasLinks) ? { // has least 1 wire selected
- label: RED._("contextMenu.junction"),
- onselect: 'core:split-wires-with-junctions',
- disabled: !hasLinks
- } : {
- label: RED._("contextMenu.junction"),
- onselect: function () {
- const nn = {
- _def: { defaults: {} },
- type: 'junction',
- z: RED.workspaces.active(),
- id: RED.nodes.id(),
- x: addX,
- y: addY,
- w: 0, h: 0,
- outputs: 1,
- inputs: 1,
- dirty: true
- }
- const historyEvent = {
- dirty: RED.nodes.dirty(),
- t: 'add',
- junctions: [nn]
- }
- RED.nodes.addJunction(nn);
- RED.history.push(historyEvent);
- RED.nodes.dirty(true);
- RED.view.select({nodes: [nn] });
- RED.view.redraw(true)
- }
- },
- {
- label: RED._("contextMenu.linkNodes"),
- onselect: 'core:split-wire-with-link-nodes',
- disabled: !hasLinks
- }
- ]
-
+ const canRemoveFromGroup = hasSelection && !!selection.nodes[0].g
+ const offset = $("#red-ui-workspace-chart").offset()
+ let addX = options.x - offset.left + $("#red-ui-workspace-chart").scrollLeft()
+ let addY = options.y - offset.top + $("#red-ui-workspace-chart").scrollTop()
+ if (RED.view.snapGrid) {
+ const gridSize = RED.view.gridSize()
+ addX = gridSize * Math.floor(addX / gridSize)
+ addY = gridSize * Math.floor(addY / gridSize)
}
- ]
- menuItems.push(
- null,
- { onselect: 'core:undo', disabled: RED.history.list().length === 0 },
- { onselect: 'core:redo', disabled: RED.history.listRedo().length === 0 },
- null,
- { onselect: 'core:cut-selection-to-internal-clipboard', label: RED._("keyboard.cutNode"), disabled: !hasSelection },
- { onselect: 'core:copy-selection-to-internal-clipboard', label: RED._("keyboard.copyNode"), disabled: !hasSelection },
- { onselect: 'core:paste-from-internal-clipboard', label: RED._("keyboard.pasteNode"), disabled: !RED.view.clipboard() },
- { onselect: 'core:delete-selection', disabled: !canDelete },
- { onselect: 'core:show-export-dialog', label: RED._("menu.label.export") },
- { onselect: 'core:select-all-nodes' }
- )
+ menuItems.push(
+ { onselect: 'core:show-action-list', onpostselect: function () { } },
+ {
+ label: RED._("contextMenu.insert"),
+ options: [
+ {
+ label: RED._("contextMenu.node"),
+ onselect: function () {
+ RED.view.showQuickAddDialog({
+ position: [addX, addY],
+ touchTrigger: true,
+ splice: isSingleLink ? selection.links[0] : undefined,
+ // spliceMultiple: isMultipleLinks
+ })
+ }
+ },
+ (hasLinks) ? { // has least 1 wire selected
+ label: RED._("contextMenu.junction"),
+ onselect: 'core:split-wires-with-junctions',
+ disabled: !hasLinks
+ } : {
+ label: RED._("contextMenu.junction"),
+ onselect: function () {
+ const nn = {
+ _def: { defaults: {} },
+ type: 'junction',
+ z: RED.workspaces.active(),
+ id: RED.nodes.id(),
+ x: addX,
+ y: addY,
+ w: 0, h: 0,
+ outputs: 1,
+ inputs: 1,
+ dirty: true
+ }
+ const historyEvent = {
+ dirty: RED.nodes.dirty(),
+ t: 'add',
+ junctions: [nn]
+ }
+ RED.nodes.addJunction(nn);
+ RED.history.push(historyEvent);
+ RED.nodes.dirty(true);
+ RED.view.select({nodes: [nn] });
+ RED.view.redraw(true)
+ }
+ },
+ {
+ label: RED._("contextMenu.linkNodes"),
+ onselect: 'core:split-wire-with-link-nodes',
+ disabled: !hasLinks
+ }
+ ]
+
+
+
+ }
+ )
- if (hasSelection) {
menuItems.push(
null,
- isGroup ?
- { onselect: 'core:ungroup-selection', disabled: !isGroup }
- : { onselect: 'core:group-selection', disabled: !hasSelection }
+ { onselect: 'core:undo', disabled: RED.history.list().length === 0 },
+ { onselect: 'core:redo', disabled: RED.history.listRedo().length === 0 },
+ null,
+ { onselect: 'core:cut-selection-to-internal-clipboard', label: RED._("keyboard.cutNode"), disabled: !hasSelection },
+ { onselect: 'core:copy-selection-to-internal-clipboard', label: RED._("keyboard.copyNode"), disabled: !hasSelection },
+ { onselect: 'core:paste-from-internal-clipboard', label: RED._("keyboard.pasteNode"), disabled: !RED.view.clipboard() },
+ { onselect: 'core:delete-selection', disabled: !canDelete },
+ { onselect: 'core:show-export-dialog', label: RED._("menu.label.export") },
+ { onselect: 'core:select-all-nodes' }
)
- if (canRemoveFromGroup) {
- menuItems.push({ onselect: 'core:remove-selection-from-group', label: RED._("menu.label.groupRemoveSelection") })
- }
+ if (hasSelection) {
+ menuItems.push(
+ null,
+ isGroup ?
+ { onselect: 'core:ungroup-selection', disabled: !isGroup }
+ : { onselect: 'core:group-selection', disabled: !hasSelection }
+ )
+ if (canRemoveFromGroup) {
+ menuItems.push({ onselect: 'core:remove-selection-from-group', label: RED._("menu.label.groupRemoveSelection") })
+ }
+
+ }
}
var direction = "right";
@@ -144,7 +133,7 @@ RED.contextMenu = (function () {
($(window).width() -MENU_WIDTH)) {
direction = "left";
}
-
+
menu = RED.menu.init({
direction: direction,
onpreselect: function() {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
index c6c49c942..83215afe4 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
@@ -211,6 +211,7 @@ RED.view = (function() {
evt.preventDefault()
evt.stopPropagation()
RED.contextMenu.show({
+ type: 'workspace',
x:evt.clientX-5,
y:evt.clientY-5
})
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index ae38f2c4d..a34f45b83 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -126,6 +126,113 @@ RED.workspaces = (function() {
var workspace_tabs;
var workspaceTabCount = 0;
+
+ function getMenuItems(isMenuButton, tab) {
+ let hiddenFlows = new Set()
+ for (let i = 0; i < hideStack.length; i++) {
+ let ids = hideStack[i]
+ if (!Array.isArray(ids)) {
+ ids = [ids]
+ }
+ ids.forEach(id => {
+ if (RED.nodes.workspace(id)) {
+ hiddenFlows.add(id)
+ }
+ })
+ }
+ const hiddenflowCount = hiddenFlows.size;
+
+ var menuItems = []
+ if (isMenuButton) {
+ menuItems.push({
+ id:"red-ui-tabs-menu-option-search-flows",
+ label: RED._("workspace.listFlows"),
+ onselect: "core:list-flows"
+ },
+ {
+ id:"red-ui-tabs-menu-option-search-subflows",
+ label: RED._("workspace.listSubflows"),
+ onselect: "core:list-subflows"
+ },
+ null)
+ }
+ menuItems.push(
+ {
+ id:"red-ui-tabs-menu-option-add-flow",
+ label: RED._("workspace.addFlow"),
+ onselect: "core:add-flow"
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-flow-right",
+ label: RED._("workspace.addFlowToRight"),
+ shortcut: RED.keyboard.getShortcut("core:add-flow-to-right"),
+ onselect: function() {
+ RED.actions.invoke("core:add-flow-to-right", tab)
+ }
+ },
+ null,
+ {
+ id:"red-ui-tabs-menu-option-add-hide-flows",
+ label: RED._("workspace.hideFlow"),
+ shortcut: RED.keyboard.getShortcut("core:hide-flow"),
+ onselect: function() {
+ RED.actions.invoke("core:hide-flow", tab)
+ }
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-hide-other-flows",
+ label: RED._("workspace.hideOtherFlows"),
+ shortcut: RED.keyboard.getShortcut("core:hide-other-flows"),
+ onselect: function() {
+ RED.actions.invoke("core:hide-other-flows", tab)
+ }
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-hide-all-flows",
+ label: RED._("workspace.hideAllFlows"),
+ onselect: "core:hide-all-flows"
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-show-all-flows",
+ disabled: hiddenflowCount === 0,
+ label: RED._("workspace.showAllFlows", { count: hiddenflowCount }),
+ onselect: "core:show-all-flows"
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-show-last-flow",
+ disabled: hideStack.length === 0,
+ label: RED._("workspace.showLastHiddenFlow"),
+ onselect: "core:show-last-hidden-flow"
+ }
+ )
+ if (tab) {
+ menuItems.push(
+ null,
+ {
+ label: RED._("common.label.delete"),
+ disabled: tab.type !== 'tab',
+ onselect: function() {
+ RED.workspaces.delete(tab)
+ }
+ },
+ {
+ label: RED._("menu.label.export"),
+ shortcut: RED.keyboard.getShortcut("core:show-export-dialog"),
+ onselect: function() {
+ RED.workspaces.show(tab.id)
+ RED.actions.invoke('core:show-export-dialog', null, 'flow')
+ }
+ }
+ )
+ }
+ // if (isMenuButton && hiddenflowCount > 0) {
+ // menuItems.unshift({
+ // label: RED._("workspace.hiddenFlows",{count: hiddenflowCount}),
+ // onselect: "core:list-hidden-flows"
+ // })
+ // }
+ return menuItems;
+ }
function createWorkspaceTabs() {
workspace_tabs = RED.tabs.create({
id: "red-ui-workspace-tabs",
@@ -214,12 +321,12 @@ RED.workspaces = (function() {
},
onhide: function(tab) {
hideStack.push(tab.id);
-
- var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}");
- hiddenTabs[tab.id] = true;
- RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs));
-
- RED.events.emit("workspace:hide",{workspace: tab.id})
+ if (tab.type === "tab") {
+ var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}");
+ hiddenTabs[tab.id] = true;
+ RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs));
+ RED.events.emit("workspace:hide",{workspace: tab.id})
+ }
},
onshow: function(tab) {
removeFromHideStack(tab.id);
@@ -234,77 +341,8 @@ RED.workspaces = (function() {
scrollable: true,
addButton: "core:add-flow",
addButtonCaption: RED._("workspace.addFlow"),
- menu: function() {
- var menuItems = [
- {
- id:"red-ui-tabs-menu-option-search-flows",
- label: RED._("workspace.listFlows"),
- onselect: "core:list-flows"
- },
- {
- id:"red-ui-tabs-menu-option-search-subflows",
- label: RED._("workspace.listSubflows"),
- onselect: "core:list-subflows"
- },
- null,
- {
- id:"red-ui-tabs-menu-option-add-flow",
- label: RED._("workspace.addFlow"),
- onselect: "core:add-flow"
- },
- {
- id:"red-ui-tabs-menu-option-add-flow-right",
- label: RED._("workspace.addFlowToRight"),
- onselect: "core:add-flow-to-right"
- },
- null,
- {
- id:"red-ui-tabs-menu-option-add-hide-flows",
- label: RED._("workspace.hideFlow"),
- onselect: "core:hide-flow"
- },
- {
- id:"red-ui-tabs-menu-option-add-hide-other-flows",
- label: RED._("workspace.hideOtherFlows"),
- onselect: "core:hide-other-flows"
- },
- {
- id:"red-ui-tabs-menu-option-add-show-all-flows",
- label: RED._("workspace.showAllFlows"),
- onselect: "core:show-all-flows"
- },
- {
- id:"red-ui-tabs-menu-option-add-hide-all-flows",
- label: RED._("workspace.hideAllFlows"),
- onselect: "core:hide-all-flows"
- },
- {
- id:"red-ui-tabs-menu-option-add-show-last-flow",
- label: RED._("workspace.showLastHiddenFlow"),
- onselect: "core:show-last-hidden-flow"
- }
- ]
- let hiddenFlows = new Set()
- for (let i = 0; i < hideStack.length; i++) {
- let ids = hideStack[i]
- if (!Array.isArray(ids)) {
- ids = [ids]
- }
- ids.forEach(id => {
- if (RED.nodes.workspace(id)) {
- hiddenFlows.add(id)
- }
- })
- }
- const flowCount = hiddenFlows.size;
- if (flowCount > 0) {
- menuItems.unshift({
- label: RED._("workspace.hiddenFlows",{count: flowCount}),
- onselect: "core:list-hidden-flows"
- })
- }
- return menuItems;
- }
+ menu: function() { return getMenuItems(true) },
+ contextmenu: function(tab) { return getMenuItems(false, tab) }
});
workspaceTabCount = 0;
}
@@ -355,16 +393,29 @@ RED.workspaces = (function() {
});
RED.actions.add("core:add-flow",function(opts) { addWorkspace(undefined,undefined,opts?opts.index:undefined)});
- RED.actions.add("core:add-flow-to-right",function(opts) { addWorkspace(undefined,undefined,workspace_tabs.activeIndex()+1)});
+ RED.actions.add("core:add-flow-to-right",function(workspace) {
+ let index
+ if (workspace) {
+ index = workspace_tabs.getTabIndex(workspace.id)+1
+ } else {
+ index = workspace_tabs.activeIndex()+1
+ }
+ addWorkspace(undefined,undefined,index)
+ });
RED.actions.add("core:edit-flow",editWorkspace);
RED.actions.add("core:remove-flow",removeWorkspace);
RED.actions.add("core:enable-flow",enableWorkspace);
RED.actions.add("core:disable-flow",disableWorkspace);
- RED.actions.add("core:hide-flow", function() {
- var selection = workspace_tabs.selection();
- if (selection.length === 0) {
- selection = [{id:activeWorkspace}]
+ RED.actions.add("core:hide-flow", function(workspace) {
+ let selection
+ if (workspace) {
+ selection = [workspace]
+ } else {
+ selection = workspace_tabs.selection();
+ if (selection.length === 0) {
+ selection = [{id:activeWorkspace}]
+ }
}
var hiddenTabs = [];
selection.forEach(function(ws) {
@@ -378,10 +429,15 @@ RED.workspaces = (function() {
workspace_tabs.clearSelection();
})
- RED.actions.add("core:hide-other-flows", function() {
- var selection = workspace_tabs.selection();
- if (selection.length === 0) {
- selection = [{id:activeWorkspace}]
+ RED.actions.add("core:hide-other-flows", function(workspace) {
+ let selection
+ if (workspace) {
+ selection = [workspace]
+ } else {
+ selection = workspace_tabs.selection();
+ if (selection.length === 0) {
+ selection = [{id:activeWorkspace}]
+ }
}
var selected = new Set(selection.map(function(ws) { return ws.id }))
From cd0474ce7b5b9313efe020c5b05f9a0015bcae2e Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Wed, 26 Oct 2022 00:51:41 +0100
Subject: [PATCH 024/178] Update
packages/node_modules/@node-red/editor-client/src/js/nodes.js
Co-authored-by: Stephen McLaughlin <44235289+Steve-Mcl@users.noreply.github.com>
---
packages/node_modules/@node-red/editor-client/src/js/nodes.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index 32651d8d1..865636b24 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -2740,7 +2740,7 @@ RED.nodes = (function() {
}
});
- var nodeGroupMap = {}
+ const nodeGroupMap = {}
var replaceNodeIds = Object.keys(replaceNodes);
if (replaceNodeIds.length > 0) {
var reimportList = [];
From 4cc18c25fe678b17c76aa5707a9143e4cc79aa7a Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Sat, 29 Oct 2022 17:34:29 +0100
Subject: [PATCH 025/178] Add drop mode to range node
and include tests
---
.../nodes/core/function/16-range.html | 1 +
.../@node-red/nodes/core/function/16-range.js | 8 +++++--
.../locales/en-US/function/16-range.html | 3 +++
.../nodes/locales/en-US/messages.json | 3 ++-
test/nodes/core/function/16-range_spec.js | 21 +++++++++++++++++++
5 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/function/16-range.html b/packages/node_modules/@node-red/nodes/core/function/16-range.html
index 07bb1f080..1652a91db 100644
--- a/packages/node_modules/@node-red/nodes/core/function/16-range.html
+++ b/packages/node_modules/@node-red/nodes/core/function/16-range.html
@@ -10,6 +10,7 @@
+
diff --git a/packages/node_modules/@node-red/nodes/core/function/16-range.js b/packages/node_modules/@node-red/nodes/core/function/16-range.js
index a5dede4ea..61ffd53fb 100644
--- a/packages/node_modules/@node-red/nodes/core/function/16-range.js
+++ b/packages/node_modules/@node-red/nodes/core/function/16-range.js
@@ -32,11 +32,15 @@ module.exports = function(RED) {
if (value !== undefined) {
var n = Number(value);
if (!isNaN(n)) {
- if (node.action == "clamp") {
+ if (node.action === "drop") {
+ if (n < node.minin) { done(); return; }
+ if (n > node.maxin) { done(); return; }
+ }
+ if (node.action === "clamp") {
if (n < node.minin) { n = node.minin; }
if (n > node.maxin) { n = node.maxin; }
}
- if (node.action == "roll") {
+ if (node.action === "roll") {
var divisor = node.maxin - node.minin;
n = ((n - node.minin) % divisor + divisor) % divisor + node.minin;
}
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/function/16-range.html b/packages/node_modules/@node-red/nodes/locales/en-US/function/16-range.html
index b391f5c04..f25363565 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/function/16-range.html
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/function/16-range.html
@@ -34,11 +34,14 @@
the range specified within the target range.
Scale and wrap within the target range means that the result will
be wrapped within the target range.
+ Scale, but drop if outside input range means that the result will
+ be scaled, but any inputs outside of the inout range will be dropped.
For example an input 0 - 10 mapped to 0 - 100.
mode input output
scale 12 120
limit 12 100
wrap 12 20
+ drop 12 (no output)
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
index 62d5f351f..8b66bf5e9 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
@@ -813,7 +813,8 @@
"scale": {
"payload": "Scale the message property",
"limit": "Scale and limit to the target range",
- "wrap": "Scale and wrap within the target range"
+ "wrap": "Scale and wrap within the target range",
+ "drop": "Scale, but drop msg if outside input range"
},
"tip": "Tip: This node ONLY works with numbers.",
"errors": {
diff --git a/test/nodes/core/function/16-range_spec.js b/test/nodes/core/function/16-range_spec.js
index a0dcd0078..620d21b12 100644
--- a/test/nodes/core/function/16-range_spec.js
+++ b/test/nodes/core/function/16-range_spec.js
@@ -106,6 +106,27 @@ describe('range Node', function() {
genericRangeTest("clamp", 0, 10, 0, 1000, false, -1, 0, done);
});
+ it('drops msg if in drop mode and input outside range', function(done) {
+ var flow = [{"id":"rangeNode1","type":"range","minin":2,"maxin":8,"minout":20,"maxout":80,"action":"drop","round":true,"name":"rangeNode","wires":[["helperNode1"]]},
+ {id:"helperNode1", type:"helper", wires:[]}];
+ helper.load(rangeNode, flow, function() {
+ var rangeNode1 = helper.getNode("rangeNode1");
+ var helperNode1 = helper.getNode("helperNode1");
+ helperNode1.on("input", function(msg) {
+ try {
+ msg.should.have.property('payload');
+ msg.payload.should.equal(50);
+ done();
+ } catch(err) {
+ done(err);
+ }
+ });
+ rangeNode1.receive({payload:1});
+ rangeNode1.receive({payload:9});
+ rangeNode1.receive({payload:5});
+ });
+ });
+
it('just passes on msg if payload not present', function(done) {
var flow = [{"id":"rangeNode1","type":"range","minin":0,"maxin":100,"minout":0,"maxout":100,"action":"scale","round":true,"name":"rangeNode","wires":[["helperNode1"]]},
{id:"helperNode1", type:"helper", wires:[]}];
From d693af9615137655974f3ca51010794180158b0f Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Sun, 16 Oct 2022 18:05:21 +0100
Subject: [PATCH 026/178] CSV node check header properties for ' and "
and add test
to close #3919
---
.../@node-red/nodes/core/parsers/70-CSV.js | 5 +++-
test/nodes/core/parsers/70-CSV_spec.js | 27 +++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
index 39d03f05c..ca193c2b9 100644
--- a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
+++ b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
@@ -135,7 +135,10 @@ module.exports = function(RED) {
ou += node.sep;
}
else {
- var p = RED.util.getMessageProperty(msg,"payload["+s+"]['"+template[t]+"']");
+ var tt = template[t];
+ if (template[t].indexOf('"') >=0 ) { tt = "'"+tt+"'"; }
+ else { tt = '"'+tt+'"'; }
+ var p = RED.util.getMessageProperty(msg,'payload["'+s+'"]['+tt+']');
/* istanbul ignore else */
if (p === undefined) { p = ""; }
// fix to honour include null values flag
diff --git a/test/nodes/core/parsers/70-CSV_spec.js b/test/nodes/core/parsers/70-CSV_spec.js
index d56f05db3..681711b3b 100644
--- a/test/nodes/core/parsers/70-CSV_spec.js
+++ b/test/nodes/core/parsers/70-CSV_spec.js
@@ -766,6 +766,33 @@ describe('CSV node', function() {
});
});
+ it('should handle a template with quotes in the property names', function(done) {
+ var flow = [ { id:"n1", type:"csv", temp:"", hdrout:"all", wires:[["n2"]] },
+ {id:"n2", type:"helper"} ];
+ helper.load(csvNode, flow, function() {
+ var n1 = helper.getNode("n1");
+ var n2 = helper.getNode("n2");
+ n2.on("input", function(msg) {
+ try {
+ msg.should.have.property('payload', 'a"a,b\'b\nA1,B1\nA2,B2\n');
+ done();
+ }
+ catch(e) { done(e); }
+ });
+ var testJson = [
+ {
+ "a\"a": "A1",
+ "b'b": "B1"
+ },
+ {
+ "a\"a": "A2",
+ "b'b": "B2"
+ }
+ ]
+ n1.emit("input", {payload:testJson});
+ });
+ });
+
it('should convert an array of objects to a multi-line csv', function(done) {
var flow = [ { id:"n1", type:"csv", temp:"a,d,c,b", wires:[["n2"]] },
{id:"n2", type:"helper"} ];
From dd76840568c7435bd6568f488180f81b8d56f1c5 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Tue, 1 Nov 2022 01:09:06 +0900
Subject: [PATCH 027/178] Fix uncleared translations in change node
---
.../node_modules/@node-red/nodes/locales/ja/messages.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/locales/ja/messages.json b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
index 6e16daa6f..124dd4f09 100644
--- a/packages/node_modules/@node-red/nodes/locales/ja/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
@@ -777,8 +777,8 @@
"change": "値の置換",
"delete": "値の削除",
"move": "値の移動",
- "toValue": "対象の値",
- "to": "対象の値",
+ "toValue": "代入する値",
+ "to": "移動先",
"search": "検索する文字列",
"replace": "置換後の文字列"
},
From d8e01584f33a3f8d205180d60ec80cf91a72399a Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Mon, 31 Oct 2022 20:20:05 +0000
Subject: [PATCH 028/178] Remove add-flow-to-right option if clicked in tab bar
---
.../editor-client/src/js/ui/workspaces.js | 22 ++++++++++++-------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index a34f45b83..5df1ca69c 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -161,15 +161,21 @@ RED.workspaces = (function() {
id:"red-ui-tabs-menu-option-add-flow",
label: RED._("workspace.addFlow"),
onselect: "core:add-flow"
- },
- {
- id:"red-ui-tabs-menu-option-add-flow-right",
- label: RED._("workspace.addFlowToRight"),
- shortcut: RED.keyboard.getShortcut("core:add-flow-to-right"),
- onselect: function() {
- RED.actions.invoke("core:add-flow-to-right", tab)
+ }
+ )
+ if (isMenuButton || !!tab) {
+ menuItems.push(
+ {
+ id:"red-ui-tabs-menu-option-add-flow-right",
+ label: RED._("workspace.addFlowToRight"),
+ shortcut: RED.keyboard.getShortcut("core:add-flow-to-right"),
+ onselect: function() {
+ RED.actions.invoke("core:add-flow-to-right", tab)
+ }
}
- },
+ )
+ }
+ menuItems.push(
null,
{
id:"red-ui-tabs-menu-option-add-hide-flows",
From a351cd9d9f58556e06f979867ba88ed5edb22d68 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 1 Nov 2022 10:35:57 +0000
Subject: [PATCH 029/178] Add move-to-start/end and better subflow menu options
---
.../editor-client/locales/en-US/editor.json | 6 +-
.../@node-red/editor-client/src/js/nodes.js | 2 +-
.../editor-client/src/js/ui/subflow.js | 83 ++++++-----
.../editor-client/src/js/ui/workspaces.js | 137 ++++++++++++++----
4 files changed, 162 insertions(+), 66 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index f226cb79e..44d370aac 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -68,7 +68,11 @@
"enabled": "Enabled",
"disabled": "Disabled",
"info": "Description",
- "selectNodes": "Click nodes to select"
+ "selectNodes": "Click nodes to select",
+ "enableFlow": "Enable flow",
+ "disableFlow": "Disable flow",
+ "moveToStart": "Move flow to start",
+ "moveToEnd": "Move flow to end"
},
"menu": {
"label": {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index 9da5aad05..6dd500581 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -2834,7 +2834,7 @@ RED.nodes = (function() {
},
addWorkspace: addWorkspace,
removeWorkspace: removeWorkspace,
- getWorkspaceOrder: function() { return workspacesOrder },
+ getWorkspaceOrder: function() { return [...workspacesOrder] },
setWorkspaceOrder: function(order) { workspacesOrder = order; },
workspace: getWorkspace,
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
index ca4f651ab..e979adf65 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
@@ -431,44 +431,7 @@ RED.subflow = (function() {
$("#red-ui-subflow-delete").on("click", function(event) {
event.preventDefault();
- var subflow = RED.nodes.subflow(RED.workspaces.active());
- if (subflow.instances.length > 0) {
- var msg = $('')
- $('').text(RED._("subflow.subflowInstances",{count: subflow.instances.length})).appendTo(msg);
- $('
').text(RED._("subflow.confirmDelete")).appendTo(msg);
- var confirmDeleteNotification = RED.notify(msg, {
- modal: true,
- fixed: true,
- buttons: [
- {
- text: RED._('common.label.cancel'),
- click: function() {
- confirmDeleteNotification.close();
- }
- },
- {
- text: RED._('workspace.confirmDelete'),
- class: "primary",
- click: function() {
- confirmDeleteNotification.close();
- completeDelete();
- }
- }
- ]
- });
-
- return;
- } else {
- completeDelete();
- }
- function completeDelete() {
- var startDirty = RED.nodes.dirty();
- var historyEvent = removeSubflow(RED.workspaces.active());
- historyEvent.t = 'delete';
- historyEvent.dirty = startDirty;
- RED.history.push(historyEvent);
- }
-
+ RED.subflow.delete(RED.workspaces.active())
});
refreshToolbar(activeSubflow);
@@ -481,7 +444,48 @@ RED.subflow = (function() {
$("#red-ui-workspace-toolbar").hide().empty();
$("#red-ui-workspace-chart").css({"margin-top": "0"});
}
+ function deleteSubflow(id) {
+ const subflow = RED.nodes.subflow(id || RED.workspaces.active());
+ if (!subflow) {
+ return
+ }
+ if (subflow.instances.length > 0) {
+ const msg = $('
')
+ $('').text(RED._("subflow.subflowInstances",{count: subflow.instances.length})).appendTo(msg);
+ $('
').text(RED._("subflow.confirmDelete")).appendTo(msg);
+ const confirmDeleteNotification = RED.notify(msg, {
+ modal: true,
+ fixed: true,
+ buttons: [
+ {
+ text: RED._('common.label.cancel'),
+ click: function() {
+ confirmDeleteNotification.close();
+ }
+ },
+ {
+ text: RED._('workspace.confirmDelete'),
+ class: "primary",
+ click: function() {
+ confirmDeleteNotification.close();
+ completeDelete();
+ }
+ }
+ ]
+ });
+ return;
+ } else {
+ completeDelete();
+ }
+ function completeDelete() {
+ const startDirty = RED.nodes.dirty();
+ const historyEvent = removeSubflow(subflow.id);
+ historyEvent.t = 'delete';
+ historyEvent.dirty = startDirty;
+ RED.history.push(historyEvent);
+ }
+ }
function removeSubflow(id, keepInstanceNodes) {
// TODO: A lot of this logic is common with RED.nodes.removeWorkspace
var removedNodes = [];
@@ -1323,7 +1327,10 @@ RED.subflow = (function() {
init: init,
createSubflow: createSubflow,
convertToSubflow: convertToSubflow,
+ // removeSubflow: Internal function to remove subflow
removeSubflow: removeSubflow,
+ // delete: Prompt user for confirmation
+ delete: deleteSubflow,
refresh: refresh,
removeInput: removeSubflowInput,
removeOutput: removeSubflowOutput,
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index 5df1ca69c..d274ba519 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -141,6 +141,8 @@ RED.workspaces = (function() {
})
}
const hiddenflowCount = hiddenFlows.size;
+ let activeWorkspace = tab || RED.nodes.workspace(RED.workspaces.active()) || RED.nodes.subflow(RED.workspaces.active())
+ let isFlowDisabled = activeWorkspace ? activeWorkspace.disabled : false
var menuItems = []
if (isMenuButton) {
@@ -172,27 +174,69 @@ RED.workspaces = (function() {
onselect: function() {
RED.actions.invoke("core:add-flow-to-right", tab)
}
+ },
+ null
+ )
+ if (activeWorkspace && activeWorkspace.type === 'tab') {
+ menuItems.push(
+ isFlowDisabled ? {
+ label: RED._("workspace.enableFlow"),
+ shortcut: RED.keyboard.getShortcut("core:enable-flow"),
+ onselect: function() {
+ RED.actions.invoke("core:enable-flow", tab?tab.id:undefined)
+ }
+ } : {
+ label: RED._("workspace.disableFlow"),
+ shortcut: RED.keyboard.getShortcut("core:disable-flow"),
+ onselect: function() {
+ RED.actions.invoke("core:disable-flow", tab?tab.id:undefined)
+ }
+ }
+ )
+ }
+ const currentTabs = workspace_tabs.listTabs()
+ const activeIndex = currentTabs.findIndex(id => id === activeWorkspace.id)
+ menuItems.push(
+ {
+ label: RED._("workspace.moveToStart"),
+ shortcut: RED.keyboard.getShortcut("core:move-flow-to-start"),
+ onselect: function() {
+ RED.actions.invoke("core:move-flow-to-start", tab?tab.id:undefined)
+ },
+ disabled: activeIndex === 0
+ },
+ {
+ label: RED._("workspace.moveToEnd"),
+ shortcut: RED.keyboard.getShortcut("core:move-flow-to-end"),
+ onselect: function() {
+ RED.actions.invoke("core:move-flow-to-end", tab?tab.id:undefined)
+ },
+ disabled: activeIndex === currentTabs.length - 1
+ }
+ )
+ }
+ menuItems.push(null)
+ if (isMenuButton || !!tab) {
+ menuItems.push(
+ {
+ id:"red-ui-tabs-menu-option-add-hide-flows",
+ label: RED._("workspace.hideFlow"),
+ shortcut: RED.keyboard.getShortcut("core:hide-flow"),
+ onselect: function() {
+ RED.actions.invoke("core:hide-flow", tab)
+ }
+ },
+ {
+ id:"red-ui-tabs-menu-option-add-hide-other-flows",
+ label: RED._("workspace.hideOtherFlows"),
+ shortcut: RED.keyboard.getShortcut("core:hide-other-flows"),
+ onselect: function() {
+ RED.actions.invoke("core:hide-other-flows", tab)
+ }
}
)
}
menuItems.push(
- null,
- {
- id:"red-ui-tabs-menu-option-add-hide-flows",
- label: RED._("workspace.hideFlow"),
- shortcut: RED.keyboard.getShortcut("core:hide-flow"),
- onselect: function() {
- RED.actions.invoke("core:hide-flow", tab)
- }
- },
- {
- id:"red-ui-tabs-menu-option-add-hide-other-flows",
- label: RED._("workspace.hideOtherFlows"),
- shortcut: RED.keyboard.getShortcut("core:hide-other-flows"),
- onselect: function() {
- RED.actions.invoke("core:hide-other-flows", tab)
- }
- },
{
id:"red-ui-tabs-menu-option-add-hide-all-flows",
label: RED._("workspace.hideAllFlows"),
@@ -216,9 +260,12 @@ RED.workspaces = (function() {
null,
{
label: RED._("common.label.delete"),
- disabled: tab.type !== 'tab',
onselect: function() {
- RED.workspaces.delete(tab)
+ if (tab.type === 'tab') {
+ RED.workspaces.delete(tab)
+ } else if (tab.type === 'subflow') {
+ RED.subflow.delete(tab.id)
+ }
}
},
{
@@ -302,13 +349,19 @@ RED.workspaces = (function() {
RED.history.push({
t:'reorder',
workspaces: {
- from:oldOrder,
- to:newOrder
+ from: oldOrder,
+ to: newOrder
},
dirty:RED.nodes.dirty()
});
- RED.nodes.dirty(true);
- setWorkspaceOrder(newOrder);
+ // Only mark flows dirty if flow-order has changed (excluding subflows)
+ const filteredOldOrder = oldOrder.filter(id => !!RED.nodes.workspace(id))
+ const filteredNewOrder = newOrder.filter(id => !!RED.nodes.workspace(id))
+
+ if (JSON.stringify(filteredOldOrder) !== JSON.stringify(filteredNewOrder)) {
+ RED.nodes.dirty(true);
+ setWorkspaceOrder(newOrder);
+ }
},
onselect: function(selectedTabs) {
RED.view.select(false)
@@ -412,6 +465,8 @@ RED.workspaces = (function() {
RED.actions.add("core:remove-flow",removeWorkspace);
RED.actions.add("core:enable-flow",enableWorkspace);
RED.actions.add("core:disable-flow",disableWorkspace);
+ RED.actions.add("core:move-flow-to-start", function(id) { moveWorkspace(id, 'start') });
+ RED.actions.add("core:move-flow-to-end", function(id) { moveWorkspace(id, 'end') });
RED.actions.add("core:hide-flow", function(workspace) {
let selection
@@ -597,16 +652,46 @@ RED.workspaces = (function() {
}
}
+ function moveWorkspace(id, direction) {
+ const workspace = RED.nodes.workspace(id||activeWorkspace) || RED.nodes.subflow(id||activeWorkspace);
+ if (!workspace) {
+ return;
+ }
+ const currentOrder = workspace_tabs.listTabs()
+ const oldOrder = [...currentOrder]
+ const currentIndex = currentOrder.findIndex(id => id === workspace.id)
+ currentOrder.splice(currentIndex, 1)
+ if (direction === 'start') {
+ currentOrder.unshift(workspace.id)
+ } else if (direction === 'end') {
+ currentOrder.push(workspace.id)
+ }
+ const newOrder = setWorkspaceOrder(currentOrder)
+ if (JSON.stringify(newOrder) !== JSON.stringify(oldOrder)) {
+ RED.history.push({
+ t:'reorder',
+ workspaces: {
+ from:oldOrder,
+ to:newOrder
+ },
+ dirty:RED.nodes.dirty()
+ });
+ const filteredOldOrder = oldOrder.filter(id => !!RED.nodes.workspace(id))
+ const filteredNewOrder = newOrder.filter(id => !!RED.nodes.workspace(id))
+ if (JSON.stringify(filteredOldOrder) !== JSON.stringify(filteredNewOrder)) {
+ RED.nodes.dirty(true);
+ }
+ }
+ }
function setWorkspaceOrder(order) {
- var newOrder = order.filter(function(id) {
- return RED.nodes.workspace(id) !== undefined;
- })
+ var newOrder = order.filter(id => !!RED.nodes.workspace(id))
var currentOrder = RED.nodes.getWorkspaceOrder();
if (JSON.stringify(newOrder) !== JSON.stringify(currentOrder)) {
RED.nodes.setWorkspaceOrder(newOrder);
RED.events.emit("flows:reorder",newOrder);
}
workspace_tabs.order(order);
+ return newOrder
}
function flashTab(tabId) {
From 3cb52594942545e27494e212c62b5b29e7c73762 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Mon, 19 Sep 2022 21:09:00 +0100
Subject: [PATCH 030/178] Initial locking flows UX
---
.../@node-red/editor-client/src/js/nodes.js | 4 ++
.../editor-client/src/js/ui/editor.js | 23 ++++++++
.../src/js/ui/tab-info-outliner.js | 19 ++++++
.../editor-client/src/js/ui/workspaces.js | 59 ++++++++++++++++++-
.../editor-client/src/sass/tab-info.scss | 14 +++++
.../editor-client/src/sass/workspace.scss | 22 +++++++
6 files changed, 140 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index 6dd500581..adbf86741 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -63,6 +63,7 @@ RED.nodes = (function() {
defaults: {
label: {value:""},
disabled: {value: false},
+ locked: {value: false},
info: {value: ""},
env: {value: []}
}
@@ -1052,6 +1053,9 @@ RED.nodes = (function() {
node.type = n.type;
for (var d in n._def.defaults) {
if (n._def.defaults.hasOwnProperty(d)) {
+ if (d === 'locked' && !n.locked) {
+ continue
+ }
node[d] = n[d];
}
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
index fb4c200f5..0a644ba42 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
@@ -1852,6 +1852,16 @@ RED.editor = (function() {
}
}
+ var locked = $("#node-input-locked").prop("checked");
+ if (workspace.locked !== locked) {
+ editState.changes.locked = workspace.locked;
+ editState.changed = true;
+ workspace.locked = locked;
+ $("#red-ui-tab-"+(workspace.id.replace(".","-"))).toggleClass('red-ui-workspace-locked',!!workspace.locked);
+ // if (workspace.id === RED.workspaces.active()) {
+ // $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!workspace.locked);
+ // }
+ }
if (editState.changed) {
var historyEvent = {
t: "edit",
@@ -1892,6 +1902,7 @@ RED.editor = (function() {
var trayBody = tray.find('.red-ui-tray-body');
trayBody.parent().css('overflow','hidden');
var trayFooterLeft = $('').appendTo(trayFooter)
+ var trayFooterRight = $('').appendTo(trayFooter)
var nodeEditPanes = [
'editor-tab-flow-properties',
@@ -1906,6 +1917,18 @@ RED.editor = (function() {
disabledIcon: "fa-ban",
invertState: true
})
+
+ if (!workspace.hasOwnProperty("locked")) {
+ workspace.locked = false;
+ }
+ $('').prop("checked",workspace.locked).appendTo(trayFooterRight).toggleButton({
+ enabledLabel: 'Unlocked',
+ enabledIcon: "fa-unlock-alt",
+ disabledLabel: 'Locked',
+ disabledIcon: "fa-lock",
+ invertState: true
+ })
+
prepareEditDialog(trayBody, nodeEditPanes, workspace, {}, "node-input", defaultTab, function(_activeEditPanes) {
activeEditPanes = _activeEditPanes;
trayBody.i18n();
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
index 32491f297..20bf627f0 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
@@ -221,6 +221,22 @@ RED.sidebar.info.outliner = (function() {
} else {
$('').appendTo(controls)
}
+ if (n.type === 'tab') {
+ var lockToggleButton = $('').appendTo(controls).on("click",function(evt) {
+ evt.preventDefault();
+ evt.stopPropagation();
+ if (n.locked) {
+ RED.workspaces.unlock(n.id)
+ } else {
+ RED.workspaces.lock(n.id)
+ }
+ })
+ RED.popover.tooltip(lockToggleButton,function() {
+ return RED._("common.label."+(n.locked?"unlock":"lock"));
+ });
+ } else {
+ $('').appendTo(controls)
+ }
controls.find("button").on("dblclick", function(evt) {
evt.preventDefault();
evt.stopPropagation();
@@ -364,6 +380,8 @@ RED.sidebar.info.outliner = (function() {
flowList.treeList.addChild(objects[ws.id])
objects[ws.id].element.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
objects[ws.id].treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
+ objects[ws.id].element.toggleClass("red-ui-info-outline-item-locked", !!ws.locked)
+ // objects[ws.id].treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
updateSearch();
}
@@ -378,6 +396,7 @@ RED.sidebar.info.outliner = (function() {
existingObject.element.find(".red-ui-info-outline-item-label").text(label);
existingObject.element.toggleClass("red-ui-info-outline-item-disabled", !!n.disabled)
existingObject.treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!n.disabled)
+ existingObject.element.toggleClass("red-ui-info-outline-item-locked", !!n.locked)
updateSearch();
}
function onFlowsReorder(order) {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index d274ba519..23171fb5a 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -58,6 +58,9 @@ RED.workspaces = (function() {
if (!ws.closeable) {
ws.hideable = true;
}
+ if (!ws.hasOwnProperty('locked')) {
+ ws.locked = false
+ }
workspace_tabs.addTab(ws,targetIndex);
var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}");
@@ -75,6 +78,7 @@ RED.workspaces = (function() {
type: "tab",
id: tabId,
disabled: false,
+ locked: false,
info: "",
label: RED._('workspace.defaultName',{number:workspaceIndex}),
env: [],
@@ -329,6 +333,12 @@ RED.workspaces = (function() {
if (tab.disabled) {
$("#red-ui-tab-"+(tab.id.replace(".","-"))).addClass('red-ui-workspace-disabled');
}
+ $('
Date: Tue, 1 Nov 2022 10:48:48 +0000
Subject: [PATCH 031/178] Locking flows fixes and context menu options
---
.../editor-client/locales/en-US/editor.json | 2 +
.../@node-red/editor-client/src/js/history.js | 6 +-
.../@node-red/editor-client/src/js/nodes.js | 107 +++++++++---
.../editor-client/src/js/ui/clipboard.js | 50 +++---
.../editor-client/src/js/ui/contextMenu.js | 34 ++--
.../editor-client/src/js/ui/editor.js | 6 -
.../src/js/ui/editors/panes/flowProperties.js | 2 -
.../editor-client/src/js/ui/group.js | 22 ++-
.../editor-client/src/js/ui/palette.js | 164 +++++++++---------
.../editor-client/src/js/ui/subflow.js | 5 +-
.../editor-client/src/js/ui/tab-config.js | 20 ++-
.../src/js/ui/tab-info-outliner.js | 3 +-
.../editor-client/src/js/ui/view-tools.js | 47 ++++-
.../@node-red/editor-client/src/js/ui/view.js | 138 ++++++++++-----
.../editor-client/src/js/ui/workspaces.js | 43 ++++-
.../editor-client/src/sass/flow.scss | 11 +-
.../editor-client/src/sass/tab-info.scss | 10 +-
17 files changed, 447 insertions(+), 223 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 44d370aac..e74dbdbaa 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -71,6 +71,8 @@
"selectNodes": "Click nodes to select",
"enableFlow": "Enable flow",
"disableFlow": "Disable flow",
+ "lockFlow": "Lock flow",
+ "unlockFlow": "Unlock flow",
"moveToStart": "Move flow to start",
"moveToEnd": "Move flow to end"
},
diff --git a/packages/node_modules/@node-red/editor-client/src/js/history.js b/packages/node_modules/@node-red/editor-client/src/js/history.js
index b23071239..977ecb187 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/history.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/history.js
@@ -14,7 +14,7 @@
* limitations under the License.
**/
-/**
+/**
* An API for undo / redo history buffer
* @namespace RED.history
*/
@@ -434,7 +434,9 @@ RED.history = (function() {
if (ev.node.type === 'tab' && ev.changes.hasOwnProperty('disabled')) {
$("#red-ui-tab-"+(ev.node.id.replace(".","-"))).toggleClass('red-ui-workspace-disabled',!!ev.node.disabled);
- $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!ev.node.disabled);
+ }
+ if (ev.node.type === 'tab' && ev.changes.hasOwnProperty('locked')) {
+ $("#red-ui-tab-"+(ev.node.id.replace(".","-"))).toggleClass('red-ui-workspace-locked',!!ev.node.locked);
}
if (ev.subflow) {
inverseEv.subflow = {};
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index adbf86741..715ae9c49 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -19,7 +19,6 @@
* @namespace RED.nodes
*/
RED.nodes = (function() {
-
var PORT_TYPE_INPUT = 1;
var PORT_TYPE_OUTPUT = 0;
@@ -576,8 +575,41 @@ RED.nodes = (function() {
}
}
+ const nodeProxyHandler = {
+ get(node, prop) {
+ if (prop === '__isProxy__') {
+ return true
+ } else if (prop == '__node__') {
+ return node
+ }
+ return node[prop]
+ },
+ set(node, prop, value) {
+ if (node.z && (RED.nodes.workspace(node.z)?.locked || RED.nodes.subflow(node.z)?.locked)) {
+ if (
+ node._def.defaults[prop] ||
+ prop === 'z' ||
+ prop === 'l' ||
+ prop === 'd' ||
+ (prop === 'changed' && !!node.changed !== !!value) ||
+ ((prop === 'x' || prop === 'y') && !node.resize && node.type !== 'group')
+ ) {
+ throw new Error(`Cannot modified property '${prop}' of locked object '${node.type}:${node.id}'`)
+ }
+ }
+ node[prop] = value;
+ return true
+ }
+ }
function addNode(n) {
+ let newNode
+ if (!n.__isProxy__) {
+ newNode = new Proxy(n, nodeProxyHandler)
+ } else {
+ newNode = n
+ }
+
if (n.type.indexOf("subflow") !== 0) {
n["_"] = n._def._;
} else {
@@ -601,12 +633,13 @@ RED.nodes = (function() {
});
n.i = nextId+1;
}
- allNodes.addNode(n);
+ allNodes.addNode(newNode);
if (!nodeLinks[n.id]) {
nodeLinks[n.id] = {in:[],out:[]};
}
}
- RED.events.emit('nodes:add',n);
+ RED.events.emit('nodes:add',newNode);
+ return newNode
}
function addLink(l) {
if (nodeLinks[l.source.id]) {
@@ -1335,7 +1368,6 @@ RED.nodes = (function() {
} else {
nodeSet = [sf];
}
- console.log(nodeSet);
return createExportableNodeSet(nodeSet);
}
/**
@@ -2322,19 +2354,6 @@ RED.nodes = (function() {
if (n.g && !new_group_set.has(n.g)) {
delete n.g;
}
- n.nodes = n.nodes.map(function(id) {
- return node_map[id];
- })
- // Just in case the group references a node that doesn't exist for some reason
- n.nodes = n.nodes.filter(function(v) {
- if (v) {
- // Repair any nodes that have forgotten they are in this group
- if (v.g !== n.id) {
- v.g = n.id;
- }
- }
- return !!v
- });
if (!n.g) {
groupDepthMap[n.id] = 0;
}
@@ -2357,21 +2376,22 @@ RED.nodes = (function() {
return groupDepthMap[A.id] - groupDepthMap[B.id];
});
for (i=0;i {
+ const mappedNode = node_map[id]
+ if (!mappedNode) {
+ return null
+ }
+ if (mappedNode.__isProxy__) {
+ return mappedNode
+ } else {
+ return node_map[mappedNode.id]
+ }
+ }
+ // Update groups to reference proxy node objects
+ for (i=0;i 1
const canDelete = hasSelection || hasLinks
const isGroup = hasSelection && selection.nodes.length === 1 && selection.nodes[0].type === 'group'
-
+ const canEdit = !RED.workspaces.isActiveLocked()
const canRemoveFromGroup = hasSelection && !!selection.nodes[0].g
+
const offset = $("#red-ui-workspace-chart").offset()
let addX = options.x - offset.left + $("#red-ui-workspace-chart").scrollLeft()
@@ -55,12 +56,13 @@ RED.contextMenu = (function () {
splice: isSingleLink ? selection.links[0] : undefined,
// spliceMultiple: isMultipleLinks
})
- }
+ },
+ disabled: !canEdit
},
(hasLinks) ? { // has least 1 wire selected
label: RED._("contextMenu.junction"),
onselect: 'core:split-wires-with-junctions',
- disabled: !hasLinks
+ disabled: !canEdit || !hasLinks
} : {
label: RED._("contextMenu.junction"),
onselect: function () {
@@ -86,41 +88,39 @@ RED.contextMenu = (function () {
RED.nodes.dirty(true);
RED.view.select({nodes: [nn] });
RED.view.redraw(true)
- }
+ },
+ disabled: !canEdit
},
{
label: RED._("contextMenu.linkNodes"),
onselect: 'core:split-wire-with-link-nodes',
- disabled: !hasLinks
+ disabled: !canEdit || !hasLinks
}
]
- }
- )
-
- menuItems.push(
+ },
null,
{ onselect: 'core:undo', disabled: RED.history.list().length === 0 },
{ onselect: 'core:redo', disabled: RED.history.listRedo().length === 0 },
null,
- { onselect: 'core:cut-selection-to-internal-clipboard', label: RED._("keyboard.cutNode"), disabled: !hasSelection },
+ { onselect: 'core:cut-selection-to-internal-clipboard', label: RED._("keyboard.cutNode"), disabled: !canEdit || !hasSelection },
{ onselect: 'core:copy-selection-to-internal-clipboard', label: RED._("keyboard.copyNode"), disabled: !hasSelection },
- { onselect: 'core:paste-from-internal-clipboard', label: RED._("keyboard.pasteNode"), disabled: !RED.view.clipboard() },
- { onselect: 'core:delete-selection', disabled: !canDelete },
+ { onselect: 'core:paste-from-internal-clipboard', label: RED._("keyboard.pasteNode"), disabled: !canEdit || !RED.view.clipboard() },
+ { onselect: 'core:delete-selection', disabled: !canEdit || !canDelete },
{ onselect: 'core:show-export-dialog', label: RED._("menu.label.export") },
- { onselect: 'core:select-all-nodes' }
+ { onselect: 'core:select-all-nodes' },
)
- if (hasSelection) {
+ if (hasSelection && canEdit) {
menuItems.push(
null,
isGroup ?
- { onselect: 'core:ungroup-selection', disabled: !isGroup }
- : { onselect: 'core:group-selection', disabled: !hasSelection }
+ { onselect: 'core:ungroup-selection', disabled: !canEdit || !isGroup }
+ : { onselect: 'core:group-selection', disabled: !canEdit || !hasSelection }
)
- if (canRemoveFromGroup) {
+ if (canRemoveFromGroup && canEdit) {
menuItems.push({ onselect: 'core:remove-selection-from-group', label: RED._("menu.label.groupRemoveSelection") })
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
index 0a644ba42..29202a0ab 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
@@ -1847,9 +1847,6 @@ RED.editor = (function() {
workspace.disabled = disabled;
$("#red-ui-tab-"+(workspace.id.replace(".","-"))).toggleClass('red-ui-workspace-disabled',!!workspace.disabled);
- if (workspace.id === RED.workspaces.active()) {
- $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!workspace.disabled);
- }
}
var locked = $("#node-input-locked").prop("checked");
@@ -1858,9 +1855,6 @@ RED.editor = (function() {
editState.changed = true;
workspace.locked = locked;
$("#red-ui-tab-"+(workspace.id.replace(".","-"))).toggleClass('red-ui-workspace-locked',!!workspace.locked);
- // if (workspace.id === RED.workspaces.active()) {
- // $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!workspace.locked);
- // }
}
if (editState.changed) {
var historyEvent = {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/flowProperties.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/flowProperties.js
index 2db4d0c85..214335f1b 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/flowProperties.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/flowProperties.js
@@ -52,8 +52,6 @@
node.info = info;
}
$("#red-ui-tab-"+(node.id.replace(".","-"))).toggleClass('red-ui-workspace-disabled',!!node.disabled);
- $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!node.disabled);
-
}
}
});
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/group.js b/packages/node_modules/@node-red/editor-client/src/js/ui/group.js
index add6da6c9..15eda31d5 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/group.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/group.js
@@ -185,6 +185,8 @@ RED.group = (function() {
var activateMerge = false;
var activateRemove = false;
var singleGroupSelected = false;
+ var locked = RED.workspaces.isActiveLocked()
+
if (activateGroup) {
singleGroupSelected = selection.nodes.length === 1 && selection.nodes[0].type === 'group';
selection.nodes.forEach(function (n) {
@@ -199,12 +201,12 @@ RED.group = (function() {
activateMerge = (selection.nodes.length > 1);
}
}
- RED.menu.setDisabled("menu-item-group-group", !activateGroup);
- RED.menu.setDisabled("menu-item-group-ungroup", !activateUngroup);
- RED.menu.setDisabled("menu-item-group-merge", !activateMerge);
- RED.menu.setDisabled("menu-item-group-remove", !activateRemove);
+ RED.menu.setDisabled("menu-item-group-group", locked || !activateGroup);
+ RED.menu.setDisabled("menu-item-group-ungroup", locked || !activateUngroup);
+ RED.menu.setDisabled("menu-item-group-merge", locked || !activateMerge);
+ RED.menu.setDisabled("menu-item-group-remove", locked || !activateRemove);
RED.menu.setDisabled("menu-item-edit-copy-group-style", !singleGroupSelected);
- RED.menu.setDisabled("menu-item-edit-paste-group-style", !activateUngroup);
+ RED.menu.setDisabled("menu-item-edit-paste-group-style", locked || !activateUngroup);
});
RED.actions.add("core:group-selection", function() { groupSelection() })
@@ -261,6 +263,7 @@ RED.group = (function() {
}
}
function pasteGroupStyle() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (RED.view.state() !== RED.state.DEFAULT) { return }
if (groupStyleClipboard) {
var selection = RED.view.selection();
@@ -295,6 +298,7 @@ RED.group = (function() {
}
function groupSelection() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (RED.view.state() !== RED.state.DEFAULT) { return }
var selection = RED.view.selection();
if (selection.nodes) {
@@ -313,6 +317,7 @@ RED.group = (function() {
}
}
function ungroupSelection() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (RED.view.state() !== RED.state.DEFAULT) { return }
var selection = RED.view.selection();
if (selection.nodes) {
@@ -336,6 +341,7 @@ RED.group = (function() {
}
function ungroup(g) {
+ if (RED.workspaces.isActiveLocked()) { return }
var nodes = [];
var parentGroup = RED.nodes.group(g.g);
g.nodes.forEach(function(n) {
@@ -362,6 +368,7 @@ RED.group = (function() {
}
function mergeSelection() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (RED.view.state() !== RED.state.DEFAULT) { return }
var selection = RED.view.selection();
if (selection.nodes) {
@@ -431,6 +438,7 @@ RED.group = (function() {
}
function removeSelection() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (RED.view.state() !== RED.state.DEFAULT) { return }
var selection = RED.view.selection();
if (selection.nodes) {
@@ -458,6 +466,7 @@ RED.group = (function() {
}
}
function createGroup(nodes) {
+ if (RED.workspaces.isActiveLocked()) { return }
if (nodes.length === 0) {
return;
}
@@ -480,7 +489,7 @@ RED.group = (function() {
}
group.z = nodes[0].z;
- RED.nodes.addGroup(group);
+ group = RED.nodes.addGroup(group);
try {
addToGroup(group,nodes);
@@ -563,6 +572,7 @@ RED.group = (function() {
markDirty(group);
}
function removeFromGroup(group, nodes, reparent) {
+ if (RED.workspaces.isActiveLocked()) { return }
if (!Array.isArray(nodes)) {
nodes = [nodes];
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js b/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js
index 9f20cc674..ceaa33775 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js
@@ -282,6 +282,7 @@ RED.palette = (function() {
var hoverGroup;
var paletteWidth;
var paletteTop;
+ var dropEnabled;
$(d).draggable({
helper: 'clone',
appendTo: '#red-ui-editor',
@@ -289,6 +290,7 @@ RED.palette = (function() {
revertDuration: 200,
containment:'#red-ui-main-container',
start: function() {
+ dropEnabled = !RED.nodes.workspace(RED.workspaces.active()).locked;
paletteWidth = $("#red-ui-palette").width();
paletteTop = $("#red-ui-palette").parent().position().top + $("#red-ui-palette-container").position().top;
hoverGroup = null;
@@ -299,96 +301,100 @@ RED.palette = (function() {
RED.view.focus();
},
stop: function() {
- d3.select('.red-ui-flow-link-splice').classed('red-ui-flow-link-splice',false);
- if (hoverGroup) {
- document.getElementById("group_select_"+hoverGroup.id).classList.remove("red-ui-flow-group-hovered");
+ if (dropEnabled) {
+ d3.select('.red-ui-flow-link-splice').classed('red-ui-flow-link-splice',false);
+ if (hoverGroup) {
+ document.getElementById("group_select_"+hoverGroup.id).classList.remove("red-ui-flow-group-hovered");
+ }
+ if (activeGroup) {
+ document.getElementById("group_select_"+activeGroup.id).classList.remove("red-ui-flow-group-active-hovered");
+ }
+ if (spliceTimer) { clearTimeout(spliceTimer); spliceTimer = null; }
+ if (groupTimer) { clearTimeout(groupTimer); groupTimer = null; }
}
- if (activeGroup) {
- document.getElementById("group_select_"+activeGroup.id).classList.remove("red-ui-flow-group-active-hovered");
- }
- if (spliceTimer) { clearTimeout(spliceTimer); spliceTimer = null; }
- if (groupTimer) { clearTimeout(groupTimer); groupTimer = null; }
},
drag: function(e,ui) {
var paletteNode = getPaletteNode(nt);
ui.originalPosition.left = paletteNode.offset().left;
- mouseX = ui.position.left - paletteWidth + (ui.helper.width()/2) + chart.scrollLeft();
- mouseY = ui.position.top - paletteTop + (ui.helper.height()/2) + chart.scrollTop() + 10;
- if (!groupTimer) {
- groupTimer = setTimeout(function() {
- var mx = mouseX / RED.view.scale();
- var my = mouseY / RED.view.scale();
- var group = RED.view.getGroupAtPoint(mx,my);
- if (group !== hoverGroup) {
- if (hoverGroup) {
- document.getElementById("group_select_"+hoverGroup.id).classList.remove("red-ui-flow-group-hovered");
- }
- if (group) {
- document.getElementById("group_select_"+group.id).classList.add("red-ui-flow-group-hovered");
- }
- hoverGroup = group;
- if (hoverGroup) {
- $(ui.helper).data('group',hoverGroup);
- } else {
- $(ui.helper).removeData('group');
- }
- }
- groupTimer = null;
-
- },200)
- }
- if (def.inputs > 0 && def.outputs > 0) {
- if (!spliceTimer) {
- spliceTimer = setTimeout(function() {
- var nodes = [];
- var bestDistance = Infinity;
- var bestLink = null;
- if (chartSVG.getIntersectionList) {
- var svgRect = chartSVG.createSVGRect();
- svgRect.x = mouseX;
- svgRect.y = mouseY;
- svgRect.width = 1;
- svgRect.height = 1;
- nodes = chartSVG.getIntersectionList(svgRect,chartSVG);
- } else {
- // Firefox doesn't do getIntersectionList and that
- // makes us sad
- nodes = RED.view.getLinksAtPoint(mouseX,mouseY);
- }
+ if (dropEnabled) {
+ mouseX = ui.position.left - paletteWidth + (ui.helper.width()/2) + chart.scrollLeft();
+ mouseY = ui.position.top - paletteTop + (ui.helper.height()/2) + chart.scrollTop() + 10;
+ if (!groupTimer) {
+ groupTimer = setTimeout(function() {
var mx = mouseX / RED.view.scale();
var my = mouseY / RED.view.scale();
- for (var i=0;i 0 && def.outputs > 0) {
+ if (!spliceTimer) {
+ spliceTimer = setTimeout(function() {
+ var nodes = [];
+ var bestDistance = Infinity;
+ var bestLink = null;
+ if (chartSVG.getIntersectionList) {
+ var svgRect = chartSVG.createSVGRect();
+ svgRect.x = mouseX;
+ svgRect.y = mouseY;
+ svgRect.width = 1;
+ svgRect.height = 1;
+ nodes = chartSVG.getIntersectionList(svgRect,chartSVG);
+ } else {
+ // Firefox doesn't do getIntersectionList and that
+ // makes us sad
+ nodes = RED.view.getLinksAtPoint(mouseX,mouseY);
+ }
+ var mx = mouseX / RED.view.scale();
+ var my = mouseY / RED.view.scale();
+ for (var i=0;i ').appendTo(parent);
var header = $(' ').prependTo("#red-ui-tab-"+(tab.id.replace(".","-"))+" .red-ui-tab-label");
+ if (tab.locked) {
+ $("#red-ui-tab-"+(tab.id.replace(".","-"))).addClass('red-ui-workspace-locked');
+ }
+
+
RED.menu.setDisabled("menu-item-workspace-delete",activeWorkspace === 0 || workspaceTabCount <= 1);
if (workspaceTabCount === 1) {
showWorkspace();
@@ -465,6 +475,8 @@ RED.workspaces = (function() {
RED.actions.add("core:remove-flow",removeWorkspace);
RED.actions.add("core:enable-flow",enableWorkspace);
RED.actions.add("core:disable-flow",disableWorkspace);
+ RED.actions.add("core:lock-flow",lockWorkspace);
+ RED.actions.add("core:unlock-flow",unlockWorkspace);
RED.actions.add("core:move-flow-to-start", function(id) { moveWorkspace(id, 'start') });
RED.actions.add("core:move-flow-to-end", function(id) { moveWorkspace(id, 'end') });
@@ -638,6 +650,49 @@ RED.workspaces = (function() {
}
}
}
+ function lockWorkspace(id) {
+ setWorkspaceLockState(id,true);
+ }
+ function unlockWorkspace(id) {
+ setWorkspaceLockState(id,false);
+ }
+ function setWorkspaceLockState(id,locked) {
+ var workspace = RED.nodes.workspace(id||activeWorkspace);
+ if (!workspace) {
+ return;
+ }
+ if (workspace.locked !== locked) {
+ var changes = { locked: workspace.locked };
+ workspace.locked = locked;
+ $("#red-ui-tab-"+(workspace.id.replace(".","-"))).toggleClass('red-ui-workspace-locked',!!workspace.locked);
+ if (!id || (id === activeWorkspace)) {
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!workspace.locked);
+ }
+ var historyEvent = {
+ t: "edit",
+ changes:changes,
+ node: workspace,
+ dirty: RED.nodes.dirty()
+ }
+ workspace.changed = true;
+ RED.history.push(historyEvent);
+ RED.events.emit("flows:change",workspace);
+ RED.nodes.dirty(true);
+ // RED.sidebar.config.refresh();
+ // var selection = RED.view.selection();
+ // if (!selection.nodes && !selection.links && workspace.id === activeWorkspace) {
+ // RED.sidebar.info.refresh(workspace);
+ // }
+ // if (changes.hasOwnProperty('disabled')) {
+ // RED.nodes.eachNode(function(n) {
+ // if (n.z === workspace.id) {
+ // n.dirty = true;
+ // }
+ // });
+ // RED.view.redraw();
+ // }
+ }
+ }
function removeWorkspace(ws) {
if (!ws) {
@@ -793,6 +848,8 @@ RED.workspaces = (function() {
workspace_tabs.resize();
},
enable: enableWorkspace,
- disable: disableWorkspace
+ disable: disableWorkspace,
+ lock: lockWorkspace,
+ unlock: unlockWorkspace
}
})();
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss b/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
index 57dc7d6e3..ed526b263 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
@@ -467,6 +467,9 @@ div.red-ui-info-table {
.fa-eye {
display: none;
}
+ .fa-unlock-alt {
+ display: none;
+ }
}
.red-ui-info-outline-item-control-reveal,
.red-ui-info-outline-item-control-action {
@@ -500,6 +503,17 @@ div.red-ui-info-table {
display: none;
}
}
+ .fa-lock {
+ display: none;
+ }
+ .red-ui-info-outline-item.red-ui-info-outline-item-locked & {
+ .fa-lock {
+ display: inline-block;
+ }
+ .fa-unlock-alt {
+ display: none;
+ }
+ }
button {
margin-right: 3px
}
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss b/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss
index 24e156b1e..c458d03d1 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss
@@ -106,6 +106,28 @@
}
}
+.red-ui-workspace-locked-icon {
+ display: none;
+}
+.red-ui-workspace-locked {
+ &.red-ui-tab {
+ // border-top-style: dashed;
+ // border-left-style: dashed;
+ // border-right-style: dashed;
+
+ // a {
+ // font-style: italic;
+ // color: var(--red-ui-tab-text-color-disabled-inactive) !important;
+ // }
+ // &.active a {
+ // font-weight: normal;
+ // color: var(--red-ui-tab-text-color-disabled-active) !important;
+ // }
+ .red-ui-workspace-locked-icon {
+ display: inline;
+ }
+ }
+}
#red-ui-navigator-canvas {
position: absolute;
From f12d36b5ede4898fa8d3fc8a89da79870b6d01f9 Mon Sep 17 00:00:00 2001
From: Nick O'Leary ').appendTo(container);
+ let lockIcon
if (label) {
+ lockIcon = $('').appendTo(header)
+ lockIcon.toggle(!!isLocked)
$('').text(label).appendTo(header);
} else {
$('').appendTo(header);
@@ -62,6 +65,7 @@ RED.sidebar.config = (function() {
var icon = header.find("i");
var result = {
label: label,
+ lockIcon,
list: category,
size: function() {
return result.list.find("li:not(.red-ui-palette-node-config-none)").length
@@ -100,6 +104,9 @@ RED.sidebar.config = (function() {
});
categories[name] = result;
} else {
+ if (isLocked !== undefined && categories[name].lockIcon) {
+ categories[name].lockIcon.toggle(!!isLocked)
+ }
if (categories[name].label !== label) {
categories[name].list.parent().find('.red-ui-palette-node-config-label').text(label);
categories[name].label = label;
@@ -216,7 +223,7 @@ RED.sidebar.config = (function() {
RED.nodes.eachWorkspace(function(ws) {
validList[ws.id.replace(/\./g,"-")] = true;
- getOrCreateCategory(ws.id,flowCategories,ws.label);
+ getOrCreateCategory(ws.id,flowCategories,ws.label, ws.locked);
})
RED.nodes.eachSubflow(function(sf) {
validList[sf.id.replace(/\./g,"-")] = true;
@@ -274,6 +281,15 @@ RED.sidebar.config = (function() {
changes: {},
dirty: RED.nodes.dirty()
}
+ for (let i = 0; i < selectedNodes.length; i++) {
+ let node = RED.nodes.node(selectedNodes[i])
+ if (node.z) {
+ let ws = RED.nodes.workspace(node.z)
+ if (ws && ws.locked) {
+ return
+ }
+ }
+ }
selectedNodes.forEach(function(id) {
var node = RED.nodes.node(id);
try {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
index 20bf627f0..d398cc2d0 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js
@@ -381,7 +381,7 @@ RED.sidebar.info.outliner = (function() {
objects[ws.id].element.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
objects[ws.id].treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
objects[ws.id].element.toggleClass("red-ui-info-outline-item-locked", !!ws.locked)
- // objects[ws.id].treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!ws.disabled)
+ objects[ws.id].treeList.container.toggleClass("red-ui-info-outline-item-locked", !!ws.locked)
updateSearch();
}
@@ -397,6 +397,7 @@ RED.sidebar.info.outliner = (function() {
existingObject.element.toggleClass("red-ui-info-outline-item-disabled", !!n.disabled)
existingObject.treeList.container.toggleClass("red-ui-info-outline-item-disabled", !!n.disabled)
existingObject.element.toggleClass("red-ui-info-outline-item-locked", !!n.locked)
+ existingObject.treeList.container.toggleClass("red-ui-info-outline-item-locked", !!n.locked)
updateSearch();
}
function onFlowsReorder(order) {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
index 1ed5791a6..27d45dcd3 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
@@ -15,7 +15,7 @@
**/
RED.view.tools = (function() {
-
+ 'use strict';
function selectConnected(type) {
var selection = RED.view.selection();
var visited = new Set();
@@ -39,6 +39,9 @@ RED.view.tools = (function() {
}
function alignToGrid() {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
if (selection.nodes) {
var changedNodes = [];
@@ -87,6 +90,9 @@ RED.view.tools = (function() {
}
function moveSelection(dx,dy) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
if (moving_set === null) {
moving_set = [];
var selection = RED.view.selection();
@@ -153,6 +159,9 @@ RED.view.tools = (function() {
}
function setSelectedNodeLabelState(labelShown) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
var historyEvents = [];
var nodes = [];
@@ -439,6 +448,9 @@ RED.view.tools = (function() {
}
function alignSelectionToEdge(direction) {
+ // if (RED.workspaces.isActiveLocked()) {
+ // return
+ // }
var selection = RED.view.selection();
if (selection.nodes && selection.nodes.length > 1) {
@@ -539,8 +551,10 @@ RED.view.tools = (function() {
}
}
-
function distributeSelection(direction) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
if (selection.nodes && selection.nodes.length > 2) {
@@ -699,6 +713,9 @@ RED.view.tools = (function() {
}
function reorderSelection(dir) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
if (selection.nodes) {
var nodesToMove = [];
@@ -734,8 +751,10 @@ RED.view.tools = (function() {
}
}
-
function wireSeriesOfNodes() {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
if (selection.nodes) {
if (selection.nodes.length > 1) {
@@ -776,6 +795,9 @@ RED.view.tools = (function() {
}
function wireNodeToMultiple() {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
var selection = RED.view.selection();
if (selection.nodes) {
if (selection.nodes.length > 1) {
@@ -823,6 +845,9 @@ RED.view.tools = (function() {
* @param {Object || Object[]} wires The wire(s) to split and replace with link-out, link-in nodes.
*/
function splitWiresWithLinkNodes(wires) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
let wiresToSplit = wires || (RED.view.selection().links && RED.view.selection().links.filter(e => !e.link));
if (!wiresToSplit) {
return
@@ -877,7 +902,6 @@ RED.view.tools = (function() {
if(!nnLinkOut) {
const nLinkOut = RED.view.createNode("link out"); //create link node
nnLinkOut = nLinkOut.node;
- nodeSrcMap[linkOutMapId] = nnLinkOut;
let yOffset = 0;
if(nSrc.outputs > 1) {
@@ -892,7 +916,8 @@ RED.view.tools = (function() {
updateNewNodePosXY(nSrc, nnLinkOut, false, RED.view.snapGrid, yOffset);
}
//add created node
- RED.nodes.add(nnLinkOut);
+ nnLinkOut = RED.nodes.add(nnLinkOut);
+ nodeSrcMap[linkOutMapId] = nnLinkOut;
RED.editor.validateNode(nnLinkOut);
history.events.push(nLinkOut.historyEvent);
//connect node to link node
@@ -913,10 +938,10 @@ RED.view.tools = (function() {
if(!nnLinkIn) {
const nLinkIn = RED.view.createNode("link in"); //create link node
nnLinkIn = nLinkIn.node;
- nodeTrgMap[nTrg.id] = nnLinkIn;
updateNewNodePosXY(nTrg, nnLinkIn, true, RED.view.snapGrid, 0);
//add created node
- RED.nodes.add(nnLinkIn);
+ nnLinkIn = RED.nodes.add(nnLinkIn);
+ nodeTrgMap[nTrg.id] = nnLinkIn;
RED.editor.validateNode(nnLinkIn);
history.events.push(nLinkIn.historyEvent);
//connect node to link node
@@ -991,6 +1016,9 @@ RED.view.tools = (function() {
* @param {{ renameBlank: boolean, renameClash: boolean, generateHistory: boolean }} options Possible options are `renameBlank`, `renameClash` and `generateHistory`
*/
function generateNodeNames(node, options) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
options = Object.assign({
renameBlank: true,
renameClash: true,
@@ -1061,6 +1089,9 @@ RED.view.tools = (function() {
}
function addJunctionsToWires(wires) {
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
let wiresToSplit = wires || (RED.view.selection().links && RED.view.selection().links.filter(e => !e.link));
if (!wiresToSplit) {
return
@@ -1131,7 +1162,7 @@ RED.view.tools = (function() {
var nodeGroups = new Set()
- RED.nodes.addJunction(junction)
+ junction = RED.nodes.addJunction(junction)
addedJunctions.push(junction)
let newLink
if (gid === links[0].source.id+":"+links[0].sourcePort) {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
index 83215afe4..d783ce941 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
@@ -54,6 +54,7 @@ RED.view = (function() {
var spliceTimer;
var groupHoverTimer;
+ var activeFlowLocked = false;
var activeSubflow = null;
var activeNodes = [];
var activeLinks = [];
@@ -411,6 +412,17 @@ RED.view = (function() {
activeSubflow = RED.nodes.subflow(event.workspace);
+ if (activeSubflow) {
+ activeFlowLocked = activeSubflow.locked
+ } else {
+ var activeWorkspace = RED.nodes.workspace(event.workspace)
+ if (activeWorkspace) {
+ activeFlowLocked = activeWorkspace.locked
+ } else {
+ activeFlowLocked = true
+ }
+ }
+
RED.menu.setDisabled("menu-item-workspace-edit", activeSubflow || event.workspace === 0);
RED.menu.setDisabled("menu-item-workspace-delete",event.workspace === 0 || RED.workspaces.count() == 1 || activeSubflow);
@@ -439,6 +451,15 @@ RED.view = (function() {
redraw();
});
+ RED.events.on("flows:change", function(workspace) {
+ if (workspace.id === RED.workspaces.active()) {
+ activeFlowLocked = !!workspace.locked
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!workspace.disabled);
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!workspace.locked);
+
+ }
+ })
+
RED.statusBar.add({
id: "view-zoom-controls",
align: "right",
@@ -496,6 +517,9 @@ RED.view = (function() {
chart.droppable({
accept:".red-ui-palette-node",
drop: function( event, ui ) {
+ if (activeFlowLocked) {
+ return
+ }
d3.event = event;
var selected_tool = $(ui.draggable[0]).attr("data-palette-type");
var result = createNode(selected_tool);
@@ -503,9 +527,7 @@ RED.view = (function() {
return;
}
var historyEvent = result.historyEvent;
- var nn = result.node;
-
- RED.nodes.add(nn);
+ var nn = RED.nodes.add(result.node);
var showLabel = RED.utils.getMessageProperty(RED.settings.get('editor'),"view.view-node-show-label");
if (showLabel !== undefined && (nn._def.hasOwnProperty("showLabel")?nn._def.showLabel:true) && !nn._def.defaults.hasOwnProperty("l")) {
@@ -632,6 +654,9 @@ RED.view = (function() {
RED.actions.add("core:copy-selection-to-internal-clipboard",copySelection);
RED.actions.add("core:cut-selection-to-internal-clipboard",function(){copySelection(true);deleteSelection();});
RED.actions.add("core:paste-from-internal-clipboard",function(){
+ if (RED.workspaces.isActiveLocked()) {
+ return
+ }
importNodes(clipboard,{generateIds: clipboardSource === 'copy', generateDefaultNames: clipboardSource === 'copy'});
});
@@ -640,22 +665,27 @@ RED.view = (function() {
RED.events.on("view:selection-changed", function(selection) {
var hasSelection = (selection.nodes && selection.nodes.length > 0);
var hasMultipleSelection = hasSelection && selection.nodes.length > 1;
- RED.menu.setDisabled("menu-item-edit-cut",!hasSelection);
- RED.menu.setDisabled("menu-item-edit-copy",!hasSelection);
- RED.menu.setDisabled("menu-item-edit-select-connected",!hasSelection);
- RED.menu.setDisabled("menu-item-view-tools-move-to-back",!hasSelection);
- RED.menu.setDisabled("menu-item-view-tools-move-to-front",!hasSelection);
- RED.menu.setDisabled("menu-item-view-tools-move-backwards",!hasSelection);
- RED.menu.setDisabled("menu-item-view-tools-move-forwards",!hasSelection);
+ var hasLinkSelected = selection.links && selection.links.length > 0;
+ var canEdit = !activeFlowLocked && hasSelection
+ var canEditMultiple = !activeFlowLocked && hasMultipleSelection
+ RED.menu.setDisabled("menu-item-edit-cut", !canEdit);
+ RED.menu.setDisabled("menu-item-edit-copy", !hasSelection);
+ RED.menu.setDisabled("menu-item-edit-select-connected", !hasSelection);
+ RED.menu.setDisabled("menu-item-view-tools-move-to-back", !canEdit);
+ RED.menu.setDisabled("menu-item-view-tools-move-to-front", !canEdit);
+ RED.menu.setDisabled("menu-item-view-tools-move-backwards", !canEdit);
+ RED.menu.setDisabled("menu-item-view-tools-move-forwards", !canEdit);
- RED.menu.setDisabled("menu-item-view-tools-align-left",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-align-center",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-align-right",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-align-top",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-align-middle",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-align-bottom",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-distribute-horizontally",!hasMultipleSelection);
- RED.menu.setDisabled("menu-item-view-tools-distribute-veritcally",!hasMultipleSelection);
+ RED.menu.setDisabled("menu-item-view-tools-align-left", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-align-center", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-align-right", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-align-top", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-align-middle", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-align-bottom", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-distribute-horizontally", !canEditMultiple);
+ RED.menu.setDisabled("menu-item-view-tools-distribute-veritcally", !canEditMultiple);
+
+ RED.menu.setDisabled("menu-item-edit-split-wire-with-links", activeFlowLocked || !hasLinkSelected);
})
RED.actions.add("core:delete-selection",deleteSelection);
@@ -1045,7 +1075,7 @@ RED.view = (function() {
.attr("class", "nr-ui-view-lasso");
d3.event.preventDefault();
}
- } else if (d3.event.altKey) {
+ } else if (d3.event.altKey && !activeFlowLocked) {
//Alt [+shift] held - Begin slicing
clearSelection();
mouse_mode = (d3.event.shiftKey) ? RED.state.SLICING_JUNCTION : RED.state.SLICING;
@@ -1059,6 +1089,9 @@ RED.view = (function() {
}
function showQuickAddDialog(options) {
+ if (activeFlowLocked) {
+ return
+ }
options = options || {};
var point = options.position || lastClickPosition;
var spliceLink = options.splice;
@@ -1238,6 +1271,11 @@ RED.view = (function() {
if (showLabel !== undefined && (nn._def.hasOwnProperty("showLabel")?nn._def.showLabel:true) && !nn._def.defaults.hasOwnProperty("l")) {
nn.l = showLabel;
}
+ if (nn.type === 'junction') {
+ nn = RED.nodes.addJunction(nn);
+ } else {
+ nn = RED.nodes.add(nn);
+ }
if (quickAddLink) {
var drag_line = quickAddLink;
var src = null,dst,src_port;
@@ -1340,11 +1378,7 @@ RED.view = (function() {
}
}
}
- if (nn.type === 'junction') {
- RED.nodes.addJunction(nn);
- } else {
- RED.nodes.add(nn);
- }
+
RED.editor.validateNode(nn);
if (targetGroup) {
@@ -1602,16 +1636,18 @@ RED.view = (function() {
}
var d = (mouse_offset[0]-mousePos[0])*(mouse_offset[0]-mousePos[0]) + (mouse_offset[1]-mousePos[1])*(mouse_offset[1]-mousePos[1]);
if ((d > 3 && !dblClickPrimed) || (dblClickPrimed && d > 10)) {
- mouse_mode = RED.state.MOVING_ACTIVE;
clickElapsed = 0;
- spliceActive = false;
- if (movingSet.length() === 1) {
- node = movingSet.get(0);
- spliceActive = node.n.hasOwnProperty("_def") &&
- ((node.n.hasOwnProperty("inputs") && node.n.inputs > 0) || (!node.n.hasOwnProperty("inputs") && node.n._def.inputs > 0)) &&
- ((node.n.hasOwnProperty("outputs") && node.n.outputs > 0) || (!node.n.hasOwnProperty("outputs") && node.n._def.outputs > 0)) &&
- RED.nodes.filterLinks({ source: node.n }).length === 0 &&
- RED.nodes.filterLinks({ target: node.n }).length === 0;
+ if (!activeFlowLocked) {
+ mouse_mode = RED.state.MOVING_ACTIVE;
+ spliceActive = false;
+ if (movingSet.length() === 1) {
+ node = movingSet.get(0);
+ spliceActive = node.n.hasOwnProperty("_def") &&
+ ((node.n.hasOwnProperty("inputs") && node.n.inputs > 0) || (!node.n.hasOwnProperty("inputs") && node.n._def.inputs > 0)) &&
+ ((node.n.hasOwnProperty("outputs") && node.n.outputs > 0) || (!node.n.hasOwnProperty("outputs") && node.n._def.outputs > 0)) &&
+ RED.nodes.filterLinks({ source: node.n }).length === 0 &&
+ RED.nodes.filterLinks({ target: node.n }).length === 0;
+ }
}
}
} else if (mouse_mode == RED.state.MOVING_ACTIVE || mouse_mode == RED.state.IMPORT_DRAGGING || mouse_mode == RED.state.DETACHED_DRAGGING) {
@@ -2456,6 +2492,7 @@ RED.view = (function() {
}
function editSelection() {
+ if (RED.workspaces.isActiveLocked()) { return }
if (movingSet.length() > 0) {
var node = movingSet.get(0).n;
if (node.type === "subflow") {
@@ -2471,6 +2508,9 @@ RED.view = (function() {
if (mouse_mode === RED.state.SELECTING_NODE) {
return;
}
+ if (activeFlowLocked) {
+ return
+ }
if (portLabelHover) {
portLabelHover.remove();
portLabelHover = null;
@@ -2786,6 +2826,7 @@ RED.view = (function() {
function detachSelectedNodes() {
+ if (RED.workspaces.isActiveLocked()) { return }
var selection = RED.view.selection();
if (selection.nodes) {
const {newLinks, removedLinks} = RED.nodes.detachNodes(selection.nodes);
@@ -2927,7 +2968,7 @@ RED.view = (function() {
mousedown_node = d;
mousedown_port_type = portType;
mousedown_port_index = portIndex || 0;
- if (mouse_mode !== RED.state.QUICK_JOINING) {
+ if (mouse_mode !== RED.state.QUICK_JOINING && !activeFlowLocked) {
mouse_mode = RED.state.JOINING;
document.body.style.cursor = "crosshair";
if (evt.ctrlKey || evt.metaKey) {
@@ -3367,6 +3408,11 @@ RED.view = (function() {
}
if (dblClickPrimed && mousedown_node == d && clickElapsed > 0 && clickElapsed < dblClickInterval) {
mouse_mode = RED.state.DEFAULT;
+ if (RED.workspaces.isActiveLocked()) {
+ clickElapsed = 0;
+ d3.event.stopPropagation();
+ return
+ }
if (d.type != "subflow") {
if (/^subflow:/.test(d.type) && (d3.event.ctrlKey || d3.event.metaKey)) {
RED.workspaces.show(d.type.substring(8));
@@ -3690,7 +3736,6 @@ RED.view = (function() {
}
// selectedLinks.clear();
if (d3.event.button != 2) {
- mouse_mode = RED.state.MOVING;
var mouse = d3.touches(this)[0]||d3.mouse(this);
mouse[0] += d.x-d.w/2;
mouse[1] += d.y-d.h/2;
@@ -3883,6 +3928,7 @@ RED.view = (function() {
if (RED.view.DEBUG) {
console.warn("groupMouseUp", { mouse_mode, event: d3.event });
}
+ if (RED.workspaces.isActiveLocked()) { return }
if (dblClickPrimed && mousedown_group == g && clickElapsed > 0 && clickElapsed < dblClickInterval) {
mouse_mode = RED.state.DEFAULT;
RED.editor.editGroup(g);
@@ -4053,7 +4099,7 @@ RED.view = (function() {
function isButtonEnabled(d) {
var buttonEnabled = true;
var ws = RED.nodes.workspace(RED.workspaces.active());
- if (ws && !ws.disabled && !d.d) {
+ if (ws && !ws.disabled && !d.d && !ws.locked) {
if (d._def.button.hasOwnProperty('enabled')) {
if (typeof d._def.button.enabled === "function") {
buttonEnabled = d._def.button.enabled.call(d);
@@ -4076,7 +4122,7 @@ RED.view = (function() {
}
var activeWorkspace = RED.workspaces.active();
var ws = RED.nodes.workspace(activeWorkspace);
- if (ws && !ws.disabled && !d.d) {
+ if (ws && !ws.disabled && !d.d && !ws.locked) {
if (d._def.button.toggle) {
d[d._def.button.toggle] = !d[d._def.button.toggle];
d.dirty = true;
@@ -4091,7 +4137,7 @@ RED.view = (function() {
if (d.dirty) {
redraw();
}
- } else {
+ } else if (!ws || !ws.locked){
if (activeSubflow) {
RED.notify(RED._("notification.warning", {message:RED._("notification.warnings.nodeActionDisabledSubflow")}),"warning");
} else {
@@ -4106,14 +4152,15 @@ RED.view = (function() {
function showTouchMenu(obj,pos) {
var mdn = mousedown_node;
var options = [];
- options.push({name:"delete",disabled:(movingSet.length()===0 && selectedLinks.length() === 0),onselect:function() {deleteSelection();}});
- options.push({name:"cut",disabled:(movingSet.length()===0),onselect:function() {copySelection(true);deleteSelection();}});
- options.push({name:"copy",disabled:(movingSet.length()===0),onselect:function() {copySelection();}});
- options.push({name:"paste",disabled:(clipboard.length===0),onselect:function() {importNodes(clipboard, {generateIds: true, touchImport: true});}});
- options.push({name:"edit",disabled:(movingSet.length() != 1),onselect:function() { RED.editor.edit(mdn);}});
+ const isActiveLocked = RED.workspaces.isActiveLocked()
+ options.push({name:"delete",disabled:(isActiveLocked || movingSet.length()===0 && selectedLinks.length() === 0),onselect:function() {deleteSelection();}});
+ options.push({name:"cut",disabled:(isActiveLocked || movingSet.length()===0),onselect:function() {copySelection(true);deleteSelection();}});
+ options.push({name:"copy",disabled:(isActiveLocked || movingSet.length()===0),onselect:function() {copySelection();}});
+ options.push({name:"paste",disabled:(isActiveLocked || clipboard.length===0),onselect:function() {importNodes(clipboard, {generateIds: true, touchImport: true});}});
+ options.push({name:"edit",disabled:(isActiveLocked || movingSet.length() != 1),onselect:function() { RED.editor.edit(mdn);}});
options.push({name:"select",onselect:function() {selectAll();}});
options.push({name:"undo",disabled:(RED.history.depth() === 0),onselect:function() {RED.history.pop();}});
- options.push({name:"add",onselect:function() {
+ options.push({name:"add",disabled:isActiveLocked, onselect:function() {
chartPos = chart.offset();
showQuickAddDialog({
position:[pos[0]-chartPos.left+chart.scrollLeft(),pos[1]-chartPos.top+chart.scrollTop()],
@@ -5811,6 +5858,9 @@ RED.view = (function() {
if (mouse_mode === RED.state.SELECTING_NODE) {
return;
}
+ if (activeFlowLocked) {
+ return
+ }
var workspaceSelection = RED.workspaces.selection();
var changed = false;
if (workspaceSelection.length > 0) {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index 23171fb5a..79f361a39 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -103,6 +103,9 @@ RED.workspaces = (function() {
if (workspaceTabCount === 1) {
return;
}
+ if (ws.locked) {
+ return
+ }
var workspaceOrder = RED.nodes.getWorkspaceOrder();
ws._index = workspaceOrder.indexOf(ws.id);
removeWorkspace(ws);
@@ -123,7 +126,9 @@ RED.workspaces = (function() {
RED.editor.editSubflow(subflow);
}
} else {
- RED.editor.editFlow(workspace);
+ if (!workspace.locked) {
+ RED.editor.editFlow(workspace);
+ }
}
}
@@ -148,6 +153,11 @@ RED.workspaces = (function() {
let activeWorkspace = tab || RED.nodes.workspace(RED.workspaces.active()) || RED.nodes.subflow(RED.workspaces.active())
let isFlowDisabled = activeWorkspace ? activeWorkspace.disabled : false
+ let isCurrentLocked = RED.workspaces.isActiveLocked()
+ if (tab) {
+ isCurrentLocked = tab.locked
+ }
+
var menuItems = []
if (isMenuButton) {
menuItems.push({
@@ -188,14 +198,30 @@ RED.workspaces = (function() {
shortcut: RED.keyboard.getShortcut("core:enable-flow"),
onselect: function() {
RED.actions.invoke("core:enable-flow", tab?tab.id:undefined)
- }
+ },
+ disabled: isCurrentLocked
} : {
label: RED._("workspace.disableFlow"),
shortcut: RED.keyboard.getShortcut("core:disable-flow"),
onselect: function() {
RED.actions.invoke("core:disable-flow", tab?tab.id:undefined)
+ },
+ disabled: isCurrentLocked
+ },
+ isCurrentLocked? {
+ label: RED._("workspace.unlockFlow"),
+ shortcut: RED.keyboard.getShortcut("core:unlock-flow"),
+ onselect: function() {
+ RED.actions.invoke('core:unlock-flow', tab?tab.id:undefined)
}
- }
+ } : {
+ label: RED._("workspace.lockFlow"),
+ shortcut: RED.keyboard.getShortcut("core:lock-flow"),
+ onselect: function() {
+ RED.actions.invoke('core:lock-flow', tab?tab.id:undefined)
+ }
+ },
+ null
)
}
const currentTabs = workspace_tabs.listTabs()
@@ -239,6 +265,7 @@ RED.workspaces = (function() {
}
}
)
+
}
menuItems.push(
{
@@ -264,6 +291,7 @@ RED.workspaces = (function() {
null,
{
label: RED._("common.label.delete"),
+ disabled: isCurrentLocked,
onselect: function() {
if (tab.type === 'tab') {
RED.workspaces.delete(tab)
@@ -302,6 +330,7 @@ RED.workspaces = (function() {
activeWorkspace = tab.id;
window.location.hash = 'flow/'+tab.id;
$("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!tab.disabled);
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!tab.locked);
} else {
$("#red-ui-workspace-chart").hide();
activeWorkspace = 0;
@@ -615,7 +644,7 @@ RED.workspaces = (function() {
}
function setWorkspaceState(id,disabled) {
var workspace = RED.nodes.workspace(id||activeWorkspace);
- if (!workspace) {
+ if (!workspace || workspace.locked) {
return;
}
if (workspace.disabled !== disabled) {
@@ -695,6 +724,8 @@ RED.workspaces = (function() {
}
function removeWorkspace(ws) {
+ if (ws.locked) { return }
+
if (!ws) {
deleteWorkspace(RED.nodes.workspace(activeWorkspace));
} else {
@@ -792,6 +823,10 @@ RED.workspaces = (function() {
active: function() {
return activeWorkspace
},
+ isActiveLocked: function() {
+ var ws = RED.nodes.workspace(activeWorkspace) || RED.nodes.subflow(activeWorkspace)
+ return ws && ws.locked
+ },
selection: function() {
return workspace_tabs.selection();
},
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/flow.scss b/packages/node_modules/@node-red/editor-client/src/sass/flow.scss
index be8db6c93..3e5be0645 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/flow.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/flow.scss
@@ -68,6 +68,9 @@
stroke: var(--red-ui-node-border);
cursor: move;
stroke-width: 1;
+ .red-ui-workspace-locked & {
+ cursor: pointer;
+ }
}
.red-ui-workspace-select-mode {
g.red-ui-flow-node.red-ui-flow-node-hovered * {
@@ -287,9 +290,11 @@ g.red-ui-flow-node-selected {
text-anchor:start;
}
-.red-ui-flow-port-hovered {
- stroke: var(--red-ui-port-selected-color);
- fill: var(--red-ui-port-selected-color);
+#red-ui-workspace:not(.red-ui-workspace-locked) {
+ .red-ui-flow-port-hovered {
+ stroke: var(--red-ui-port-selected-color);
+ fill: var(--red-ui-port-selected-color);
+ }
}
.red-ui-flow-subflow-port {
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss b/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
index ed526b263..f6bf2473c 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/tab-info.scss
@@ -514,6 +514,14 @@ div.red-ui-info-table {
display: none;
}
}
+ // If the parent is locked, do not show the display/action buttons when
+ // hovering in the outline
+ .red-ui-info-outline-item-locked .red-ui-info-outline-item & {
+ .red-ui-info-outline-item-control-disable,
+ .red-ui-info-outline-item-control-action {
+ display: none;
+ }
+ }
button {
margin-right: 3px
}
@@ -531,8 +539,6 @@ div.red-ui-info-table {
}
}
-
-
.red-ui-icons {
display: inline-block;
width: 18px;
From ce94226c3c82ea505332c9ba01eb6c3de77ed0ac Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 1 Nov 2022 11:29:23 +0000
Subject: [PATCH 032/178] Disable subflow/flow menu options if active is locked
---
.../@node-red/editor-client/src/js/ui/subflow.js | 2 +-
.../@node-red/editor-client/src/js/ui/view.js | 4 ++--
.../@node-red/editor-client/src/js/ui/workspaces.js | 12 +++++++-----
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
index de987e468..9ba4cb0bf 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
@@ -554,7 +554,7 @@ RED.subflow = (function() {
}
});
RED.events.on("view:selection-changed",function(selection) {
- if (!selection.nodes) {
+ if (!selection.nodes || RED.workspaces.isActiveLocked()) {
RED.menu.setDisabled("menu-item-subflow-convert",true);
} else {
RED.menu.setDisabled("menu-item-subflow-convert",false);
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
index d783ce941..1520471fd 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
@@ -423,8 +423,8 @@ RED.view = (function() {
}
}
- RED.menu.setDisabled("menu-item-workspace-edit", activeSubflow || event.workspace === 0);
- RED.menu.setDisabled("menu-item-workspace-delete",event.workspace === 0 || RED.workspaces.count() == 1 || activeSubflow);
+ RED.menu.setDisabled("menu-item-workspace-edit", activeFlowLocked || activeSubflow || event.workspace === 0);
+ RED.menu.setDisabled("menu-item-workspace-delete",activeFlowLocked || event.workspace === 0 || RED.workspaces.count() == 1 || activeSubflow);
if (workspaceScrollPositions[event.workspace]) {
chart.scrollLeft(workspaceScrollPositions[event.workspace].left);
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index 79f361a39..f127b7662 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -329,8 +329,8 @@ RED.workspaces = (function() {
$("#red-ui-workspace-chart").show();
activeWorkspace = tab.id;
window.location.hash = 'flow/'+tab.id;
- $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled",!!tab.disabled);
- $("#red-ui-workspace").toggleClass("red-ui-workspace-locked",!!tab.locked);
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-disabled", !!tab.disabled);
+ $("#red-ui-workspace").toggleClass("red-ui-workspace-locked", !!tab.locked);
} else {
$("#red-ui-workspace-chart").hide();
activeWorkspace = 0;
@@ -724,11 +724,13 @@ RED.workspaces = (function() {
}
function removeWorkspace(ws) {
- if (ws.locked) { return }
-
if (!ws) {
- deleteWorkspace(RED.nodes.workspace(activeWorkspace));
+ ws = RED.nodes.workspace(activeWorkspace)
+ if (ws && !ws.locked) {
+ deleteWorkspace(RED.nodes.workspace(activeWorkspace));
+ }
} else {
+ if (ws.locked) { return }
if (workspace_tabs.contains(ws.id)) {
workspace_tabs.removeTab(ws.id);
}
From fe9c630572fe9432fd6de6ff968c5a1905f79e2d Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 1 Nov 2022 11:42:40 +0000
Subject: [PATCH 033/178] Prevent deleting subflow if instance on locked tab
---
packages/node_modules/@node-red/editor-client/src/js/nodes.js | 2 +-
.../node_modules/@node-red/editor-client/src/js/ui/subflow.js | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index 715ae9c49..bbb6eb82f 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -616,7 +616,7 @@ RED.nodes = (function() {
var subflowId = n.type.substring(8);
var sf = RED.nodes.subflow(subflowId);
if (sf) {
- sf.instances.push(sf);
+ sf.instances.push(newNode);
}
n["_"] = RED._;
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
index 9ba4cb0bf..110533c1e 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/subflow.js
@@ -450,6 +450,9 @@ RED.subflow = (function() {
return
}
if (subflow.instances.length > 0) {
+ if (subflow.instances.some(sf => { const ws = RED.nodes.workspace(sf.z); return ws?ws.locked:false })) {
+ return
+ }
const msg = $('')
$('').text(RED._("subflow.subflowInstances",{count: subflow.instances.length})).appendTo(msg);
$('
').text(RED._("subflow.confirmDelete")).appendTo(msg);
From f23d0480e4bb30c09e1881ce7545159ee8453fca Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Fri, 4 Nov 2022 18:42:51 +0900
Subject: [PATCH 034/178] add global environment variable feature
---
Gruntfile.js | 1 +
.../editor-client/locales/en-US/editor.json | 5 +
.../editor-client/locales/ja/editor.json | 5 +
.../@node-red/editor-client/src/js/red.js | 1 +
.../editor-client/src/js/ui/deploy.js | 2 +-
.../editor-client/src/js/ui/env-var.js | 190 ++++++++++++++++++
.../@node-red/editor-client/src/js/ui/view.js | 63 +++++-
.../nodes/core/common/91-global-config.html | 19 ++
.../nodes/core/common/91-global-config.js | 7 +
.../en-US/common/91-global-config.html | 19 ++
.../nodes/locales/en-US/messages.json | 3 +
.../locales/ja/common/91-global-config.html | 19 ++
.../@node-red/nodes/locales/ja/messages.json | 3 +
.../@node-red/runtime/lib/flows/index.js | 13 ++
.../@node-red/runtime/lib/flows/util.js | 44 +++-
.../runtime/lib/nodes/credentials.js | 5 +
.../@node-red/runtime/lib/nodes/index.js | 1 +
.../core/common/91-global-config_spec.js | 63 ++++++
18 files changed, 460 insertions(+), 3 deletions(-)
create mode 100644 packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js
create mode 100644 packages/node_modules/@node-red/nodes/core/common/91-global-config.html
create mode 100644 packages/node_modules/@node-red/nodes/core/common/91-global-config.js
create mode 100644 packages/node_modules/@node-red/nodes/locales/en-US/common/91-global-config.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/ja/common/91-global-config.html
create mode 100644 test/nodes/core/common/91-global-config_spec.js
diff --git a/Gruntfile.js b/Gruntfile.js
index 2f81da923..4f4b3b027 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -169,6 +169,7 @@ module.exports = function(grunt) {
"packages/node_modules/@node-red/editor-client/src/js/ui/diagnostics.js",
"packages/node_modules/@node-red/editor-client/src/js/ui/diff.js",
"packages/node_modules/@node-red/editor-client/src/js/ui/keyboard.js",
+ "packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js",
"packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js",
"packages/node_modules/@node-red/editor-client/src/js/ui/statusBar.js",
"packages/node_modules/@node-red/editor-client/src/js/ui/view.js",
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 1cc571200..fe5120302 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -1204,5 +1204,10 @@
"node": "Node",
"junction": "Junction",
"linkNodes": "Link Nodes"
+ },
+ "env-var": {
+ "environment": "Environment",
+ "header": "Global Environment Variables",
+ "revert": "Revert"
}
}
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index fb3458eed..2b438050e 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -1349,5 +1349,10 @@
"show-version-control-tab": "バージョンコントロールタブを表示",
"start-flows": "フローを開始",
"stop-flows": "フローを停止"
+ },
+ "env-var": {
+ "environment": "環境変数",
+ "header": "大域環境変数",
+ "revert": "破棄"
}
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/red.js b/packages/node_modules/@node-red/editor-client/src/js/red.js
index 129c46799..6c0adf21b 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/red.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/red.js
@@ -775,6 +775,7 @@ var RED = (function() {
RED.deploy.init(RED.settings.theme("deployButton",null));
RED.keyboard.init(buildMainMenu);
+ RED.envVar.init();
RED.nodes.init();
RED.runtime.init()
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
index 8a8df6837..254ade55f 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
@@ -421,7 +421,7 @@ RED.deploy = (function() {
const unusedConfigNodes = [];
RED.nodes.eachConfig(function (node) {
- if ((node._def.hasUsers !== false) && (node.users.length === 0)) {
+ if ((node._def.hasUsers !== false) && (node.users.length === 0) && (node.type !== "global-config")) {
unusedConfigNodes.push(getNodeInfo(node));
hasUnusedConfig = true;
}
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js b/packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js
new file mode 100644
index 000000000..a8f852307
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/env-var.js
@@ -0,0 +1,190 @@
+/**
+ * Copyright JS Foundation and other contributors, http://js.foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
+RED.envVar = (function() {
+ function saveEnvList(list) {
+ const items = list.editableList("items")
+ const new_env = [];
+ items.each(function (i,el) {
+ var data = el.data('data');
+ var item;
+ if (data.nameField && data.valueField) {
+ item = {
+ name: data.nameField.val(),
+ value: data.valueField.typedInput("value"),
+ type: data.valueField.typedInput("type")
+ };
+ new_env.push(item);
+ }
+ });
+ return new_env;
+ }
+
+ function getGlobalConf(create) {
+ var gconf = null;
+ RED.nodes.eachConfig(function (conf) {
+ if (conf.type === "global-config") {
+ gconf = conf;
+ }
+ });
+ if ((gconf === null) && create) {
+ var cred = {
+ _ : {},
+ map: {}
+ };
+ gconf = {
+ id: RED.nodes.id(),
+ type: "global-config",
+ env: [],
+ name: "global-config",
+ label: "",
+ hasUsers: false,
+ users: [],
+ credentials: cred,
+ _def: RED.nodes.getType("global-config"),
+ };
+ RED.nodes.add(gconf);
+ }
+ return gconf;
+ }
+
+ function applyChanges(list) {
+ var gconf = getGlobalConf(false);
+ var new_env = [];
+ var items = list.editableList('items');
+ var credentials = gconf ? gconf.credentials : null;
+
+ if (!credentials) {
+ credentials = {
+ _ : {},
+ map: {}
+ };
+ }
+ items.each(function (i,el) {
+ var data = el.data('data');
+ if (data.nameField && data.valueField) {
+ var item = {
+ name: data.nameField.val(),
+ value: data.valueField.typedInput("value"),
+ type: data.valueField.typedInput("type")
+ };
+ if (item.name.trim() !== "") {
+ new_env.push(item);
+ if ((item.type === "cred") && (item.value !== "__PWRD__")) {
+ credentials.map[item.name] = item.value;
+ credentials.map["has_"+item.name] = (item.value !== "");
+ item.value = "__PWRD__";
+ }
+ }
+ }
+ });
+ if (gconf === null) {
+ gconf = getGlobalConf(true);
+ }
+ if ((JSON.stringify(new_env) !== JSON.stringify(gconf.env)) ||
+ (JSON.stringify(credentials) !== JSON.stringify(gconf.credentials))) {
+ gconf.env = new_env;
+ gconf.credentials = credentials;
+ RED.nodes.dirty(true);
+ }
+ }
+
+ function getSettingsPane() {
+ var gconf = getGlobalConf(false);
+ var env = gconf ? gconf.env : [];
+ var cred = gconf ? gconf.credentials : null;
+ if (!cred) {
+ cred = {
+ _ : {},
+ map: {}
+ };
+ }
+
+ var pane = $("", {
+ id: "red-ui-settings-tab-envvar"
+ });
+ var content = $("", {
+ class: "form-row node-input-env-container-row"
+ }).css({
+ "margin": "10px"
+ }).appendTo(pane);
+
+ var label = $("").css({
+ width: "100%"
+ }).appendTo(content);
+ $("", {
+ class: "fa fa-list"
+ }).appendTo(label);
+ $("").text(" "+RED._("env-var.header")).appendTo(label);
+
+ var list = $("
", {
+ id: "node-input-env-container"
+ }).appendTo(content);
+ var node = {
+ type: "",
+ env: env,
+ credentials: cred.map,
+ };
+ RED.editor.envVarList.create(list, node);
+
+ var buttons = $("").css({
+ "text-align": "right",
+ }).appendTo(content);
+ var revertButton = $("", {
+ class: "red-ui-button"
+ }).css({
+ }).text(RED._("env-var.revert")).appendTo(buttons);
+
+ var items = saveEnvList(list);
+ revertButton.on("click", function (ev) {
+ list.editableList("empty");
+ list.editableList("addItems", items);
+ });
+
+ return pane;
+ }
+
+ function init(done) {
+ if (!RED.user.hasPermission("settings.write")) {
+ RED.notify(RED._("user.errors.settings"),"error");
+ return;
+ }
+ RED.userSettings.add({
+ id:'envvar',
+ title: RED._("env-var.environment"),
+ get: getSettingsPane,
+ focus: function() {
+ var height = $("#red-ui-settings-tab-envvar").parent().height();
+ $("#node-input-env-container").editableList("height", (height -100));
+ },
+ close: function() {
+ var list = $("#node-input-env-container");
+ try {
+ applyChanges(list);
+ }
+ catch (e) {
+ console.log(e);
+ console.log(e.stack);
+ }
+ }
+ });
+ }
+
+ return {
+ init: init,
+ };
+
+})();
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
index c6c49c942..99855b6c9 100755
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js
@@ -5603,7 +5603,24 @@ RED.view = (function() {
if (activeSubflow) {
activeSubflowChanged = activeSubflow.changed;
}
- var result = RED.nodes.import(nodesToImport,{generateIds:options.generateIds, addFlow: addNewFlow, importMap: options.importMap});
+ var filteredNodesToImport = nodesToImport;
+ var globalConfig = null;
+ var gconf = null;
+
+ RED.nodes.eachConfig(function (conf) {
+ if (conf.type === "global-config") {
+ gconf = conf;
+ }
+ });
+ if (gconf) {
+ filteredNodesToImport = nodesToImport.filter(function (n) {
+ return (n.type !== "global-config");
+ });
+ globalConfig = nodesToImport.find(function (n) {
+ return (n.type === "global-config");
+ });
+ }
+ var result = RED.nodes.import(filteredNodesToImport,{generateIds:options.generateIds, addFlow: addNewFlow, importMap: options.importMap});
if (result) {
var new_nodes = result.nodes;
var new_links = result.links;
@@ -5735,6 +5752,50 @@ RED.view = (function() {
}
}
+ if (globalConfig) {
+ // merge global env to existing global-config
+ var env0 = gconf.env;
+ var env1 = globalConfig.env;
+ var newEnv = Array.from(env0);
+ var changed = false;
+
+ env1.forEach(function (item1) {
+ var index = newEnv.findIndex(function (item0) {
+ return (item0.name === item1.name);
+ });
+ if (index >= 0) {
+ var item0 = newEnv[index];
+ if ((item0.type !== item1.type) ||
+ (item0.value !== item1.value)) {
+ newEnv[index] = item1;
+ changed = true;
+ }
+ }
+ else {
+ newEnv.push(item1);
+ changed = true;
+ }
+ });
+ if(changed) {
+ gconf.env = newEnv;
+ var replaceEvent = {
+ t: "edit",
+ node: gconf,
+ changed: true,
+ changes: {
+ env: env0
+ }
+ };
+ historyEvent = {
+ t:"multi",
+ events: [
+ replaceEvent,
+ historyEvent,
+ ]
+ };
+ }
+ }
+
RED.history.push(historyEvent);
updateActiveNodes();
diff --git a/packages/node_modules/@node-red/nodes/core/common/91-global-config.html b/packages/node_modules/@node-red/nodes/core/common/91-global-config.html
new file mode 100644
index 000000000..8ef9cc4a7
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/core/common/91-global-config.html
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/core/common/91-global-config.js b/packages/node_modules/@node-red/nodes/core/common/91-global-config.js
new file mode 100644
index 000000000..08aa23207
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/core/common/91-global-config.js
@@ -0,0 +1,7 @@
+module.exports = function(RED) {
+ "use strict";
+ function GlobalConfigNode(n) {
+ RED.nodes.createNode(this,n);
+ }
+ RED.nodes.registerType("global-config", GlobalConfigNode);
+}
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/common/91-global-config.html b/packages/node_modules/@node-red/nodes/locales/en-US/common/91-global-config.html
new file mode 100644
index 000000000..397bdcb8a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/common/91-global-config.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
index 62d5f351f..ad7c5567b 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/messages.json
@@ -1123,5 +1123,8 @@
"warn": {
"nonumber": "no number found in payload"
}
+ },
+ "global-config": {
+ "tip": "This node holds global configuration of flows.
Do not delete this node unless you understand underlying mechanism.
"
}
}
diff --git a/packages/node_modules/@node-red/nodes/locales/ja/common/91-global-config.html b/packages/node_modules/@node-red/nodes/locales/ja/common/91-global-config.html
new file mode 100644
index 000000000..6d0602f86
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ja/common/91-global-config.html
@@ -0,0 +1,19 @@
+
+
+p
diff --git a/packages/node_modules/@node-red/nodes/locales/ja/messages.json b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
index 6e16daa6f..c5773972d 100644
--- a/packages/node_modules/@node-red/nodes/locales/ja/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/ja/messages.json
@@ -1123,5 +1123,8 @@
"warn": {
"nonumber": "ペイロードに数値が含まれていません"
}
+ },
+ "global-config": {
+ "tip": "このノードはフローの大域的な設定を保持するために利用されます。
実装の詳細を理解していない場合、このノードの削除は推奨しません。
"
}
}
diff --git a/packages/node_modules/@node-red/runtime/lib/flows/index.js b/packages/node_modules/@node-red/runtime/lib/flows/index.js
index 1b5476a3f..a583540f1 100644
--- a/packages/node_modules/@node-red/runtime/lib/flows/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/flows/index.js
@@ -777,6 +777,16 @@ const flowAPI = {
}
+function getGlobalConfig() {
+ let gconf = null;
+ eachNode((n) => {
+ if (n.type === "global-config") {
+ gconf = n;
+ }
+ });
+ return gconf;
+}
+
module.exports = {
init: init,
@@ -790,6 +800,9 @@ module.exports = {
get:getNode,
eachNode: eachNode,
+
+ getGlobalConfig: getGlobalConfig,
+
/**
* Gets the current flow configuration
*/
diff --git a/packages/node_modules/@node-red/runtime/lib/flows/util.js b/packages/node_modules/@node-red/runtime/lib/flows/util.js
index 0f3435b77..e350cc28c 100644
--- a/packages/node_modules/@node-red/runtime/lib/flows/util.js
+++ b/packages/node_modules/@node-red/runtime/lib/flows/util.js
@@ -18,7 +18,9 @@ var redUtil = require("@node-red/util").util;
var Log = require("@node-red/util").log;
var subflowInstanceRE = /^subflow:(.+)$/;
var typeRegistry = require("@node-red/registry");
+const credentials = require("../nodes/credentials");
+let _runtime = null;
var envVarExcludes = {};
@@ -263,15 +265,55 @@ function parseConfig(config) {
return flow;
}
+function getGlobalEnv(name) {
+ const nodes = _runtime.nodes;
+ if (!nodes) {
+ return null;
+ }
+ const gconf = nodes.getGlobalConfig();
+ const env = gconf ? gconf.env : null;
+
+ if (env) {
+ const cred = (gconf ? credentials.get(gconf.id) : null) || {
+ map: {}
+ };
+ const map = cred.map;
+
+ for (let i = 0; i < env.length; i++) {
+ const item = env[i];
+ if (item.name === name) {
+ if (item.type === "cred") {
+ return {
+ name: name,
+ value: map[name],
+ type: "cred"
+ };
+ }
+ return item;
+ }
+ }
+ }
+ return null;
+}
+
module.exports = {
init: function(runtime) {
+ _runtime = runtime;
envVarExcludes = {};
if (runtime.settings.hasOwnProperty('envVarExcludes') && Array.isArray(runtime.settings.envVarExcludes)) {
runtime.settings.envVarExcludes.forEach(v => envVarExcludes[v] = true);
}
},
getEnvVar: function(k) {
- return !envVarExcludes[k]?process.env[k]:undefined
+ if (!envVarExcludes[k]) {
+ const item = getGlobalEnv(k);
+ if (item) {
+ const val = redUtil.evaluateNodeProperty(item.value, item.type, null, null, null);
+ return val;
+ }
+ return process.env[k];
+ }
+ return undefined;
},
diffNodes: diffNodes,
mapEnvVarProperties: mapEnvVarProperties,
diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
index 305594c85..73567f7c4 100644
--- a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
+++ b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
@@ -383,6 +383,11 @@ var api = module.exports = {
}
}
}
+ } else if (nodeType === "global-config") {
+ if (JSON.stringify(savedCredentials.map) !== JSON.stringify(newCreds.map)) {
+ savedCredentials.map = newCreds.map;
+ dirty = true;
+ }
} else {
var dashedType = nodeType.replace(/\s+/g, '-');
var definition = credentialsDef[dashedType];
diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/index.js b/packages/node_modules/@node-red/runtime/lib/nodes/index.js
index 5b859a5f8..fd01ebdb0 100644
--- a/packages/node_modules/@node-red/runtime/lib/nodes/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/nodes/index.js
@@ -205,6 +205,7 @@ module.exports = {
getNode: flows.get,
eachNode: flows.eachNode,
getContext: context.get,
+ getGlobalConfig: flows.getGlobalConfig,
clearContext: context.clear,
diff --git a/test/nodes/core/common/91-global-config_spec.js b/test/nodes/core/common/91-global-config_spec.js
new file mode 100644
index 000000000..c9e7a78e6
--- /dev/null
+++ b/test/nodes/core/common/91-global-config_spec.js
@@ -0,0 +1,63 @@
+/**
+ * Copyright JS Foundation and other contributors, http://js.foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
+var should = require("should");
+var config = require("nr-test-utils").require("@node-red/nodes/core/common/91-global-config.js");
+var inject = require("nr-test-utils").require("@node-red/nodes/core/common/20-inject.js");
+var helper = require("node-red-node-test-helper");
+
+describe('unknown Node', function() {
+
+ afterEach(function() {
+ helper.unload();
+ });
+
+ it('should be loaded', function(done) {
+ var flow = [{id:"n1", type:"global-config", name: "XYZ" }];
+ helper.load(config, flow, function() {
+ var n1 = helper.getNode("n1");
+ n1.should.have.property("name", "XYZ");
+ done();
+ });
+ });
+
+ it('should access global environment variable', function(done) {
+ var flow = [{id:"n1", type:"global-config", name: "XYZ",
+ env: [ {
+ name: "X",
+ type: "string",
+ value: "foo"
+ }]
+ },
+ {id: "n2", type: "inject", topic: "t1", payload: "X", payloadType: "env", wires: [["n3"]], z: "flow"},
+ {id: "n3", type: "helper"}
+ ];
+ helper.load([config, inject], flow, function() {
+ var n2 = helper.getNode("n2");
+ var n3 = helper.getNode("n3");
+ n3.on("input", (msg) => {
+ try {
+ msg.should.have.property("payload", "foo");
+ done();
+ } catch (err) {
+ done(err);
+ }
+ });
+ n2.receive({});
+ });
+ });
+
+});
From 9cb474ea9c6f1c01b8e5c1212bdce453e6fe46f6 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 7 Nov 2022 09:40:36 +0900
Subject: [PATCH 035/178] fix deployment of locked flow
---
.../@node-red/editor-client/src/js/ui/deploy.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
index 8a8df6837..32b604235 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js
@@ -558,6 +558,11 @@ RED.deploy = (function() {
RED.notify('' + RED._("deploy.successfulDeploy") + '
', "success");
}
RED.nodes.eachNode(function (node) {
+ const flow = node.z && (RED.nodes.workspace(node.z) || RED.nodes.subflow(node.z) || null);
+ const isLocked = flow ? flow.locked : false;
+ if (flow && isLocked) {
+ flow.locked = false;
+ }
if (node.changed) {
node.dirty = true;
node.changed = false;
@@ -569,6 +574,9 @@ RED.deploy = (function() {
if (node.credentials) {
delete node.credentials;
}
+ if (flow && isLocked) {
+ flow.locked = isLocked;
+ }
});
RED.nodes.eachConfig(function (confNode) {
confNode.changed = false;
From 11ad03b21e12f8d7d4278d0e12007c7dc53d2df7 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 7 Nov 2022 10:42:07 +0900
Subject: [PATCH 036/178] fix to allow es11 for jshint check
---
.jshintrc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.jshintrc b/.jshintrc
index 719eecb49..0886c1dc0 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -15,5 +15,5 @@
"shadow": true, // allow variable shadowing (re-use of names...)
"sub": true, // don't warn that foo['bar'] should be written as foo.bar
"proto": true, // allow setting of __proto__ in node < v0.12,
- "esversion": 6 // allow es6
+ "esversion": 11 // allow es11(ES2020)
}
From b95df6d8832909b91d5e34fba69113aeb65ff23f Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 7 Nov 2022 15:47:19 +0900
Subject: [PATCH 037/178] i18n item URL copy notification & add Japanese
message
---
.../@node-red/editor-client/locales/en-US/editor.json | 3 ++-
.../@node-red/editor-client/locales/ja/editor.json | 3 ++-
.../@node-red/editor-client/src/js/ui/view-tools.js | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 1cc571200..b97b9815a 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -684,7 +684,8 @@
"globalConfig": "Global Configuration Nodes",
"triggerAction": "Trigger action",
"find": "Find in workspace",
- "copyItemUrl": "Copy item url"
+ "copyItemUrl": "Copy item url",
+ "copyURL2Clipboard": "Copied url to clipboard"
},
"help": {
"name": "Help",
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index fb3458eed..fe2625556 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -683,7 +683,8 @@
"empty": "空",
"globalConfig": "グローバル設定ノード",
"triggerAction": "アクションを実行",
- "find": "ワークスペース内を検索"
+ "find": "ワークスペース内を検索",
+ "copyURL2Clipboard": "URLをクリップボードにコピーしました"
},
"help": {
"name": "ヘルプ",
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
index 1ed5791a6..0f02077d8 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js
@@ -1211,7 +1211,7 @@ RED.view.tools = (function() {
url += '/edit'
}
if (RED.clipboard.copyText(url)) {
- RED.notify('Copied url to clipboard', { timeout: 2000 })
+ RED.notify(RED._("sidebar.info.copyURL2Clipboard"), { timeout: 2000 })
}
}
}
From e3892dc26d9c1388762467696297c6759cfdaf90 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 7 Nov 2022 16:07:46 +0900
Subject: [PATCH 038/178] add Japanese message for item url copy actions
---
.../@node-red/editor-client/locales/ja/editor.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index fb3458eed..1420fbe53 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -1348,6 +1348,8 @@
"show-project-settings": "プロジェクト設定を表示",
"show-version-control-tab": "バージョンコントロールタブを表示",
"start-flows": "フローを開始",
- "stop-flows": "フローを停止"
+ "stop-flows": "フローを停止",
+ "copy-item-url": "要素のURLをコピー",
+ "copy-item-edit-url": "要素の編集URLをコピー"
}
}
From f28bc1bff7a269533fb9228a883b2944eb24f09c Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Mon, 7 Nov 2022 21:11:58 +0000
Subject: [PATCH 039/178] Remove jshint warning
---
packages/node_modules/@node-red/editor-client/src/js/nodes.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
index bbb6eb82f..cdaf0e00a 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js
@@ -591,7 +591,7 @@ RED.nodes = (function() {
prop === 'z' ||
prop === 'l' ||
prop === 'd' ||
- (prop === 'changed' && !!node.changed !== !!value) ||
+ (prop === 'changed' && (!!node.changed) !== (!!value)) || // jshint ignore:line
((prop === 'x' || prop === 'y') && !node.resize && node.type !== 'group')
) {
throw new Error(`Cannot modified property '${prop}' of locked object '${node.type}:${node.id}'`)
From 0b663abe5039a1e6a55d732264d23559a51b78cf Mon Sep 17 00:00:00 2001
From: Steveorevo
Date: Wed, 9 Nov 2022 10:33:05 -0800
Subject: [PATCH 040/178] Fix #3939, red border red-ui-typedInput-container
---
.../node_modules/@node-red/editor-client/src/js/ui/editor.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
index be114c4a8..da7954625 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js
@@ -238,6 +238,7 @@ RED.editor = (function() {
var valid = validateNodeProperty(node, defaults, property,value);
if (((typeof valid) === "string") || !valid) {
input.addClass("input-error");
+ input.next(".red-ui-typedInput-container").addClass("input-error");
if ((typeof valid) === "string") {
var tooltip = input.data("tooltip");
if (tooltip) {
@@ -250,6 +251,7 @@ RED.editor = (function() {
}
} else {
input.removeClass("input-error");
+ input.next(".red-ui-typedInput-container").removeClass("input-error");
var tooltip = input.data("tooltip");
if (tooltip) {
input.data("tooltip", null);
From c81cd5450f9d0c450c42b6566c7f88cd9e7b66c7 Mon Sep 17 00:00:00 2001
From: "Stephen J. Carnam"
Date: Wed, 9 Nov 2022 16:45:32 -0800
Subject: [PATCH 041/178] Support for PHP syntax highlight
---
.../node_modules/@node-red/nodes/core/function/80-template.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/packages/node_modules/@node-red/nodes/core/function/80-template.html b/packages/node_modules/@node-red/nodes/core/function/80-template.html
index 40a26bc35..6f970a0cf 100644
--- a/packages/node_modules/@node-red/nodes/core/function/80-template.html
+++ b/packages/node_modules/@node-red/nodes/core/function/80-template.html
@@ -21,6 +21,7 @@
+
From 116839d6f6f9592234728936b33fe176dc43cbcd Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Mon, 28 Nov 2022 23:00:31 +0100
Subject: [PATCH 042/178] Add French translation
---
.../editor-client/locales/fr/editor.json | 1211 +++++++++++++++++
.../editor-client/locales/fr/infotips.json | 23 +
.../editor-client/locales/fr/jsonata.json | 274 ++++
3 files changed, 1508 insertions(+)
create mode 100644 packages/node_modules/@node-red/editor-client/locales/fr/editor.json
create mode 100755 packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
create mode 100755 packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/editor.json b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
new file mode 100644
index 000000000..22ae0a993
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
@@ -0,0 +1,1211 @@
+{
+ "common": {
+ "label": {
+ "name": "Nom",
+ "ok": "Ok",
+ "done": "Terminer",
+ "cancel": "Annuler",
+ "delete": "Supprimer",
+ "close": "Fermer",
+ "load": "Ouvrir",
+ "save": "Sauver",
+ "import": "Importer",
+ "export": "Exporter",
+ "back": "Retour",
+ "next": "Suivant",
+ "clone": "Cloner",
+ "cont": "Continuer",
+ "style": "Style",
+ "line": "Présenter",
+ "fill": "Remplir",
+ "label": "Etiquette",
+ "color": "Couleur",
+ "position": "Position",
+ "enable": "Activer",
+ "disable": "Désactiver",
+ "upload": "Charger"
+ },
+ "type": {
+ "string": "chaîne de caractères",
+ "number": "nombre",
+ "boolean": "booléen",
+ "array": "tableau",
+ "buffer": "tampon",
+ "object": "objet",
+ "jsonString": "chaîne JSON",
+ "undefined": "indéfini",
+ "null": "nul"
+ }
+ },
+ "event": {
+ "loadPlugins": "Chargement des plugins",
+ "loadPalette": "Chargement de la palette",
+ "loadNodeCatalogs": "Chargement des catalogues de noeuds",
+ "loadNodes": "Chargement des noeuds __count__",
+ "loadFlows": "Chargement des flux",
+ "importFlows": "Ajout de flux à l'espace de travail",
+ "importError": "Erreur lors de l'ajout du flux
__message__
",
+ "loadingProject": "Chargement du projet"
+ },
+ "workspace": {
+ "defaultName": "Flux __number__",
+ "editFlow": "Modifier le flux : __name__",
+ "confirmDelete": "Confirmation de la suppression",
+ "delete": "Etes-vous sûr de vouloir supprimer '__label__'?",
+ "dropFlowHere": "Déposez le flux ici",
+ "addFlow": "Ajouter un flux",
+ "addFlowToRight": "Ajouter un flux à droite",
+ "hideFlow": "Masquer le flux",
+ "hideOtherFlows": "Masquer les autres flux",
+ "showAllFlows": "Afficher tous les flux",
+ "hideAllFlows": "Masquer tous les flux",
+ "hiddenFlows": "Répertorier le flux masqué __count__",
+ "hiddenFlows_plural": "Répertorier les flux masqués __count__",
+ "showLastHiddenFlow": "Afficher le dernier flux masqué",
+ "listFlows": "Répertorier les flux",
+ "listSubflows": "Répertorier les sous-flux",
+ "status": "Statut",
+ "enabled": "Activé",
+ "disabled": "Désactivé",
+ "info": "Description",
+ "selectNodes": "Cliquez sur les noeuds pour sélectionner"
+ },
+ "menu": {
+ "label": {
+ "view": {
+ "view": "Affichage",
+ "grid": "Grille",
+ "storeZoom": "Restaurer le niveau de zoom au chargement",
+ "storePosition": "Restaurer la position de défilement au chargement",
+ "showGrid": "Afficher la grille",
+ "snapGrid": "Aligner sur la grille",
+ "gridSize": "Taille de la grille",
+ "textDir": "Sens du texte",
+ "defaultDir": "Sens par défaut",
+ "ltr": "De gauche à droite",
+ "rtl": "De droite à gauche",
+ "auto": "Contextuel",
+ "language": "Langue",
+ "browserDefault": "Navigateur par défaut"
+ },
+ "sidebar": {
+ "show": "Afficher la barre latérale"
+ },
+ "palette": {
+ "show": "Afficher la palette"
+ },
+ "edit": "Éditer",
+ "settings": "Paramètres",
+ "userSettings": "Paramètres de l'utilisateur",
+ "nodes": "Neuds",
+ "displayStatus": "Afficher l'état du noeud",
+ "displayConfig": "Noeuds de configuration",
+ "import": "Importer",
+ "export": "Exporter",
+ "search": "Rechercher les flux",
+ "searchInput": "Rechercher vos flux",
+ "subflows": "Sous-flux",
+ "createSubflow": "Créer un sous-flux",
+ "selectionToSubflow": "Selection d'un sous-flux",
+ "flows": "Flux",
+ "add": "Ajouter",
+ "rename": "Renommer",
+ "delete": "Supprimer",
+ "keyboardShortcuts": "Raccourcis clavier",
+ "login": "Se connecter",
+ "logout": "Se déconnecter",
+ "editPalette": "Gérer la palette",
+ "other": "Autre",
+ "showTips": "Afficher les astuces",
+ "showWelcomeTours": "Afficher les visites guidées pour les nouvelles versions",
+ "help": "Site web de Node-RED",
+ "projects": "Projets",
+ "projects-new": "Nouveau projet",
+ "projects-open": "Ouvrir le projet",
+ "projects-settings": "Paramètres du projet",
+ "showNodeLabelDefault": "Afficher l'étiquette des noeuds nouvellement ajoutés",
+ "codeEditor": "Éditeur de code",
+ "groups": "Groupes",
+ "groupSelection": "Grouper cette sélection",
+ "ungroupSelection": "Dégrouper la sélection",
+ "groupMergeSelection": "Fusionner la sélection",
+ "groupRemoveSelection": "Supprimer du groupe",
+ "arrange": "Organiser",
+ "alignLeft": "Aligner à gauche",
+ "alignCenter": "Aligner au centre",
+ "alignRight": "Aligner à droite",
+ "alignTop": "Aligner en haut",
+ "alignMiddle": "Aligner au milieu",
+ "alignBottom": "Aligner en bas",
+ "distributeHorizontally": "Répartir horizontalement",
+ "distributeVertically": "Distribuer verticalement",
+ "moveToBack": "Déplacer vers l'arrière",
+ "moveToFront": "Déplacer vers l'avant",
+ "moveBackwards": "Déplacer vers l'arrière",
+ "moveForwards": "Déplacer vers l'avant"
+ }
+ },
+ "actions": {
+ "toggle-navigator": "Basculer de navigateur",
+ "zoom-out": "Dézoomer",
+ "zoom-reset": "Réinitialiser le zoom",
+ "zoom-in": "Agrandir",
+ "search-flows": "Rechercher le fux",
+ "search-prev": "Précédent",
+ "search-next": "Suivant",
+ "search-counter": "\"__term__\" __result__ de __count__"
+ },
+ "user": {
+ "loggedInAs": "Connecté en tant que __name__",
+ "username": "Nom d'utilisateur",
+ "password": "Mot de passe",
+ "login": "Connexion",
+ "loginFailed": "Échec de la connexion",
+ "notAuthorized": "Pas autorisé",
+ "errors": {
+ "settings": "Vous devez être connecté pour accéder aux paramètres",
+ "deploy": "Vous devez être connecté pour déployer les modifications",
+ "notAuthorized": "Vous devez être connecté pour effectuer cette action"
+ }
+ },
+ "notification": {
+ "state": {
+ "flowsStopped": "Flux arrêtés",
+ "flowsStarted": "Flux démarrés"
+ },
+ "warning": "Attention : __message__",
+ "warnings": {
+ "undeployedChanges": "Le noeud a des modifications non déployées",
+ "nodeActionDisabled": "Actions de noeud désactivées",
+ "nodeActionDisabledSubflow": "Actions de noeud désactivées dans le sous-flux",
+ "missing-types": "Flux arrêtés en raison de types de noeuds manquants.
",
+ "missing-modules": "Flux arrêtés en raison de modules manquants.
",
+ "safe-mode": "Flux arrêtés en mode sans échec.
Vous pouvez modifier vos flux et déployer les changements pour redémarrer.
",
+ "restartRequired": "Node-RED doit être redémarré pour mettre à jour les modules",
+ "credentials_load_failed": "Les flux se sont arrêtés car les informations d'identification n'ont pas pu être déchiffrées.
Le fichier d'informations d'identification du flux est chiffré, mais la clé de chiffrement du projet est manquante ou invalide.
",
+ "credentials_load_failed_reset": "Les informations d'identification n'ont pas pu être déchiffrées
Le fichier d'informations d'identification du flux est chiffré, mais la clé de chiffrement du projet est manquante ou invalide.
Le fichier d'informations d'identification du flux sera réinitialisé lors du prochain déploiement. Toutes les informations d'identification de flux existantes seront perdues.
",
+ "missing_flow_file": "Fichier contenant les flux introuvable.
Le projet n'est pas configuré avec un fichier de flux.
",
+ "missing_package_file": "Fichier de package de projet introuvable.
Il manque au projet un fichier package.json.
",
+ "project_empty": "Le projet est vide.
Voulez-vous créer un ensemble de fichiers de projet par défaut ?
Sinon, vous devrez ajouter manuellement des fichiers au projet (en dehors de l'éditeur).
",
+ "project_not_found": "Le projet '__project__' est introuvable.
",
+ "git_merge_conflict": "La fusion automatique des modifications a échoué.
Corrigez les conflits non fusionnés, puis validez le résultat.
"
+ },
+ "error": "Erreur : __message__",
+ "errors": {
+ "lostConnection": "Perte de connexion au serveur, reconnexion...",
+ "lostConnectionReconnect": "Perte de connexion au serveur, reconnexion dans __time__s.",
+ "lostConnectionTry": "Essayez maintenant",
+ "cannotAddSubflowToItself": "Impossible d'ajouter un sous-flux à lui-même",
+ "cannotAddCircularReference": "Impossible d'ajouter un sous-flux - référence circulaire détectée",
+ "unsupportedVersion": "Utilisation d'une version non prise en charge de Node.js
Vous devez effectuer une mise à jour vers la dernière version de Node.js LTS
",
+ "failedToAppendNode": "Échec du chargement du module '__module__'
__error__
"
+ },
+ "project": {
+ "change-branch": "Changer pour une succursale (branche) locale '__project__'",
+ "merge-abort": "Git fusion abandonnée",
+ "loaded": "Projet '__project__' chargé",
+ "updated": "Projet '__project__' mis à jour",
+ "pull": "Projet '__project__' rechargé",
+ "revert": "Projet '__project__' annulé",
+ "merge-complete": "Fusion Git terminée",
+ "setupCredentials": "Configuration des identifiants",
+ "setupProjectFiles": "Configuration des fichiers du projet",
+ "no": "Non merci",
+ "createDefault": "Créer des fichiers de projet par défaut",
+ "mergeConflict": "Afficher les conflits de fusion"
+ },
+ "label": {
+ "manage-project-dep": "Gérer les dépendances du projet",
+ "setup-cred": "Configuration des identifiants",
+ "setup-project": "Configuration des fichiers du projet",
+ "create-default-package": "Créer un fichier de package par défaut",
+ "no-thanks": "Non merci",
+ "create-default-project": "Créer des fichiers de projet par défaut",
+ "show-merge-conflicts": "Afficher les conflits de fusion",
+ "unknownNodesButton": "Rechercher les noeuds inconnus"
+ }
+ },
+ "clipboard": {
+ "clipboard": "Presse-papiers",
+ "nodes": "Noeuds",
+ "node": "__count__ noeud",
+ "node_plural": "__count__ noeuds",
+ "configNode": "__count__ noeud de configuration",
+ "configNode_plural": "__count__ noeuds de configuration",
+ "group": "__count__ groupe",
+ "group_plural": "__count__ groupes",
+ "flow": "__count__ flux",
+ "flow_plural": "__count__ flux",
+ "subflow": "__count__ sous-flux",
+ "subflow_plural": "__count__ sous-flux",
+ "replacedNodes": "__count__ noeud remplacé",
+ "replacedNodes_plural": "__count__ noeuds remplacés",
+ "pasteNodes": "Coller le flux json ou",
+ "selectFile": "sélectionner un fichier à importer",
+ "importNodes": "Importer des noeuds",
+ "exportNodes": "Exporter des noeuds",
+ "download": "Télécharger",
+ "importUnrecognised": "Importation d'un type inconnu :",
+ "importUnrecognised_plural": "Importation de plusieurs types inconnus :",
+ "importDuplicate": "noeud en double importé :",
+ "importDuplicate_plural": "noeuds en double importés :",
+ "nodesExported": "noeuds exportés vers le presse-papiers",
+ "nodesImported": "Noeuds importés :",
+ "nodeCopied": "__count__ noeud copié",
+ "nodeCopied_plural": "__count__ noeuds copiés",
+ "groupCopied": "__count__ groupe copié",
+ "groupCopied_plural": "__count__ groupes copiés",
+ "groupStyleCopied": "Style de groupe copié",
+ "invalidFlow": "Flux invalide : __message__",
+ "recoveredNodes": "noeuds récupérés",
+ "recoveredNodesInfo": "Les noeuds importés sur ce flux contiennent un mauvais identifiant de flux. Ces noeuds ont été ajoutés à ce flux afin que vous puissiez les restaurer ou les supprimer.",
+ "recoveredNodesNotification": "noeuds importés sans identifiant de flux valide
Ils ont été ajoutés à un nouveau flux appelé '__flowName__'.
",
+ "export": {
+ "selected": "noeuds sélectionnés",
+ "current": "flux actuel",
+ "all": "tous les flux",
+ "compact": "condensé",
+ "formatted": "formaté",
+ "copy": "Copier dans le presse-papier",
+ "export": "Exporter vers la bibliothèque",
+ "exportAs": "Exporter en tant que",
+ "overwrite": "Remplacer",
+ "exists": "\"__file__\" existe déjà.
Voulez-vous le remplacer ?
"
+ },
+ "import": {
+ "import": "Importer vers",
+ "importSelected": "Importation sélectionnée",
+ "importCopy": "Importer une copie",
+ "viewNodes": "Afficher les noeuds...",
+ "newFlow": "nouveau flux",
+ "replace": "remplacer",
+ "errors": {
+ "notArray": "L'entrée n'est pas un tableau JSON",
+ "itemNotObject": "L'entrée n'est pas un flux valide - l'élément '__index__' n'est pas un objet du noeud",
+ "missingId": "L'entrée n'est pas un flux valide - l'élément '__index__' n'a pas de propriété 'id'",
+ "missingType": "L'entrée n'est pas un flux valide - l'élément '__index__' n'a pas de propriété 'type'"
+ },
+ "conflictNotification1": "Certains des noeuds que vous avez importés existent déjà dans votre espace de travail.",
+ "conflictNotification2": "Sélectionner les noeuds à importer et choisisser s'il faut remplacer les noeuds existants ou en importer une copie."
+ },
+ "copyMessagePath": "Chemin copié",
+ "copyMessageValue": "Valeur copiée",
+ "copyMessageValue_truncated": "Valeur tronquée (coupée) copiée"
+ },
+ "deploy": {
+ "deploy": "Déployer",
+ "full": "Tout",
+ "fullDesc": "Déploie tout l'espace de travail",
+ "modifiedFlows": "Flux modifiés",
+ "modifiedFlowsDesc": "Déploie uniquement les flux contenant des noeuds modifiés",
+ "modifiedNodes": "noeuds modifiés",
+ "modifiedNodesDesc": "Déploie uniquement les noeuds qui ont changés",
+ "startFlows": "Démarrer",
+ "startFlowsDesc": "Démarrer les flux",
+ "stopFlows": "Arrêter",
+ "stopFlowsDesc": "Arrêter les flux",
+ "restartFlows": "Redémarrer les flux",
+ "restartFlowsDesc": "Redémarrer les flux actuellement déployés",
+ "successfulDeploy": "Déployé avec succès",
+ "successfulRestart": "Flux redémarrés avec succès",
+ "deployFailed": "Échec du déploiement : __message__",
+ "unusedConfigNodes": "Vous avez des noeuds de configuration inutilisés.",
+ "unusedConfigNodesButton": "Rechercher les noeuds de configuration inutilisés",
+ "unknownNodesButton": "Rechercher les noeuds inconnus",
+ "invalidNodesButton": "Rechercher les noeuds invalides",
+ "errors": {
+ "noResponse": "pas de réponse du serveur"
+ },
+ "confirm": {
+ "button": {
+ "ignore": "Ignorer",
+ "confirm": "Confirmer le déploiement",
+ "review": "Examiner les modifications",
+ "cancel": "Annuler",
+ "merge": "Fusionner",
+ "overwrite": "Ignorer et déployer"
+ },
+ "undeployedChanges": "Vous avez des modifications non déployées.\n\nSi vous quittez cette page, ces modifications seront perdues.",
+ "improperlyConfigured": "L'espace de travail contient des noeuds qui ne sont pas correctement configurés :",
+ "unknown": "L'espace de travail contient des types de noeuds inconnus :",
+ "confirm": "Êtes-vous sûr de vouloir déployer ?",
+ "doNotWarn": "ne plus m'avertir à ce sujet",
+ "conflict": "Le serveur exécute un ensemble de flux plus récent.",
+ "backgroundUpdate": "Les flux sur le serveur ont été mis à jour.",
+ "conflictChecking": "Vérifier si les modifications peuvent être fusionnées automatiquement",
+ "conflictAutoMerge": "Les modifications n'incluent aucun conflit et peuvent être fusionnées automatiquement.",
+ "conflictManualMerge": "Les changements incluent des conflits qui doivent être résolus avant de pouvoir être déployés.",
+ "plusNMore": "+ __count__ en plus"
+ }
+ },
+ "eventLog": {
+ "title": "Journal des événements",
+ "view": "Afficher le journal"
+ },
+ "diff": {
+ "unresolvedCount": "__count__ conflit non résolu",
+ "unresolvedCount_plural": "__count__ conflits non résolus",
+ "globalNodes": "noeuds globaux",
+ "flowProperties": "Propriétés du flux",
+ "type": {
+ "added": "ajouté",
+ "changed": "modifié",
+ "unchanged": "inchangé",
+ "deleted": "supprimé",
+ "flowDeleted": "flux supprimé",
+ "flowAdded": "flux ajouté",
+ "movedTo": "déplacé vers __id__",
+ "movedFrom": "déplacé depuis __id__"
+ },
+ "nodeCount": "__count__ noeud",
+ "nodeCount_plural": "__count__ noeuds",
+ "local": "Changements locaux",
+ "remote": "Modifications à distance",
+ "reviewChanges": "Examiner les modifications",
+ "noBinaryFileShowed": "Impossible d'afficher le contenu du fichier binaire",
+ "viewCommitDiff": "Afficher les modifications de validation",
+ "compareChanges": "Comparer les modifications",
+ "saveConflict": "Enregistrer la résolution des conflits",
+ "conflictHeader": "__resolved__ sur __unresolved__ conflit(s) résolu(s)",
+ "commonVersionError": "La version commune ne contient pas de JSON valide :",
+ "oldVersionError": "L'ancienne version ne contient pas de JSON valide :",
+ "newVersionError": "La nouvelle version ne contient pas de JSON valide :"
+ },
+ "subflow": {
+ "editSubflowInstance": "Modifier l'instance du sous-flux : __name__",
+ "editSubflow": "Modifier le modèle du sous-flux : __name__",
+ "edit": "Modifier le modèle du sous-flux",
+ "subflowInstances": "Il existe __count__ instance de ce modèle de sous-flux",
+ "subflowInstances_plural": "Il existe __count__ instances de ce modèle de sous-flux",
+ "editSubflowProperties": "modifier les propriétés",
+ "input": "entrées:",
+ "output": "sorties:",
+ "status": "statut du noeud",
+ "deleteSubflow": "supprimer le sous-flux",
+ "confirmDelete": "Voulez-vous vraiment supprimer ce sous-flux ?",
+ "info": "Description",
+ "category": "Categorie",
+ "module": "Module",
+ "license": "License",
+ "licenseNone": "aucune",
+ "licenseOther": "Autre",
+ "type": "Type de noeud",
+ "version": "Version",
+ "versionPlaceholder": "x.y.z",
+ "keys": "Mots clés",
+ "keysPlaceholder": "Mots clés séparés par des virgules",
+ "author": "Auteur",
+ "authorPlaceholder": "Votre nom ",
+ "desc": "Description",
+ "env": {
+ "restore": "Restaurer le sous-flux par défaut",
+ "remove": "Supprimer la variable d'environnement"
+ },
+ "errors": {
+ "noNodesSelected": "Impossible de créer un sous-flux : aucun noeud sélectionné",
+ "multipleInputsToSelection": "Impossible de créer un sous-flux : plusieurs entrées pour la sélection"
+ }
+ },
+ "group": {
+ "editGroup": "Modifier le groupe : __name__",
+ "errors": {
+ "cannotCreateDiffGroups": "Impossible de créer un groupe de noeuds provenant de différents groupes",
+ "cannotAddSubflowPorts": "Impossible d'ajouter des ports à un groupe de sous-flux"
+ }
+ },
+ "editor": {
+ "configEdit": "Modifier",
+ "configAdd": "Ajouter",
+ "configUpdate": "Sauver",
+ "configDelete": "Supprimer",
+ "nodesUse": "__count__ noeud utilise cette configuration",
+ "nodesUse_plural": "__count__ noeuds utilisent cette configuration",
+ "addNewConfig": "Ajouter un nouveau noeud de configuration __type__",
+ "editNode": "Modifier le noeud __type__",
+ "editConfig": "Modifier le noeud de configuration __type__",
+ "addNewType": "Ajouter un nouveau __type__...",
+ "nodeProperties": "propriétés du noeud",
+ "label": "Etiquette",
+ "color": "Couleur",
+ "portLabels": "Étiquettes des ports",
+ "labelInputs": "Entrées",
+ "labelOutputs": "Sorties",
+ "settingIcon": "Icône",
+ "default": "défaut",
+ "noDefaultLabel": "aucune",
+ "defaultLabel": "utiliser l'étiquette par défaut",
+ "searchIcons": "Icônes de recherche",
+ "useDefault": "utilisation par défaut",
+ "description": "Description",
+ "show": "Afficher",
+ "hide": "Masquer",
+ "locale": "Sélectionner la langue",
+ "icon": "Icône",
+ "inputType": "Type d'entrée",
+ "selectType": "sélectionner les types...",
+ "loadCredentials": "Chargement des identifiants du noeud",
+ "inputs": {
+ "input": "entrée",
+ "select": "sélection",
+ "checkbox": "case à cocher",
+ "spinner": "spinner",
+ "none": "aucune",
+ "hidden": "masquer la propriété"
+ },
+ "types": {
+ "str": "chaîne de caractères",
+ "num": "nombre",
+ "bool": "booléen",
+ "json": "JSON",
+ "bin": "tampon",
+ "env": "variable d'environnement",
+ "cred": "identifiant"
+ },
+ "menu": {
+ "input": "entrée",
+ "select": "sélection",
+ "checkbox": "case à cocher",
+ "spinner": "spinner",
+ "hidden": "étiquette seulement"
+ },
+ "select": {
+ "label": "Etiquette",
+ "value": "Valeur"
+ },
+ "spinner": {
+ "min": "Minimum",
+ "max": "Maximum"
+ },
+ "errors": {
+ "scopeChange": "La modification de la portée la rendra indisponible pour les noeuds d'autres flux qui l'utilisent",
+ "invalidProperties": "Propriétés invalides :",
+ "credentialLoadFailed": "Échec du chargement des identifiants du noeud"
+ }
+ },
+ "keyboard": {
+ "title": "Raccourcis clavier",
+ "keyboard": "Clavier",
+ "filterActions": "actions de filtrage",
+ "shortcut": "raccourci",
+ "scope": "portée",
+ "unassigned": "Non attribué",
+ "global": "global",
+ "workspace": "espace de travail",
+ "selectAll": "Tout sélectionner",
+ "selectNone": "Ne rien sélectionner",
+ "selectAllConnected": "Sélectionner tous les connectés",
+ "addRemoveNode": "Ajouter/supprimer un noeud de la sélection",
+ "editSelected": "Modifier le noeud sélectionné",
+ "deleteSelected": "Supprimer les noeuds ou le lien sélectionné(s)",
+ "importNode": "Importer les noeuds",
+ "exportNode": "Exporter les noeuds",
+ "nudgeNode": "Déplacer les noeuds sélectionnés (1px)",
+ "moveNode": "Déplacer les noeuds sélectionnés (20px)",
+ "toggleSidebar": "Basculer la barre latérale",
+ "togglePalette": "Basculer la palette",
+ "copyNode": "Copier les noeuds sélectionnés",
+ "cutNode": "Couper les noeuds sélectionnés",
+ "pasteNode": "Coller les noeuds",
+ "copyGroupStyle": "Copier le style de groupe",
+ "pasteGroupStyle": "Coller le style de groupe",
+ "undoChange": "Annuler",
+ "redoChange": "Refaire",
+ "searchBox": "Ouvrir le champ de recherche",
+ "managePalette": "Gérer la palette",
+ "actionList": "Liste d'action",
+ "splitWireWithLinks": "Ajouter des liens entre les noeuds de la sélection"
+ },
+ "library": {
+ "library": "Bibliothèque",
+ "openLibrary": "Ouvrir la bibliothèque...",
+ "saveToLibrary": "Enregistrer dans la bibliothèque...",
+ "typeLibrary": "__type__ bibliothèque",
+ "unnamedType": "Innomé __type__",
+ "exportedToLibrary": "noeuds exportés vers la bibliothèque",
+ "dialogSaveOverwrite": "Une __libraryType__ appelée __libraryName__ existe déjà. Écraser ?",
+ "invalidFilename": "Nom de fichier non valide",
+ "savedNodes": "noeuds enregistrés",
+ "savedType": "__type__ enregistré",
+ "saveFailed": "Échec de la sauvegarde : __message__",
+ "newFolder": "Nouveau dossier",
+ "types": {
+ "local": "Local",
+ "examples": "Exemples"
+ }
+ },
+ "palette": {
+ "noInfo": "Pas d'information disponible",
+ "filter": "filtrer les noeuds",
+ "search": "rechercher les modules",
+ "addCategory": "Ajouter un nouveau...",
+ "label": {
+ "subflows": "sous-flux",
+ "network": "réseau",
+ "common": "commun",
+ "input": "entrée",
+ "output": "sortie",
+ "function": "fonction",
+ "sequence": "séquence",
+ "parser": "analyseur",
+ "social": "social",
+ "storage": "stockage",
+ "analysis": "analyse",
+ "advanced": "avancé"
+ },
+ "actions": {
+ "collapse-all": "Réduire toutes les catégories",
+ "expand-all": "Développer toutes les catégories"
+ },
+ "event": {
+ "nodeAdded": "Noeud ajouté à la palette :",
+ "nodeAdded_plural": "noeuds ajoutés à la palette :",
+ "nodeRemoved": "Noeud supprimé de la palette :",
+ "nodeRemoved_plural": "Noeuds supprimés de la palette :",
+ "nodeEnabled": "noeud activé :",
+ "nodeEnabled_plural": "noeuds activés :",
+ "nodeDisabled": "noeud désactivé :",
+ "nodeDisabled_plural": "noeuds désactivés :",
+ "nodeUpgraded": "Les noeuds du module __module__ ont été mis à jour vers la version __version__",
+ "unknownNodeRegistered": "Erreur lors du chargement du noeud : - __type__
__error__
"
+ },
+ "editor": {
+ "title": "Gérer la palette",
+ "palette": "Palette",
+ "times": {
+ "seconds": "il y'a quelques secondes",
+ "minutes": "il y'a quelques minutes",
+ "minutesV": "il y'a __count__ minutes",
+ "hoursV": "il y'a __count__ heure",
+ "hoursV_plural": "il y'a __count__ heures",
+ "daysV": "il y'a __count__ jour",
+ "daysV_plural": "il y'a __count__ jours",
+ "weeksV": "il y'a __count__ semaine",
+ "weeksV_plural": "il y'a __count__ semaines",
+ "monthsV": "il y'a __count__ mois",
+ "monthsV_plural": "il y'a __count__ mois",
+ "yearsV": "il y'a __count__ an",
+ "yearsV_plural": "il y'a __count__ ans",
+ "yearMonthsV": "il y'a __y__ an, __count__ mois",
+ "yearMonthsV_plural": "il y'a __y__ an, __count__ mois",
+ "yearsMonthsV": "il y'a __y__ ans, __count__ mois",
+ "yearsMonthsV_plural": "il y'a __y__ ans, __count__ mois"
+ },
+ "nodeCount": "__label__ noeud",
+ "nodeCount_plural": "__label__ noeuds",
+ "moduleCount": "__count__ module disponible",
+ "moduleCount_plural": "__count__ modules disponibles",
+ "inuse": "en cours d'utilisation",
+ "enableall": "activer tout",
+ "disableall": "désactiver tout",
+ "enable": "activer",
+ "disable": "désactiver",
+ "remove": "supprimer",
+ "update": "mettre à jour vers __version__",
+ "updated": "mise à jour",
+ "install": "installer",
+ "installed": "installé",
+ "conflict": "conflit",
+ "conflictTip": "Ce module ne peut pas être installé car il inclut un
type de noeud qui a déjà été installé
Conflits avec __module__
",
+ "loading": "Chargement des catalogues...",
+ "tab-nodes": "Noeuds",
+ "tab-install": "Installer",
+ "sort": "trier:",
+ "sortAZ": "a-z",
+ "sortRecent": "récent",
+ "more": "+ __count__ en plus",
+ "upload": "Charger le fichier tgz du module",
+ "refresh": "Actualiser la liste des modules",
+ "errors": {
+ "catalogLoadFailed": "Échec du chargement du catalogue de noeuds.
Vérifiez la console du navigateur pour plus d'informations
",
+ "installFailed": "Échec lors de l'installation : __module__
__message__
Consultez le journal pour plus d'informations
",
+ "removeFailed": "Échec lors de la suppression : __module__
__message__
Consultez le journal pour plus d'informations
",
+ "updateFailed": "Échec lors de la mise à jour : __module__
__message__
Consultez le journal pour plus d'informations
",
+ "enableFailed": "Échec lors de l'activation : __module__
__message__
Consultez le journal pour plus d'informations
",
+ "disableFailed": "Échec lors de la désactivation : __module__
__message__
Consultez le journal pour plus d'informations
"
+ },
+ "confirm": {
+ "install": {
+ "body": "Installation de '__module__'
Avant l'installation, veuillez lire la documentation du noeud. Certains noeuds ont des dépendances qui ne peuvent pas être résolues automatiquement et peuvent nécessiter un redémarrage de Node-RED.
",
+ "title": "Installer les noeuds"
+ },
+ "remove": {
+ "body": "Suppression de '__module__'
La suppression du noeud le désinstallera de Node-RED. Le noeud peut continuer à utiliser des ressources jusqu'au redémarrage de Node-RED.
",
+ "title": "Supprimer les noeuds"
+ },
+ "update": {
+ "body": "Mise à jour de '__module__'
La mise à jour du noeud nécessitera un redémarrage de Node-RED pour terminer la mise à jour. Cela doit être fait manuellement.
",
+ "title": "Mettre à jour les noeuds"
+ },
+ "cannotUpdate": {
+ "body": "Une mise à jour pour ce noeud est disponible, mais il n'est pas installé dans un emplacement que le gestionnaire de palette peut mettre à jour.
Veuillez vous référer à la documentation pour savoir comment mettre à jour ce noeud."
+ },
+ "button": {
+ "review": "Ouvrir les informations sur ce noeud",
+ "install": "Installer",
+ "remove": "Supprimer",
+ "update": "Mettre à jour"
+ }
+ }
+ }
+ },
+ "sidebar": {
+ "info": {
+ "name": "Information",
+ "tabName": "Nom",
+ "label": "info",
+ "node": "Noeud",
+ "type": "Type",
+ "group": "Groupe",
+ "module": "Module",
+ "id": "ID",
+ "status": "Statut",
+ "enabled": "Activé",
+ "disabled": "Désactivé",
+ "subflow": "Sous-flux",
+ "instances": "Instances",
+ "properties": "Propriétés",
+ "info": "Information",
+ "desc": "Description",
+ "blank": "vide",
+ "null": "nul",
+ "showMore": "afficher en plus",
+ "showLess": "afficher en moins",
+ "flow": "Flux",
+ "selection": "Selection",
+ "nodes": "__count__ noeuds",
+ "flowDesc": "Description du flux",
+ "subflowDesc": "Description du sous-flux",
+ "nodeHelp": "Aide sur les noeuds",
+ "none": "Aucun",
+ "arrayItems": "__count__ éléments",
+ "showTips": "Vous pouvez ouvrir les astuces à partir du panneau des paramètres",
+ "outline": "Plan",
+ "empty": "vide",
+ "globalConfig": "noeuds de configuration globale",
+ "triggerAction": "Déclencher une action",
+ "find": "Rechercher dans l'espace de travail"
+ },
+ "help": {
+ "name": "Aide",
+ "label": "aide",
+ "search": "Aide à la recherche",
+ "nodeHelp": "Aide sur les noeuds",
+ "showHelp": "Afficher l'aide",
+ "showInOutline": "Afficher dans les grandes lignes",
+ "showTopics": "Afficher les sujets",
+ "noHelp": "Aucune rubrique d'aide sélectionnée",
+ "changeLog": "Journal des modifications"
+ },
+ "config": {
+ "name": "noeuds de configuration",
+ "label": "configuration",
+ "global": "Sur tous les flux",
+ "none": "aucun",
+ "subflows": "sous-flux",
+ "flows": "flux",
+ "filterAll": "tout",
+ "showAllConfigNodes": "Afficher tous les noeuds de configuration",
+ "filterUnused": "inutilisé",
+ "showAllUnusedConfigNodes": "Afficher tous les noeuds de configuration inutilisés",
+ "filtered": "__count__ caché(s)"
+ },
+ "context": {
+ "name": "Données contextuelles",
+ "label": "contexte",
+ "none": "aucune sélection",
+ "refresh": "actualiser pour charger",
+ "empty": "vide",
+ "node": "Noeud",
+ "flow": "Flux",
+ "global": "Global",
+ "deleteConfirm": "Êtes-vous sûr de vouloir supprimer cet élément ?",
+ "autoRefresh": "Rafraîchir si la sélection change",
+ "refrsh": "Rafraîchir",
+ "delete": "Supprimer"
+ },
+ "palette": {
+ "name": "Gestion des palettes",
+ "label": "palette"
+ },
+ "project": {
+ "label": "projet",
+ "name": "Projet",
+ "description": "Description",
+ "dependencies": "Dependencies",
+ "settings": "Paramètres",
+ "noSummaryAvailable": "Aucun résumé disponible",
+ "editDescription": "Modifier la description du projet",
+ "editDependencies": "Modifier les dépendances du projet",
+ "noDescriptionAvailable": "Pas de description disponible",
+ "editReadme": "Modifier le fichier README.md",
+ "showProjectSettings": "Afficher les paramètres du projet",
+ "projectSettings": {
+ "title": "Paramètres du projet",
+ "edit": "modifier",
+ "none": "Vide",
+ "install": "installer",
+ "removeFromProject": "supprimer du projet",
+ "addToProject": "ajouter au projet",
+ "files": "Fichiers",
+ "flow": "Flux",
+ "credentials": "Identifiants",
+ "package": "Paquets",
+ "packageCreate": "Le fichier sera créé lorsque les modifications seront enregistrées",
+ "fileNotExist": "Le fichier n'existe pas",
+ "selectFile": "Choisir le dossier",
+ "invalidEncryptionKey": "Clé de chiffrement invalide",
+ "encryptionEnabled": "Chiffrement activé",
+ "encryptionDisabled": "Chiffrement désactivé",
+ "setTheEncryptionKey": "Définir la clé de chiffrement",
+ "resetTheEncryptionKey": "Réinitialiser la clé de chiffrement",
+ "changeTheEncryptionKey": "Changer la clé de chiffrement",
+ "currentKey": "Clé actuelle",
+ "newKey": "Nouvelle clé",
+ "credentialsAlert": "Cela supprimera tous les identifiants existants",
+ "versionControl": "Contrôle de version",
+ "branches": "Branches",
+ "noBranches": "Pas de branche",
+ "deleteConfirm": "Êtes-vous sûr de vouloir supprimer la branche locale '__name__' ? Ça ne peut pas être annulé.",
+ "unmergedConfirm": "La branche locale '__name__' contient des modifications non fusionnées qui seront perdues. Etes-vous sûr de vouloir la supprimer?",
+ "deleteUnmergedBranch": "Supprimer la branche non fusionnée",
+ "gitRemotes": "Git distant",
+ "addRemote": "Ajout distant",
+ "addRemote2": "Ajout distant",
+ "remoteName": "Nom distant",
+ "nameRule": "Doit contenir uniquement A-Z 0-9 _ -",
+ "url": "URL",
+ "urlRule": "https://, ssh:// or file://",
+ "urlRule2": "N'incluez pas le nom d'utilisateur/mot de passe dans l'URL",
+ "noRemotes": "Pas distant",
+ "deleteRemoteConfrim": "Êtes-vous sûr de vouloir supprimer '__name__' distant ?",
+ "deleteRemote": "Supprimer distant"
+ },
+ "userSettings": {
+ "committerDetail": "Détails de l'auteur de l'engagement (commit)",
+ "committerTip": "Laisser vide pour utiliser la valeur par défaut du système",
+ "userName": "Nom d'utilisateur",
+ "email": "Email",
+ "workflow": "Flux de travail",
+ "workfowTip": "Choisissez votre flux de travail git préféré",
+ "workflowManual": "Manuel",
+ "workflowManualTip": "Toutes les modifications doivent être validées manuellement dans la barre latérale 'historique'",
+ "workflowAuto": "Automatique",
+ "workflowAutoTip": "Les modifications sont validées automatiquement à chaque déploiement",
+ "sshKeys": "Clés SSH",
+ "sshKeysTip": "Vous permet de créer des connexions sécurisées aux référentiels git distants.",
+ "add": "ajouter une clé",
+ "addSshKey": "Ajouter une clé SSH",
+ "addSshKeyTip": "Générer une nouvelle paire de clés publique/privée",
+ "name": "Nom",
+ "nameRule": "Doit contenir uniquement A-Z 0-9 _ -",
+ "passphrase": "Phrase de passe",
+ "passphraseShort": "Phrase de passe trop court",
+ "optional": "Facultatif",
+ "cancel": "Annuler",
+ "generate": "Générer une clé",
+ "noSshKeys": "Pas de clé SSH",
+ "copyPublicKey": "Copier la clé publique dans le presse-papiers",
+ "delete": "Supprimer une clé",
+ "gitConfig": "Git config",
+ "deleteConfirm": "Êtes-vous sûr de vouloir supprimer la clé SSH __nom__ ? Ça ne peut pas être annulé."
+ },
+ "versionControl": {
+ "unstagedChanges": "Changement pas mis en place",
+ "stagedChanges": "Changement mis en place",
+ "unstageChange": "Ne pas mettre en place le changement",
+ "stageChange": "Mettre en place le changement",
+ "unstageAllChange": "Ne pas mettre en place tous les changements",
+ "stageAllChange": "Mettre en place tous les changements",
+ "commitChanges": "Commit changes",
+ "resolveConflicts": "Resolve conflicts",
+ "head": "HEAD",
+ "staged": "Mis en place",
+ "unstaged": "Pas mis en place",
+ "local": "Local",
+ "remote": "Distant",
+ "revert": "Voulez-vous vraiment annuler les modifications apportées à '__file__' ? Ça ne peut pas être annulé.",
+ "revertChanges": "Rétablir les changements",
+ "localChanges": "Modifications locales",
+ "none": "Vide",
+ "conflictResolve": "Tous les conflits ont été résolus. Valider les modifications pour terminer la fusion.",
+ "localFiles": "Fichiers locaux",
+ "all": "tout",
+ "unmergedChanges": "Modifications non fusionnées",
+ "abortMerge": "abandonner la fusion",
+ "commit": "commit",
+ "changeToCommit": "Modifications à valider",
+ "commitPlaceholder": "Entrez votre message de validation",
+ "cancelCapital": "Annuler",
+ "commitCapital": "Commit",
+ "commitHistory": "Historique des commits",
+ "branch": "Branche :",
+ "moreCommits": " plus de commit(s)",
+ "changeLocalBranch": "Changer de branche locale",
+ "createBranchPlaceholder": "Trouver ou créer une branche",
+ "upstream": "en amont",
+ "localOverwrite": "Vous avez des modifications locales qui seraient écrasées en changeant la branche. Vous devez d'abord valider ou annuler ces modifications.",
+ "manageRemoteBranch": "Gérer une branche distante",
+ "unableToAccess": "Impossible d'accéder au référentiel distant",
+ "retry": "Recommencer",
+ "setUpstreamBranch": "Définir comme branche en amont",
+ "createRemoteBranchPlaceholder": "Trouver ou créer une branche distante",
+ "trackedUpstreamBranch": "La branche créée sera définie comme la branche en amont suivie.",
+ "selectUpstreamBranch": "La branche sera créée. Sélectionner ci-dessous pour la définir comme branche en amont suivie.",
+ "pushFailed": "L'envoi a échoué car la branche a des commits plus récents. Tirer et fusionner d'abord, puis envoyer à nouveau.",
+ "push": "envoyer",
+ "pull": "tirer",
+ "unablePull": "Impossible d'extraire les modifications à distance ; vos modifications locales non mises en place seraient écrasées.
Valider vos modifications et réessayer.
",
+ "showUnstagedChanges": "Afficher les modifications non mise en place",
+ "connectionFailed": "Impossible de se connecter au référentiel distant: ",
+ "pullUnrelatedHistory": "Le réferentiel distant a un historique de validations sans rapport.
Êtes-vous sûr de vouloir extraire les modifications dans votre référentiel local ?
",
+ "pullChanges": "Tirer les changements",
+ "history": "historique",
+ "projectHistory": "Historique du projet",
+ "daysAgo": "il y'a __count__ jour",
+ "daysAgo_plural": "il y'a __count__ jours",
+ "hoursAgo": "il y'a __count__ heure",
+ "hoursAgo_plural": "il y'a __count__ heures",
+ "minsAgo": "il y'a __count__ minute",
+ "minsAgo_plural": "il y'a __count__ minutes",
+ "secondsAgo": "Il y a quelques instants",
+ "notTracking": "Votre branche locale ne suit pas actuellement une branche distante.",
+ "statusUnmergedChanged": "Votre référentiel contient des modifications non fusionnées. Vous devez résoudre les conflits et valider le résultat.",
+ "repositoryUpToDate": "Votre référentiel est à jour.",
+ "commitsAhead": "Votre référentiel a __count__ commit d'avance sur le distant. Vous pouvez pousser ce commit maintenant.",
+ "commitsAhead_plural": "Votre référentiel a __count__ commits d'avance sur le distant. Vous pouvez pousser ce commit maintenant.",
+ "commitsBehind": "Votre référentiel a __count__ commit de retard sur le distant. Vous pouvez pousser ce commit maintenant.",
+ "commitsBehind_plural": "Votre référentiel a __count__ commits de retard sur le distant. Vous pouvez pousser ce commit maintenant.",
+ "commitsAheadAndBehind1": "Votre référentiel a __count__ commit derrière et ",
+ "commitsAheadAndBehind1_plural": "YVotre référentiel est __count__ commits derrière et ",
+ "commitsAheadAndBehind2": "__count__ commit avant le distant. ",
+ "commitsAheadAndBehind2_plural": "__count__ commits avant le distant. ",
+ "commitsAheadAndBehind3": "Vous devez retirer le commit à distance avant de pousser.",
+ "commitsAheadAndBehind3_plural": "Vous devez retirer les commits à distance avant de pousser.",
+ "refreshCommitHistory": "Actualiser l'historique des commits",
+ "refreshChanges": "Actualiser les modifications"
+ }
+ }
+ },
+ "typedInput": {
+ "type": {
+ "str": "chaîne de caractères",
+ "num": "nombre",
+ "re": "expression régulière",
+ "bool": "booléen",
+ "json": "JSON",
+ "bin": "tampon",
+ "date": "horodatage",
+ "jsonata": "expression",
+ "env": "variable d'environnement",
+ "cred": "identifiant"
+ }
+ },
+ "editableList": {
+ "add": "ajouter",
+ "addTitle": "ajouter un élément"
+ },
+ "search": {
+ "history": "Historique des recherches",
+ "clear": "tout effacer",
+ "empty": "Aucun résultat",
+ "addNode": "ajouter un noeud...",
+ "options": {
+ "configNodes": "noeuds de configuration",
+ "unusedConfigNodes": "noeuds de configuration inutilisés",
+ "invalidNodes": "noeuds invalides",
+ "uknownNodes": "noeuds inconnus",
+ "unusedSubflows": "Sous-flux inutilisés",
+ "hiddenFlows": "Flux cachés",
+ "modifiedNodes": "noeuds et flux modifiés",
+ "thisFlow": "Flux courant"
+ }
+ },
+ "expressionEditor": {
+ "functions": "Fonctions",
+ "functionReference": "Fonction de réference",
+ "insert": "Insérer",
+ "title": "Éditeur d'expressions JSONata",
+ "test": "Test",
+ "data": "Exemple de message",
+ "result": "Resultat",
+ "format": "format",
+ "compatMode": "Mode de compatibilité activé",
+ "compatModeDesc": "Mode de compatibilité JSONata
L'expression actuelle semble toujours faire référence à msg
et sera donc évaluée en mode de compatibilité. Veuillez mettre à jour l'expression pour ne pas utiliser msg
car ce mode sera supprimé à l'avenir.
Lorsque la prise en charge de JSONata a été ajoutée pour la première fois à Node-RED, il fallait que l'expression référence le Objet msg
. Par exemple, msg.payload
serait utilisé pour accéder à la charge utile.
Cela n'est plus nécessaire car l'expression sera évaluée directement par rapport au message. Pour accéder à la charge utile, l'expression doit être simplement charge utile
.
",
+ "noMatch": "Aucun résultat correspondant",
+ "errors": {
+ "invalid-expr": "Expression JSONata non valide :\n __message__",
+ "invalid-msg": "Exemple de message JSON non valide :\n __message__",
+ "context-unsupported": "Impossible de tester les fonctions de contexte\n $flowContext ou $globalContext",
+ "env-unsupported": "Impossible de tester la fonction $env",
+ "moment-unsupported": "Impossible de tester la fonction $moment",
+ "clone-unsupported": "Impossible de tester la fonction $clone",
+ "eval": "Erreur lors de l'évaluation de l'expression :\n __message__"
+ }
+ },
+ "monaco": {
+ "setTheme": "Définir le thème"
+ },
+ "jsEditor": {
+ "title": "Éditeur JavaScript"
+ },
+ "textEditor": {
+ "title": "Éditeur de texte"
+ },
+ "jsonEditor": {
+ "title": "Éditeur JSON",
+ "format": "format JSON",
+ "rawMode": "Modifier JSON",
+ "uiMode": "Visualiser editor",
+ "rawMode-readonly": "JSON",
+ "uiMode-readonly": "Visualiser",
+ "insertAbove": "Insérer ci-dessus",
+ "insertBelow": "Insérer ci-dessous",
+ "addItem": "Ajouter un élément",
+ "copyPath": "Copier le chemin vers l'élément",
+ "expandItems": "Développer les éléments",
+ "collapseItems": "Réduire les éléments",
+ "duplicate": "Dupliquer",
+ "error": {
+ "invalidJSON": "JSON invalide : "
+ }
+ },
+ "markdownEditor": {
+ "title": "Éditeur Markdown",
+ "expand": "Développer",
+ "format": "Formaté avec Markdown",
+ "heading1": "Rubrique 1",
+ "heading2": "Rubrique 2",
+ "heading3": "Rubrique 3",
+ "bold": "Gras",
+ "italic": "Italic",
+ "code": "Code",
+ "ordered-list": "Liste ordonnée",
+ "unordered-list": "Liste non ordonnée",
+ "quote": "Citation",
+ "link": "Lien",
+ "horizontal-rule": "Règle horizontale",
+ "toggle-preview": "Basculer l'aperçu"
+ },
+ "bufferEditor": {
+ "title": "Éditeur de tampon",
+ "modeString": "Gérer comme une chaîne UTF-8",
+ "modeArray": "Gérer en tant que tableau JSON",
+ "modeDesc": "Éditeur de tampon
Le type de tampon est stocké sous la forme d'un tableau JSON de valeurs d'octets. L'éditeur tentera d'analyser la valeur saisie en tant que tableau JSON. S'il ne s'agit pas d'un JSON valide, il sera traité comme une chaîne UTF-8 et converti en un tableau de points de code de caractères individuels.
Par exemple, une valeur de Hello World
sera converti en tableau JSON :
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
"
+ },
+ "projects": {
+ "config-git": "Configurer le client Git",
+ "welcome": {
+ "hello": "Bonjour! Nous avons introduit des 'projets' dans Node-RED.",
+ "desc0": "Il s'agit d'une nouvelle façon pour vous de gérer vos fichiers de flux et inclut le contrôle de version de vos flux.",
+ "desc1": "Pour commencer, vous pouvez créer votre premier projet ou cloner un projet existant à partir d'un référentiel git.",
+ "desc2": "Si vous n'êtes pas sûr, vous pouvez ignorer ceci pour le moment. Vous pourrez toujours créer votre premier projet à partir du menu 'Projets' à tout moment.",
+ "create": "Créer un projet",
+ "clone": "Cloner un référentiel",
+ "openExistingProject": "Ouvrir un projet existant",
+ "not-right-now": "Pas maintenant"
+ },
+ "git-config": {
+ "setup": "Configurez votre version du contrôle de client",
+ "desc0": "Node-RED utilise l'outil open source Git pour le contrôle de version. Il suit les modifications apportées à vos fichiers de projet et vous permet de les transférer vers des référentiels distants.",
+ "desc1": "Lorsque vous validez un ensemble de modifications, Git enregistre l'auteur qui a effectué les modifications avec un nom d'utilisateur et une adresse e-mail. Le nom d'utilisateur peut être ce que vous voulez - il n'est pas nécessaire que ce soit votre vrai nom.",
+ "desc2": "Votre client Git est déjà configuré avec les détails ci-dessous.",
+ "desc3": "Vous pouvez modifier ces paramètres ultérieurement sous l'onglet 'Configuration Git' de la boîte de dialogue des paramètres.",
+ "username": "Nom d'utilisateur",
+ "email": "Email"
+ },
+ "project-details": {
+ "create": "Créez votre projet",
+ "desc0": "Un projet est maintenu en tant que référentiel Git. Il est beaucoup plus facile de partager vos flux et de collaborer avec les autres grâce à ce référentiel.",
+ "desc1": "Vous pouvez créer plusieurs projets et basculer rapidement entre eux depuis l'éditeur.",
+ "desc2": "Pour commencer, votre projet a besoin d'un nom et facultativement d'une description.",
+ "already-exists": "Le projet existe déjà",
+ "must-contain": "Doit contenir uniquement A-Z 0-9 _ -",
+ "project-name": "Nom du projet",
+ "desc": "Description",
+ "opt": "Facultatif"
+ },
+ "clone-project": {
+ "clone": "Cloner un projet",
+ "desc0": "Si vous avez déjà un dépôt git contenant un projet, vous pouvez le cloner pour commencer.",
+ "already-exists": "Le projet existe déjà",
+ "must-contain": "Doit contenir uniquement A-Z 0-9 _ -",
+ "project-name": "Nom du projet",
+ "no-info-in-url": "Ne pas inclure le nom d'utilisateur/mot de passe dans l'url",
+ "git-url": "URL du dépôt Git",
+ "protocols": "https://, ssh:// or file://",
+ "auth-failed": "L'Authentification a échouée",
+ "username": "Nom d'utilisateur",
+ "passwd": "Mot de passe",
+ "ssh-key": "Clé SSH",
+ "passphrase": "Phrase de passe",
+ "ssh-key-desc": "Avant de pouvoir cloner un référentiel avec ssh, vous devez ajouter une clé SSH pour y accéder.",
+ "ssh-key-add": "Ajouter une clé ssh",
+ "credential-key": "Clé de chiffrement des identifiants",
+ "cant-get-ssh-key": "Erreur! Impossible d'obtenir le chemin de clé SSH sélectionné.",
+ "already-exists2": "existe déjà",
+ "git-error": "erreur git",
+ "connection-failed": "La connexion a échoué",
+ "not-git-repo": "Ce n'est pas un dépôt git",
+ "repo-not-found": "Référentiel introuvable"
+ },
+ "default-files": {
+ "create": "Créez vos fichiers de projet",
+ "desc0": "Un projet contient vos fichiers de flux, un fichier README et un fichier package.json.",
+ "desc1": "Il peut contenir tous les autres fichiers que vous souhaitez conserver dans le référentiel Git.",
+ "desc2": "Vos fichiers de flux et identifiants existants seront copiés dans le projet.",
+ "flow-file": "Fichier de flux",
+ "credentials-file": "Fichier d'identifiants"
+ },
+ "encryption-config": {
+ "setup": "Configuration du chiffrage de votre fichier d'informations d'identification",
+ "desc0": "Votre fichier d'informations d'identification de flux peut être chiffré pour sécuriser son contenu.",
+ "desc1": "Si vous souhaitez stocker ces identifiants dans un référentiel Git public, vous devez les chiffrer en fournissant une phrase clé secrète.",
+ "desc2": "Votre fichier d'identifiants de flux n'est actuellement pas chiffré.",
+ "desc3": "Cela signifie que son contenu, tel que les mots de passe et les jetons d'accès, peut être lu par toute personne ayant accès au fichier..",
+ "desc4": "Si vous souhaitez stocker ces identifiants dans un référentiel Git public, vous devez les chiffrer en fournissant une phrase clé secrète..",
+ "desc5": "Votre fichier contenant les identifiants de flux est actuellement chiffré à l'aide de la propriété credentialSecret de votre fichier de paramètres comme clé.",
+ "desc6": "Votre fichier contenant les identifiants de flux est actuellement chiffré à l'aide d'une clé générée par le système. Vous devez fournir une nouvelle clé secrète pour ce projet.",
+ "desc7": "La clé sera stockée séparément de vos fichiers de projet. Vous devrez fournir la clé pour utiliser ce projet dans une autre instance de Node-RED.",
+ "credentials": "Identifiants",
+ "enable": "Activer le chiffrement",
+ "disable": "Désactiver le chiffrement",
+ "disabled": "désactivé",
+ "copy": "Copier sur la clé existante",
+ "use-custom": "Utiliser la clé personnalisée",
+ "desc8": "Le fichier contenant les identifiants ne sera pas crypté et son contenu sera facilement lu",
+ "create-project-files": "Créer des fichiers de projet",
+ "create-project": "Créer un projet",
+ "already-exists": "existe déjà",
+ "git-error": "erreur git",
+ "git-auth-error": "erreur d'authentification git"
+ },
+ "create-success": {
+ "success": "Vous avez créé avec succès votre premier projet !",
+ "desc0": "Vous pouvez maintenant continuer à utiliser Node-RED comme vous l'avez toujours fait.",
+ "desc1": "L'onglet 'info' dans la barre latérale vous montre quel est votre projet actif actuel. Le bouton à côté du nom peut être utilisé pour accéder à la vue des paramètres du projet.",
+ "desc2": "L'onglet 'historique' dans la barre latérale peut être utilisé pour afficher les fichiers qui ont changé dans votre projet et pour les valider. Il vous montre un historique complet de vos commits et vous permet de pousser vos modifications vers un référentiel distant."
+ },
+ "create": {
+ "projects": "Projets",
+ "already-exists": "Le projet existe déjà",
+ "must-contain": "Doit contenir uniquement A-Z 0-9 _ -",
+ "no-info-in-url": "Ne pas inclure le nom d'utilisateur/mot de passe dans l'url",
+ "open": "Projet ouvert",
+ "create": "Créer un projet",
+ "clone": "Cloner un référentiel",
+ "project-name": "Nom du projet",
+ "desc": "Description",
+ "opt": "Facultatif",
+ "flow-file": "Fichier de flux",
+ "credentials": "Identifiants",
+ "enable-encryption": "Activer le chiffrement",
+ "disable-encryption": "Désactiver le chiffrement",
+ "encryption-key": "Clé de chiffrement",
+ "desc0": "Une phrase pour sécuriser vos identifiants avec",
+ "desc1": "Le fichier contenant les identifiants ne sera pas crypté et son contenu sera facilement lu",
+ "git-url": "URL du dépôt Git",
+ "protocols": "https://, ssh:// or file://",
+ "auth-failed": "L'authentification a échouée",
+ "username": "Nom d'utilisateur",
+ "password": "Mot de passe",
+ "ssh-key": "Clé SSH",
+ "passphrase": "Phrase de passe",
+ "desc2": "Avant de pouvoir cloner un référentiel sur ssh, vous devez ajouter une clé SSH pour y accéder.",
+ "add-ssh-key": "Ajouter une clé ssh",
+ "credentials-encryption-key": "Clé de chiffrement des identifiants",
+ "already-exists-2": "existe déjà",
+ "git-error": "erreur git",
+ "con-failed": "La connexion a échoué",
+ "not-git": "Ce n'est pas un dépôt git",
+ "no-resource": "Référentiel introuvable",
+ "cant-get-ssh-key-path": "Erreur! Impossible d'obtenir le chemin de clé SSH sélectionné.",
+ "unexpected_error": "erreur inattendue",
+ "clearContext": "Effacer le contexte lors du changement de projet"
+ },
+ "delete": {
+ "confirm": "Voulez-vous vraiment supprimer ce projet ?"
+ },
+ "create-project-list": {
+ "search": "rechercher vos projets",
+ "current": "actuel"
+ },
+ "require-clean": {
+ "confirm": "Vous avez des modifications non déployées qui seront perdues.
Voulez-vous continuer?
"
+ },
+ "send-req": {
+ "auth-req": "Authentification requise pour le référentiel",
+ "username": "Nom d'utilisateur",
+ "password": "Mot de passe",
+ "passphrase": "Phrase de passe",
+ "retry": "Recommencer",
+ "update-failed": "La mise à jour a échouée",
+ "unhandled": "Réponse d'erreur non gérée",
+ "host-key-verify-failed": "La vérification de la clé d'hôte a échoué.
La clé d'hôte du référentiel n'a pas pu être vérifiée. Veuillez mettre à jour votre fichier known_hosts
et réessayer.
"
+ },
+ "create-branch-list": {
+ "invalid": "Branche invalide",
+ "create": "Créer une branche",
+ "current": "actuel"
+ },
+ "create-default-file-set": {
+ "no-active": "Impossible de créer un ensemble de fichiers par défaut sans projet actif",
+ "no-empty": "Impossible de créer un ensemble de fichiers par défaut sur un projet non vide",
+ "git-error": "erreur git"
+ },
+ "errors": {
+ "no-username-email": "Votre client Git n'est pas configuré avec un nom d'utilisateur/e-mail.",
+ "unexpected": "une erreur inattendue est apparue",
+ "code": "code"
+ }
+ },
+ "editor-tab": {
+ "properties": "Propriétés",
+ "envProperties": "Variables d'environnement",
+ "module": "Propriétés des modules",
+ "description": "Description",
+ "appearance": "Apparance",
+ "preview": "Aperçu de l'interface utilisateur",
+ "defaultValue": "Valeur par défaut"
+ },
+ "tourGuide": {
+ "takeATour": "Faire un tour",
+ "start": "Commencé",
+ "next": "Suivant",
+ "welcomeTours": "Visite de bienvenue"
+ },
+ "diagnostics": {
+ "title": "Information système"
+ },
+ "languages": {
+ "de": "Allemand",
+ "en-US": "Anglais",
+ "fr": "Français",
+ "ja": "Japonais",
+ "ko": "Korean",
+ "ru": "Russe",
+ "zh-CN": "Chinois (Simplifié)",
+ "zh-TW": "Chinois (Traditionnel)"
+ },
+ "validator": {
+ "errors": {
+ "invalid-json": "Données JSON invalides : __error__",
+ "invalid-json-prop": "__prop__: données JSON invalides : __error__",
+ "invalid-prop": "Expression de propriété non valide",
+ "invalid-prop-prop": "__prop__: expression de propriété invalide",
+ "invalid-num": "Numéro invalide",
+ "invalid-num-prop": "__prop__: numéro invalide",
+ "invalid-regexp": "Modèle d'entrée non valide",
+ "invalid-regex-prop": "__prop__: modèle d'entrée non valide",
+ "missing-required-prop": "__prop__: valeur de la propriété manquante",
+ "invalid-config": "__prop__: noeud de configuration invalide",
+ "missing-config": "__prop__: noeud de configuration manquant",
+ "validation-error": "__prop__: erreur de validation: __node__, __id__: __error__"
+ }
+ },
+ "contextMenu": {
+ "insert": "Insérer",
+ "node": "Noeud",
+ "junction": "Jonction",
+ "linkNodes": "Liens entre les noeuds"
+ }
+}
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json b/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
new file mode 100755
index 000000000..9d7b54451
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
@@ -0,0 +1,23 @@
+{
+ "info": {
+ "tip0": "Vous pouvez supprimer les noeuds ou les liens sélectionnés avec {{core:delete-selection}}",
+ "tip1": "Rechercher des noeuds à l'aide de {{core:search}}",
+ "tip2": "{{core:toggle-sidebar}} basculera l'affichage de cette barre latérale",
+ "tip3": "Vous pouvez gérer votre palette de noeuds avec {{core:manage-palette}}",
+ "tip4": "Vos noeuds de configuration de flux sont répertoriés dans le panneau de la barre latérale. Ils sont accessibles depuis le menu ou avec {{core:show-config-tab}}",
+ "tip5": "Activez ou désactivez ces conseils à partir de l'option dans les paramètres",
+ "tip6": "Déplacez les noeuds sélectionnés à l'aide des touches [gauche] [haut] [bas] et [droite]. Maintenez [shift] pour les pousser plus loin",
+ "tip7": "Faire glisser un noeud sur un fil le raccordera au lien",
+ "tip8": "Exporter les noeuds sélectionnés, ou l'onglet actuel avec {{core:show-export-dialog}}",
+ "tip9": "Importez un flux en faisant glisser son JSON dans l'éditeur, ou avec {{core:show-import-dialog}}",
+ "tip10": "[majuscule] [clic] et faites glisser sur un port de noeud pour déplacer tous les fils attachés ou seulement celui sélectionné",
+ "tip11": "Affichez l'onglet Infos avec {{core:show-info-tab}} ou l'onglet Débogage avec {{core:show-debug-tab}}",
+ "tip12": "[ctrl] [clic] dans l'espace de travail pour ouvrir la boîte de dialogue d'ajout rapide",
+ "tip13": "Maintenez [ctrl] enfoncé lorsque vous [cliquez] sur un port de noeud pour activer le câblage rapide",
+ "tip14": "Maintenez [shift] enfoncé lorsque vous [cliquez] sur un noeud pour sélectionner également tous ses noeuds connectés",
+ "tip15": "Maintenez [ctrl] enfoncé lorsque vous [cliquez] sur un noeud pour l'ajouter ou le supprimer de la sélection actuelle",
+ "tip16": "Changez d'onglet de flux avec {{core:show-previous-tab}} et {{core:show-next-tab}}",
+ "tip17": "Vous pouvez confirmer vos modifications dans le panneau d'édition du noeud avec {{core:confirm-edit-tray}} ou les annuler avec {{core:cancel-edit-tray}}",
+ "tip18": "Appuyer sur {{core:edit-selected-node}} modifiera le premier noeud de la sélection actuelle"
+ }
+}
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
new file mode 100755
index 000000000..b24a898b7
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
@@ -0,0 +1,274 @@
+{
+ "$string": {
+ "args": "arg[, prettify]",
+ "desc": "Casts the `arg` parameter to a string using the following casting rules:\n\n - Strings are unchanged\n - Functions are converted to an empty string\n - Numeric infinity and NaN throw an error because they cannot be represented as a JSON number\n - All other values are converted to a JSON string using the `JSON.stringify` function. If `prettify` is true, then \"prettified\" JSON is produced. i.e One line per field and lines will be indented based on the field depth."
+ },
+ "$length": {
+ "args": "str",
+ "desc": "Returns the number of characters in the string `str`. An error is thrown if `str` is not a string."
+ },
+ "$substring": {
+ "args": "str, start[, length]",
+ "desc": "Returns a string containing the characters in the first parameter `str` starting at position `start` (zero-offset). If `length` is specified, then the substring will contain maximum `length` characters. If `start` is negative then it indicates the number of characters from the end of `str`."
+ },
+ "$substringBefore": {
+ "args": "str, chars",
+ "desc": "Returns the substring before the first occurrence of the character sequence `chars` in `str`. If `str` does not contain `chars`, then it returns `str`."
+ },
+ "$substringAfter": {
+ "args": "str, chars",
+ "desc": "Returns the substring after the first occurrence of the character sequence `chars` in `str`. If `str` does not contain `chars`, then it returns `str`."
+ },
+ "$uppercase": {
+ "args": "str",
+ "desc": "Returns a string with all the characters of `str` converted to uppercase."
+ },
+ "$lowercase": {
+ "args": "str",
+ "desc": "Returns a string with all the characters of `str` converted to lowercase."
+ },
+ "$trim": {
+ "args": "str",
+ "desc": "Normalizes and trims all whitespace characters in `str` by applying the following steps:\n\n - All tabs, carriage returns, and line feeds are replaced with spaces.\n- Contiguous sequences of spaces are reduced to a single space.\n- Trailing and leading spaces are removed.\n\n If `str` is not specified (i.e. this function is invoked with no arguments), then the context value is used as the value of `str`. An error is thrown if `str` is not a string."
+ },
+ "$contains": {
+ "args": "str, pattern",
+ "desc": "Returns `true` if `str` is matched by `pattern`, otherwise it returns `false`. If `str` is not specified (i.e. this function is invoked with one argument), then the context value is used as the value of `str`. The `pattern` parameter can either be a string or a regular expression."
+ },
+ "$split": {
+ "args": "str[, separator][, limit]",
+ "desc": "Splits the `str` parameter into an array of substrings. It is an error if `str` is not a string. The optional `separator` parameter specifies the characters within the `str` about which it should be split as either a string or regular expression. If `separator` is not specified, then the empty string is assumed, and `str` will be split into an array of single characters. It is an error if `separator` is not a string. The optional `limit` parameter is a number that specifies the maximum number of substrings to include in the resultant array. Any additional substrings are discarded. If `limit` is not specified, then `str` is fully split with no limit to the size of the resultant array. It is an error if `limit` is not a non-negative number."
+ },
+ "$join": {
+ "args": "array[, separator]",
+ "desc": "Joins an array of component strings into a single concatenated string with each component string separated by the optional `separator` parameter. It is an error if the input `array` contains an item which isn't a string. If `separator` is not specified, then it is assumed to be the empty string, i.e. no `separator` between the component strings. It is an error if `separator` is not a string."
+ },
+ "$match": {
+ "args": "str, pattern [, limit]",
+ "desc": "Applies the `str` string to the `pattern` regular expression and returns an array of objects, with each object containing information about each occurrence of a match within `str`."
+ },
+ "$replace": {
+ "args": "str, pattern, replacement [, limit]",
+ "desc": "Finds occurrences of `pattern` within `str` and replaces them with `replacement`.\n\nThe optional `limit` parameter is the maximum number of replacements."
+ },
+ "$now": {
+ "args": "$[picture [, timezone]]",
+ "desc": "Generates a timestamp in ISO 8601 compatible format and returns it as a string. If the optional picture and timezone parameters are supplied, then the current timestamp is formatted as described by the `$fromMillis()` function"
+ },
+ "$base64encode": {
+ "args": "string",
+ "desc": "Converts an ASCII string to a base 64 representation. Each character in the string is treated as a byte of binary data. This requires that all characters in the string are in the 0x00 to 0xFF range, which includes all characters in URI encoded strings. Unicode characters outside of that range are not supported."
+ },
+ "$base64decode": {
+ "args": "string",
+ "desc": "Converts base 64 encoded bytes to a string, using a UTF-8 Unicode codepage."
+ },
+ "$number": {
+ "args": "arg",
+ "desc": "Casts the `arg` parameter to a number using the following casting rules:\n\n - Numbers are unchanged\n - Strings that contain a sequence of characters that represent a legal JSON number are converted to that number\n - All other values cause an error to be thrown."
+ },
+ "$abs": {
+ "args": "number",
+ "desc": "Returns the absolute value of the `number` parameter."
+ },
+ "$floor": {
+ "args": "number",
+ "desc": "Returns the value of `number` rounded down to the nearest integer that is smaller or equal to `number`."
+ },
+ "$ceil": {
+ "args": "number",
+ "desc": "Returns the value of `number` rounded up to the nearest integer that is greater than or equal to `number`."
+ },
+ "$round": {
+ "args": "number [, precision]",
+ "desc": "Returns the value of the `number` parameter rounded to the number of decimal places specified by the optional `precision` parameter."
+ },
+ "$power": {
+ "args": "base, exponent",
+ "desc": "Returns the value of `base` raised to the power of `exponent`."
+ },
+ "$sqrt": {
+ "args": "number",
+ "desc": "Returns the square root of the value of the `number` parameter."
+ },
+ "$random": {
+ "args": "",
+ "desc": "Returns a pseudo random number greater than or equal to zero and less than one."
+ },
+ "$millis": {
+ "args": "",
+ "desc": "Returns the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. All invocations of `$millis()` within an evaluation of an expression will all return the same value."
+ },
+ "$sum": {
+ "args": "array",
+ "desc": "Returns the arithmetic sum of an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ },
+ "$max": {
+ "args": "array",
+ "desc": "Returns the maximum number in an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ },
+ "$min": {
+ "args": "array",
+ "desc": "Returns the minimum number in an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ },
+ "$average": {
+ "args": "array",
+ "desc": "Returns the mean value of an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ },
+ "$boolean": {
+ "args": "arg",
+ "desc": "Casts the argument to a Boolean using the following rules:\n\n - `Boolean` : unchanged\n - `string`: empty : `false`\n - `string`: non-empty : `true`\n - `number`: `0` : `false`\n - `number`: non-zero : `true`\n - `null` : `false`\n - `array`: empty : `false`\n - `array`: contains a member that casts to `true` : `true`\n - `array`: all members cast to `false` : `false`\n - `object`: empty : `false`\n - `object`: non-empty : `true`\n - `function` : `false`"
+ },
+ "$not": {
+ "args": "arg",
+ "desc": "Returns Boolean NOT on the argument. `arg` is first cast to a boolean"
+ },
+ "$exists": {
+ "args": "arg",
+ "desc": "Returns Boolean `true` if the `arg` expression evaluates to a value, or `false` if the expression does not match anything (e.g. a path to a non-existent field reference)."
+ },
+ "$count": {
+ "args": "array",
+ "desc": "Returns the number of items in the array"
+ },
+ "$append": {
+ "args": "array, array",
+ "desc": "Appends two arrays"
+ },
+ "$sort": {
+ "args": "array [, function]",
+ "desc": "Returns an array containing all the values in the `array` parameter, but sorted into order.\n\nIf a comparator `function` is supplied, then it must be a function that takes two parameters:\n\n`function(left, right)`\n\nThis function gets invoked by the sorting algorithm to compare two values left and right. If the value of left should be placed after the value of right in the desired sort order, then the function must return Boolean `true` to indicate a swap. Otherwise it must return `false`."
+ },
+ "$reverse": {
+ "args": "array",
+ "desc": "Returns an array containing all the values from the `array` parameter, but in reverse order."
+ },
+ "$shuffle": {
+ "args": "array",
+ "desc": "Returns an array containing all the values from the `array` parameter, but shuffled into random order."
+ },
+ "$zip": {
+ "args": "array, ...",
+ "desc": "Returns a convolved (zipped) array containing grouped arrays of values from the `array1` … `arrayN` arguments from index 0, 1, 2...."
+ },
+ "$keys": {
+ "args": "object",
+ "desc": "Returns an array containing the keys in the object. If the argument is an array of objects, then the array returned contains a de-duplicated list of all the keys in all of the objects."
+ },
+ "$lookup": {
+ "args": "object, key",
+ "desc": "Returns the value associated with key in object. If the first argument is an array of objects, then all of the objects in the array are searched, and the values associated with all occurrences of key are returned."
+ },
+ "$spread": {
+ "args": "object",
+ "desc": "Splits an object containing key/value pairs into an array of objects, each of which has a single key/value pair from the input object. If the parameter is an array of objects, then the resultant array contains an object for every key/value pair in every object in the supplied array."
+ },
+ "$merge": {
+ "args": "array<object>",
+ "desc": "Merges an array of `objects` into a single `object` containing all the key/value pairs from each of the objects in the input array. If any of the input objects contain the same key, then the returned `object` will contain the value of the last one in the array. It is an error if the input array contains an item that is not an object."
+ },
+ "$sift": {
+ "args": "object, function",
+ "desc": "Returns an object that contains only the key/value pairs from the `object` parameter that satisfy the predicate `function` passed in as the second parameter.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, key [, object]])`"
+ },
+ "$each": {
+ "args": "object, function",
+ "desc": "Returns an array containing the values return by the `function` when applied to each key/value pair in the `object`."
+ },
+ "$map": {
+ "args": "array, function",
+ "desc": "Returns an array containing the results of applying the `function` parameter to each value in the `array` parameter.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, index [, array]])`"
+ },
+ "$filter": {
+ "args": "array, function",
+ "desc": "Returns an array containing only the values in the `array` parameter that satisfy the `function` predicate.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, index [, array]])`"
+ },
+ "$reduce": {
+ "args": "array, function [, init]",
+ "desc": "Returns an aggregated value derived from applying the `function` parameter successively to each value in `array` in combination with the result of the previous application of the function.\n\nThe function must accept two arguments, and behaves like an infix operator between each value within the `array`. The signature of `function` must be of the form: `myfunc($accumulator, $value[, $index[, $array]])`\n\nThe optional `init` parameter is used as the initial value in the aggregation."
+ },
+ "$flowContext": {
+ "args": "string[, string]",
+ "desc": "Retrieves a flow context property.\n\nThis is a Node-RED defined function."
+ },
+ "$globalContext": {
+ "args": "string[, string]",
+ "desc": "Retrieves a global context property.\n\nThis is a Node-RED defined function."
+ },
+ "$pad": {
+ "args": "string, width [, char]",
+ "desc": "Returns a copy of the `string` with extra padding, if necessary, so that its total number of characters is at least the absolute value of the `width` parameter.\n\nIf `width` is a positive number, then the string is padded to the right; if negative, it is padded to the left.\n\nThe optional `char` argument specifies the padding character(s) to use. If not specified, it defaults to the space character."
+ },
+ "$fromMillis": {
+ "args": "number, [, picture [, timezone]]",
+ "desc": "Convert the `number` representing milliseconds since the Unix Epoch (1 January, 1970 UTC) to a formatted string representation of the timestamp as specified by the picture string.\n\nIf the optional `picture` parameter is omitted, then the timestamp is formatted in the ISO 8601 format.\n\nIf the optional `picture` string is supplied, then the timestamp is formatted occording to the representation specified in that string. The behaviour of this function is consistent with the two-argument version of the XPath/XQuery function `format-dateTime` as defined in the XPath F&O 3.1 specification. The picture string parameter defines how the timestamp is formatted and has the same syntax as `format-dateTime`.\n\nIf the optional `timezone` string is supplied, then the formatted timestamp will be in that timezone. The `timezone` string should be in the format '±HHMM', where ± is either the plus or minus sign and HHMM is the offset in hours and minutes from UTC. Positive offset for timezones east of UTC, negative offset for timezones west of UTC."
+ },
+ "$formatNumber": {
+ "args": "number, picture [, options]",
+ "desc": "Casts the `number` to a string and formats it to a decimal representation as specified by the `picture` string.\n\n The behaviour of this function is consistent with the XPath/XQuery function fn:format-number as defined in the XPath F&O 3.1 specification. The picture string parameter defines how the number is formatted and has the same syntax as fn:format-number.\n\nThe optional third argument `options` is used to override the default locale specific formatting characters such as the decimal separator. If supplied, this argument must be an object containing name/value pairs specified in the decimal format section of the XPath F&O 3.1 specification."
+ },
+ "$formatBase": {
+ "args": "number [, radix]",
+ "desc": "Casts the `number` to a string and formats it to an integer represented in the number base specified by the `radix` argument. If `radix` is not specified, then it defaults to base 10. `radix` can be between 2 and 36, otherwise an error is thrown."
+ },
+ "$toMillis": {
+ "args": "timestamp",
+ "desc": "Convert a `timestamp` string in the ISO 8601 format to the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. An error is thrown if the string is not in the correct format."
+ },
+ "$env": {
+ "args": "arg",
+ "desc": "Returns the value of an environment variable.\n\nThis is a Node-RED defined function."
+ },
+ "$eval": {
+ "args": "expr [, context]",
+ "desc": "Parses and evaluates the string `expr` which contains literal JSON or a JSONata expression using the current context as the context for evaluation."
+ },
+ "$formatInteger": {
+ "args": "number, picture",
+ "desc": "Casts the `number` to a string and formats it to an integer representation as specified by the `picture` string. The picture string parameter defines how the number is formatted and has the same syntax as `fn:format-integer` from the XPath F&O 3.1 specification."
+ },
+ "$parseInteger": {
+ "args": "string, picture",
+ "desc": "Parses the contents of the `string` parameter to an integer (as a JSON number) using the format specified by the `picture` string. The `picture` string parameter has the same format as `$formatInteger`."
+ },
+ "$error": {
+ "args": "[str]",
+ "desc": "Throws an error with a message. The optional `str` will replace the default message of `$error() function evaluated`"
+ },
+ "$assert": {
+ "args": "arg, str",
+ "desc": "If `arg` is true the function returns undefined. If `arg` is false an exception is thrown with `str` as the message of the exception."
+ },
+ "$single": {
+ "args": "array, function",
+ "desc": "Returns the one and only value in the `array` parameter that satisfies the `function` predicate (i.e. the `function` returns Boolean `true` when passed the value). Throws an exception if the number of matching values is not exactly one.\n\nThe function should be supplied in the following signature: `function(value [, index [, array]])` where value is each input of the array, index is the position of that value and the whole array is passed as the third argument"
+ },
+ "$encodeUrlComponent": {
+ "args": "str",
+ "desc": "Encodes a Uniform Resource Locator (URL) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character.\n\nExample: `$encodeUrlComponent(\"?x=test\")` => `\"%3Fx%3Dtest\"`"
+ },
+ "$encodeUrl": {
+ "args": "str",
+ "desc": "Encodes a Uniform Resource Locator (URL) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character. \n\nExample: `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\"`"
+ },
+ "$decodeUrlComponent": {
+ "args": "str",
+ "desc": "Decodes a Uniform Resource Locator (URL) component previously created by encodeUrlComponent. \n\nExample: `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`"
+ },
+ "$decodeUrl": {
+ "args": "str",
+ "desc": "Decodes a Uniform Resource Locator (URL) previously created by encodeUrl. \n\nExample: `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`"
+ },
+ "$distinct": {
+ "args": "array",
+ "desc": "Returns an array with duplicate values removed from `array`"
+ },
+ "$type": {
+ "args": "value",
+ "desc": "Returns the type of `value` as a string. If `value` is undefined, this will return `undefined`"
+ },
+ "$moment": {
+ "args": "[str]",
+ "desc": "Gets a date object using the Moment library."
+ }
+}
From 09979d3270a3c5613e44b1efc8c931e242291192 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Tue, 29 Nov 2022 00:10:04 +0100
Subject: [PATCH 043/178] Translation of the `jsonata.json` file
---
.../editor-client/locales/fr/jsonata.json | 136 +++++++++---------
1 file changed, 68 insertions(+), 68 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
index b24a898b7..efccd0693 100755
--- a/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
@@ -1,274 +1,274 @@
{
"$string": {
"args": "arg[, prettify]",
- "desc": "Casts the `arg` parameter to a string using the following casting rules:\n\n - Strings are unchanged\n - Functions are converted to an empty string\n - Numeric infinity and NaN throw an error because they cannot be represented as a JSON number\n - All other values are converted to a JSON string using the `JSON.stringify` function. If `prettify` is true, then \"prettified\" JSON is produced. i.e One line per field and lines will be indented based on the field depth."
+ "desc": "Convertit le paramètre `arg` en une chaîne de caractères en utilisant les règles de typage suivantes :\n\n - Les chaînes e caractères sont inchangées\n - Les fonctions sont converties en une chaîne vide\n - L'infini numérique et NaN renvoient une erreur car ils ne peuvent pas être représentés comme un Numéro JSON\n - Toutes les autres valeurs sont converties en une chaîne JSON à l'aide de la fonction `JSON.stringify`. Si `prettify` est vrai, alors le JSON \"prettified\" est produit. c'est-à-dire une ligne par champ et les lignes seront en retrait en fonction de la profondeur du champ."
},
"$length": {
"args": "str",
- "desc": "Returns the number of characters in the string `str`. An error is thrown if `str` is not a string."
+ "desc": "Renvoie le nombre de caractères dans la chaîne `str`. Une erreur est renvoyée si `str` n'est pas une chaîne de caractères."
},
"$substring": {
"args": "str, start[, length]",
- "desc": "Returns a string containing the characters in the first parameter `str` starting at position `start` (zero-offset). If `length` is specified, then the substring will contain maximum `length` characters. If `start` is negative then it indicates the number of characters from the end of `str`."
+ "desc": "Renvoie une chaîne contenant les caractères du premier paramètre `str` commençant à la position `start` (pas de décalage). Si `length` est spécifié, alors la sous-chaîne contiendra un maximum de caractères `length`. Si `start` est négatif alors il indique le nombre de caractères à partir de la fin de `str`."
},
"$substringBefore": {
"args": "str, chars",
- "desc": "Returns the substring before the first occurrence of the character sequence `chars` in `str`. If `str` does not contain `chars`, then it returns `str`."
+ "desc": "Renvoie la sous-chaîne avant la première occurrence de la séquence de caractères `chars` dans `str`. Si `str` ne contient pas `chars`, alors il renvoie `str`."
},
"$substringAfter": {
"args": "str, chars",
- "desc": "Returns the substring after the first occurrence of the character sequence `chars` in `str`. If `str` does not contain `chars`, then it returns `str`."
+ "desc": "Renvoie la sous-chaîne après la première occurrence de la séquence de caractères `chars` dans `str`. Si `str` ne contient pas `chars`, alors il renvoie `str`."
},
"$uppercase": {
"args": "str",
- "desc": "Returns a string with all the characters of `str` converted to uppercase."
+ "desc": "Renvoie une chaîne avec tous les caractères de `str` convertis en majuscules."
},
"$lowercase": {
"args": "str",
- "desc": "Returns a string with all the characters of `str` converted to lowercase."
+ "desc": "Renvoie une chaîne avec tous les caractères de `str` convertis en minuscules."
},
"$trim": {
"args": "str",
- "desc": "Normalizes and trims all whitespace characters in `str` by applying the following steps:\n\n - All tabs, carriage returns, and line feeds are replaced with spaces.\n- Contiguous sequences of spaces are reduced to a single space.\n- Trailing and leading spaces are removed.\n\n If `str` is not specified (i.e. this function is invoked with no arguments), then the context value is used as the value of `str`. An error is thrown if `str` is not a string."
+ "desc": "Normalise et supprime tous les caractères d'espacement dans `str` en appliquant les étapes suivantes :\n\n - Toutes les tabulations, retours à la ligne et sauts de ligne sont remplacés par des espaces.\n- Les séquences contiguës d'espaces sont réduites à un seul espace.\n- Les espaces de fin et de début sont supprimés.\n\n Si `str` n'est pas spécifié (c'est-à-dire que cette fonction est invoquée sans argument), alors la valeur de contexte est utilisée comme valeur de `str`. Une erreur est renvoyée si `str` n'est pas une chaîne."
},
"$contains": {
"args": "str, pattern",
- "desc": "Returns `true` if `str` is matched by `pattern`, otherwise it returns `false`. If `str` is not specified (i.e. this function is invoked with one argument), then the context value is used as the value of `str`. The `pattern` parameter can either be a string or a regular expression."
+ "desc": "Renvoie `true` si `str` correspond à `pattern`, sinon il renvoie `false`. Si `str` n'est pas spécifié (c'est-à-dire que cette fonction est invoquée avec un argument), alors la valeur de contexte est utilisée comme valeur de `str`. Le paramètre `pattern` peut être une chaîne ou une expression régulière."
},
"$split": {
"args": "str[, separator][, limit]",
- "desc": "Splits the `str` parameter into an array of substrings. It is an error if `str` is not a string. The optional `separator` parameter specifies the characters within the `str` about which it should be split as either a string or regular expression. If `separator` is not specified, then the empty string is assumed, and `str` will be split into an array of single characters. It is an error if `separator` is not a string. The optional `limit` parameter is a number that specifies the maximum number of substrings to include in the resultant array. Any additional substrings are discarded. If `limit` is not specified, then `str` is fully split with no limit to the size of the resultant array. It is an error if `limit` is not a non-negative number."
+ "desc": "Divise le paramètre `str` en un tableau de sous-chaînes. C'est une erreur si `str` n'est pas une chaîne. Le paramètre facultatif `separator` spécifie les caractères à l'intérieur de `str` à propos desquels il doit être divisé en chaîne ou en expression régulière. Si `separator` n'est pas spécifié, la chaîne vide est supposée et `str` sera divisé en un tableau de caractères uniques. C'est une erreur si `separator` n'est pas une chaîne. Le paramètre facultatif `limit` est un nombre qui spécifie le nombre maximum de sous-chaînes à inclure dans le tableau résultant. Toutes les sous-chaînes supplémentaires sont ignorées. Si `limit` n'est pas spécifié, alors `str` est entièrement divisé sans limite à la taille du tableau résultant. C'est une erreur si `limit` n'est pas un nombre non négatif."
},
"$join": {
"args": "array[, separator]",
- "desc": "Joins an array of component strings into a single concatenated string with each component string separated by the optional `separator` parameter. It is an error if the input `array` contains an item which isn't a string. If `separator` is not specified, then it is assumed to be the empty string, i.e. no `separator` between the component strings. It is an error if `separator` is not a string."
+ "desc": "Joint un tableau de chaînes de composants en une seule chaîne concaténée, chaque chaîne de composants étant séparée par le paramètre facultatif `separator`. C'est une erreur si l'entrée `array` contient un élément qui n'est pas une chaîne. Si `séparateur` n'est pas spécifié, il est supposé être la chaîne vide, c'est-à-dire qu'il n'y a pas de `séparateur` entre les chaînes de composants. C'est une erreur si `separator` n'est pas une chaîne."
},
"$match": {
"args": "str, pattern [, limit]",
- "desc": "Applies the `str` string to the `pattern` regular expression and returns an array of objects, with each object containing information about each occurrence of a match within `str`."
+ "desc": "Applique la chaîne `str` à l'expression régulière `pattern` et renvoie un tableau d'objets, chaque objet contenant des informations sur chaque occurrence d'une correspondance dans `str`."
},
"$replace": {
"args": "str, pattern, replacement [, limit]",
- "desc": "Finds occurrences of `pattern` within `str` and replaces them with `replacement`.\n\nThe optional `limit` parameter is the maximum number of replacements."
+ "desc": "Trouve les occurrences de `pattern` dans `str` et les remplace par `replacement`.\n\nLe paramètre facultatif `limit` est le nombre maximum de remplacements."
},
"$now": {
"args": "$[picture [, timezone]]",
- "desc": "Generates a timestamp in ISO 8601 compatible format and returns it as a string. If the optional picture and timezone parameters are supplied, then the current timestamp is formatted as described by the `$fromMillis()` function"
+ "desc": "Génère un horodatage au format compatible ISO 8601 et le renvoie sous forme de chaîne. Si les paramètres optionnels d'image et de fuseau horaire sont fournis, alors l'horodatage actuel est formaté comme décrit par la fonction `$fromMillis()`"
},
"$base64encode": {
"args": "string",
- "desc": "Converts an ASCII string to a base 64 representation. Each character in the string is treated as a byte of binary data. This requires that all characters in the string are in the 0x00 to 0xFF range, which includes all characters in URI encoded strings. Unicode characters outside of that range are not supported."
+ "desc": "Convertit une chaîne ASCII en une représentation en base 64. Chaque caractère de la chaîne est traité comme un octet de données binaires. Cela nécessite que tous les caractères de la chaîne se trouvent dans la plage 0x00 à 0xFF, qui inclut tous les caractères des chaînes encodées en URI. Les caractères Unicode en dehors de cette plage ne sont pas pris en charge."
},
"$base64decode": {
"args": "string",
- "desc": "Converts base 64 encoded bytes to a string, using a UTF-8 Unicode codepage."
+ "desc": "Convertit les octets encodés en base 64 en une chaîne, à l'aide d'une page de codes Unicode UTF-8."
},
"$number": {
"args": "arg",
- "desc": "Casts the `arg` parameter to a number using the following casting rules:\n\n - Numbers are unchanged\n - Strings that contain a sequence of characters that represent a legal JSON number are converted to that number\n - All other values cause an error to be thrown."
+ "desc": "Convertit le paramètre `arg` en un nombre en utilisant les règles de conversion suivantes :\n\n - Les nombres sont inchangés\n - Les chaînes qui contiennent une séquence de caractères représentant un nombre JSON légal sont converties en ce nombre\n - Toutes les autres valeurs provoquer l'envoi d'une erreur."
},
"$abs": {
"args": "number",
- "desc": "Returns the absolute value of the `number` parameter."
+ "desc": "Renvoie la valeur absolue du paramètre `nombre`."
},
"$floor": {
"args": "number",
- "desc": "Returns the value of `number` rounded down to the nearest integer that is smaller or equal to `number`."
+ "desc": "Renvoie la valeur de `number` arrondie à l'entier le plus proche inférieur ou égal à `number`."
},
"$ceil": {
"args": "number",
- "desc": "Returns the value of `number` rounded up to the nearest integer that is greater than or equal to `number`."
+ "desc": "Renvoie la valeur de `number` arrondie à l'entier le plus proche supérieur ou égal à `number`."
},
"$round": {
"args": "number [, precision]",
- "desc": "Returns the value of the `number` parameter rounded to the number of decimal places specified by the optional `precision` parameter."
+ "desc": "Renvoie la valeur du paramètre `number` arrondie au nombre de décimales spécifié par le paramètre facultatif `precision`."
},
"$power": {
"args": "base, exponent",
- "desc": "Returns the value of `base` raised to the power of `exponent`."
+ "desc": "Renvoie la valeur de `base` élevée à la puissance de `exponent`."
},
"$sqrt": {
"args": "number",
- "desc": "Returns the square root of the value of the `number` parameter."
+ "desc": "Renvoie la racine carrée de la valeur du paramètre `number`."
},
"$random": {
"args": "",
- "desc": "Returns a pseudo random number greater than or equal to zero and less than one."
+ "desc": "Renvoie un nombre pseudo-aléatoire supérieur ou égal à zéro et inférieur à un."
},
"$millis": {
"args": "",
- "desc": "Returns the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. All invocations of `$millis()` within an evaluation of an expression will all return the same value."
+ "desc": "Renvoie le nombre de millisecondes depuis l'époque Unix (1er janvier 1970 UTC) sous forme de nombre. Toutes les invocations de `$millis()` dans une évaluation d'une expression renverront toutes la même valeur."
},
"$sum": {
"args": "array",
- "desc": "Returns the arithmetic sum of an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ "desc": "Renvoie la somme arithmétique d'un `tableau` de nombres. C'est une erreur si l'entrée `array` contient un élément qui n'est pas un nombre."
},
"$max": {
"args": "array",
- "desc": "Returns the maximum number in an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ "desc": "Renvoie le nombre maximal dans un `tableau` de nombres. C'est une erreur si l'entrée `array` contient un élément qui n'est pas un nombre."
},
"$min": {
"args": "array",
- "desc": "Returns the minimum number in an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ "desc": "Renvoie le nombre minimum dans un `tableau` de nombres. C'est une erreur si l'entrée `array` contient un élément qui n'est pas un nombre."
},
"$average": {
"args": "array",
- "desc": "Returns the mean value of an `array` of numbers. It is an error if the input `array` contains an item which isn't a number."
+ "desc": "Renvoie la valeur moyenne d'un `tableau` de nombres. C'est une erreur si l'entrée `array` contient un élément qui n'est pas un nombre."
},
"$boolean": {
"args": "arg",
- "desc": "Casts the argument to a Boolean using the following rules:\n\n - `Boolean` : unchanged\n - `string`: empty : `false`\n - `string`: non-empty : `true`\n - `number`: `0` : `false`\n - `number`: non-zero : `true`\n - `null` : `false`\n - `array`: empty : `false`\n - `array`: contains a member that casts to `true` : `true`\n - `array`: all members cast to `false` : `false`\n - `object`: empty : `false`\n - `object`: non-empty : `true`\n - `function` : `false`"
+ "desc": "Transforme l'argument en booléen en utilisant les règles suivantes :\n\n - `Boolean` : inchangé\n - `string` : vide : `false`\n - `string` : non vide : `true`\n - `number` : `0` : `false`\n - `number` : non nul : `true`\n - `null` : `false`\n - `array` : vide : `false`\n - `array` : contient un membre qui convertit en `true` : `true`\n - `array` : tous les membres transtypent en `false` : `false`\n - `object` : vide : `false`\n - `object` : non vide : `true`\n - `function` : `false`"
},
"$not": {
"args": "arg",
- "desc": "Returns Boolean NOT on the argument. `arg` is first cast to a boolean"
+ "desc": "Renvoie le booléen PAS sur l'argument. `arg` est d'abord converti en booléen"
},
"$exists": {
"args": "arg",
- "desc": "Returns Boolean `true` if the `arg` expression evaluates to a value, or `false` if the expression does not match anything (e.g. a path to a non-existent field reference)."
+ "desc": "Renvoie la valeur booléenne `true` si l'expression `arg` est évaluée à une valeur, ou `false` si l'expression ne correspond à rien (par exemple, un chemin vers une référence de champ inexistante)."
},
"$count": {
"args": "array",
- "desc": "Returns the number of items in the array"
+ "desc": "Renvoie le nombre d'éléments du tableau"
},
"$append": {
"args": "array, array",
- "desc": "Appends two arrays"
+ "desc": "Ajoute deux tableaux"
},
"$sort": {
"args": "array [, function]",
- "desc": "Returns an array containing all the values in the `array` parameter, but sorted into order.\n\nIf a comparator `function` is supplied, then it must be a function that takes two parameters:\n\n`function(left, right)`\n\nThis function gets invoked by the sorting algorithm to compare two values left and right. If the value of left should be placed after the value of right in the desired sort order, then the function must return Boolean `true` to indicate a swap. Otherwise it must return `false`."
+ "desc": "Renvoie un tableau contenant toutes les valeurs du paramètre `array`, mais triées dans l'ordre.\n\nSi un comparateur `function` est fourni, alors il doit s'agir d'une fonction qui prend deux paramètres :\n\n`function(left , droite)`\n\nCette fonction est invoquée par l'algorithme de tri pour comparer deux valeurs à gauche et à droite. Si la valeur de left doit être placée après la valeur de right dans l'ordre de tri souhaité, la fonction doit renvoyer un booléen `true` pour indiquer un échange. Sinon, il doit renvoyer `false`."
},
"$reverse": {
"args": "array",
- "desc": "Returns an array containing all the values from the `array` parameter, but in reverse order."
+ "desc": "Renvoie un tableau contenant toutes les valeurs du paramètre `array`, mais dans l'ordre inverse."
},
"$shuffle": {
"args": "array",
- "desc": "Returns an array containing all the values from the `array` parameter, but shuffled into random order."
+ "desc": "Renvoie un tableau contenant toutes les valeurs du paramètre `array`, mais mélangées dans un ordre aléatoire."
},
"$zip": {
"args": "array, ...",
- "desc": "Returns a convolved (zipped) array containing grouped arrays of values from the `array1` … `arrayN` arguments from index 0, 1, 2...."
+ "desc": "Renvoie un tableau convolué (zippé) contenant des tableaux groupés de valeurs des arguments `array1`...`arrayN` d'index 0, 1, 2...."
},
"$keys": {
"args": "object",
- "desc": "Returns an array containing the keys in the object. If the argument is an array of objects, then the array returned contains a de-duplicated list of all the keys in all of the objects."
+ "desc": "Renvoie un tableau contenant les clés de l'objet. Si l'argument est un tableau d'objets, le tableau renvoyé contient une liste dédupliquée de toutes les clés de tous les objets."
},
"$lookup": {
"args": "object, key",
- "desc": "Returns the value associated with key in object. If the first argument is an array of objects, then all of the objects in the array are searched, and the values associated with all occurrences of key are returned."
+ "desc": "Renvoie la valeur associée à la clé dans l'objet. Si le premier argument est un tableau d'objets, tous les objets du tableau sont recherchés et les valeurs associées à toutes les occurrences de key sont renvoyées."
},
"$spread": {
"args": "object",
- "desc": "Splits an object containing key/value pairs into an array of objects, each of which has a single key/value pair from the input object. If the parameter is an array of objects, then the resultant array contains an object for every key/value pair in every object in the supplied array."
+ "desc": "Divise un objet contenant des paires clé/valeur en un tableau d'objets, chacun ayant une seule paire clé/valeur de l'objet d'entrée. Si le paramètre est un tableau d'objets, alors le tableau résultant contient un objet pour chaque paire clé/valeur dans chaque objet du tableau fourni."
},
"$merge": {
"args": "array<object>",
- "desc": "Merges an array of `objects` into a single `object` containing all the key/value pairs from each of the objects in the input array. If any of the input objects contain the same key, then the returned `object` will contain the value of the last one in the array. It is an error if the input array contains an item that is not an object."
+ "desc": "Fusionne un tableau d'`objets` en un seul `objet` contenant toutes les paires clé/valeur de chacun des objets du tableau d'entrée. Si l'un des objets d'entrée contient la même clé, alors l'`objet` renvoyé contiendra la valeur du dernier dans le tableau. C'est une erreur si le tableau d'entrée contient un élément qui n'est pas un objet."
},
"$sift": {
"args": "object, function",
- "desc": "Returns an object that contains only the key/value pairs from the `object` parameter that satisfy the predicate `function` passed in as the second parameter.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, key [, object]])`"
+ "desc": "Renvoie un objet qui contient uniquement les paires clé/valeur du paramètre `object` qui satisfont le prédicat `function` transmis comme second paramètre.\n\nLa `function` qui est fournie comme second paramètre doit avoir la signature suivante :\n\n`fonction(valeur [, clé [, objet]])`"
},
"$each": {
"args": "object, function",
- "desc": "Returns an array containing the values return by the `function` when applied to each key/value pair in the `object`."
+ "desc": "Renvoie un tableau contenant les valeurs renvoyées par la `fonction` lorsqu'elle est appliquée à chaque paire clé/valeur dans l'`objet`."
},
"$map": {
"args": "array, function",
- "desc": "Returns an array containing the results of applying the `function` parameter to each value in the `array` parameter.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, index [, array]])`"
+ "desc": "Renvoie un tableau contenant les résultats de l'application du paramètre `function` à chaque valeur du paramètre `array`.\n\nLa `function` fournie comme second paramètre doit avoir la signature suivante :\n\n`function( valeur [, indice [, tableau]])`"
},
"$filter": {
"args": "array, function",
- "desc": "Returns an array containing only the values in the `array` parameter that satisfy the `function` predicate.\n\nThe `function` that is supplied as the second parameter must have the following signature:\n\n`function(value [, index [, array]])`"
+ "desc": "Renvoie un tableau contenant uniquement les valeurs du paramètre `array` qui satisfont le prédicat `function`.\n\nLa `function` fournie comme second paramètre doit avoir la signature suivante :\n\n`function(value [ , indice [, tableau]])`"
},
"$reduce": {
"args": "array, function [, init]",
- "desc": "Returns an aggregated value derived from applying the `function` parameter successively to each value in `array` in combination with the result of the previous application of the function.\n\nThe function must accept two arguments, and behaves like an infix operator between each value within the `array`. The signature of `function` must be of the form: `myfunc($accumulator, $value[, $index[, $array]])`\n\nThe optional `init` parameter is used as the initial value in the aggregation."
+ "desc": "Renvoie une valeur agrégée dérivée de l'application successive du paramètre `function` à chaque valeur de `array` en combinaison avec le résultat de l'application précédente de la fonction.\n\nLa fonction doit accepter deux arguments et se comporte comme un opérateur infixe entre chaque valeur dans le `tableau`. La signature de `function` doit être de la forme : `myfunc($accumulator, $value[, $index[, $array]])`\n\nLe paramètre facultatif `init` est utilisé comme valeur initiale dans l'agrégation ."
},
"$flowContext": {
"args": "string[, string]",
- "desc": "Retrieves a flow context property.\n\nThis is a Node-RED defined function."
+ "desc": "Récupère une propriété de contexte de flux.\n\nCeci est une fonction définie par Node-RED."
},
"$globalContext": {
"args": "string[, string]",
- "desc": "Retrieves a global context property.\n\nThis is a Node-RED defined function."
+ "desc": "Récupère une propriété de contexte globale.\n\nCeci est une fonction définie par Node-RED."
},
"$pad": {
"args": "string, width [, char]",
- "desc": "Returns a copy of the `string` with extra padding, if necessary, so that its total number of characters is at least the absolute value of the `width` parameter.\n\nIf `width` is a positive number, then the string is padded to the right; if negative, it is padded to the left.\n\nThe optional `char` argument specifies the padding character(s) to use. If not specified, it defaults to the space character."
+ "desc": "Renvoie une copie de la `chaîne` avec un rembourrage supplémentaire, si nécessaire, de sorte que son nombre total de caractères corresponde au moins à la valeur absolue du paramètre `width`.\n\nSi `width` est un nombre positif, alors la chaîne est rembourré à droite; s'il est négatif, il est rempli vers la gauche.\n\nL'argument optionnel `char` spécifie le(s) caractère(s) de remplissage à utiliser. S'il n'est pas spécifié, la valeur par défaut est le caractère espace."
},
"$fromMillis": {
"args": "number, [, picture [, timezone]]",
- "desc": "Convert the `number` representing milliseconds since the Unix Epoch (1 January, 1970 UTC) to a formatted string representation of the timestamp as specified by the picture string.\n\nIf the optional `picture` parameter is omitted, then the timestamp is formatted in the ISO 8601 format.\n\nIf the optional `picture` string is supplied, then the timestamp is formatted occording to the representation specified in that string. The behaviour of this function is consistent with the two-argument version of the XPath/XQuery function `format-dateTime` as defined in the XPath F&O 3.1 specification. The picture string parameter defines how the timestamp is formatted and has the same syntax as `format-dateTime`.\n\nIf the optional `timezone` string is supplied, then the formatted timestamp will be in that timezone. The `timezone` string should be in the format '±HHMM', where ± is either the plus or minus sign and HHMM is the offset in hours and minutes from UTC. Positive offset for timezones east of UTC, negative offset for timezones west of UTC."
+ "desc": "Convertissez le « nombre » représentant les millisecondes depuis l'époque Unix (1er janvier 1970 UTC) en une représentation sous forme de chaîne formatée de l'horodatage tel que spécifié par la chaîne d'image.\n\nSi le paramètre facultatif « image » est omis, l'horodatage est formaté au format ISO 8601.\n\nSi la chaîne facultative `image` est fournie, l'horodatage est formaté selon la représentation spécifiée dans cette chaîne. Le comportement de cette fonction est cohérent avec la version à deux arguments de la fonction XPath/XQuery `format-dateTime` telle que définie dans la spécification XPath F&O 3.1. Le paramètre de chaîne d'image définit la façon dont l'horodatage est formaté et a la même syntaxe que `format-dateTime`.\n\nSi la chaîne facultative `timezone` est fournie, alors l'horodatage formaté sera dans ce fuseau horaire. La chaîne `timezone` doit être au format '±HHMM', où ± est le signe plus ou moins et HHMM est le décalage en heures et minutes par rapport à UTC. Décalage positif pour les fuseaux horaires à l'est de UTC, décalage négatif pour les fuseaux horaires à l'ouest de UTC."
},
"$formatNumber": {
"args": "number, picture [, options]",
- "desc": "Casts the `number` to a string and formats it to a decimal representation as specified by the `picture` string.\n\n The behaviour of this function is consistent with the XPath/XQuery function fn:format-number as defined in the XPath F&O 3.1 specification. The picture string parameter defines how the number is formatted and has the same syntax as fn:format-number.\n\nThe optional third argument `options` is used to override the default locale specific formatting characters such as the decimal separator. If supplied, this argument must be an object containing name/value pairs specified in the decimal format section of the XPath F&O 3.1 specification."
+ "desc": "Convertit le `number` en une chaîne et le formate en une représentation décimale comme spécifié par la chaîne `picture`.\n\n Le comportement de cette fonction est cohérent avec la fonction XPath/XQuery fn:format-number telle que définie dans le Spécification XPath F&O 3.1. Le paramètre de chaîne d'image définit la façon dont le nombre est formaté et a la même syntaxe que fn:format-number.\n\nLe troisième argument facultatif `options` est utilisé pour remplacer les caractères de formatage spécifiques aux paramètres régionaux par défaut, tels que le séparateur décimal. S'il est fourni, cet argument doit être un objet contenant des paires nom/valeur spécifiées dans la section de format décimal de la spécification XPath F&O 3.1."
},
"$formatBase": {
"args": "number [, radix]",
- "desc": "Casts the `number` to a string and formats it to an integer represented in the number base specified by the `radix` argument. If `radix` is not specified, then it defaults to base 10. `radix` can be between 2 and 36, otherwise an error is thrown."
+ "desc": "Convertit le `number` en une chaîne et le formate en un entier représenté dans la base numérique spécifiée par l'argument `radix`. Si `radix` n'est pas spécifié, la valeur par défaut est la base 10. `radix` peut être compris entre 2 et 36, sinon une erreur est renvoyée."
},
"$toMillis": {
"args": "timestamp",
- "desc": "Convert a `timestamp` string in the ISO 8601 format to the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. An error is thrown if the string is not in the correct format."
+ "desc": "Convertit une chaîne `timestamp` au format ISO 8601 en nombre de millisecondes depuis l'époque Unix (1er janvier 1970 UTC) sous forme de nombre. Une erreur est renvoyée si la chaîne n'est pas au format correct."
},
"$env": {
"args": "arg",
- "desc": "Returns the value of an environment variable.\n\nThis is a Node-RED defined function."
+ "desc": "Renvoie la valeur d'une variable d'environnement.\n\nCeci est une fonction définie par Node-RED."
},
"$eval": {
"args": "expr [, context]",
- "desc": "Parses and evaluates the string `expr` which contains literal JSON or a JSONata expression using the current context as the context for evaluation."
+ "desc": "Analyse et évalue la chaîne `expr` qui contient un JSON littéral ou une expression JSONata en utilisant le contexte actuel comme contexte d'évaluation."
},
"$formatInteger": {
"args": "number, picture",
- "desc": "Casts the `number` to a string and formats it to an integer representation as specified by the `picture` string. The picture string parameter defines how the number is formatted and has the same syntax as `fn:format-integer` from the XPath F&O 3.1 specification."
+ "desc": "Transforme le `nombre` en une chaîne et le formate en une représentation entière comme spécifié par la chaîne `image`. Le paramètre de chaîne d'image définit la façon dont le nombre est formaté et a la même syntaxe que `fn:format-integer` de la spécification XPath F&O 3.1."
},
"$parseInteger": {
"args": "string, picture",
- "desc": "Parses the contents of the `string` parameter to an integer (as a JSON number) using the format specified by the `picture` string. The `picture` string parameter has the same format as `$formatInteger`."
+ "desc": "Analyse le contenu du paramètre `string` en un entier (comme un nombre JSON) en utilisant le format spécifié par la chaîne `picture`. Le paramètre de chaîne `picture` a le même format que `$formatInteger`."
},
"$error": {
"args": "[str]",
- "desc": "Throws an error with a message. The optional `str` will replace the default message of `$error() function evaluated`"
+ "desc": "Génère une erreur avec un message. Le `str` facultatif remplacera le message par défaut de la fonction `$error() évaluée`"
},
"$assert": {
"args": "arg, str",
- "desc": "If `arg` is true the function returns undefined. If `arg` is false an exception is thrown with `str` as the message of the exception."
+ "desc": "Si `arg` est vrai, la fonction renvoie undefined. Si `arg` est faux, une exception est lancée avec `str` comme message de l'exception."
},
"$single": {
"args": "array, function",
- "desc": "Returns the one and only value in the `array` parameter that satisfies the `function` predicate (i.e. the `function` returns Boolean `true` when passed the value). Throws an exception if the number of matching values is not exactly one.\n\nThe function should be supplied in the following signature: `function(value [, index [, array]])` where value is each input of the array, index is the position of that value and the whole array is passed as the third argument"
+ "desc": "Renvoie la seule et unique valeur du paramètre `array` qui satisfait le prédicat `function` (c'est-à-dire que la `function` renvoie la valeur booléenne `true` lorsqu'elle est transmise à la valeur). Lève une exception si le nombre de valeurs correspondantes n'est pas exactement un.\n\nLa fonction doit être fournie dans la signature suivante : `function(value [, index [, array]])` où value est chaque entrée du tableau, index est la position de cette valeur et le tableau entier est passé comme troisième argument"
},
"$encodeUrlComponent": {
"args": "str",
- "desc": "Encodes a Uniform Resource Locator (URL) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character.\n\nExample: `$encodeUrlComponent(\"?x=test\")` => `\"%3Fx%3Dtest\"`"
+ "desc": "Encode un composant URL (Uniform Resource Locator) en remplaçant chaque instance de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant l'encodage UTF-8 du caractère.\n\nExemple : `$encodeUrlComponent(\"?x =test\")` => `\"%3Fx%3Dtest\"`"
},
"$encodeUrl": {
"args": "str",
- "desc": "Encodes a Uniform Resource Locator (URL) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character. \n\nExample: `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\"`"
+ "desc": "Encode une URL (Uniform Resource Locator) en remplaçant chaque instance de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant l'encodage UTF-8 du caractère. \n\nExemple : `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0% B5%D0%BB%D0%BB%D1%8B\"`"
},
"$decodeUrlComponent": {
"args": "str",
- "desc": "Decodes a Uniform Resource Locator (URL) component previously created by encodeUrlComponent. \n\nExample: `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`"
+ "desc": "Décode un composant URL (Uniform Resource Locator) précédemment créé par encodeUrlComponent. \n\nExemple : `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`"
},
"$decodeUrl": {
"args": "str",
- "desc": "Decodes a Uniform Resource Locator (URL) previously created by encodeUrl. \n\nExample: `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`"
+ "desc": "Décode une URL (Uniform Resource Locator) précédemment créée par encodeUrl. \n\nExemple : `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`"
},
"$distinct": {
"args": "array",
- "desc": "Returns an array with duplicate values removed from `array`"
+ "desc": "Renvoie un tableau avec les valeurs en double supprimées de `array`"
},
"$type": {
"args": "value",
- "desc": "Returns the type of `value` as a string. If `value` is undefined, this will return `undefined`"
+ "desc": "Renvoie le type de `value` sous forme de chaîne. Si `value` n'est pas défini, cela renverra `undefined`"
},
"$moment": {
"args": "[str]",
- "desc": "Gets a date object using the Moment library."
+ "desc": "Obtient un objet de date à l'aide de la bibliothèque Moment."
}
}
From 9727062d60493acad3f2cb72a496fbb49b0c8029 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Tue, 29 Nov 2022 12:50:19 +0100
Subject: [PATCH 044/178] Add French translation of common nodes
---
.../nodes/locales/fr/common/20-inject.html | 40 +++++++++++
.../nodes/locales/fr/common/21-debug.html | 26 ++++++++
.../nodes/locales/fr/common/24-complete.html | 29 ++++++++
.../nodes/locales/fr/common/25-catch.html | 42 ++++++++++++
.../nodes/locales/fr/common/25-status.html | 34 ++++++++++
.../nodes/locales/fr/common/60-link.html | 66 +++++++++++++++++++
.../nodes/locales/fr/common/90-comment.html | 22 +++++++
.../nodes/locales/fr/common/98-unknown.html | 28 ++++++++
8 files changed, 287 insertions(+)
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/25-status.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/90-comment.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html b/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
new file mode 100644
index 000000000..a506f584e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
@@ -0,0 +1,40 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html b/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
new file mode 100644
index 000000000..47b8ffeda
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
@@ -0,0 +1,26 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html b/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
new file mode 100644
index 000000000..cae216d1e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
@@ -0,0 +1,29 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html b/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
new file mode 100644
index 000000000..532a08407
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
@@ -0,0 +1,42 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/25-status.html b/packages/node_modules/@node-red/nodes/locales/fr/common/25-status.html
new file mode 100644
index 000000000..9a4c3bf6e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/25-status.html
@@ -0,0 +1,34 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
new file mode 100644
index 000000000..9791f3a17
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/90-comment.html b/packages/node_modules/@node-red/nodes/locales/fr/common/90-comment.html
new file mode 100644
index 000000000..be4d9576b
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/90-comment.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html b/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
new file mode 100644
index 000000000..2854c7c42
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
@@ -0,0 +1,28 @@
+
+
+
From 0d8a0db883cd13aac69ba3d73bbd8cbbc9b2005f Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Tue, 29 Nov 2022 20:50:18 +0100
Subject: [PATCH 045/178] Add French translation of `function` nodes
---
.../locales/fr/function/10-function.html | 64 ++++++++++++++
.../nodes/locales/fr/function/10-switch.html | 49 +++++++++++
.../nodes/locales/fr/function/15-change.html | 37 ++++++++
.../nodes/locales/fr/function/16-range.html | 44 ++++++++++
.../locales/fr/function/80-template.html | 58 +++++++++++++
.../nodes/locales/fr/function/89-delay.html | 64 ++++++++++++++
.../nodes/locales/fr/function/89-trigger.html | 50 +++++++++++
.../nodes/locales/fr/function/90-exec.html | 84 +++++++++++++++++++
.../nodes/locales/fr/function/rbe.html | 41 +++++++++
9 files changed, 491 insertions(+)
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/10-switch.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/15-change.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/16-range.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/89-delay.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/89-trigger.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/function/rbe.html
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html b/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
new file mode 100644
index 000000000..7e41c436c
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
@@ -0,0 +1,64 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/10-switch.html b/packages/node_modules/@node-red/nodes/locales/fr/function/10-switch.html
new file mode 100644
index 000000000..4a2b06dd5
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/10-switch.html
@@ -0,0 +1,49 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/15-change.html b/packages/node_modules/@node-red/nodes/locales/fr/function/15-change.html
new file mode 100644
index 000000000..21706684f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/15-change.html
@@ -0,0 +1,37 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/16-range.html b/packages/node_modules/@node-red/nodes/locales/fr/function/16-range.html
new file mode 100644
index 000000000..212b419f6
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/16-range.html
@@ -0,0 +1,44 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html b/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
new file mode 100644
index 000000000..98945684d
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
@@ -0,0 +1,58 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/89-delay.html b/packages/node_modules/@node-red/nodes/locales/fr/function/89-delay.html
new file mode 100644
index 000000000..3dd4f2d25
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/89-delay.html
@@ -0,0 +1,64 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/89-trigger.html b/packages/node_modules/@node-red/nodes/locales/fr/function/89-trigger.html
new file mode 100644
index 000000000..ffc732f6a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/89-trigger.html
@@ -0,0 +1,50 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html b/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
new file mode 100644
index 000000000..9402ea982
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
@@ -0,0 +1,84 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/rbe.html b/packages/node_modules/@node-red/nodes/locales/fr/function/rbe.html
new file mode 100644
index 000000000..03cea733f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/rbe.html
@@ -0,0 +1,41 @@
+
From 327eab6c0da5dd086619696212f52649ed27ae02 Mon Sep 17 00:00:00 2001
From: Gauthier Dandele <92022724+GogoVega@users.noreply.github.com>
Date: Tue, 29 Nov 2022 23:09:28 +0100
Subject: [PATCH 046/178] fix: capitals and better translation
---
.../@node-red/editor-client/locales/fr/editor.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/editor.json b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
index 22ae0a993..576ed8307 100644
--- a/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
@@ -298,7 +298,7 @@
"fullDesc": "Déploie tout l'espace de travail",
"modifiedFlows": "Flux modifiés",
"modifiedFlowsDesc": "Déploie uniquement les flux contenant des noeuds modifiés",
- "modifiedNodes": "noeuds modifiés",
+ "modifiedNodes": "Noeuds modifiés",
"modifiedNodesDesc": "Déploie uniquement les noeuds qui ont changés",
"startFlows": "Démarrer",
"startFlowsDesc": "Démarrer les flux",
@@ -509,11 +509,11 @@
"copyGroupStyle": "Copier le style de groupe",
"pasteGroupStyle": "Coller le style de groupe",
"undoChange": "Annuler",
- "redoChange": "Refaire",
+ "redoChange": "Rétablir",
"searchBox": "Ouvrir le champ de recherche",
"managePalette": "Gérer la palette",
"actionList": "Liste d'action",
- "splitWireWithLinks": "Ajouter des liens entre les noeuds de la sélection"
+ "splitWireWithLinks": "Ajouter des liens à la sélection"
},
"library": {
"library": "Bibliothèque",
@@ -681,7 +681,7 @@
"showTips": "Vous pouvez ouvrir les astuces à partir du panneau des paramètres",
"outline": "Plan",
"empty": "vide",
- "globalConfig": "noeuds de configuration globale",
+ "globalConfig": "Noeuds de configuration globale",
"triggerAction": "Déclencher une action",
"find": "Rechercher dans l'espace de travail"
},
@@ -697,9 +697,9 @@
"changeLog": "Journal des modifications"
},
"config": {
- "name": "noeuds de configuration",
+ "name": "Noeuds de configuration",
"label": "configuration",
- "global": "Sur tous les flux",
+ "global": "Tous les flux",
"none": "aucun",
"subflows": "sous-flux",
"flows": "flux",
@@ -1208,4 +1208,4 @@
"junction": "Jonction",
"linkNodes": "Liens entre les noeuds"
}
-}
\ No newline at end of file
+}
From 77f6412d3bbfe567a0c6848b665423d511696137 Mon Sep 17 00:00:00 2001
From: Adam Lau
Date: Wed, 30 Nov 2022 17:51:13 +0800
Subject: [PATCH 047/178] fix: fix typo in catch.html
---
packages/node_modules/@node-red/nodes/core/common/25-catch.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/core/common/25-catch.html b/packages/node_modules/@node-red/nodes/core/common/25-catch.html
index a2bf07aa4..1a13d1337 100644
--- a/packages/node_modules/@node-red/nodes/core/common/25-catch.html
+++ b/packages/node_modules/@node-red/nodes/core/common/25-catch.html
@@ -4,7 +4,7 @@
From 1191574e07132fd4abe05a5c1a08eaff3a64bebe Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Wed, 30 Nov 2022 13:22:10 +0100
Subject: [PATCH 048/178] fix: Typos
---
.../@node-red/nodes/locales/fr/common/21-debug.html | 2 +-
.../@node-red/nodes/locales/fr/common/25-catch.html | 2 +-
.../@node-red/nodes/locales/fr/common/25-status.html | 2 +-
.../node_modules/@node-red/nodes/locales/fr/common/60-link.html | 2 +-
.../@node-red/nodes/locales/fr/function/10-switch.html | 2 +-
.../@node-red/nodes/locales/fr/function/15-change.html | 2 +-
.../node_modules/@node-red/nodes/locales/fr/function/rbe.html | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html b/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
index 47b8ffeda..90a4c07d8 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/21-debug.html
@@ -15,7 +15,7 @@
-->
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/fr/network/06-httpproxy.html
new file mode 100644
index 000000000..6a12dc379
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/06-httpproxy.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
new file mode 100644
index 000000000..4d2e2e720
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html
new file mode 100644
index 000000000..f9f0f4c2e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html
@@ -0,0 +1,100 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html
new file mode 100644
index 000000000..87ccbd134
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html
@@ -0,0 +1,96 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/fr/network/22-websocket.html
new file mode 100644
index 000000000..c355b94ee
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/22-websocket.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/fr/network/31-tcpin.html
new file mode 100644
index 000000000..0d2ebd0ff
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/31-tcpin.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/fr/network/32-udp.html
new file mode 100644
index 000000000..54b028b42
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/32-udp.html
@@ -0,0 +1,31 @@
+
+
+
+
+
From b4a12edc612fcdbf28e886452ce499632a7db98a Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Wed, 30 Nov 2022 15:38:49 +0100
Subject: [PATCH 050/178] Add French translation of `parsers` nodes
---
.../nodes/locales/fr/parsers/70-CSV.html | 51 ++++++++++++++++++
.../nodes/locales/fr/parsers/70-HTML.html | 36 +++++++++++++
.../nodes/locales/fr/parsers/70-JSON.html | 54 +++++++++++++++++++
.../nodes/locales/fr/parsers/70-XML.html | 51 ++++++++++++++++++
.../nodes/locales/fr/parsers/70-YAML.html | 34 ++++++++++++
5 files changed, 226 insertions(+)
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/parsers/70-CSV.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/parsers/70-HTML.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/parsers/70-JSON.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/parsers/70-XML.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/parsers/70-YAML.html
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-CSV.html
new file mode 100644
index 000000000..2bde1640d
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-CSV.html
@@ -0,0 +1,51 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-HTML.html
new file mode 100644
index 000000000..59dc25ea9
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-HTML.html
@@ -0,0 +1,36 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-JSON.html
new file mode 100644
index 000000000..39c15671e
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-JSON.html
@@ -0,0 +1,54 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-XML.html
new file mode 100644
index 000000000..10b2941be
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-XML.html
@@ -0,0 +1,51 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-YAML.html
new file mode 100644
index 000000000..eebd101a7
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/parsers/70-YAML.html
@@ -0,0 +1,34 @@
+
+
+
From e440694987cae54d41ea2440c7b110065bd094b1 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Wed, 30 Nov 2022 17:35:22 +0100
Subject: [PATCH 051/178] Use English names for nodes (better)
---
.../nodes/locales/fr/common/24-complete.html | 2 +-
.../nodes/locales/fr/common/25-catch.html | 4 +--
.../nodes/locales/fr/common/60-link.html | 28 +++++++++----------
.../locales/fr/function/10-function.html | 2 +-
.../nodes/locales/fr/function/90-exec.html | 2 +-
.../nodes/locales/fr/network/10-mqtt.html | 2 +-
.../nodes/locales/fr/network/31-tcpin.html | 2 +-
.../nodes/locales/fr/parsers/70-JSON.html | 4 +--
8 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html b/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
index cae216d1e..a2b956051 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/24-complete.html
@@ -22,7 +22,7 @@
Par exemple, cela peut être utilisé avec un noeud sans port de sortie,
comme le noeud d'envoi d'e-mails, pour continuer le flux.
Ce noeud doit être configuré pour gérer l'événement pour les noeuds sélectionnés dans le
- flux. Contrairement au noeud Capturer (Catch), il ne fournit pas automatiquement un mode "gérer tout"
+ flux. Contrairement au noeud Catch, il ne fournit pas automatiquement un mode "gérer tout"
qui s'applique à tous les noeuds du flux.
Tous les noeuds ne déclencheront pas cet événement - cela dépendra s'ils
ont été implémentés pour prendre en charge cette fonctionnalité telle qu'introduite dans Node-RED 1.0.
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html b/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
index 737b7fba3..c4117abc5 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/25-catch.html
@@ -34,9 +34,9 @@
Par défaut, le noeud interceptera les erreurs générées par n'importe quel noeud sur le même onglet. Alternativement
il peut être ciblé sur des noeuds spécifiques ou configuré pour ne détecter que les erreurs qui
n'ont pas déjà été capturés par un noeud de capture "ciblé".
- Lorsqu'une erreur est générée, tous les noeuds Capturer correspondants recevront le message.
+ Lorsqu'une erreur est générée, tous les noeuds Catch correspondants recevront le message.
Si une erreur est générée dans un sous-flux, l'erreur sera gérée par n'importe quel
- noeud Capturer dans le sous-flux. S'il n'en existe pas, l'erreur sera propagée
+ noeud Catch dans le sous-flux. S'il n'en existe pas, l'erreur sera propagée
jusqu'à l'onglet sur lequel se trouve l'instance de sous-flux.
Si le message a déjà une propriété error
, il est copié dans _error
.
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
index 49955ec48..788ebcc40 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
@@ -17,7 +17,7 @@
\ No newline at end of file
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html b/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
index 7e41c436c..8877ce9bb 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/10-function.html
@@ -49,7 +49,7 @@
node.error("Erreur")
- Le noeud Capturer peut également être utilisé pour gérer les erreurs. Pour invoquer un noeud Capturer,
+
Le noeud Catch peut également être utilisé pour gérer les erreurs. Pour invoquer un noeud Catch,
passer msg
comme deuxième argument à node.error
:
node.error("Erreur",msg);
Accéder aux informations sur les noeuds
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html b/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
index 9402ea982..892791445 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/90-exec.html
@@ -72,7 +72,7 @@
Les commandes ou les paramètres avec des espaces doivent être placés entre guillemets - "Ceci est un paramètre unique"
La charge utile payload
renvoyée est généralement une chaîne, sauf si des caractères non UTF8 sont détectés, dans ce cas,
il s'agit d'un tampon.
- L'icône d'état et le PID du noeud seront visibles tant que le noeud est actif. Les modifications apportées à cela peuvent être lues par le noeud Statut
.
+ L'icône d'état et le PID du noeud seront visibles tant que le noeud est actif. Les modifications apportées à cela peuvent être lues par le noeud Status
.
L'option Masquer la console
masquera la console de processus normalement affichée sur les systèmes Windows.
Tuer les processus
L'envoi de msg.kill
tuera un seul processus actif. msg.kill
doit être une chaîne contenant
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
index 4d2e2e720..8706a616d 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
@@ -139,7 +139,7 @@
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/fr/sequence/18-sort.html
new file mode 100644
index 000000000..9329769f8
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/sequence/18-sort.html
@@ -0,0 +1,41 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/fr/sequence/19-batch.html
new file mode 100644
index 000000000..ff6a1be94
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/sequence/19-batch.html
@@ -0,0 +1,43 @@
+
+
+
From 1004ce564f264bff7e88c2c4db03d30fe0a72d38 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Fri, 2 Dec 2022 14:21:34 +0100
Subject: [PATCH 055/178] Add French translation of `storage` nodes
---
.../nodes/locales/fr/storage/10-file.html | 69 +++++++++++++++++++
.../nodes/locales/fr/storage/23-watch.html | 30 ++++++++
2 files changed, 99 insertions(+)
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/storage/10-file.html
create mode 100644 packages/node_modules/@node-red/nodes/locales/fr/storage/23-watch.html
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/fr/storage/10-file.html
new file mode 100644
index 000000000..a8f969957
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/storage/10-file.html
@@ -0,0 +1,69 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/fr/storage/23-watch.html
new file mode 100644
index 000000000..2240ef98b
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/fr/storage/23-watch.html
@@ -0,0 +1,30 @@
+
+
+
From f4309f5af628106cb1bf774fc3019d47b4cddf27 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Fri, 2 Dec 2022 18:07:39 +0100
Subject: [PATCH 056/178] fix: Typos (infinitif)
---
.../editor-client/locales/fr/editor.json | 42 +++++++++----------
.../editor-client/locales/fr/infotips.json | 16 +++----
.../editor-client/locales/fr/jsonata.json | 2 +-
3 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/editor.json b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
index 576ed8307..2796e5587 100644
--- a/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/editor.json
@@ -52,7 +52,7 @@
"editFlow": "Modifier le flux : __name__",
"confirmDelete": "Confirmation de la suppression",
"delete": "Etes-vous sûr de vouloir supprimer '__label__'?",
- "dropFlowHere": "Déposez le flux ici",
+ "dropFlowHere": "Déposer le flux ici",
"addFlow": "Ajouter un flux",
"addFlowToRight": "Ajouter un flux à droite",
"hideFlow": "Masquer le flux",
@@ -68,7 +68,7 @@
"enabled": "Activé",
"disabled": "Désactivé",
"info": "Description",
- "selectNodes": "Cliquez sur les noeuds pour sélectionner"
+ "selectNodes": "Cliquer sur les noeuds pour sélectionner"
},
"menu": {
"label": {
@@ -188,13 +188,13 @@
"missing_package_file": "Fichier de package de projet introuvable.
Il manque au projet un fichier package.json.
",
"project_empty": "Le projet est vide.
Voulez-vous créer un ensemble de fichiers de projet par défaut ?
Sinon, vous devrez ajouter manuellement des fichiers au projet (en dehors de l'éditeur).
",
"project_not_found": "Le projet '__project__' est introuvable.
",
- "git_merge_conflict": "La fusion automatique des modifications a échoué.
Corrigez les conflits non fusionnés, puis validez le résultat.
"
+ "git_merge_conflict": "La fusion automatique des modifications a échoué.
Corriger les conflits non fusionnés, puis valider le résultat.
"
},
"error": "Erreur : __message__",
"errors": {
- "lostConnection": "Perte de connexion au serveur, reconnexion...",
- "lostConnectionReconnect": "Perte de connexion au serveur, reconnexion dans __time__s.",
- "lostConnectionTry": "Essayez maintenant",
+ "lostConnection": "Connexion avec le serveur perdu, reconnexion...",
+ "lostConnectionReconnect": "Connexion avec le serveur perdu, reconnexion dans __time__s.",
+ "lostConnectionTry": "Essayer maintenant",
"cannotAddSubflowToItself": "Impossible d'ajouter un sous-flux à lui-même",
"cannotAddCircularReference": "Impossible d'ajouter un sous-flux - référence circulaire détectée",
"unsupportedVersion": "Utilisation d'une version non prise en charge de Node.js
Vous devez effectuer une mise à jour vers la dernière version de Node.js LTS
",
@@ -616,16 +616,16 @@
"upload": "Charger le fichier tgz du module",
"refresh": "Actualiser la liste des modules",
"errors": {
- "catalogLoadFailed": "Échec du chargement du catalogue de noeuds.
Vérifiez la console du navigateur pour plus d'informations
",
- "installFailed": "Échec lors de l'installation : __module__
__message__
Consultez le journal pour plus d'informations
",
- "removeFailed": "Échec lors de la suppression : __module__
__message__
Consultez le journal pour plus d'informations
",
- "updateFailed": "Échec lors de la mise à jour : __module__
__message__
Consultez le journal pour plus d'informations
",
- "enableFailed": "Échec lors de l'activation : __module__
__message__
Consultez le journal pour plus d'informations
",
- "disableFailed": "Échec lors de la désactivation : __module__
__message__
Consultez le journal pour plus d'informations
"
+ "catalogLoadFailed": "Échec du chargement du catalogue de noeuds.
Vérifier la console du navigateur pour plus d'informations
",
+ "installFailed": "Échec lors de l'installation : __module__
__message__
Consulter le journal pour plus d'informations
",
+ "removeFailed": "Échec lors de la suppression : __module__
__message__
Consulter le journal pour plus d'informations
",
+ "updateFailed": "Échec lors de la mise à jour : __module__
__message__
Consulter le journal pour plus d'informations
",
+ "enableFailed": "Échec lors de l'activation : __module__
__message__
Consulter le journal pour plus d'informations
",
+ "disableFailed": "Échec lors de la désactivation : __module__
__message__
Consulter le journal pour plus d'informations
"
},
"confirm": {
"install": {
- "body": "Installation de '__module__'
Avant l'installation, veuillez lire la documentation du noeud. Certains noeuds ont des dépendances qui ne peuvent pas être résolues automatiquement et peuvent nécessiter un redémarrage de Node-RED.
",
+ "body": "Installation de '__module__'
Avant l'installation, veuiller lire la documentation du noeud. Certains noeuds ont des dépendances qui ne peuvent pas être résolues automatiquement et peuvent nécessiter un redémarrage de Node-RED.
",
"title": "Installer les noeuds"
},
"remove": {
@@ -637,7 +637,7 @@
"title": "Mettre à jour les noeuds"
},
"cannotUpdate": {
- "body": "Une mise à jour pour ce noeud est disponible, mais il n'est pas installé dans un emplacement que le gestionnaire de palette peut mettre à jour.
Veuillez vous référer à la documentation pour savoir comment mettre à jour ce noeud."
+ "body": "Une mise à jour pour ce noeud est disponible, mais il n'est pas installé dans un emplacement que le gestionnaire de palette peut mettre à jour.
Veuiller vous référer à la documentation pour savoir comment mettre à jour ce noeud."
},
"button": {
"review": "Ouvrir les informations sur ce noeud",
@@ -775,7 +775,7 @@
"nameRule": "Doit contenir uniquement A-Z 0-9 _ -",
"url": "URL",
"urlRule": "https://, ssh:// or file://",
- "urlRule2": "N'incluez pas le nom d'utilisateur/mot de passe dans l'URL",
+ "urlRule2": "N'incluer pas le nom d'utilisateur/mot de passe dans l'URL",
"noRemotes": "Pas distant",
"deleteRemoteConfrim": "Êtes-vous sûr de vouloir supprimer '__name__' distant ?",
"deleteRemote": "Supprimer distant"
@@ -786,7 +786,7 @@
"userName": "Nom d'utilisateur",
"email": "Email",
"workflow": "Flux de travail",
- "workfowTip": "Choisissez votre flux de travail git préféré",
+ "workfowTip": "Choisisser votre flux de travail git préféré",
"workflowManual": "Manuel",
"workflowManualTip": "Toutes les modifications doivent être validées manuellement dans la barre latérale 'historique'",
"workflowAuto": "Automatique",
@@ -834,7 +834,7 @@
"abortMerge": "abandonner la fusion",
"commit": "commit",
"changeToCommit": "Modifications à valider",
- "commitPlaceholder": "Entrez votre message de validation",
+ "commitPlaceholder": "Entrer votre message de validation",
"cancelCapital": "Annuler",
"commitCapital": "Commit",
"commitHistory": "Historique des commits",
@@ -930,7 +930,7 @@
"result": "Resultat",
"format": "format",
"compatMode": "Mode de compatibilité activé",
- "compatModeDesc": "Mode de compatibilité JSONata
L'expression actuelle semble toujours faire référence à msg
et sera donc évaluée en mode de compatibilité. Veuillez mettre à jour l'expression pour ne pas utiliser msg
car ce mode sera supprimé à l'avenir.
Lorsque la prise en charge de JSONata a été ajoutée pour la première fois à Node-RED, il fallait que l'expression référence le Objet msg
. Par exemple, msg.payload
serait utilisé pour accéder à la charge utile.
Cela n'est plus nécessaire car l'expression sera évaluée directement par rapport au message. Pour accéder à la charge utile, l'expression doit être simplement charge utile
.
",
+ "compatModeDesc": "Mode de compatibilité JSONata
L'expression actuelle semble toujours faire référence à msg
et sera donc évaluée en mode de compatibilité. Veuiller mettre à jour l'expression pour ne pas utiliser msg
car ce mode sera supprimé à l'avenir.
Lorsque la prise en charge de JSONata a été ajoutée pour la première fois à Node-RED, il fallait que l'expression référence le Objet msg
. Par exemple, msg.payload
serait utilisé pour accéder à la charge utile.
Cela n'est plus nécessaire car l'expression sera évaluée directement par rapport au message. Pour accéder à la charge utile, l'expression doit être simplement charge utile
.
",
"noMatch": "Aucun résultat correspondant",
"errors": {
"invalid-expr": "Expression JSONata non valide :\n __message__",
@@ -1005,7 +1005,7 @@
"not-right-now": "Pas maintenant"
},
"git-config": {
- "setup": "Configurez votre version du contrôle de client",
+ "setup": "Configurer votre version du contrôle de client",
"desc0": "Node-RED utilise l'outil open source Git pour le contrôle de version. Il suit les modifications apportées à vos fichiers de projet et vous permet de les transférer vers des référentiels distants.",
"desc1": "Lorsque vous validez un ensemble de modifications, Git enregistre l'auteur qui a effectué les modifications avec un nom d'utilisateur et une adresse e-mail. Le nom d'utilisateur peut être ce que vous voulez - il n'est pas nécessaire que ce soit votre vrai nom.",
"desc2": "Votre client Git est déjà configuré avec les détails ci-dessous.",
@@ -1014,7 +1014,7 @@
"email": "Email"
},
"project-details": {
- "create": "Créez votre projet",
+ "create": "Créer votre projet",
"desc0": "Un projet est maintenu en tant que référentiel Git. Il est beaucoup plus facile de partager vos flux et de collaborer avec les autres grâce à ce référentiel.",
"desc1": "Vous pouvez créer plusieurs projets et basculer rapidement entre eux depuis l'éditeur.",
"desc2": "Pour commencer, votre projet a besoin d'un nom et facultativement d'une description.",
@@ -1049,7 +1049,7 @@
"repo-not-found": "Référentiel introuvable"
},
"default-files": {
- "create": "Créez vos fichiers de projet",
+ "create": "Créer vos fichiers de projet",
"desc0": "Un projet contient vos fichiers de flux, un fichier README et un fichier package.json.",
"desc1": "Il peut contenir tous les autres fichiers que vous souhaitez conserver dans le référentiel Git.",
"desc2": "Vos fichiers de flux et identifiants existants seront copiés dans le projet.",
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json b/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
index 9d7b54451..4a4dc1eb4 100755
--- a/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/infotips.json
@@ -5,18 +5,18 @@
"tip2": "{{core:toggle-sidebar}} basculera l'affichage de cette barre latérale",
"tip3": "Vous pouvez gérer votre palette de noeuds avec {{core:manage-palette}}",
"tip4": "Vos noeuds de configuration de flux sont répertoriés dans le panneau de la barre latérale. Ils sont accessibles depuis le menu ou avec {{core:show-config-tab}}",
- "tip5": "Activez ou désactivez ces conseils à partir de l'option dans les paramètres",
- "tip6": "Déplacez les noeuds sélectionnés à l'aide des touches [gauche] [haut] [bas] et [droite]. Maintenez [shift] pour les pousser plus loin",
+ "tip5": "Activer ou désactiver ces conseils à partir de l'option dans les paramètres",
+ "tip6": "Déplacer les noeuds sélectionnés à l'aide des touches [gauche] [haut] [bas] et [droite]. Maintener [shift] pour les pousser plus loin",
"tip7": "Faire glisser un noeud sur un fil le raccordera au lien",
"tip8": "Exporter les noeuds sélectionnés, ou l'onglet actuel avec {{core:show-export-dialog}}",
- "tip9": "Importez un flux en faisant glisser son JSON dans l'éditeur, ou avec {{core:show-import-dialog}}",
+ "tip9": "Importer un flux en faisant glisser son JSON dans l'éditeur, ou avec {{core:show-import-dialog}}",
"tip10": "[majuscule] [clic] et faites glisser sur un port de noeud pour déplacer tous les fils attachés ou seulement celui sélectionné",
- "tip11": "Affichez l'onglet Infos avec {{core:show-info-tab}} ou l'onglet Débogage avec {{core:show-debug-tab}}",
+ "tip11": "Afficher l'onglet Infos avec {{core:show-info-tab}} ou l'onglet Débogage avec {{core:show-debug-tab}}",
"tip12": "[ctrl] [clic] dans l'espace de travail pour ouvrir la boîte de dialogue d'ajout rapide",
- "tip13": "Maintenez [ctrl] enfoncé lorsque vous [cliquez] sur un port de noeud pour activer le câblage rapide",
- "tip14": "Maintenez [shift] enfoncé lorsque vous [cliquez] sur un noeud pour sélectionner également tous ses noeuds connectés",
- "tip15": "Maintenez [ctrl] enfoncé lorsque vous [cliquez] sur un noeud pour l'ajouter ou le supprimer de la sélection actuelle",
- "tip16": "Changez d'onglet de flux avec {{core:show-previous-tab}} et {{core:show-next-tab}}",
+ "tip13": "Maintener [ctrl] enfoncé lorsque vous [cliquez] sur un port de noeud pour activer le câblage rapide",
+ "tip14": "Maintener [shift] enfoncé lorsque vous [cliquez] sur un noeud pour sélectionner également tous ses noeuds connectés",
+ "tip15": "Maintener [ctrl] enfoncé lorsque vous [cliquez] sur un noeud pour l'ajouter ou le supprimer de la sélection actuelle",
+ "tip16": "Changer d'onglet de flux avec {{core:show-previous-tab}} et {{core:show-next-tab}}",
"tip17": "Vous pouvez confirmer vos modifications dans le panneau d'édition du noeud avec {{core:confirm-edit-tray}} ou les annuler avec {{core:cancel-edit-tray}}",
"tip18": "Appuyer sur {{core:edit-selected-node}} modifiera le premier noeud de la sélection actuelle"
}
diff --git a/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
index efccd0693..7682d70a5 100755
--- a/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
+++ b/packages/node_modules/@node-red/editor-client/locales/fr/jsonata.json
@@ -201,7 +201,7 @@
},
"$fromMillis": {
"args": "number, [, picture [, timezone]]",
- "desc": "Convertissez le « nombre » représentant les millisecondes depuis l'époque Unix (1er janvier 1970 UTC) en une représentation sous forme de chaîne formatée de l'horodatage tel que spécifié par la chaîne d'image.\n\nSi le paramètre facultatif « image » est omis, l'horodatage est formaté au format ISO 8601.\n\nSi la chaîne facultative `image` est fournie, l'horodatage est formaté selon la représentation spécifiée dans cette chaîne. Le comportement de cette fonction est cohérent avec la version à deux arguments de la fonction XPath/XQuery `format-dateTime` telle que définie dans la spécification XPath F&O 3.1. Le paramètre de chaîne d'image définit la façon dont l'horodatage est formaté et a la même syntaxe que `format-dateTime`.\n\nSi la chaîne facultative `timezone` est fournie, alors l'horodatage formaté sera dans ce fuseau horaire. La chaîne `timezone` doit être au format '±HHMM', où ± est le signe plus ou moins et HHMM est le décalage en heures et minutes par rapport à UTC. Décalage positif pour les fuseaux horaires à l'est de UTC, décalage négatif pour les fuseaux horaires à l'ouest de UTC."
+ "desc": "Convertisser le « nombre » représentant les millisecondes depuis l'époque Unix (1er janvier 1970 UTC) en une représentation sous forme de chaîne formatée de l'horodatage tel que spécifié par la chaîne d'image.\n\nSi le paramètre facultatif « image » est omis, l'horodatage est formaté au format ISO 8601.\n\nSi la chaîne facultative `image` est fournie, l'horodatage est formaté selon la représentation spécifiée dans cette chaîne. Le comportement de cette fonction est cohérent avec la version à deux arguments de la fonction XPath/XQuery `format-dateTime` telle que définie dans la spécification XPath F&O 3.1. Le paramètre de chaîne d'image définit la façon dont l'horodatage est formaté et a la même syntaxe que `format-dateTime`.\n\nSi la chaîne facultative `timezone` est fournie, alors l'horodatage formaté sera dans ce fuseau horaire. La chaîne `timezone` doit être au format '±HHMM', où ± est le signe plus ou moins et HHMM est le décalage en heures et minutes par rapport à UTC. Décalage positif pour les fuseaux horaires à l'est de UTC, décalage négatif pour les fuseaux horaires à l'ouest de UTC."
},
"$formatNumber": {
"args": "number, picture [, options]",
From 01f9ce0015aaf9429a1acf636c7d89a4d12ab128 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Fri, 2 Dec 2022 18:09:06 +0100
Subject: [PATCH 057/178] Add French translation of `runtime.json` file
---
.../@node-red/runtime/locales/fr/runtime.json | 193 ++++++++++++++++++
1 file changed, 193 insertions(+)
create mode 100644 packages/node_modules/@node-red/runtime/locales/fr/runtime.json
diff --git a/packages/node_modules/@node-red/runtime/locales/fr/runtime.json b/packages/node_modules/@node-red/runtime/locales/fr/runtime.json
new file mode 100644
index 000000000..0a133736f
--- /dev/null
+++ b/packages/node_modules/@node-red/runtime/locales/fr/runtime.json
@@ -0,0 +1,193 @@
+{
+ "runtime": {
+ "welcome": "Bienvenue sur Node-RED",
+ "version": "__component__ version: __version__",
+ "unsupported_version": "Version non prise en charge de __component__. Requiert : __requires__ Trouvé : __version__",
+ "paths": {
+ "settings": "Fichier de paramètres : __path__",
+ "httpStatic": "HTTP Statique : __path__"
+ }
+ },
+ "server": {
+ "loading": "Chargement des noeuds de la palette",
+ "palette-editor": {
+ "disabled": "Éditeur de la palette désactivé : paramètres utilisateur",
+ "npm-not-found": "Éditeur de la palette désactivé : commande npm introuvable",
+ "npm-too-old": "Éditeur de la palette désactivé : version npm trop ancienne. Nécessite npm >= 3.x"
+ },
+ "errors": "Échec de l'enregistrement de __count__ type de noeud",
+ "errors_plural": "Échec de l'enregistrement de __count__ types de noeud",
+ "errors-help": "Exécuter avec -v pour plus de détails",
+ "missing-modules": "Modules de noeud manquants :",
+ "node-version-mismatch": "Le module de noeud ne peut pas être chargé sur cette version. Nécessite : __version__ ",
+ "type-already-registered": "'__type__' déjà enregistré par le module __module__",
+ "removing-modules": "Suppression de modules de la configuration",
+ "added-types": "Types de noeuds ajoutés :",
+ "removed-types": "Types de noeuds supprimés :",
+ "install": {
+ "invalid": "Nom de module invalide",
+ "installing": "Installation du module : __nom__, version : __version__",
+ "installed": "Module installé : __nom__",
+ "install-failed": "L'installation a échoué",
+ "install-failed-long": "L'installation du module __name__ a échoué :",
+ "install-failed-not-found": "Module $t(server.install.install-failed-long) introuvable",
+ "install-failed-name": "$t(server.install.install-failed-long) nom de module invalide : __name__",
+ "install-failed-url": "URL invalide $t(server.install.install-failed-long) : __url__",
+ "post-install-error": "Erreur lors de l'exécution du hook 'postInstall' :",
+ "upgrading": "Mettre à jour le module : __name__ vers la version : __version__",
+ "upgraded": "Module mis à jour : __name__. Redémarrer Node-RED pour utiliser la nouvelle version",
+ "upgrade-failed-not-found": "Version $t(server.install.install-failed-long) introuvable",
+ "uninstalling": "Désinstallation du module : __name__",
+ "uninstall-failed": "La désinstallation a échoué",
+ "uninstall-failed-long": "La désinstallation du module __name__ a échoué :",
+ "uninstalled": "Module désinstallé : __name__",
+ "old-ext-mod-dir-warning": "\n\n---------------------------------------------------------------------\nRépertoire des modules externes Node-RED 1.3 détecté :\n __oldDir__\nCe répertoire n'est plus utilisé. Les modules externes seront\nréinstallés dans votre répertoire utilisateur Node-RED :\n __newDir__\nSupprimer l'ancien répertoire externalModules pour arrêter ce message.\n---------------------------------------------------------------------\n"
+ },
+ "deprecatedOption": "L'utilisation de l'option __old__ est DÉCONSEILLÉE. Utiliser __new__ à la place",
+ "unable-to-listen": "Impossible d'écouter sur __listenpath__",
+ "port-in-use": "Erreur : port utilisé",
+ "uncaught-exception": "Exception non reconnu :",
+ "admin-ui-disabled": "Interface d'administration désactivée",
+ "now-running": "Le serveur tourne maintenant sur __listenpath__",
+ "failed-to-start": "Échec lors du démarrage du serveur :",
+ "headless-mode": "Fonctionne en mode sans bureau (headless)",
+ "httpadminauth-deprecated": "L'utilisation de httpAdminAuth est DÉCONSEILLÉE. Utiliser adminAuth à la place",
+ "https": {
+ "refresh-interval": "Actualisation des paramètres https toutes les __interval__ heures",
+ "settings-refreshed": "Les paramètres https du serveur ont été actualisés",
+ "refresh-failed": "Échec de l'actualisation des paramètres https : __message__",
+ "nodejs-version": "httpsRefreshInterval nécessite Node.js 11 ou version ultérieure",
+ "function-required": "httpsRefreshInterval nécessite que la propriété https soit une fonction"
+ }
+ },
+ "api": {
+ "flows": {
+ "error-save": "Erreur lors de l'enregistrement des flux : __message__",
+ "error-reload": "Erreur lors du rechargement des flux : __message__"
+ },
+ "library": {
+ "error-load-entry": "Erreur lors du chargement de l'entrée de la bibliothèque '__path__' : __message__",
+ "error-save-entry": "Erreur lors de l'enregistrement de l'entrée de la bibliothèque '__path__' : __message__",
+ "error-load-flow": "Erreur lors du chargement du flux '__path__' : __message__",
+ "error-save-flow": "Erreur lors de l'enregistrement du flux '__path__' : __message__"
+ },
+ "nodes": {
+ "enabled": "Types de noeuds activés :",
+ "disabled": "Types de noeuds désactivés :",
+ "error-enable": "Échec de l'activation du noeud :"
+ }
+ },
+ "comms": {
+ "error": "Erreur de canal de communication: __message__",
+ "error-server": "Erreur de communication avec le serveur : __message__",
+ "error-send": "Erreur d'envoi de communication : __message__"
+ },
+ "settings": {
+ "user-not-available": "Impossible d'enregistrer les paramètres utilisateur : __message__",
+ "not-available": "Paramètres non disponibles",
+ "property-read-only": "La propriété '__prop__' est en lecture seule",
+ "readonly-mode": "Exécution en mode lecture seule. Les modifications ne seront pas enregistrées."
+ },
+ "library": {
+ "unknownLibrary": "Bibliothèque inconnue : __library__",
+ "unknownType": "Type de bibliothèque inconnu : __type__",
+ "readOnly": "La bibliothèque __library__ est en lecture seule",
+ "failedToInit": "Échec de l'initialisation de la bibliothèque __library__ : __error__",
+ "invalidProperty": "Propriété invalide __prop__ : '__value__'"
+ },
+ "nodes": {
+ "credentials": {
+ "error": "Erreur lors du chargement des identifiants : __message__",
+ "error-saving": "Erreur lors de l'enregistrement des identifiants : __message__",
+ "not-registered": "Le type d'identifiant '__type__' n'a pas été enregistré",
+ "system-key-warning": "\n\n---------------------------------------------------------------------\nVotre fichier contenant les identifiants de flux est chiffré à l'aide d'une clé générée par le système.\n\nSi la clé générée par le système est perdue pour une raison quelconque, votre fichier contenant\nles identifiants ne sera pas récupérable, vous devrez le supprimer et ressaisir vos identifiants.\n\nVous pouvez définir votre propre clé en utilisant l'option 'credentialSecret' dans\nvotre fichier de paramètres. Node-RED rechiffrera alors votre fichier contenant les identifiants\nà l'aide de la clé que vous avez choisie la prochaine fois que vous déploierez une modification.\n---------------------------------------------------------------------\n",
+ "unencrypted": "Utilisation d'identifiants non chiffrés",
+ "encryptedNotFound": "Identifiants chiffrés introuvables"
+ },
+ "flows": {
+ "safe-mode": "Les flux se sont arrêtés en mode sans échec. Déployer les pour commencer.",
+ "registered-missing": "Type manquant enregistré : __type__",
+ "error": "Erreur lors du chargement des flux : __message__",
+ "starting-modified-nodes": "Démarrage des noeuds modifiés",
+ "starting-modified-flows": "Démarrage des flux modifiés",
+ "starting-flows": "Démarrage des flux",
+ "started-modified-nodes": "noeuds modifiés démarrés",
+ "started-modified-flows": "Flux modifiés démarrés",
+ "started-flows": "Flux démarrés",
+ "stopping-modified-nodes": "Arrêt des noeuds modifiés",
+ "stopping-modified-flows": "Arrêt des flux modifiés",
+ "stopping-flows": "Arrêt des flux",
+ "stopped-modified-nodes": "noeuds modifiés arrêtés",
+ "stopped-modified-flows": "Flux modifiés arrêtés",
+ "stopped-flows": "Flux arrêtés",
+ "stopped": "Arrêté",
+ "stopping-error": "Erreur lors de l'arrêt du noeud : __message__",
+ "updated-flows": "Flux mis à jour",
+ "added-flow": "Ajout du flux : __label__",
+ "updated-flow": "Flux mis à jour : __label__",
+ "removed-flow": "Flux supprimé : __label__",
+ "missing-types": "En attente d'enregistrement des types manquants :",
+ "missing-type-provided": " - __type__ (fourni par le module npm __module__)",
+ "missing-type-install-1": "Pour installer l'un des modules manquants, exécuter :",
+ "missing-type-install-2": "dans le répertoire :"
+ },
+ "flow": {
+ "unknown-type": "Type inconnu : __type__",
+ "missing-types": "types manquants",
+ "error-loop": "Le message a dépassé le nombre maximum de captures (catches)"
+ },
+ "index": {
+ "unrecognised-id": "Identifiant non reconnu : __id__",
+ "type-in-use": "Type en cours d'utilisation : __msg__",
+ "unrecognised-module": "Module non reconnu : __module__"
+ },
+ "registry": {
+ "localfilesystem": {
+ "module-not-found": "Impossible de trouver le module '__module__'"
+ }
+ }
+ },
+ "storage": {
+ "index": {
+ "forbidden-flow-name": "nom du flux interdit"
+ },
+ "localfilesystem": {
+ "user-dir": "Répertoire utilisateur : __path__",
+ "flows-file": "Fichier des flux : __path__",
+ "create": "Création d'un nouveau fichier __type__",
+ "empty": "Le fichier __type__ existant est vide",
+ "invalid": "Le fichier __type__ existant n'est pas un json valide",
+ "restore": "Restauration de la sauvegarde du fichier __type__ : __path__",
+ "restore-fail": "La restauration de la sauvegarde du fichier __type__ a échoué : __message__",
+ "fsync-fail": "Échec du vidage du fichier __path__ sur le disque : __message__",
+ "warn_name": "Le nom du fichier de flux n'est pas défini. Génération du nom à l'aide du nom d'hôte.",
+ "projects": {
+ "changing-project": "Définition du projet actif : __project__",
+ "active-project": "Projet actif : __project__",
+ "projects-directory": "Répertoire des projets : __projectsDirectory__",
+ "project-not-found": "Projet introuvable : __project__",
+ "no-active-project": "Aucun projet actif : utilisation du fichier de flux par défaut",
+ "disabled": "Projets désactivés : editorTheme.projects.enabled=false",
+ "disabledNoFlag": "Projets désactivés : définisser editorTheme.projects.enabled=true pour activer",
+ "git-not-found": "Projets désactivés : commande git introuvable",
+ "git-version-old": "Projets désactivés : git __version__ non pris en charge. Nécessite 2.x",
+ "summary": "Un projet Node-RED",
+ "readme": "### À propos\n\nCeci est le fichier README.md de votre projet. Il aide les utilisateurs à comprendre ce que fait votre\nprojet, comment l'utiliser et tout ce qu'ils peuvent avoir besoin de savoir."
+ }
+ }
+ },
+ "context": {
+ "log-store-init": "Stockage contextuel : '__name__' [__info__]",
+ "error-loading-module": "Erreur lors du chargement du stockage contextuel : __message__",
+ "error-loading-module2": "Erreur lors du chargement du stockage contextuel '__module__' : __message__",
+ "error-module-not-defined": "Option 'module' manquante dans le stockage contextuel '__storage__'",
+ "error-invalid-module-name": "Nom du stockage contextuel invalide : '__name__'",
+ "error-invalid-default-module": "Stockage contextuel par défaut inconnu : '__storage__'",
+ "unknown-store": "Stockage contextuel inconnu '__name__' spécifié. Utilisation du stockage par défaut.",
+ "localfilesystem": {
+ "invalid-json": "JSON non valide dans le fichier de contexte '__file__'",
+ "error-circular": "Le contexte __scope__ contient une référence circulaire qui ne peut pas être persistante",
+ "error-write": "Erreur d'écriture du contexte : __message__"
+ }
+ }
+}
From a9b6eaa31fb76e008d37d09f654d860d03f459ad Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Fri, 2 Dec 2022 18:15:06 +0100
Subject: [PATCH 058/178] Add French option in other languages
---
.../node_modules/@node-red/editor-client/locales/de/editor.json | 1 +
.../@node-red/editor-client/locales/en-US/editor.json | 1 +
.../node_modules/@node-red/editor-client/locales/ja/editor.json | 1 +
.../node_modules/@node-red/editor-client/locales/ru/editor.json | 1 +
.../@node-red/editor-client/locales/zh-CN/editor.json | 1 +
.../@node-red/editor-client/locales/zh-TW/editor.json | 1 +
6 files changed, 6 insertions(+)
diff --git a/packages/node_modules/@node-red/editor-client/locales/de/editor.json b/packages/node_modules/@node-red/editor-client/locales/de/editor.json
index 93a2f5946..f38119456 100755
--- a/packages/node_modules/@node-red/editor-client/locales/de/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/de/editor.json
@@ -1175,6 +1175,7 @@
"languages": {
"de": "Deutsch",
"en-US": "Englisch",
+ "fr": "Französisch",
"ja": "Japanisch",
"ko": "Koreanisch",
"ru": "Russisch",
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 0300a220f..6e1d52f94 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -1179,6 +1179,7 @@
"languages": {
"de": "German",
"en-US": "English",
+ "fr": "French",
"ja": "Japanese",
"ko": "Korean",
"ru": "Russian",
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index b07b8e583..4f0135959 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -1179,6 +1179,7 @@
"languages": {
"de": "ドイツ語",
"en-US": "英語",
+ "fr": "フランス語",
"ja": "日本語",
"ko": "韓国語",
"ru": "ロシア語",
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/editor.json b/packages/node_modules/@node-red/editor-client/locales/ru/editor.json
index d669b3f09..69108711a 100755
--- a/packages/node_modules/@node-red/editor-client/locales/ru/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ru/editor.json
@@ -1133,6 +1133,7 @@
"languages" : {
"de": "Немецкий",
"en-US": "Английский",
+ "fr": "Французский",
"ja": "Японский",
"ko": "Корейский",
"ru": "Русский",
diff --git a/packages/node_modules/@node-red/editor-client/locales/zh-CN/editor.json b/packages/node_modules/@node-red/editor-client/locales/zh-CN/editor.json
index eca5878ae..10f06bc89 100644
--- a/packages/node_modules/@node-red/editor-client/locales/zh-CN/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/zh-CN/editor.json
@@ -1087,6 +1087,7 @@
"languages": {
"de": "德语",
"en-US": "英文",
+ "fr": "法语",
"ja": "日语",
"ko": "韩文",
"zh-CN": "简体中文",
diff --git a/packages/node_modules/@node-red/editor-client/locales/zh-TW/editor.json b/packages/node_modules/@node-red/editor-client/locales/zh-TW/editor.json
index 42316176f..6bce82048 100644
--- a/packages/node_modules/@node-red/editor-client/locales/zh-TW/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/zh-TW/editor.json
@@ -1088,6 +1088,7 @@
"languages": {
"de": "德語",
"en-US": "英語",
+ "fr": "法語",
"ja": "日語",
"ko": "韓語",
"zh-CN": "簡體中文",
From 5be378e2661a1c62fc88bf3c7c6965430ef36349 Mon Sep 17 00:00:00 2001
From: GogoVega
Date: Fri, 2 Dec 2022 18:27:36 +0100
Subject: [PATCH 059/178] fix: Typos (infinitif)
---
.../nodes/locales/fr/common/20-inject.html | 2 +-
.../nodes/locales/fr/common/60-link.html | 2 +-
.../nodes/locales/fr/common/98-unknown.html | 4 ++--
.../nodes/locales/fr/function/80-template.html | 8 ++++----
.../@node-red/nodes/locales/fr/messages.json | 18 +++++++++---------
.../nodes/locales/fr/network/10-mqtt.html | 8 ++++----
.../nodes/locales/fr/network/21-httpin.html | 2 +-
.../locales/fr/network/21-httprequest.html | 2 +-
.../nodes/locales/fr/network/31-tcpin.html | 2 +-
.../nodes/locales/fr/network/32-udp.html | 2 +-
.../nodes/locales/fr/sequence/17-split.html | 4 ++--
.../nodes/locales/fr/storage/10-file.html | 2 +-
12 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html b/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
index a506f584e..94f3d4ec1 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/20-inject.html
@@ -35,6 +35,6 @@
supérieur à un jour, vous devriez envisager d'utiliser un noeud de planificateur capable de faire face aux pannes de courant et aux redémarrages.
Remarque : Les options "Intervalle entre les heures" et "à une heure précise" utilisent le système cron standard.
Cela signifie que pour la première option, vous pouvez envoyer un message à intervalle régulier entre les heures voulues.
- Si vous voulez envoyer un message toutes les minutes à partir de maintenant, utilisez l'option "intervalle".
+ Si vous voulez envoyer un message toutes les minutes à partir de maintenant, utiliser l'option "intervalle".
Remarque : Pour inclure une nouvelle ligne dans une chaîne, vous devez utiliser un noeud de fonction pour créer la charge utile.
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
index 788ebcc40..1f53d8027 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/60-link.html
@@ -42,7 +42,7 @@
Entrées
Détails
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html b/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
index 2854c7c42..ae2f7889e 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/common/98-unknown.html
@@ -19,10 +19,10 @@
Détails
Si vous déployez avec le noeud dans cet état, sa configuration sera préservée, mais
le flux ne démarrera pas tant que le type manquant ne sera pas installé.
- Utilisez l'option Menu - Gérer la palette
+
Utiliser l'option Menu - Gérer la palette
pour rechercher et installer des noeuds, ou npm install <module> pour
installer, tous les modules manquants et redémarrer Node-RED et réimporter les noeuds.
- Il est possible que ce type de noeud soit déjà installé, mais qu'il manque une dépendance. Vérifiez au démarrage de Node-RED
+
Il est possible que ce type de noeud soit déjà installé, mais qu'il manque une dépendance. Vérifier au démarrage de Node-RED
le log pour tous les messages d'erreurs associés au type de noeud manquant.
Sinon, vous devez contacter l'auteur du flux pour obtenir une copie du type de noeud manquant.
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html b/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
index 98945684d..e18121eb7 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/function/80-template.html
@@ -43,14 +43,14 @@
}
La propriété résultante sera :
Bonjour Kevin. Aujourd'hui nous sommes le lundi
- Il est possible d'utiliser une propriété du contexte de flux ou du contexte global. Utilisez simplement {{flow.name}}
ou
- {{global.name}}
, ou pour le stockage persistant store
, utilisez {{flow[store].name}}
ou
+
Il est possible d'utiliser une propriété du contexte de flux ou du contexte global. Utiliser simplement {{flow.name}}
ou
+ {{global.name}}
, ou pour le stockage persistant store
, utiliser {{flow[store].name}}
ou
{{global[store].name}}
.
Remarque : Par défaut, moustache échappera toutes les entités non alphanumériques ou HTML dans les valeurs qu'il remplace.
- Pour éviter cela, utilisez des accolades {{{triple}}}
.
+ Pour éviter cela, utiliser des accolades {{{triple}}}
.
Si vous devez utiliser {{ }}
dans votre contenu, vous pouvez modifier les caractères
utilisé pour marquer les sections de modèle. Par exemple, pour utiliser [[ ]]
- à la place, ajoutez la ligne suivante en haut du modèle :
+ à la place, ajouter la ligne suivante en haut du modèle :
{{=[[ ]]=}}
Utilisation des variables d'environnement
Le noeud de modèle peut accéder aux variables d'environnement en utilisant la syntaxe :
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/messages.json b/packages/node_modules/@node-red/nodes/locales/fr/messages.json
index 0f20c485c..e83ef5171 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/messages.json
+++ b/packages/node_modules/@node-red/nodes/locales/fr/messages.json
@@ -382,7 +382,7 @@
"trigger": "déclencher",
"trigger-block": "déclencher et bloquer",
"trigger-loop": "renvoyer chaque",
- "reset": "Réinitialisez le déclencheur si :",
+ "reset": "Réinitialiser le déclencheur si :",
"resetMessage": "msg.reset est défini",
"resetPayload": "msg.payload est le même",
"resetprompt": "facultatif",
@@ -397,7 +397,7 @@
"label": {
"unknown": "inconnu"
},
- "tip": "Ce noeud est un type inconnu de votre installation Node-RED.
Si vous déployez avec le noeud dans cet état, sa configuration sera préservée, mais le flux ne démarrera pas avant que le type manquant soit installé.
Consultez la barre latérale d'informations pour plus d'aide
"
+ "tip": "Ce noeud est un type inconnu de votre installation Node-RED.
Si vous déployez avec le noeud dans cet état, sa configuration sera préservée, mais le flux ne démarrera pas avant que le type manquant soit installé.
Consulter la barre latérale d'informations pour plus d'aide
"
},
"mqtt": {
"label": {
@@ -446,7 +446,7 @@
"staticTopic": "S'abonner à un seul sujet",
"dynamicTopic": "Abonnement dynamique",
"auto-connect": "Se connecter automatiquement",
- "auto-mode-depreciated": "Cette option est dépréciée. Veuillez utiliser le nouveau mode de détection automatique.",
+ "auto-mode-depreciated": "Cette option est dépréciée. Veuiller utiliser le nouveau mode de détection automatique.",
"none": "aucun",
"other": "autre"
},
@@ -463,9 +463,9 @@
"placeholder": {
"clientid": "Laisser vide pour s'auto générer",
"clientid-nonclean": "Doit être défini pour les sessions non propres",
- "will-topic": "Laissez vide pour désactiver le message perte de connexion",
- "birth-topic": "Laissez vide pour désactiver le message au démarrage",
- "close-topic": "Laissez vide pour désactiver le message de fermeture"
+ "will-topic": "Laisser vide pour désactiver le message perte de connexion",
+ "birth-topic": "Laisser vide pour désactiver le message au démarrage",
+ "close-topic": "Laisser vide pour désactiver le message de fermeture"
},
"state": {
"connected": "Connecté au courtier : __broker__",
@@ -484,7 +484,7 @@
},
"true": "vraie",
"false": "faux",
- "tip": "Conseil : laissez le sujet, le qos ou le contenu vide si vous souhaitez les définir via les propriétés du msg.",
+ "tip": "Conseil : laisser le sujet, le qos ou le contenu vide si vous souhaitez les définir via les propriétés du msg.",
"errors": {
"not-defined": "sujet non défini",
"missing-config": "configuration du courtier manquante",
@@ -699,7 +699,7 @@
},
"tip": {
"in": "Conseil : Assurez-vous que votre pare-feu autorise l'entrée des données.",
- "out": "Conseil : laissez l'adresse et le port vides si vous souhaitez définir à l'aide de msg.ip
et msg.port
.",
+ "out": "Conseil : laisser l'adresse et le port vides si vous souhaitez définir à l'aide de msg.ip
et msg.port
.",
"port": "Ports déjà utilisés : "
},
"status": {
@@ -981,7 +981,7 @@
},
"errors": {
"nofilename": "Aucun nom de fichier spécifié",
- "invaliddelete": "Attention : suppression non valide. Veuillez utiliser une option de suppression spécifique dans la boîte de dialogue de configuration.",
+ "invaliddelete": "Attention : suppression non valide. Veuiller utiliser une option de suppression spécifique dans la boîte de dialogue de configuration.",
"deletefail": "échec de la suppression du fichier : __error__",
"writefail": "échec de l'écriture dans le fichier : __error__",
"appendfail": "échec de l'ajout au fichier : __error__",
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
index 8706a616d..cc93a007f 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/10-mqtt.html
@@ -68,7 +68,7 @@
Si cette propriété est définie et que le courtier est déjà connecté, une erreur
sera enregistré à moins qu'il n'ait la propriété force
définie - auquel cas il sera
- déconnecté du courtier, appliquez les nouveaux paramètres et reconnectez-vous.
+ déconnecté du courtier, appliquer les nouveaux paramètres et reconnectez-vous.
@@ -79,7 +79,7 @@
Entrées
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html
index f9f0f4c2e..7de4532ce 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httpin.html
@@ -95,6 +95,6 @@ msg.cookies = {
path
- (Chaîne) chemin du cookie. Par défaut à /
value
- (Chaîne) la valeur à utiliser pour le cookie
- Pour supprimer un cookie, définissez sa valeur value
sur null
.
+ Pour supprimer un cookie, définisser sa valeur value
sur null
.
diff --git a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html
index 87ccbd134..b757ba31a 100644
--- a/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html
+++ b/packages/node_modules/@node-red/nodes/locales/fr/network/21-httprequest.html
@@ -42,7 +42,7 @@
Entrées
From 156c3984a7ea43520da4bf6c2fa9939f476a3485 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Mon, 12 Dec 2022 01:23:00 +0900
Subject: [PATCH 095/178] Ignore commit error in project feature
---
.../runtime/lib/storage/localfilesystem/projects/git/index.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
index 111365307..8aabcebe2 100644
--- a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
@@ -71,6 +71,8 @@ function runGitCommand(args,cwd,env,emit) {
err.code = "git_missing_user";
} else if (/name consists only of disallowed characters/i.test(stderr)) {
err.code = "git_missing_user";
+ } else if (/nothing (add )?to commit/i.test(stdout)) {
+ return stdout;
}
throw err;
})
From f6901cd19f774d26cb3ad7187302e4acce304a31 Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Mon, 19 Dec 2022 09:50:29 +0000
Subject: [PATCH 096/178] CSV node replace replace with replaceAll just in case
mentioned in Issue #3989
---
packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
index 9c55fa2b6..504e184d2 100644
--- a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
+++ b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
@@ -19,9 +19,9 @@ module.exports = function(RED) {
function CSVNode(n) {
RED.nodes.createNode(this,n);
this.template = (n.temp || "");
- this.sep = (n.sep || ',').replace("\\t","\t").replace("\\n","\n").replace("\\r","\r");
+ this.sep = (n.sep || ',').replaceAll("\\t","\t").replaceAll("\\n","\n").replaceAll("\\r","\r");
this.quo = '"';
- this.ret = (n.ret || "\n").replace("\\n","\n").replace("\\r","\r");
+ this.ret = (n.ret || "\n").replaceAll("\\n","\n").replaceAll("\\r","\r");
this.winflag = (this.ret === "\r\n");
this.lineend = "\n";
this.multi = n.multi || "one";
From 24291918386c9fbef309a6ff8caeffb99ecb6ec8 Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Mon, 19 Dec 2022 13:48:21 +0000
Subject: [PATCH 097/178] CSV - swap to regex replace for node14 support
---
packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
index 504e184d2..04f2bb71f 100644
--- a/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
+++ b/packages/node_modules/@node-red/nodes/core/parsers/70-CSV.js
@@ -19,9 +19,9 @@ module.exports = function(RED) {
function CSVNode(n) {
RED.nodes.createNode(this,n);
this.template = (n.temp || "");
- this.sep = (n.sep || ',').replaceAll("\\t","\t").replaceAll("\\n","\n").replaceAll("\\r","\r");
+ this.sep = (n.sep || ',').replace(/\\t/g,"\t").replace(/\\n/g,"\n").replace(/\\r/g,"\r");
this.quo = '"';
- this.ret = (n.ret || "\n").replaceAll("\\n","\n").replaceAll("\\r","\r");
+ this.ret = (n.ret || "\n").replace(/\\n/g,"\n").replace(/\\r/g,"\r");
this.winflag = (this.ret === "\r\n");
this.lineend = "\n";
this.multi = n.multi || "one";
From 93a191123210251b104adac35d1ec38c5aab941a Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Mon, 19 Dec 2022 21:26:20 +0000
Subject: [PATCH 098/178] CSV - Add note about msg.reset to info page
to close #3976
---
.../@node-red/nodes/locales/en-US/parsers/70-CSV.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/en-US/parsers/70-CSV.html
index dc4dd98ff..baa3b036b 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/parsers/70-CSV.html
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/parsers/70-CSV.html
@@ -47,5 +47,6 @@
If 'include null values' option is checked, null values will be returned in result, ie. middle value '"1",,3'.
The node can accept a multi-part input as long as the parts
property is set correctly, for example from a file-in node or split node.
If outputting multiple messages they will have their parts
property set and form a complete message sequence.
+ If the node is set to only send column headers once, then setting msg.reset
to any value will cause the node to resend the headers.
Note: the column template must be comma separated - even if a different separator is chosen for the data.
From 5670bd82658b15378320b2d49ce92f93e42a2c6f Mon Sep 17 00:00:00 2001
From: Ben Hardill
Date: Sat, 24 Dec 2022 19:32:33 +0000
Subject: [PATCH 099/178] Support form-data arrays
---
.../@node-red/nodes/core/network/21-httprequest.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js b/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js
index 9eac4da91..ad283657d 100644
--- a/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js
+++ b/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js
@@ -435,6 +435,10 @@ in your Node-RED user directory (${RED.settings.userDir}).
formData.append(opt, val);
} else if (typeof val === 'object' && val.hasOwnProperty('value')) {
formData.append(opt,val.value,val.options || {});
+ } else if (Array.isArray(val)) {
+ for (var i=0; i
Date: Sat, 24 Dec 2022 20:35:51 +0000
Subject: [PATCH 100/178] Add tests
---
.../nodes/core/network/21-httprequest_spec.js | 36 ++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/test/nodes/core/network/21-httprequest_spec.js b/test/nodes/core/network/21-httprequest_spec.js
index 0348dcea1..7584c5a54 100644
--- a/test/nodes/core/network/21-httprequest_spec.js
+++ b/test/nodes/core/network/21-httprequest_spec.js
@@ -2322,7 +2322,7 @@ describe('HTTP Request Node', function() {
var n2 = helper.getNode("n2");
n2.on('input', function(msg) {
try{
- msg.payload.should.equal(`RequestError: Parse Error: Missing expected CR after header value : http://localhost:${port}/`)
+ msg.payload.should.startWith(`RequestError: Parse Error:`)
done()
} catch (err) {
done(err)
@@ -2334,4 +2334,38 @@ describe('HTTP Request Node', function() {
});
}
});
+
+ describe('multipart form posts', function() {
+ it('should send arrays as multiple entries', function (done) {
+ const flow = [
+ {
+ id: 'n1', type: 'http request', wires: [['n2']], method: 'POST', ret: 'obj', url: getTestURL('/file-upload'), headers: [
+ ]
+ },
+ { id: "n2", type: "helper" }
+ ];
+ helper.load(httpRequestNode, flow, function() {
+ var n1 = helper.getNode("n1");
+ var n2 = helper.getNode("n2");
+ n2.on('input', function(msg){
+ try {
+ msg.payload.body.should.have.property('foo')
+ msg.payload.body.list.should.deepEqual(['a','b','c'])
+ done()
+ } catch (e) {
+ done(e)
+ }
+ });
+ n1.receive({
+ headers: {
+ 'content-type': 'multipart/form-data'
+ },
+ payload: {
+ foo: 'bar',
+ list: [ 'a', 'b', 'c' ]
+ }
+ });
+ })
+ });
+ })
});
From ce57ba80ebe635755dd1f97db61529c18bb9a63c Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Tue, 27 Dec 2022 14:56:32 +0000
Subject: [PATCH 101/178] Fix mqtt nodes not reconnected on modified-flows
deploy
---
.../@node-red/nodes/core/network/10-mqtt.js | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js
index 3e789be7f..0a7ed6dfa 100644
--- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js
+++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js
@@ -295,7 +295,7 @@ module.exports = function(RED) {
/* mute error - it simply isnt JSON, just leave payload as a string */
}
}
- } //else {
+ } //else {
//leave as buffer
//}
}
@@ -357,7 +357,7 @@ module.exports = function(RED) {
return;
}
done(err);
- });
+ });
} else {
done();
}
@@ -718,9 +718,10 @@ module.exports = function(RED) {
node.deregister = function(mqttNode, done, autoDisconnect) {
delete node.users[mqttNode.id];
if (autoDisconnect && !node.closing && node.connected && Object.keys(node.users).length === 0) {
- node.disconnect();
+ node.disconnect(done);
+ } else {
+ done();
}
- done();
};
node.canConnect = function() {
return !node.connected && !node.connecting;
@@ -854,7 +855,7 @@ module.exports = function(RED) {
let waitEnd = (client, ms) => {
return new Promise( (resolve, reject) => {
node.closing = true;
- if(!client) {
+ if(!client) {
resolve();
} else {
const t = setTimeout(() => {
@@ -1033,7 +1034,7 @@ module.exports = function(RED) {
/**
* Add event handlers to the MQTT.js client and track them so that
- * we do not remove any handlers that the MQTT client uses internally.
+ * we do not remove any handlers that the MQTT client uses internally.
* Use {@link node._clientRemoveListeners `node._clientRemoveListeners`} to remove handlers
* @param {string} event The name of the event
* @param {function} handler The handler for this event
@@ -1041,11 +1042,11 @@ module.exports = function(RED) {
node._clientOn = function(event, handler) {
node.clientListeners.push({event, handler})
node.client.on(event, handler)
- }
+ }
/**
- * Remove event handlers from the MQTT.js client & only the events
- * that we attached in {@link node._clientOn `node._clientOn`}.
+ * Remove event handlers from the MQTT.js client & only the events
+ * that we attached in {@link node._clientOn `node._clientOn`}.
* * If `event` is omitted, then all events matching `handler` are removed
* * If `handler` is omitted, then all events named `event` are removed
* * If both parameters are omitted, then all events are removed
From f7371626973bbaf4cb84713179ff0b4248020fba Mon Sep 17 00:00:00 2001
From: Mauricio Bonani
Date: Thu, 29 Dec 2022 09:47:05 -0500
Subject: [PATCH 102/178] Let themes change radialMenu text colors
---
.../@node-red/editor-client/src/sass/radialMenu.scss | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/radialMenu.scss b/packages/node_modules/@node-red/editor-client/src/sass/radialMenu.scss
index 3348e945a..db1bba3bb 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/radialMenu.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/radialMenu.scss
@@ -41,6 +41,7 @@
height: 50px;
background: var(--red-ui-secondary-background);
border: 2px solid var(--red-ui-primary-border-color);
+ color: var(--red-ui-primary-text-color);
text-align: center;
line-height:50px;
@@ -51,7 +52,7 @@
.red-ui-editor-radial-menu-opt-disabled {
border-color: var(--red-ui-tertiary-border-color);
- color: var(--red-ui-tertiary-border-color);
+ color: var(--red-ui-secondary-text-color-disabled);
}
.red-ui-editor-radial-menu-opt-active {
background: var(--red-ui-secondary-background-hover);
From a661bc1d237987850d3398b1a5739933cd022cfe Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Sat, 31 Dec 2022 00:41:35 +0900
Subject: [PATCH 103/178] Add Japanese translation for v3.1.0-beta.0
---
.../@node-red/editor-client/locales/ja/editor.json | 4 +++-
.../@node-red/nodes/locales/ja/parsers/70-CSV.html | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index 5ea5a28dd..d515eb557 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -1355,6 +1355,8 @@
"start-flows": "フローを開始",
"stop-flows": "フローを停止",
"copy-item-url": "要素のURLをコピー",
- "copy-item-edit-url": "要素の編集URLをコピー"
+ "copy-item-edit-url": "要素の編集URLをコピー",
+ "move-flow-to-start": "フローを先頭に移動",
+ "move-flow-to-end": "フローを末尾に移動"
}
}
diff --git a/packages/node_modules/@node-red/nodes/locales/ja/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/ja/parsers/70-CSV.html
index a7f144907..60645e4cc 100644
--- a/packages/node_modules/@node-red/nodes/locales/ja/parsers/70-CSV.html
+++ b/packages/node_modules/@node-red/nodes/locales/ja/parsers/70-CSV.html
@@ -43,5 +43,6 @@
「null値を含む」オプションがチェックされている場合、null値が結果に返されます。つまり「"1",,3」の真ん中の値がnullになります。
file-inノードやsplitノードが出力するメッセージの様に、parts
プロパティが正しく設定されている場合、メッセージ列を入力として受け付けます。
CSVを複数のメッセージに変換して出力する場合、出力がメッセージ列となるようparts
プロパティを設定します。
+ ヘッダを一度だけ送信するよう設定している場合、任意の値を持つmsg.reset
を渡すと、再度ヘッダを含めて送信できるようになります。
注: カンマ以外の区切り文字を設定した場合であっても、「列名」はカンマ区切りとしてください。
From 1efd1a52a7337733b80b334d0bbf196f1006a05b Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Sun, 1 Jan 2023 19:36:49 +0000
Subject: [PATCH 104/178] Ensure modules containing plugins and nodes are
loaded properly Fixes #3523
---
.../@node-red/registry/lib/loader.js | 28 +++++--------------
1 file changed, 7 insertions(+), 21 deletions(-)
diff --git a/packages/node_modules/@node-red/registry/lib/loader.js b/packages/node_modules/@node-red/registry/lib/loader.js
index 3f0487750..d125156ab 100644
--- a/packages/node_modules/@node-red/registry/lib/loader.js
+++ b/packages/node_modules/@node-red/registry/lib/loader.js
@@ -126,38 +126,24 @@ function loadModuleFiles(modules) {
}
var pluginList;
var nodeList;
-
return Promise.all(pluginPromises).then(function(results) {
pluginList = results.filter(r => !!r);
- // Initial plugin load has happened. Ensure modules that provide
- // plugins are in the registry now.
- for (var module in modules) {
- if (modules.hasOwnProperty(module)) {
- if (modules[module].plugins && Object.keys(modules[module].plugins).length > 0) {
- // Add the modules for plugins
- if (!modules[module].err) {
- registry.addModule(modules[module]);
- }
- }
- }
- }
- return loadNodeSetList(pluginList);
- }).then(function() {
- return Promise.all(nodePromises);
+ return Promise.all(nodePromises)
}).then(function(results) {
nodeList = results.filter(r => !!r);
// Initial node load has happened. Ensure remaining modules are in the registry
for (var module in modules) {
if (modules.hasOwnProperty(module)) {
- if (!modules[module].plugins || Object.keys(modules[module].plugins).length === 0) {
- if (!modules[module].err) {
- registry.addModule(modules[module]);
- }
+ if (!modules[module].err) {
+ registry.addModule(modules[module]);
}
}
}
+ }).then(function() {
+ return loadNodeSetList(pluginList);
+ }).then(function() {
return loadNodeSetList(nodeList);
- });
+ })
}
async function loadPluginTemplate(plugin) {
From 74794fea099f8ff511deb0fd8ece84cc2e095dc7 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Sun, 1 Jan 2023 22:21:49 +0000
Subject: [PATCH 105/178] Split node: avoid duplicate done call for buffer
split Fixes #3982
---
.../node_modules/@node-red/nodes/core/sequence/17-split.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/core/sequence/17-split.js b/packages/node_modules/@node-red/nodes/core/sequence/17-split.js
index 325cf85b5..4e71fe6c7 100644
--- a/packages/node_modules/@node-red/nodes/core/sequence/17-split.js
+++ b/packages/node_modules/@node-red/nodes/core/sequence/17-split.js
@@ -251,7 +251,9 @@ module.exports = function(RED) {
}
else {
node.buffer = buff.slice(p,buff.length);
- node.pendingDones.push(done);
+ if (node.buffer.length > 0) {
+ node.pendingDones.push(done);
+ }
}
if (node.buffer.length == 0) {
done();
From 7c306a84302837eb089dcde80d0b4058afc98e4d Mon Sep 17 00:00:00 2001
From: Dirk-Jan Faber
Date: Tue, 3 Jan 2023 13:41:31 +0100
Subject: [PATCH 106/178] Comment node: Clarify where the text will appear
The text will appear in the information tab of the side panel and not in the help tab of the side panel.
---
.../@node-red/nodes/locales/en-US/common/90-comment.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/nodes/locales/en-US/common/90-comment.html b/packages/node_modules/@node-red/nodes/locales/en-US/common/90-comment.html
index 56735d51f..e3ae5e782 100644
--- a/packages/node_modules/@node-red/nodes/locales/en-US/common/90-comment.html
+++ b/packages/node_modules/@node-red/nodes/locales/en-US/common/90-comment.html
@@ -18,5 +18,5 @@
A node you can use to add comments to your flows.
Details
The edit panel will accept Markdown syntax. The text will be rendered into
- this information side panel.
+ the information side panel.
From 7e8b7602b41f6fe34f01169b1438668d3b28675a Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Thu, 5 Jan 2023 10:28:48 +0900
Subject: [PATCH 107/178] add support for inline image drag and drop to
markdown editor
---
.../editor-client/locales/en-US/editor.json | 1 +
.../editor-client/locales/ja/editor.json | 1 +
.../src/js/ui/editors/code-editor.js | 12 +++-
.../src/js/ui/editors/markdown.js | 67 +++++++++++++++++--
.../editor-client/src/sass/dragdrop.scss | 24 +++++++
5 files changed, 98 insertions(+), 7 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 8de24c3c9..237a2e0ed 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -53,6 +53,7 @@
"confirmDelete": "Confirm delete",
"delete": "Are you sure you want to delete '__label__'?",
"dropFlowHere": "Drop the flow here",
+ "dropImageHere": "Drop the image here",
"addFlow": "Add flow",
"addFlowToRight": "Add flow to the right",
"hideFlow": "Hide flow",
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index 5ea5a28dd..cdc650117 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -53,6 +53,7 @@
"confirmDelete": "削除の確認",
"delete": "本当に '__label__' を削除しますか?",
"dropFlowHere": "ここにフローをドロップしてください",
+ "dropImageHere": "ここに画像ファイルをドロップしてください",
"addFlow": "フローの追加",
"addFlowToRight": "右側にフローを追加",
"hideFlow": "フローを非表示",
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/code-editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/code-editor.js
index 7cee2026b..b92881764 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/code-editor.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/code-editor.js
@@ -45,6 +45,9 @@
selectedCodeEditor = RED.editor.codeEditor[defaultEditor];
initialised = selectedCodeEditor.init();
}
+
+ $('
').appendTo('#red-ui-editor');
+ $("#red-ui-image-drop-target").hide();
}
function create(options) {
@@ -64,6 +67,7 @@
options = {};
}
+ var editor = null;
if (this.editor.type === MONACO) {
// compatibility (see above note)
if (!options.element && !options.id) {
@@ -74,10 +78,14 @@
console.warn("createEditor() options.element or options.id is not valid", options);
$("#dialog-form").append('');
}
- return this.editor.create(options);
+ editor = this.editor.create(options);
} else {
- return this.editor.create(options);//fallback to ACE
+ editor = this.editor.create(options);//fallback to ACE
}
+ if (options.mode === "ace/mode/markdown") {
+ RED.editor.customEditTypes['_markdown'].postInit(editor, options);
+ }
+ return editor;
}
return {
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js
index eeb8519e6..57efa90bd 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js
@@ -14,6 +14,55 @@
* limitations under the License.
**/
(function() {
+ /**
+ * Converts dropped image file to date URL
+ */
+ function file2base64Image(file, cb) {
+ var reader = new FileReader();
+ reader.onload = (function (fd) {
+ return function (e) {
+ cb(e.target.result);
+ };
+ })(file);
+ reader.readAsDataURL(file);
+ }
+
+ var initialized = false;
+ var currentEditor = null;
+ /**
+ * Initialize handler for image file drag events
+ */
+ function initImageDrag(elem, editor) {
+ $(elem).on("dragenter", function (ev) {
+ ev.preventDefault();
+ $("#red-ui-image-drop-target").css({display:'table'}).focus();
+ currentEditor = editor;
+ });
+
+ if (!initialized) {
+ initialized = true;
+ $("#red-ui-image-drop-target").on("dragover", function (ev) {
+ ev.preventDefault();
+ }).on("dragleave", function (ev) {
+ $("#red-ui-image-drop-target").hide();
+ }).on("drop", function (ev) {
+ ev.preventDefault();
+ if ($.inArray("Files",ev.originalEvent.dataTransfer.types) != -1) {
+ var files = ev.originalEvent.dataTransfer.files;
+ if (files.length === 1) {
+ var file = files[0];
+ var image = file2base64Image(file, function (image) {
+ var session = currentEditor.getSession();
+ var img = `
\n`;
+ var pos = session.getCursorPosition();
+ session.insert(pos, img);
+ $("#red-ui-image-drop-target").hide();
+ });
+ }
+ }
+ });
+ }
+ }
var toolbarTemplate = ''+
'
@@ -181,6 +181,13 @@
$("#node-input-op2type").val('str');
}
+ $("#node-input-op1").on("change", function() {
+ if ($("#node-input-op1type").val() === "nul") {
+ $("#node-trigger-wait-loop").hide();
+ }
+ else { $("#node-trigger-wait-loop").show(); }
+ });
+
var optionNothing = {value:"nul",label:this._("trigger.output.nothing"),hasValue:false};
var optionPayload = {value:"pay",label:this._("trigger.output.existing"),hasValue:false};
var optionOriginalPayload = {value:"pay",label:this._("trigger.output.original"),hasValue:false};
From ffff8aeb910010f31ff09bd3b07e2ddcb6045454 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Thu, 26 Jan 2023 02:11:34 +0900
Subject: [PATCH 120/178] Fix disabled menu in project feature
---
packages/node_modules/@node-red/editor-client/src/js/red.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/red.js b/packages/node_modules/@node-red/editor-client/src/js/red.js
index 7544434b7..497a93c45 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/red.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/red.js
@@ -321,6 +321,8 @@ var RED = (function() {
loader.end()
RED.notify($("").text(message));
RED.sidebar.info.refresh()
+ RED.menu.setDisabled('menu-item-projects-open',false);
+ RED.menu.setDisabled('menu-item-projects-settings',false);
});
});
return;
From 47bacaf58ad97decefff6d50407fbdcdc850f648 Mon Sep 17 00:00:00 2001
From: Dave Conway-Jones
Date: Thu, 26 Jan 2023 22:13:17 +0000
Subject: [PATCH 121/178] Add count to join and batch node labels
---
.../@node-red/nodes/core/sequence/17-split.html | 7 ++++++-
.../@node-red/nodes/core/sequence/19-batch.html | 9 ++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/nodes/core/sequence/17-split.html b/packages/node_modules/@node-red/nodes/core/sequence/17-split.html
index 9862d4492..72ab55335 100644
--- a/packages/node_modules/@node-red/nodes/core/sequence/17-split.html
+++ b/packages/node_modules/@node-red/nodes/core/sequence/17-split.html
@@ -224,7 +224,12 @@
outputs:1,
icon: "join.svg",
label: function() {
- return this.name||this._("join.join");
+ var nam = this.name||this._("join.join");
+ if (this.mode === "custom" && !isNaN(Number(this.count))) {
+ nam += " "+this.count;
+ if (this.accumulate === true) { nam+= "+"; }
+ }
+ return nam;
},
labelStyle: function() {
return this.name?"node_label_italic":"";
diff --git a/packages/node_modules/@node-red/nodes/core/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/core/sequence/19-batch.html
index 7a02bb6c2..9afb84205 100644
--- a/packages/node_modules/@node-red/nodes/core/sequence/19-batch.html
+++ b/packages/node_modules/@node-red/nodes/core/sequence/19-batch.html
@@ -107,7 +107,14 @@
outputs:1,
icon: "batch.svg",
label: function() {
- return this.name||this._("batch.batch");;
+ var nam = this.name||this._("batch.batch");
+ if (this.mode === "count" && !isNaN(Number(this.count))) {
+ nam += " "+this.count;
+ }
+ if (this.mode === "interval" && !isNaN(Number(this.interval))) {
+ nam += " "+this.interval+"s";
+ }
+ return nam;
},
labelStyle: function() {
return this.name ? "node_label_italic" : "";
From 720d44d53ecc00a493575f3fefe7343b37113a1d Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 30 Jan 2023 10:30:06 +0900
Subject: [PATCH 122/178] fix workspace reference error in case of empty tabs
---
.../@node-red/editor-client/src/js/ui/workspaces.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index d274ba519..4e95ede63 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -195,7 +195,7 @@ RED.workspaces = (function() {
)
}
const currentTabs = workspace_tabs.listTabs()
- const activeIndex = currentTabs.findIndex(id => id === activeWorkspace.id)
+ const activeIndex = currentTabs.findIndex(id => (activeWorkspace && (id === activeWorkspace.id)));
menuItems.push(
{
label: RED._("workspace.moveToStart"),
From 9b1b7437b3c97d1524b03aa040ef745aafedf520 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 30 Jan 2023 10:59:34 +0900
Subject: [PATCH 123/178] disable delete tab menu when single tab exists
---
.../@node-red/editor-client/src/js/ui/workspaces.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index d274ba519..7327fa59e 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -266,7 +266,8 @@ RED.workspaces = (function() {
} else if (tab.type === 'subflow') {
RED.subflow.delete(tab.id)
}
- }
+ },
+ disabled: (workspaceTabCount === 1)
},
{
label: RED._("menu.label.export"),
From 66f9686e48e108e35d466092779e797b2b58336e Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 30 Jan 2023 11:42:53 +0900
Subject: [PATCH 124/178] disable hide all menu if all tabs hidden
---
.../@node-red/editor-client/src/js/ui/workspaces.js | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index d274ba519..d5e80d658 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -143,6 +143,14 @@ RED.workspaces = (function() {
const hiddenflowCount = hiddenFlows.size;
let activeWorkspace = tab || RED.nodes.workspace(RED.workspaces.active()) || RED.nodes.subflow(RED.workspaces.active())
let isFlowDisabled = activeWorkspace ? activeWorkspace.disabled : false
+ const currentTabs = workspace_tabs.listTabs();
+ let flowCount = 0;
+ currentTabs.forEach(tab => {
+ console.log("; TAB: ", tab);
+ if (RED.nodes.workspace(tab)) {
+ flowCount++;
+ }
+ });
var menuItems = []
if (isMenuButton) {
@@ -194,7 +202,6 @@ RED.workspaces = (function() {
}
)
}
- const currentTabs = workspace_tabs.listTabs()
const activeIndex = currentTabs.findIndex(id => id === activeWorkspace.id)
menuItems.push(
{
@@ -236,11 +243,13 @@ RED.workspaces = (function() {
}
)
}
+
menuItems.push(
{
id:"red-ui-tabs-menu-option-add-hide-all-flows",
label: RED._("workspace.hideAllFlows"),
- onselect: "core:hide-all-flows"
+ onselect: "core:hide-all-flows",
+ disabled: (hiddenflowCount === flowCount)
},
{
id:"red-ui-tabs-menu-option-add-show-all-flows",
From 7b79d79f849cca12c3a8e8e3a6065f4c55d94004 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 30 Jan 2023 14:09:01 +0900
Subject: [PATCH 125/178] remove useless console output
---
.../node_modules/@node-red/editor-client/src/js/ui/workspaces.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
index d5e80d658..f2eb5300f 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js
@@ -146,7 +146,6 @@ RED.workspaces = (function() {
const currentTabs = workspace_tabs.listTabs();
let flowCount = 0;
currentTabs.forEach(tab => {
- console.log("; TAB: ", tab);
if (RED.nodes.workspace(tab)) {
flowCount++;
}
From 013ee2f1f47bb92e8f878c65eea2fc7b73a15e50 Mon Sep 17 00:00:00 2001
From: Hiroyasu Nishiyama
Date: Mon, 30 Jan 2023 16:24:52 +0900
Subject: [PATCH 126/178] fix hide subflow tooltip
---
.../@node-red/editor-client/locales/en-US/editor.json | 1 +
.../node_modules/@node-red/editor-client/locales/ja/editor.json | 1 +
.../@node-red/editor-client/src/js/ui/common/tabs.js | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
index 9ffde4df0..ccab81cf0 100755
--- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json
@@ -55,6 +55,7 @@
"dropFlowHere": "Drop the flow here",
"addFlow": "Add flow",
"addFlowToRight": "Add flow to the right",
+ "closeFlow": "Close flow",
"hideFlow": "Hide flow",
"hideOtherFlows": "Hide other flows",
"showAllFlows": "Show all flows (__count__ hidden)",
diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
index 5bd7de5a4..5117e10e1 100644
--- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
+++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json
@@ -55,6 +55,7 @@
"dropFlowHere": "ここにフローをドロップしてください",
"addFlow": "フローの追加",
"addFlowToRight": "右側にフローを追加",
+ "closeFlow": "フローを閉じる",
"hideFlow": "フローを非表示",
"hideOtherFlows": "他のフローを非表示",
"showAllFlows": "全てのフローを表示",
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
index a8e7ea727..4aa6ac232 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js
@@ -829,7 +829,7 @@ RED.tabs = (function() {
event.preventDefault();
removeTab(tab.id);
});
- RED.popover.tooltip(closeLink,RED._("workspace.hideFlow"));
+ RED.popover.tooltip(closeLink,RED._("workspace.closeFlow"));
}
// if (tab.hideable) {
// li.addClass("red-ui-tabs-closeable")
From fd42becbdcb6546351474c4966b189d3ced68c3c Mon Sep 17 00:00:00 2001
From: weibin
Date: Mon, 30 Jan 2023 23:02:42 +0800
Subject: [PATCH 127/178] fix .red-ui-notification
if flows stopped due to missing too much node types manage-project-dep button display none.
---
.../@node-red/editor-client/src/sass/notifications.scss | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/editor-client/src/sass/notifications.scss b/packages/node_modules/@node-red/editor-client/src/sass/notifications.scss
index efae432b2..7d7544e2e 100644
--- a/packages/node_modules/@node-red/editor-client/src/sass/notifications.scss
+++ b/packages/node_modules/@node-red/editor-client/src/sass/notifications.scss
@@ -32,7 +32,8 @@
color: var(--red-ui-primary-text-color);
border: 1px solid var(--red-ui-notification-border-default);
border-left-width: 16px;
- overflow: hidden;
+ overflow: scroll;
+ max-height: 80vh;
.ui-dialog-buttonset {
margin-top: 20px;
margin-bottom: 10px;
From 5bda221f9dcae1e715852fe6217086a226b75790 Mon Sep 17 00:00:00 2001
From: Kazuhito Yokoi
Date: Tue, 31 Jan 2023 00:36:18 +0900
Subject: [PATCH 128/178] Use main branch as default in project feature
---
.../lib/storage/localfilesystem/projects/git/index.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
index 8aabcebe2..77b9ad2cd 100644
--- a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/git/index.js
@@ -421,7 +421,10 @@ module.exports = {
});
},
initRepo: function(cwd) {
- return runGitCommand(["init"],cwd);
+ var args = ["init", "--initial-branch", "main"];
+ return runGitCommand(args, cwd).catch(function () {
+ return runGitCommand(["init"], cwd);
+ });
},
setUpstream: function(cwd,remoteBranch) {
var args = ["branch","--set-upstream-to",remoteBranch];
From 0f7a1a42e43a6fac1833e65c7de049978e9e2564 Mon Sep 17 00:00:00 2001
From: Mauricio Bonani
Date: Wed, 1 Feb 2023 17:50:05 -0500
Subject: [PATCH 129/178] Fix border radius on Modules list header
---
.../node_modules/@node-red/nodes/core/function/10-function.html | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/node_modules/@node-red/nodes/core/function/10-function.html b/packages/node_modules/@node-red/nodes/core/function/10-function.html
index 43f8c7b39..e17f58aca 100644
--- a/packages/node_modules/@node-red/nodes/core/function/10-function.html
+++ b/packages/node_modules/@node-red/nodes/core/function/10-function.html
@@ -17,6 +17,8 @@
display: flex;
background: var(--red-ui-tertiary-background);
padding-right: 75px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
}
#node-input-libs-container-row .red-ui-editableList-header > div {
flex-grow: 1;
From 384377782aa8a3419c8e0b77703e38ce8aa70ffd Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Thu, 2 Feb 2023 10:25:57 +0000
Subject: [PATCH 130/178] Remove package-lock from git history
---
package-lock.json | 16880 --------------------------------------------
1 file changed, 16880 deletions(-)
delete mode 100644 package-lock.json
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index fe0933dba..000000000
--- a/package-lock.json
+++ /dev/null
@@ -1,16880 +0,0 @@
-{
- "name": "node-red",
- "version": "3.1.0-beta.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "node-red",
- "version": "3.1.0-beta.0",
- "license": "Apache-2.0",
- "dependencies": {
- "acorn": "8.8.1",
- "acorn-walk": "8.2.0",
- "ajv": "8.11.2",
- "async-mutex": "0.4.0",
- "basic-auth": "2.0.1",
- "bcryptjs": "2.4.3",
- "body-parser": "1.20.1",
- "cheerio": "1.0.0-rc.10",
- "clone": "2.1.2",
- "content-type": "1.0.4",
- "cookie": "0.5.0",
- "cookie-parser": "1.4.6",
- "cors": "2.8.5",
- "cronosjs": "1.7.1",
- "denque": "2.1.0",
- "express": "4.18.2",
- "express-session": "1.17.3",
- "form-data": "4.0.0",
- "fs-extra": "10.1.0",
- "got": "11.8.5",
- "hash-sum": "2.0.0",
- "hpagent": "1.2.0",
- "https-proxy-agent": "5.0.1",
- "i18next": "21.10.0",
- "iconv-lite": "0.6.3",
- "is-utf8": "0.2.1",
- "js-yaml": "4.1.0",
- "json-stringify-safe": "5.0.1",
- "jsonata": "1.8.6",
- "lodash.clonedeep": "^4.5.0",
- "media-typer": "1.1.0",
- "memorystore": "1.6.7",
- "mime": "3.0.0",
- "moment": "2.29.4",
- "moment-timezone": "0.5.39",
- "mqtt": "4.3.7",
- "multer": "1.4.5-lts.1",
- "mustache": "4.2.0",
- "node-red-admin": "^3.0.0",
- "node-watch": "0.7.3",
- "nopt": "5.0.0",
- "oauth2orize": "1.11.1",
- "on-headers": "1.0.2",
- "passport": "0.6.0",
- "passport-http-bearer": "1.0.1",
- "passport-oauth2-client-password": "0.1.2",
- "raw-body": "2.5.1",
- "semver": "7.3.8",
- "tar": "6.1.12",
- "tough-cookie": "4.1.2",
- "uglify-js": "3.17.4",
- "uuid": "8.3.2",
- "ws": "7.5.6",
- "xml2js": "0.4.23"
- },
- "devDependencies": {
- "dompurify": "2.4.1",
- "grunt": "1.5.3",
- "grunt-chmod": "~1.1.1",
- "grunt-cli": "~1.4.3",
- "grunt-concurrent": "3.0.0",
- "grunt-contrib-clean": "2.0.1",
- "grunt-contrib-compress": "2.0.0",
- "grunt-contrib-concat": "2.1.0",
- "grunt-contrib-copy": "1.0.0",
- "grunt-contrib-jshint": "3.2.0",
- "grunt-contrib-uglify": "5.2.2",
- "grunt-contrib-watch": "1.1.0",
- "grunt-jsdoc": "2.4.1",
- "grunt-jsdoc-to-markdown": "6.0.0",
- "grunt-jsonlint": "2.1.3",
- "grunt-mkdir": "~1.1.0",
- "grunt-npm-command": "~0.1.2",
- "grunt-sass": "~3.1.0",
- "grunt-simple-mocha": "~0.4.1",
- "grunt-simple-nyc": "^3.0.1",
- "i18next-http-backend": "1.4.1",
- "jquery-i18next": "1.2.1",
- "jsdoc-nr-template": "github:node-red/jsdoc-nr-template",
- "marked": "4.2.3",
- "minami": "1.2.3",
- "mocha": "9.2.2",
- "node-red-node-test-helper": "^0.3.0",
- "nodemon": "2.0.20",
- "proxy": "^1.0.2",
- "sass": "1.56.1",
- "should": "13.2.3",
- "sinon": "11.1.2",
- "stoppable": "^1.1.0",
- "supertest": "6.2.4"
- },
- "engines": {
- "node": ">=14"
- },
- "optionalDependencies": {
- "bcrypt": "5.1.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.20.7",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/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,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/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,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/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,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/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,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz",
- "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==",
- "dependencies": {
- "regenerator-runtime": "^0.13.11"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.20.12",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
- "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/traverse/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@babel/types": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/@jsdoc/salty": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.2.tgz",
- "integrity": "sha512-A1FrVnc7L9qI2gUGsfN0trTiJNK72Y0CL/VAyrmYEmeKI3pnHDawP64CEev31XLyAAOx2xmDo3tbadPxC0CSbw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.21"
- },
- "engines": {
- "node": ">=v12.0.0"
- }
- },
- "node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
- "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
- "optional": true,
- "dependencies": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "bin": {
- "node-pre-gyp": "bin/node-pre-gyp"
- }
- },
- "node_modules/@prantlf/jsonlint": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/@prantlf/jsonlint/-/jsonlint-10.2.0.tgz",
- "integrity": "sha512-KMFfds0peWLLfCu3bhClTiEN0tdj/Z86QJvn1awKHws6r+Sx6T3a44Eadz6OvqN6ZpsRkqaRpZxqddvvDAdDZQ==",
- "dev": true,
- "dependencies": {
- "ajv": "6.10.2",
- "commander": "4.0.1"
- },
- "bin": {
- "jsonlint": "lib/cli.js"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@prantlf/jsonlint/node_modules/ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "node_modules/@prantlf/jsonlint/node_modules/fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==",
- "dev": true
- },
- "node_modules/@prantlf/jsonlint/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@sinonjs/commons": {
- "version": "1.8.6",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
- "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
- "dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
- "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "node_modules/@sinonjs/samsam": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz",
- "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.6.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
- }
- },
- "node_modules/@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
- "dependencies": {
- "defer-to-connect": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@types/cacheable-request": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
- "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
- "dependencies": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
- }
- },
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
- "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
- },
- "node_modules/@types/keyv": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
- "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/linkify-it": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
- "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
- "dev": true
- },
- "node_modules/@types/markdown-it": {
- "version": "12.2.3",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
- "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
- "dev": true,
- "dependencies": {
- "@types/linkify-it": "*",
- "@types/mdurl": "*"
- }
- },
- "node_modules/@types/mdurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
- "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "18.11.18",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
- "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "node_modules/@types/responselike": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
- "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/adm-zip": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
- "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
- "dev": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/agent-base/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/agent-base/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/ajv": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
- "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
- "dev": true,
- "dependencies": {
- "array-back": "^3.0.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/ansi-escape-sequences/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "devOptional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
- "node_modules/append-transform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
- "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
- "dev": true,
- "dependencies": {
- "default-require-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "optional": true
- },
- "node_modules/archiver": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz",
- "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==",
- "dev": true,
- "dependencies": {
- "archiver-utils": "^2.1.0",
- "async": "^3.2.3",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.0.0",
- "tar-stream": "^2.2.0",
- "zip-stream": "^4.1.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/archiver-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
- "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.0",
- "lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
- "normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/archiver-utils/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/archiver-utils/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
- "node_modules/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "optional": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/args": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz",
- "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "5.0.0",
- "chalk": "2.4.2",
- "leven": "2.1.0",
- "mri": "1.1.4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/args/node_modules/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,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/args/node_modules/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,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/args/node_modules/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,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/args/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/args/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/args/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/args/node_modules/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,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
- "dev": true,
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/array-slice": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
- "dev": true
- },
- "node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "dev": true
- },
- "node_modules/async-mutex": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz",
- "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
- "dependencies": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "dependencies": {
- "safe-buffer": "5.1.2"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/basic-auth-parser": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz",
- "integrity": "sha512-Y7OBvWn+JnW45JWHLY6ybYub2k9cXCMrtCyO1Hds2s6eqClqWhPnOQpgXUPjAiMHj+A8TEPIQQ1dYENnJoBOHQ==",
- "dev": true
- },
- "node_modules/bcrypt": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz",
- "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.10",
- "node-addon-api": "^5.0.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
- },
- "node_modules/body": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
- "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==",
- "dev": true,
- "dependencies": {
- "continuable-cache": "^0.3.1",
- "error": "^7.0.0",
- "raw-body": "~1.1.0",
- "safe-json-parse": "~1.0.1"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/body/node_modules/bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
- "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==",
- "dev": true
- },
- "node_modules/body/node_modules/raw-body": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
- "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==",
- "dev": true,
- "dependencies": {
- "bytes": "1",
- "string_decoder": "0.10"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/body/node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cache-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz",
- "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==",
- "dev": true,
- "dependencies": {
- "array-back": "^4.0.1",
- "fs-then-native": "^2.0.0",
- "mkdirp2": "^1.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cache-point/node_modules/array-back": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
- "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cacheable-lookup": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/cacheable-request": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
- "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
- "dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/caching-transform": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
- "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
- "dev": true,
- "dependencies": {
- "hasha": "^3.0.0",
- "make-dir": "^2.0.0",
- "package-hash": "^3.0.0",
- "write-file-atomic": "^2.4.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caching-transform/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caching-transform/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/camelcase": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
- "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/catharsis": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
- "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.15"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/cheerio": {
- "version": "1.0.0-rc.10",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
- "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==",
- "dependencies": {
- "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"
- },
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
- }
- },
- "node_modules/cheerio-select": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
- "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
- "dependencies": {
- "css-select": "^4.3.0",
- "css-what": "^6.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
- "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==",
- "dev": true,
- "dependencies": {
- "exit": "0.1.2",
- "glob": "^7.1.1"
- },
- "engines": {
- "node": ">=0.2.5"
- }
- },
- "node_modules/cli-table": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz",
- "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==",
- "dependencies": {
- "colors": "1.0.3"
- },
- "engines": {
- "node": ">= 0.2.0"
- }
- },
- "node_modules/cli-table/node_modules/colors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-response": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
- "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/collect-all": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz",
- "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==",
- "dev": true,
- "dependencies": {
- "stream-connect": "^1.0.2",
- "stream-via": "^1.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "optional": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==",
- "dev": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
- "dev": true,
- "dependencies": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
- "lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/command-line-args/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/command-line-args/node_modules/typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/command-line-tool": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz",
- "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==",
- "dev": true,
- "dependencies": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "command-line-args": "^5.0.0",
- "command-line-usage": "^4.1.0",
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/command-line-tool/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
- "dev": true,
- "dependencies": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/command-line-usage/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/commander": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz",
- "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/commist": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
- "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
- "dependencies": {
- "leven": "^2.1.0",
- "minimist": "^1.1.0"
- }
- },
- "node_modules/common-sequence": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz",
- "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
- "node_modules/compress-commons": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
- "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==",
- "dev": true,
- "dependencies": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^4.0.2",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "engines": [
- "node >= 6.0"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/config-master": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz",
- "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==",
- "dev": true,
- "dependencies": {
- "walk-back": "^2.0.1"
- }
- },
- "node_modules/config-master/node_modules/walk-back": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz",
- "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==",
- "dev": true,
- "dependencies": {
- "date-now": "^0.1.4"
- }
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "optional": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-disposition/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/continuable-cache": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
- "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==",
- "dev": true
- },
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-parser": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
- "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
- "dependencies": {
- "cookie": "0.4.1",
- "cookie-signature": "1.0.6"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/cookie-parser/node_modules/cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/cookiejar": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz",
- "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==",
- "dev": true
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/cp-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
- "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^2.0.0",
- "nested-error-stacks": "^2.0.0",
- "pify": "^4.0.1",
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cp-file/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cp-file/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/crc-32": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "dev": true,
- "bin": {
- "crc32": "bin/crc32.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/crc32-stream": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz",
- "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==",
- "dev": true,
- "dependencies": {
- "crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/cronosjs": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz",
- "integrity": "sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q==",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "dev": true,
- "dependencies": {
- "node-fetch": "2.6.7"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==",
- "dev": true
- },
- "node_modules/dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decompress-response/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/default-require-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
- "integrity": "sha512-B0n2zDIXpzLzKeoEozorDSa1cHc1t0NjmxP0zuAxbizNU2MBqYJJKYXrrFdKuQliojXynrxgd7l4ahfg/+aA5g==",
- "dev": true,
- "dependencies": {
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "optional": true
- },
- "node_modules/denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "optional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dezalgo": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "dev": true,
- "dependencies": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/dmd": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz",
- "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==",
- "dev": true,
- "dependencies": {
- "array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "common-sequence": "^2.0.2",
- "file-set": "^4.0.2",
- "handlebars": "^4.7.7",
- "marked": "^4.2.3",
- "object-get": "^2.1.1",
- "reduce-flatten": "^3.0.1",
- "reduce-unique": "^2.0.1",
- "reduce-without": "^1.0.1",
- "test-value": "^3.0.0",
- "walk-back": "^5.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/dmd/node_modules/marked": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz",
- "integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==",
- "dev": true,
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/dompurify": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz",
- "integrity": "sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==",
- "dev": true
- },
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true
- },
- "node_modules/duplexify": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
- "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
- "dependencies": {
- "end-of-stream": "^1.4.1",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/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==",
- "devOptional": true
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dependencies": {
- "ansi-colors": "^4.1.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/error": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz",
- "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==",
- "dev": true,
- "dependencies": {
- "string-template": "~0.2.1"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eventemitter2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
- "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
- "dev": true
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
- "dev": true,
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express-session": {
- "version": "1.17.3",
- "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
- "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
- "dependencies": {
- "cookie": "0.4.2",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-headers": "~1.0.2",
- "parseurl": "~1.3.3",
- "safe-buffer": "5.2.1",
- "uid-safe": "~2.1.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/express-session/node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express-session/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/express/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
- "dev": true
- },
- "node_modules/faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==",
- "dev": true,
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/file-set": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz",
- "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^5.0.0",
- "glob": "^7.1.6"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/file-set/node_modules/array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/file-sync-cmp": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
- "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==",
- "dev": true
- },
- "node_modules/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,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/find-cache-dir/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/find-cache-dir/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/find-replace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^3.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/find-replace/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/findup-sync": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
- "integrity": "sha512-z8Nrwhi6wzxNMIbxlrTzuUW6KWuKkogZ/7OdDVq+0+kxn77KUH1nipx8iU6suqkHqc4y6n7a9A8IpmxY/pTjWg==",
- "dev": true,
- "dependencies": {
- "glob": "~5.0.0"
- },
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/findup-sync/node_modules/glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
- "dev": true,
- "dependencies": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/fined": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
- "dev": true,
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
- "dev": true,
- "dependencies": {
- "for-in": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha512-3TOY+4TKV0Ml83PXJQY+JFQaHNV38lzQDIzzXYg1kWdBLenGgoZhAs0CKgzI31vi2pWEpQMq/Yi4bpKwCPkw7g==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
- }
- },
- "node_modules/foreground-child/node_modules/cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
- }
- },
- "node_modules/foreground-child/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/formidable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
- "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
- "dev": true,
- "dependencies": {
- "dezalgo": "^1.0.4",
- "hexoid": "^1.0.0",
- "once": "^1.4.0",
- "qs": "^6.11.0"
- },
- "funding": {
- "url": "https://ko-fi.com/tunnckoCore/commissions"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/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
- },
- "node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-then-native": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz",
- "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "optional": true,
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/gaze": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
- "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
- "dev": true,
- "dependencies": {
- "globule": "^1.0.0"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/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==",
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/getobject": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
- "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dependencies": {
- "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"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
- "dev": true,
- "dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
- "dev": true,
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globule": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
- "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
- "dev": true,
- "dependencies": {
- "glob": "~7.1.1",
- "lodash": "^4.17.21",
- "minimatch": "~3.0.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/got": {
- "version": "11.8.5",
- "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz",
- "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==",
- "dependencies": {
- "@sindresorhus/is": "^4.0.0",
- "@szmarczak/http-timer": "^4.0.5",
- "@types/cacheable-request": "^6.0.1",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^5.0.3",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "http2-wrapper": "^1.0.0-beta.5.2",
- "lowercase-keys": "^2.0.0",
- "p-cancelable": "^2.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "node_modules/growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true,
- "engines": {
- "node": ">=4.x"
- }
- },
- "node_modules/grunt": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.5.3.tgz",
- "integrity": "sha512-mKwmo4X2d8/4c/BmcOETHek675uOqw0RuA/zy12jaspWqvTp4+ZeQF1W+OTpcbncnaBsfbQJ6l0l4j+Sn/GmaQ==",
- "dev": true,
- "dependencies": {
- "dateformat": "~3.0.3",
- "eventemitter2": "~0.4.13",
- "exit": "~0.1.2",
- "findup-sync": "~0.3.0",
- "glob": "~7.1.6",
- "grunt-cli": "~1.4.3",
- "grunt-known-options": "~2.0.0",
- "grunt-legacy-log": "~3.0.0",
- "grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.4.13",
- "js-yaml": "~3.14.0",
- "minimatch": "~3.0.4",
- "mkdirp": "~1.0.4",
- "nopt": "~3.0.6",
- "rimraf": "~3.0.2"
- },
- "bin": {
- "grunt": "bin/grunt"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/grunt-chmod": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/grunt-chmod/-/grunt-chmod-1.1.1.tgz",
- "integrity": "sha512-f807W/VOIhhaOW85JyeRd4DgB0RcbsGQV/4IvtcKctOWGvPJns4AqN7xW73PG9+RwDnSGxApS+6Xov5L2LeNXg==",
- "dev": true,
- "dependencies": {
- "shelljs": "^0.5.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/grunt-cli": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
- "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
- "dev": true,
- "dependencies": {
- "grunt-known-options": "~2.0.0",
- "interpret": "~1.1.0",
- "liftup": "~3.0.1",
- "nopt": "~4.0.1",
- "v8flags": "~3.2.0"
- },
- "bin": {
- "grunt": "bin/grunt"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/grunt-cli/node_modules/nopt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
- "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
- "dev": true,
- "dependencies": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- }
- },
- "node_modules/grunt-concurrent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-3.0.0.tgz",
- "integrity": "sha512-AgXtjUJESHEGeGX8neL3nmXBTHSj1QC48ABQ3ng2/vjuSBpDD8gKcVHSlXP71pFkIR8TQHf+eomOx6OSYSgfrA==",
- "dev": true,
- "dependencies": {
- "arrify": "^2.0.1",
- "async": "^3.1.0",
- "indent-string": "^4.0.0",
- "pad-stream": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "peerDependencies": {
- "grunt": ">=1"
- }
- },
- "node_modules/grunt-contrib-clean": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.1.tgz",
- "integrity": "sha512-uRvnXfhiZt8akb/ZRDHJpQQtkkVkqc/opWO4Po/9ehC2hPxgptB9S6JHDC/Nxswo4CJSM0iFPT/Iym3cEMWzKA==",
- "dev": true,
- "dependencies": {
- "async": "^3.2.3",
- "rimraf": "^2.6.2"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "grunt": ">=0.4.5"
- }
- },
- "node_modules/grunt-contrib-clean/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/grunt-contrib-compress": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-2.0.0.tgz",
- "integrity": "sha512-r/dAGx4qG+rmBFF4lb/hTktW2huGMGxkSLf9msh3PPtq0+cdQRQerZJ30UKevX3BLQsohwLzO0p1z/LrH6aKXQ==",
- "dev": true,
- "dependencies": {
- "adm-zip": "^0.5.1",
- "archiver": "^5.1.0",
- "chalk": "^4.1.0",
- "lodash": "^4.17.20",
- "pretty-bytes": "^5.4.1",
- "stream-buffers": "^3.0.2"
- },
- "engines": {
- "node": ">=10.16"
- }
- },
- "node_modules/grunt-contrib-concat": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-2.1.0.tgz",
- "integrity": "sha512-Vnl95JIOxfhEN7bnYIlCgQz41kkbi7tsZ/9a4usZmxNxi1S2YAIOy8ysFmO8u4MN26Apal1O106BwARdaNxXQw==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.2",
- "source-map": "^0.5.3"
- },
- "engines": {
- "node": ">=0.12.0"
- },
- "peerDependencies": {
- "grunt": ">=1.4.1"
- }
- },
- "node_modules/grunt-contrib-copy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
- "integrity": "sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA==",
- "dev": true,
- "dependencies": {
- "chalk": "^1.1.1",
- "file-sync-cmp": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-copy/node_modules/supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/grunt-contrib-jshint": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-3.2.0.tgz",
- "integrity": "sha512-pcXWCSZWfoMSvcV4BwH21TUtLtcX0Ms8IGuOPIcLeXK3fud9KclY7iqMKY94jFx8TxZzh028YYtpR+io8DiEaQ==",
- "dev": true,
- "dependencies": {
- "chalk": "~4.1.2",
- "hooker": "^0.2.3",
- "jshint": "~2.13.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/grunt-contrib-uglify": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-5.2.2.tgz",
- "integrity": "sha512-ITxiWxrjjP+RZu/aJ5GLvdele+sxlznh+6fK9Qckio5ma8f7Iv8woZjRkGfafvpuygxNefOJNc+hfjjBayRn2Q==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.2",
- "maxmin": "^3.0.0",
- "uglify-js": "^3.16.1",
- "uri-path": "^1.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/grunt-contrib-watch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
- "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
- "dev": true,
- "dependencies": {
- "async": "^2.6.0",
- "gaze": "^1.1.0",
- "lodash": "^4.17.10",
- "tiny-lr": "^1.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-contrib-watch/node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/grunt-jsdoc": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/grunt-jsdoc/-/grunt-jsdoc-2.4.1.tgz",
- "integrity": "sha512-S0zxU0wDewRu7z+vijEItOWe/UttxWVmvz0qz2ZVcAYR2GpXjsiski2CAVN0b18t2qeVLdmxZkJaEWCOsKzcAw==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.1",
- "jsdoc": "^3.6.3"
- },
- "bin": {
- "grunt-jsdoc": "bin/grunt-jsdoc"
- },
- "engines": {
- "node": ">= 8.12.0"
- }
- },
- "node_modules/grunt-jsdoc-to-markdown": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/grunt-jsdoc-to-markdown/-/grunt-jsdoc-to-markdown-6.0.0.tgz",
- "integrity": "sha512-vvanKUErp6CHl4MuLQ9vwJewpMu8Fi7z09lr4OwMLr+GBu3nG5lRNZuu5mkWY8qv1aU8WkX97/rJaVs3A1Wx8g==",
- "dev": true,
- "dependencies": {
- "jsdoc-to-markdown": "^7.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "grunt": ">=1.3.0"
- }
- },
- "node_modules/grunt-jsonlint": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/grunt-jsonlint/-/grunt-jsonlint-2.1.3.tgz",
- "integrity": "sha512-h04qC969LIyhsJaASeJ/hDnnKnsnSNZKqjYHra6cc/WQzrfMZinQPdr11FhU4T8OzAq6ecMX5QauYiJkbjUV/Q==",
- "dev": true,
- "dependencies": {
- "@prantlf/jsonlint": "10.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/grunt-known-options": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
- "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt-legacy-log": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz",
- "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==",
- "dev": true,
- "dependencies": {
- "colors": "~1.1.2",
- "grunt-legacy-log-utils": "~2.1.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.19"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/grunt-legacy-log-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
- "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
- "dev": true,
- "dependencies": {
- "chalk": "~4.1.0",
- "lodash": "~4.17.19"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/grunt-legacy-util": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz",
- "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==",
- "dev": true,
- "dependencies": {
- "async": "~3.2.0",
- "exit": "~0.1.2",
- "getobject": "~1.0.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.21",
- "underscore.string": "~3.3.5",
- "which": "~2.0.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/grunt-mkdir": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-mkdir/-/grunt-mkdir-1.1.0.tgz",
- "integrity": "sha512-FRE17OYVveNbVJFX8GPGa5bzH2ZiAdBx3q0Kwk2Dg6l+TzLGaTdufUxiUWUbS2MERFacnmXZwDDOR5ZbYW0o+Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- },
- "peerDependencies": {
- "grunt": ">=0.4.0"
- }
- },
- "node_modules/grunt-npm-command": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/grunt-npm-command/-/grunt-npm-command-0.1.2.tgz",
- "integrity": "sha512-QsGLL8Pp+tzeIkCqohIbOtVopOhINErRVpxKY+SnvSEE3BXOKKSanlIh9cd1mliajO57sXG2ZC4R8L3v2NSPTQ==",
- "dev": true,
- "peerDependencies": {
- "grunt": ">=0.4.0"
- }
- },
- "node_modules/grunt-sass": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-3.1.0.tgz",
- "integrity": "sha512-90s27H7FoCDcA8C8+R0GwC+ntYD3lG6S/jqcavWm3bn9RiJTmSfOvfbFa1PXx4NbBWuiGQMLfQTj/JvvqT5w6A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "peerDependencies": {
- "grunt": ">=1"
- }
- },
- "node_modules/grunt-simple-mocha": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/grunt-simple-mocha/-/grunt-simple-mocha-0.4.1.tgz",
- "integrity": "sha512-EibTuZVvyLd9v/9An+5sL+XLoArs1QkFSTUcOG/AbBzeCYemZppcO9YSEspWUwU/T/NNtAyzB+x7B6zAmKQqkA==",
- "dev": true,
- "dependencies": {
- "mocha": "*"
- },
- "bin": {
- "grunt-simple-mocha": "bin/grunt-simple-mocha"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/grunt-simple-nyc": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/grunt-simple-nyc/-/grunt-simple-nyc-3.0.1.tgz",
- "integrity": "sha512-/YLY+jNI6gBuVO3xu07zwvDN+orTAFS50W00yb/2ncvc2PFO4pR+oU7TyiHhe8a6O3KuQDHsyCE0iE+rqJagQg==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.15",
- "nyc": "^14.1.0",
- "simple-cli": "^5.0.3"
- }
- },
- "node_modules/grunt/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/grunt/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/grunt/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/grunt/node_modules/nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
- "dev": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- }
- },
- "node_modules/grunt/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/gzip-size": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
- "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
- "dev": true,
- "dependencies": {
- "duplexer": "^0.1.1",
- "pify": "^4.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
- },
- "engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
- }
- },
- "node_modules/handlebars/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-ansi/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "optional": true
- },
- "node_modules/hash-sum": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
- "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
- },
- "node_modules/hasha": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
- "integrity": "sha512-w0Kz8lJFBoyaurBiNrIvxPqr/gJ6fOfSkpAPOepN3oECqGJag37xPbOv57izi/KP8auHgNYxn5fXtAb+1LsJ6w==",
- "dev": true,
- "dependencies": {
- "is-stream": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/help-me": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz",
- "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==",
- "dependencies": {
- "glob": "^7.1.6",
- "readable-stream": "^3.6.0"
- }
- },
- "node_modules/hexoid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
- "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
- "dev": true,
- "dependencies": {
- "parse-passwd": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hooker": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
- "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/hpagent": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz",
- "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "dev": true
- },
- "node_modules/http2-wrapper": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
- "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/https-proxy-agent/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/https-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/i18next": {
- "version": "21.10.0",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz",
- "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==",
- "funding": [
- {
- "type": "individual",
- "url": "https://locize.com"
- },
- {
- "type": "individual",
- "url": "https://locize.com/i18next.html"
- },
- {
- "type": "individual",
- "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
- }
- ],
- "dependencies": {
- "@babel/runtime": "^7.17.2"
- }
- },
- "node_modules/i18next-http-backend": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.4.1.tgz",
- "integrity": "sha512-s4Q9hK2jS29iyhniMP82z+yYY8riGTrWbnyvsSzi5TaF7Le4E7b5deTmtuaRuab9fdDcYXtcwdBgawZG+JCEjA==",
- "dev": true,
- "dependencies": {
- "cross-fetch": "3.1.5"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true
- },
- "node_modules/immutable": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz",
- "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==",
- "dev": true
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "node_modules/interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
- "dev": true
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
- "dev": true,
- "dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/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==",
- "devOptional": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/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,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
- "dev": true,
- "dependencies": {
- "is-unc-path": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
- "dev": true,
- "dependencies": {
- "unc-path-regex": "^0.1.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
- },
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-hook": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
- "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
- "dev": true,
- "dependencies": {
- "append-transform": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "dependencies": {
- "@babel/generator": "^7.4.0",
- "@babel/parser": "^7.4.3",
- "@babel/template": "^7.4.0",
- "@babel/traverse": "^7.4.3",
- "@babel/types": "^7.4.0",
- "istanbul-lib-coverage": "^2.0.5",
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/istanbul-lib-source-maps/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jquery-i18next": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/jquery-i18next/-/jquery-i18next-1.2.1.tgz",
- "integrity": "sha512-UNcw3rgxoKjGEg4w23FEn2h3OlPJU7rPzsgDuXDBZktIzeiVbJohs9Cv9hj8oP8KNfBRKOoErL/OVxg2FaAR4g==",
- "dev": true
- },
- "node_modules/js-sdsl": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz",
- "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw=="
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/js2xmlparser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
- "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
- "dev": true,
- "dependencies": {
- "xmlcreate": "^2.0.4"
- }
- },
- "node_modules/jsdoc": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz",
- "integrity": "sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.9.4",
- "@types/markdown-it": "^12.2.3",
- "bluebird": "^3.7.2",
- "catharsis": "^0.9.0",
- "escape-string-regexp": "^2.0.0",
- "js2xmlparser": "^4.0.2",
- "klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
- "marked": "^4.0.10",
- "mkdirp": "^1.0.4",
- "requizzle": "^0.2.3",
- "strip-json-comments": "^3.1.0",
- "taffydb": "2.6.2",
- "underscore": "~1.13.2"
- },
- "bin": {
- "jsdoc": "jsdoc.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/jsdoc-api": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.2.0.tgz",
- "integrity": "sha512-93YDnlm/OYTlLOFeNs4qAv0RBCJ0kGj67xQaWy8wrbk97Rw1EySitoOTHsTHXPEs3uyx2IStPKGrbE7LTnZXbA==",
- "dev": true,
- "dependencies": {
- "array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "collect-all": "^1.0.4",
- "file-set": "^4.0.2",
- "fs-then-native": "^2.0.0",
- "jsdoc": "^4.0.0",
- "object-to-spawn-args": "^2.0.1",
- "temp-path": "^1.0.0",
- "walk-back": "^5.1.0"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/jsdoc-api/node_modules/jsdoc": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.0.tgz",
- "integrity": "sha512-tzTgkklbWKrlaQL2+e3NNgLcZu3NaK2vsHRx7tyHQ+H5jcB9Gx0txSd2eJWlMC/xU1+7LQu4s58Ry0RkuaEQVg==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.9.4",
- "@jsdoc/salty": "^0.2.1",
- "@types/markdown-it": "^12.2.3",
- "bluebird": "^3.7.2",
- "catharsis": "^0.9.0",
- "escape-string-regexp": "^2.0.0",
- "js2xmlparser": "^4.0.2",
- "klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
- "marked": "^4.0.10",
- "mkdirp": "^1.0.4",
- "requizzle": "^0.2.3",
- "strip-json-comments": "^3.1.0",
- "underscore": "~1.13.2"
- },
- "bin": {
- "jsdoc": "jsdoc.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/jsdoc-nr-template": {
- "version": "1.0.0",
- "resolved": "git+ssh://git@github.com/node-red/jsdoc-nr-template.git#3c7c8f96d585c7c5918a2e63519310e1297e162d",
- "dev": true
- },
- "node_modules/jsdoc-parse": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz",
- "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==",
- "dev": true,
- "dependencies": {
- "array-back": "^6.2.2",
- "lodash.omit": "^4.5.0",
- "lodash.pick": "^4.4.0",
- "reduce-extract": "^1.0.0",
- "sort-array": "^4.1.5",
- "test-value": "^3.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/jsdoc-to-markdown": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.1.1.tgz",
- "integrity": "sha512-CI86d63xAVNO+ENumWwmJ034lYe5iGU5GwjtTA11EuphP9tpnoi4hrKgR/J8uME0D+o4KUpVfwX1fjZhc8dEtg==",
- "dev": true,
- "dependencies": {
- "array-back": "^6.2.2",
- "command-line-tool": "^0.8.0",
- "config-master": "^3.1.0",
- "dmd": "^6.1.0",
- "jsdoc-api": "^7.1.1",
- "jsdoc-parse": "^6.1.0",
- "walk-back": "^5.1.0"
- },
- "bin": {
- "jsdoc2md": "bin/cli.js"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/jshint": {
- "version": "2.13.6",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz",
- "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==",
- "dev": true,
- "dependencies": {
- "cli": "~1.0.0",
- "console-browserify": "1.1.x",
- "exit": "0.1.x",
- "htmlparser2": "3.8.x",
- "lodash": "~4.17.21",
- "minimatch": "~3.0.2",
- "strip-json-comments": "1.0.x"
- },
- "bin": {
- "jshint": "bin/jshint"
- }
- },
- "node_modules/jshint/node_modules/dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
- }
- },
- "node_modules/jshint/node_modules/dom-serializer/node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/jshint/node_modules/dom-serializer/node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true,
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/jshint/node_modules/domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
- "dev": true
- },
- "node_modules/jshint/node_modules/domhandler": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "1"
- }
- },
- "node_modules/jshint/node_modules/domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "node_modules/jshint/node_modules/entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==",
- "dev": true
- },
- "node_modules/jshint/node_modules/htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
- "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==",
- "dev": true,
- "dependencies": {
- "domelementtype": "1",
- "domhandler": "2.3",
- "domutils": "1.5",
- "entities": "1.0",
- "readable-stream": "1.1"
- }
- },
- "node_modules/jshint/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "node_modules/jshint/node_modules/readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "node_modules/jshint/node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- },
- "node_modules/jshint/node_modules/strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==",
- "dev": true,
- "bin": {
- "strip-json-comments": "cli.js"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "node_modules/jsonata": {
- "version": "1.8.6",
- "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.6.tgz",
- "integrity": "sha512-ZH2TPYdNP2JecOl/HvrH47Xc+9imibEMQ4YqKy/F/FrM+2a6vfbGxeCX23dB9Fr6uvGwv+ghf1KxWB3iZk09wA==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
- "dev": true
- },
- "node_modules/key-list": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/key-list/-/key-list-0.1.4.tgz",
- "integrity": "sha512-DMGLZAmEoKRUHPlc772EW0i92P/WY12/oWYc2pQZb5MVGOSjYmF0BEQXbOLjbou1+/PqZ+CivwfyjaUwmyl4CQ==",
- "dev": true
- },
- "node_modules/keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/klaw": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
- "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.9"
- }
- },
- "node_modules/lazystream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
- "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.6.3"
- }
- },
- "node_modules/lazystream/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/lazystream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/liftup": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
- "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==",
- "dev": true,
- "dependencies": {
- "extend": "^3.0.2",
- "findup-sync": "^4.0.0",
- "fined": "^1.2.0",
- "flagged-respawn": "^1.0.1",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.1",
- "rechoir": "^0.7.0",
- "resolve": "^1.19.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/liftup/node_modules/findup-sync": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
- "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
- "dev": true,
- "dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^4.0.2",
- "resolve-dir": "^1.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/linkify-it": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
- "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
- "dev": true,
- "dependencies": {
- "uc.micro": "^1.0.1"
- }
- },
- "node_modules/livereload-js": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
- "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
- "dev": true
- },
- "node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
- "dev": true
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "node_modules/lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "node_modules/lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "node_modules/lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "node_modules/lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
- "node_modules/lodash.omit": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
- "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
- "dev": true
- },
- "node_modules/lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "node_modules/lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "node_modules/lodash.union": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
- "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
- "dev": true
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "optional": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "optional": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/make-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
- "dev": true,
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/markdown-it": {
- "version": "12.3.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
- "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1",
- "entities": "~2.1.0",
- "linkify-it": "^3.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
- },
- "bin": {
- "markdown-it": "bin/markdown-it.js"
- }
- },
- "node_modules/markdown-it-anchor": {
- "version": "8.6.6",
- "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz",
- "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==",
- "dev": true,
- "peerDependencies": {
- "@types/markdown-it": "*",
- "markdown-it": "*"
- }
- },
- "node_modules/markdown-it/node_modules/entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
- "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
- "dev": true,
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/marked": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
- "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==",
- "dev": true,
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/maxmin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-3.0.0.tgz",
- "integrity": "sha512-wcahMInmGtg/7c6a75fr21Ch/Ks1Tb+Jtoan5Ft4bAI0ZvJqyOw8kkM7e7p8hDSzY805vmxwHT50KcjGwKyJ0g==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "figures": "^3.2.0",
- "gzip-size": "^5.1.1",
- "pretty-bytes": "^5.3.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
- "dev": true
- },
- "node_modules/media-typer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
- "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/memorystore": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz",
- "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==",
- "dependencies": {
- "debug": "^4.3.0",
- "lru-cache": "^4.0.3"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/memorystore/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/memorystore/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "dev": true,
- "dependencies": {
- "source-map": "^0.6.1"
- }
- },
- "node_modules/merge-source-map/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minami": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/minami/-/minami-1.2.3.tgz",
- "integrity": "sha512-3f2QqqbUC1usVux0FkQMFYB73yd9JIxmHSn1dWQacizL6hOUaNu6mA3KxZ9SfiCc4qgcgq+5XP59+hP7URa1Dw==",
- "dev": true
- },
- "node_modules/minimatch": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
- "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mkdirp2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
- "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==",
- "dev": true
- },
- "node_modules/mocha": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
- "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
- "dependencies": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.3",
- "debug": "4.3.3",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.2.0",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "4.2.1",
- "ms": "2.1.3",
- "nanoid": "3.3.1",
- "serialize-javascript": "6.0.0",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "workerpool": "6.2.0",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "bin": {
- "_mocha": "bin/_mocha",
- "mocha": "bin/mocha"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mochajs"
- }
- },
- "node_modules/mocha/node_modules/debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/mocha/node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/mocha/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mocha/node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "dependencies": {
- "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"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mocha/node_modules/minimatch": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
- "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mocha/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/mocha/node_modules/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,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/moment-timezone": {
- "version": "0.5.39",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.39.tgz",
- "integrity": "sha512-hoB6suq4ISDj7BDgctiOy6zljBsdYT0++0ZzZm9rtxIvJhIbQ3nmbgSWe7dNFGurl6/7b1OUkHlmN9JWgXVz7w==",
- "dependencies": {
- "moment": ">= 2.9.0"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mqtt": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz",
- "integrity": "sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==",
- "dependencies": {
- "commist": "^1.0.0",
- "concat-stream": "^2.0.0",
- "debug": "^4.1.1",
- "duplexify": "^4.1.1",
- "help-me": "^3.0.0",
- "inherits": "^2.0.3",
- "lru-cache": "^6.0.0",
- "minimist": "^1.2.5",
- "mqtt-packet": "^6.8.0",
- "number-allocator": "^1.0.9",
- "pump": "^3.0.0",
- "readable-stream": "^3.6.0",
- "reinterval": "^1.1.0",
- "rfdc": "^1.3.0",
- "split2": "^3.1.0",
- "ws": "^7.5.5",
- "xtend": "^4.0.2"
- },
- "bin": {
- "mqtt": "bin/mqtt.js",
- "mqtt_pub": "bin/pub.js",
- "mqtt_sub": "bin/sub.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/mqtt-packet": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz",
- "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==",
- "dependencies": {
- "bl": "^4.0.2",
- "debug": "^4.1.1",
- "process-nextick-args": "^2.0.1"
- }
- },
- "node_modules/mqtt-packet/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/mqtt-packet/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/mqtt/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/mqtt/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mqtt/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/mqtt/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/mri": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
- "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "dependencies": {
- "append-field": "^1.0.0",
- "busboy": "^1.0.0",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.4",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/multer/node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/multer/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/multer/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "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"
- }
- },
- "node_modules/multer/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "bin": {
- "mustache": "bin/mustache"
- }
- },
- "node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
- },
- "node_modules/nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node_modules/nested-error-stacks": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
- "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
- "dev": true
- },
- "node_modules/nise": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
- "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^2.0.0",
- "@sinonjs/fake-timers": "^10.0.2",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "path-to-regexp": "^1.7.0"
- }
- },
- "node_modules/nise/node_modules/@sinonjs/commons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
- "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
- "dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/nise/node_modules/@sinonjs/fake-timers": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz",
- "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^2.0.0"
- }
- },
- "node_modules/nise/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "node_modules/nise/node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
- "dev": true,
- "dependencies": {
- "isarray": "0.0.1"
- }
- },
- "node_modules/node-addon-api": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz",
- "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==",
- "optional": true
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "devOptional": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-red-admin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.0.0.tgz",
- "integrity": "sha512-1J1tcV+zkCIy24n0rcJ/DSPSCziEgLGld+QBYk1rNESIo+gFyL5RMkCOcII2IrBTZF/kcDTElepMTCILXbMDfQ==",
- "dependencies": {
- "ansi-colors": "^4.1.1",
- "axios": "0.27.2",
- "bcryptjs": "^2.4.3",
- "cli-table": "^0.3.11",
- "enquirer": "^2.3.6",
- "minimist": "^1.2.6",
- "mustache": "^4.2.0",
- "read": "^1.0.7"
- },
- "bin": {
- "node-red-admin": "node-red-admin.js"
- },
- "engines": {
- "node": ">=14"
- },
- "optionalDependencies": {
- "bcrypt": "5.0.1"
- }
- },
- "node_modules/node-red-admin/node_modules/bcrypt": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz",
- "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.0",
- "node-addon-api": "^3.1.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/node-red-admin/node_modules/node-addon-api": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
- "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
- "optional": true
- },
- "node_modules/node-red-node-test-helper": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.0.tgz",
- "integrity": "sha512-mgeMEsRDbxmF16dQeBHEF0n944i09V4d1tMYpll83P2kxu/78Iqc6kuP9E12duqQSgWR8SOGNUqMxz9vpog1DA==",
- "dev": true,
- "dependencies": {
- "body-parser": "1.20.0",
- "express": "4.18.1",
- "read-pkg-up": "7.0.1",
- "semver": "7.3.7",
- "should": "^13.2.3",
- "should-sinon": "0.0.6",
- "sinon": "11.1.2",
- "stoppable": "1.1.0",
- "supertest": "6.2.3"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/body-parser": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
- "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.10.3",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/node-red-node-test-helper/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/express": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
- "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.0",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.10.3",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/node-red-node-test-helper/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/node-red-node-test-helper/node_modules/qs": {
- "version": "6.10.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
- "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/node-red-node-test-helper/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/superagent": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz",
- "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==",
- "dev": true,
- "dependencies": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.0.1",
- "methods": "^1.1.2",
- "mime": "^2.5.0",
- "qs": "^6.10.3",
- "readable-stream": "^3.6.0",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": ">=6.4.0 <13 || >=14"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/supertest": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz",
- "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==",
- "dev": true,
- "dependencies": {
- "methods": "^1.1.2",
- "superagent": "^7.1.3"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/node-red-node-test-helper/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/node-watch": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
- "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nodemon": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
- "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
- "dev": true,
- "dependencies": {
- "chokidar": "^3.5.2",
- "debug": "^3.2.7",
- "ignore-by-default": "^1.0.1",
- "minimatch": "^3.1.2",
- "pstree.remy": "^1.1.8",
- "semver": "^5.7.1",
- "simple-update-notifier": "^1.0.7",
- "supports-color": "^5.5.0",
- "touch": "^3.1.0",
- "undefsafe": "^2.0.5"
- },
- "bin": {
- "nodemon": "bin/nodemon.js"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/nodemon"
- }
- },
- "node_modules/nodemon/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/nodemon/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nodemon/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/nodemon/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/nodemon/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/nodemon/node_modules/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,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "optional": true,
- "dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/number-allocator": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.12.tgz",
- "integrity": "sha512-sGB0qoQGmKimery9JubBQ9pQUr1V/LixJAk3Ygp7obZf6mpSXime8d7XHEobbIimkdZpgjkNlLt6G7LPEWFYWg==",
- "dependencies": {
- "debug": "^4.3.1",
- "js-sdsl": "4.1.4"
- }
- },
- "node_modules/number-allocator/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/number-allocator/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/nyc": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
- "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
- "dev": true,
- "dependencies": {
- "archy": "^1.0.0",
- "caching-transform": "^3.0.2",
- "convert-source-map": "^1.6.0",
- "cp-file": "^6.2.0",
- "find-cache-dir": "^2.1.0",
- "find-up": "^3.0.0",
- "foreground-child": "^1.5.6",
- "glob": "^7.1.3",
- "istanbul-lib-coverage": "^2.0.5",
- "istanbul-lib-hook": "^2.0.7",
- "istanbul-lib-instrument": "^3.3.0",
- "istanbul-lib-report": "^2.0.8",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^2.2.4",
- "js-yaml": "^3.13.1",
- "make-dir": "^2.1.0",
- "merge-source-map": "^1.1.0",
- "resolve-from": "^4.0.0",
- "rimraf": "^2.6.3",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^5.2.3",
- "uuid": "^3.3.2",
- "yargs": "^13.2.2",
- "yargs-parser": "^13.0.0"
- },
- "bin": {
- "nyc": "bin/nyc.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/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,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nyc/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/nyc/node_modules/cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "dependencies": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- }
- },
- "node_modules/nyc/node_modules/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,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/nyc/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/nyc/node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nyc/node_modules/emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "node_modules/nyc/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nyc/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/nyc/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nyc/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nyc/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/nyc/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/nyc/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/nyc/node_modules/string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/nyc/node_modules/wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "node_modules/nyc/node_modules/yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/nyc/node_modules/yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
- "node_modules/oauth2orize": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz",
- "integrity": "sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==",
- "dependencies": {
- "debug": "2.x.x",
- "uid2": "0.0.x",
- "utils-merge": "1.x.x"
- },
- "engines": {
- "node": ">= 0.4.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/jaredhanson"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-get": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz",
- "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==",
- "dev": true
- },
- "node_modules/object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-to-spawn-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz",
- "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
- "dev": true,
- "dependencies": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
- "dev": true,
- "dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/opted": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/opted/-/opted-1.0.2.tgz",
- "integrity": "sha512-uEvunmdmKcSFiBSmnY2E9E/HbghO5yc1J0yNmq7T18YkAJeWNlo33e6VYKkRK4eudVrpvvlLdemAeAuL6rZxjQ==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.4"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/osenv": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
- "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
- "dev": true,
- "dependencies": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "node_modules/p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
- "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "hasha": "^3.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pad-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz",
- "integrity": "sha512-3QeQw19K48BQzUGZ9dEf/slX5Jbfy5ZeBTma2XICketO7kFNK7omF00riVcecOKN+DSiJZcK2em1eYKaVOeXKg==",
- "dev": true,
- "dependencies": {
- "pumpify": "^1.3.3",
- "split2": "^2.1.1",
- "through2": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pad-stream/node_modules/split2": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
- "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
- "dev": true,
- "dependencies": {
- "through2": "^2.0.2"
- }
- },
- "node_modules/parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
- "dev": true,
- "dependencies": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/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,
- "dependencies": {
- "@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"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
- },
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "dependencies": {
- "parse5": "^6.0.1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/passport": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz",
- "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==",
- "dependencies": {
- "passport-strategy": "1.x.x",
- "pause": "0.0.1",
- "utils-merge": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/jaredhanson"
- }
- },
- "node_modules/passport-http-bearer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz",
- "integrity": "sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==",
- "dependencies": {
- "passport-strategy": "1.x.x"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/passport-oauth2-client-password": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz",
- "integrity": "sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ==",
- "dependencies": {
- "passport-strategy": "1.x.x"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/passport-strategy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
- "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
- "dev": true,
- "dependencies": {
- "path-root-regex": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "node_modules/path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/path-type/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pause": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
- "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "dependencies": {
- "find-up": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/proxy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz",
- "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==",
- "dev": true,
- "dependencies": {
- "args": "5.0.1",
- "basic-auth-parser": "0.0.2",
- "debug": "^4.1.1"
- },
- "bin": {
- "proxy": "bin/proxy.js"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/proxy/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
- },
- "node_modules/pstree.remy": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
- "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true
- },
- "node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/pumpify": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
- "dev": true,
- "dependencies": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- }
- },
- "node_modules/pumpify/node_modules/duplexify": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
- "dev": true,
- "dependencies": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/pumpify/node_modules/pump": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
- "dev": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/pumpify/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/pumpify/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/punycode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
- "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- },
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/random-bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
- "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/read": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
- "dependencies": {
- "mute-stream": "~0.0.4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/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==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdir-glob": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz",
- "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==",
- "dev": true,
- "dependencies": {
- "minimatch": "^5.1.0"
- }
- },
- "node_modules/readdir-glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/readdir-glob/node_modules/minimatch": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
- "dev": true,
- "dependencies": {
- "resolve": "^1.9.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/reduce-extract": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz",
- "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==",
- "dev": true,
- "dependencies": {
- "test-value": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-extract/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/reduce-extract/node_modules/test-value": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz",
- "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.2",
- "typical": "^2.4.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-flatten": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz",
- "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reduce-unique": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz",
- "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/reduce-without": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz",
- "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==",
- "dev": true,
- "dependencies": {
- "test-value": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-without/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/reduce-without/node_modules/test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
- },
- "node_modules/reinterval": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
- "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ=="
- },
- "node_modules/release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "dependencies": {
- "es6-error": "^4.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
- },
- "node_modules/requizzle": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
- "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.21"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
- },
- "node_modules/resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
- "dev": true,
- "dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "devOptional": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/safe-json-parse": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
- "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==",
- "dev": true
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/sass": {
- "version": "1.56.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz",
- "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==",
- "dev": true,
- "dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "devOptional": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shelljs": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
- "integrity": "sha512-C2FisSSW8S6TIYHHiMHN0NqzdjWfTekdMpA2FJTbRWnQMLO1RRIXEB9eVZYOlofYmjZA7fY3ChoFu09MeI3wlQ==",
- "dev": true,
- "bin": {
- "shjs": "bin/shjs"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/should": {
- "version": "13.2.3",
- "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
- "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
- "dev": true,
- "dependencies": {
- "should-equal": "^2.0.0",
- "should-format": "^3.0.3",
- "should-type": "^1.4.0",
- "should-type-adaptors": "^1.0.1",
- "should-util": "^1.0.0"
- }
- },
- "node_modules/should-equal": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
- "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
- "dev": true,
- "dependencies": {
- "should-type": "^1.4.0"
- }
- },
- "node_modules/should-format": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
- "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==",
- "dev": true,
- "dependencies": {
- "should-type": "^1.3.0",
- "should-type-adaptors": "^1.0.1"
- }
- },
- "node_modules/should-sinon": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz",
- "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==",
- "dev": true,
- "peerDependencies": {
- "should": ">= 8.x"
- }
- },
- "node_modules/should-type": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
- "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==",
- "dev": true
- },
- "node_modules/should-type-adaptors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
- "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
- "dev": true,
- "dependencies": {
- "should-type": "^1.3.0",
- "should-util": "^1.0.0"
- }
- },
- "node_modules/should-util": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
- "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
- "dev": true
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "devOptional": true
- },
- "node_modules/simple-cli": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/simple-cli/-/simple-cli-5.0.5.tgz",
- "integrity": "sha512-Er2FhsIayL/sktxg6fOCdNQJBTXhlf/fswNFsdmks88xsHzQ/IXGwxYgSSKeXBq4yqn83/iD4Sg8yjagwysUgw==",
- "dev": true,
- "dependencies": {
- "async": "^3.1.0",
- "chalk": "^2.4.2",
- "cross-spawn": "^7.0.0",
- "key-list": "^0.1.4",
- "lodash": "^4.17.15",
- "opted": "^1.0.0"
- }
- },
- "node_modules/simple-cli/node_modules/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,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/simple-cli/node_modules/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,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/simple-cli/node_modules/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,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/simple-cli/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/simple-cli/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/simple-cli/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/simple-cli/node_modules/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,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/simple-update-notifier": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
- "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
- "dev": true,
- "dependencies": {
- "semver": "~7.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/simple-update-notifier/node_modules/semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/sinon": {
- "version": "11.1.2",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
- "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.8.3",
- "@sinonjs/fake-timers": "^7.1.2",
- "@sinonjs/samsam": "^6.0.2",
- "diff": "^5.0.0",
- "nise": "^5.1.0",
- "supports-color": "^7.2.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/sinon"
- }
- },
- "node_modules/sort-array": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz",
- "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==",
- "dev": true,
- "dependencies": {
- "array-back": "^5.0.0",
- "typical": "^6.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sort-array/node_modules/array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sort-array/node_modules/typical": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz",
- "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/spawn-wrap": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
- "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
- }
- },
- "node_modules/spawn-wrap/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/spawn-wrap/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/spawn-wrap/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
- "dev": true
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/stoppable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
- "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
- "dev": true,
- "engines": {
- "node": ">=4",
- "npm": ">=6"
- }
- },
- "node_modules/stream-buffers": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz",
- "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/stream-connect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz",
- "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stream-connect/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/stream-shift": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
- "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
- },
- "node_modules/stream-via": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
- "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/string-template": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
- "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==",
- "dev": true
- },
- "node_modules/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==",
- "devOptional": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "devOptional": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/superagent": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz",
- "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==",
- "dev": true,
- "dependencies": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.1.1",
- "methods": "^1.1.2",
- "mime": "2.6.0",
- "qs": "^6.11.0",
- "semver": "^7.3.8"
- },
- "engines": {
- "node": ">=6.4.0 <13 || >=14"
- }
- },
- "node_modules/superagent/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/superagent/node_modules/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/superagent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/supertest": {
- "version": "6.2.4",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz",
- "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==",
- "dev": true,
- "dependencies": {
- "methods": "^1.1.2",
- "superagent": "^8.0.0"
- },
- "engines": {
- "node": ">=6.4.0"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/table-layout": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
- "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
- "dev": true,
- "dependencies": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/table-layout/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/taffydb": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
- "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==",
- "dev": true
- },
- "node_modules/tar": {
- "version": "6.1.12",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz",
- "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==",
- "dependencies": {
- "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"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/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,
- "dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/temp-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
- "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==",
- "dev": true
- },
- "node_modules/test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/test-exclude/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/test-exclude/node_modules/read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "dev": true,
- "dependencies": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/test-exclude/node_modules/read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
- "dev": true,
- "dependencies": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-value": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
- "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^2.0.0",
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/test-value/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/through2/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/through2/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/tiny-lr": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
- "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
- "dev": true,
- "dependencies": {
- "body": "^5.1.0",
- "debug": "^3.1.0",
- "faye-websocket": "~0.10.0",
- "livereload-js": "^2.3.0",
- "object-assign": "^4.1.0",
- "qs": "^6.4.0"
- }
- },
- "node_modules/tiny-lr/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/tiny-lr/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/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,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
- "dev": true,
- "dependencies": {
- "nopt": "~1.0.10"
- },
- "bin": {
- "nodetouch": "bin/nodetouch.js"
- }
- },
- "node_modules/touch/node_modules/nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "dev": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tough-cookie": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
- "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tough-cookie/node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "devOptional": true
- },
- "node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/type-is/node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
- },
- "node_modules/typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
- "dev": true
- },
- "node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
- "node_modules/uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
- "bin": {
- "uglifyjs": "bin/uglifyjs"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/uid-safe": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
- "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
- "dependencies": {
- "random-bytes": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/uid2": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
- "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
- },
- "node_modules/unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/undefsafe": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
- "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true
- },
- "node_modules/underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
- "dev": true
- },
- "node_modules/underscore.string": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
- "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "^1.1.1",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/uri-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
- "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8flags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
- "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
- "dev": true,
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/walk-back": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz",
- "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==",
- "dev": true,
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "devOptional": true
- },
- "node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dev": true,
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "devOptional": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "optional": true,
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "node_modules/wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
- "dev": true,
- "dependencies": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/wordwrapjs/node_modules/reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/workerpool": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
- "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
- "dev": true
- },
- "node_modules/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,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/ws": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
- "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xmlcreate": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
- "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
- "dev": true
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
- "dependencies": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-unparser/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zip-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz",
- "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==",
- "dev": true,
- "dependencies": {
- "archiver-utils": "^2.1.0",
- "compress-commons": "^4.1.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">= 10"
- }
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.20.7",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
- "dev": true
- },
- "@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.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"
- }
- },
- "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "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"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
- "dev": true
- },
- "@babel/runtime": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz",
- "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==",
- "requires": {
- "regenerator-runtime": "^0.13.11"
- }
- },
- "@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
- }
- },
- "@babel/traverse": {
- "version": "7.20.12",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
- "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "@babel/types": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
- "dev": true,
- "requires": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "@jsdoc/salty": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.2.tgz",
- "integrity": "sha512-A1FrVnc7L9qI2gUGsfN0trTiJNK72Y0CL/VAyrmYEmeKI3pnHDawP64CEev31XLyAAOx2xmDo3tbadPxC0CSbw==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.21"
- }
- },
- "@mapbox/node-pre-gyp": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
- "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
- "optional": true,
- "requires": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- }
- },
- "@prantlf/jsonlint": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/@prantlf/jsonlint/-/jsonlint-10.2.0.tgz",
- "integrity": "sha512-KMFfds0peWLLfCu3bhClTiEN0tdj/Z86QJvn1awKHws6r+Sx6T3a44Eadz6OvqN6ZpsRkqaRpZxqddvvDAdDZQ==",
- "dev": true,
- "requires": {
- "ajv": "6.10.2",
- "commander": "4.0.1"
- },
- "dependencies": {
- "ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- }
- }
- },
- "@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw=="
- },
- "@sinonjs/commons": {
- "version": "1.8.6",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
- "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
- "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "@sinonjs/samsam": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz",
- "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.6.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
- }
- },
- "@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
- },
- "@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
- "requires": {
- "defer-to-connect": "^2.0.0"
- }
- },
- "@types/cacheable-request": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
- "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
- "requires": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
- }
- },
- "@types/http-cache-semantics": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
- "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
- },
- "@types/keyv": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
- "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/linkify-it": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
- "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
- "dev": true
- },
- "@types/markdown-it": {
- "version": "12.2.3",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
- "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
- "dev": true,
- "requires": {
- "@types/linkify-it": "*",
- "@types/mdurl": "*"
- }
- },
- "@types/mdurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
- "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
- "dev": true
- },
- "@types/node": {
- "version": "18.11.18",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
- "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
- },
- "@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "@types/responselike": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
- "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
- "requires": {
- "@types/node": "*"
- }
- },
- "@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
- },
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
- },
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
- },
- "adm-zip": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
- "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
- "dev": true
- },
- "agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "requires": {
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "ajv": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
- "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
- },
- "ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
- "dev": true,
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- }
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "devOptional": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
- "append-transform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
- "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
- "dev": true,
- "requires": {
- "default-require-extensions": "^2.0.0"
- }
- },
- "aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "optional": true
- },
- "archiver": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz",
- "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==",
- "dev": true,
- "requires": {
- "archiver-utils": "^2.1.0",
- "async": "^3.2.3",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.0.0",
- "tar-stream": "^2.2.0",
- "zip-stream": "^4.1.0"
- }
- },
- "archiver-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
- "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
- "dev": true,
- "requires": {
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.0",
- "lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
- "normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
- "are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "optional": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "args": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz",
- "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==",
- "dev": true,
- "requires": {
- "camelcase": "5.0.0",
- "chalk": "2.4.2",
- "leven": "2.1.0",
- "mri": "1.1.4"
- },
- "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"
- }
- },
- "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "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"
- }
- }
- }
- },
- "array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
- "dev": true
- },
- "array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
- "dev": true
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "array-slice": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
- "dev": true
- },
- "arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "dev": true
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
- "dev": true
- },
- "async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "dev": true
- },
- "async-mutex": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz",
- "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
- "requires": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
- },
- "basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "basic-auth-parser": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz",
- "integrity": "sha512-Y7OBvWn+JnW45JWHLY6ybYub2k9cXCMrtCyO1Hds2s6eqClqWhPnOQpgXUPjAiMHj+A8TEPIQQ1dYENnJoBOHQ==",
- "dev": true
- },
- "bcrypt": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz",
- "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==",
- "optional": true,
- "requires": {
- "@mapbox/node-pre-gyp": "^1.0.10",
- "node-addon-api": "^5.0.0"
- }
- },
- "bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
- },
- "body": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
- "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==",
- "dev": true,
- "requires": {
- "continuable-cache": "^0.3.1",
- "error": "^7.0.0",
- "raw-body": "~1.1.0",
- "safe-json-parse": "~1.0.1"
- },
- "dependencies": {
- "bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
- "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==",
- "dev": true
- },
- "raw-body": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
- "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==",
- "dev": true,
- "requires": {
- "bytes": "1",
- "string_decoder": "0.10"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- }
- }
- },
- "body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
- }
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "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"
- }
- },
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
- },
- "cache-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz",
- "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==",
- "dev": true,
- "requires": {
- "array-back": "^4.0.1",
- "fs-then-native": "^2.0.0",
- "mkdirp2": "^1.0.4"
- },
- "dependencies": {
- "array-back": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
- "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
- "dev": true
- }
- }
- },
- "cacheable-lookup": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="
- },
- "cacheable-request": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
- "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
- "requires": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- }
- },
- "caching-transform": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
- "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
- "dev": true,
- "requires": {
- "hasha": "^3.0.0",
- "make-dir": "^2.0.0",
- "package-hash": "^3.0.0",
- "write-file-atomic": "^2.4.2"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "camelcase": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
- "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
- "dev": true
- },
- "catharsis": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
- "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.15"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "cheerio": {
- "version": "1.0.0-rc.10",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
- "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==",
- "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.6.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
- "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
- "requires": {
- "css-select": "^4.3.0",
- "css-what": "^6.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0"
- }
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- }
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
- "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==",
- "dev": true,
- "requires": {
- "exit": "0.1.2",
- "glob": "^7.1.1"
- }
- },
- "cli-table": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz",
- "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==",
- "requires": {
- "colors": "1.0.3"
- },
- "dependencies": {
- "colors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw=="
- }
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
- },
- "clone-response": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
- "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "collect-all": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz",
- "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==",
- "dev": true,
- "requires": {
- "stream-connect": "^1.0.2",
- "stream-via": "^1.0.4"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "optional": true
- },
- "colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
- "dev": true,
- "requires": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
- "lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- },
- "typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
- "dev": true
- }
- }
- },
- "command-line-tool": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz",
- "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==",
- "dev": true,
- "requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "command-line-args": "^5.0.0",
- "command-line-usage": "^4.1.0",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
- }
- },
- "command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
- "dev": true,
- "requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
- }
- },
- "commander": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz",
- "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==",
- "dev": true
- },
- "commist": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
- "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
- "requires": {
- "leven": "^2.1.0",
- "minimist": "^1.1.0"
- }
- },
- "common-sequence": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz",
- "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==",
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
- "compress-commons": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
- "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==",
- "dev": true,
- "requires": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^4.0.2",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "config-master": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz",
- "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==",
- "dev": true,
- "requires": {
- "walk-back": "^2.0.1"
- },
- "dependencies": {
- "walk-back": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz",
- "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==",
- "dev": true
- }
- }
- },
- "console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==",
- "dev": true,
- "requires": {
- "date-now": "^0.1.4"
- }
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "optional": true
- },
- "content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "requires": {
- "safe-buffer": "5.2.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
- },
- "continuable-cache": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
- "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==",
- "dev": true
- },
- "convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
- "cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
- },
- "cookie-parser": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
- "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
- "requires": {
- "cookie": "0.4.1",
- "cookie-signature": "1.0.6"
- },
- "dependencies": {
- "cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
- }
- }
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "cookiejar": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz",
- "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "cp-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
- "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^2.0.0",
- "nested-error-stacks": "^2.0.0",
- "pify": "^4.0.1",
- "safe-buffer": "^5.0.1"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "crc-32": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "dev": true
- },
- "crc32-stream": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz",
- "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==",
- "dev": true,
- "requires": {
- "crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
- }
- },
- "cronosjs": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz",
- "integrity": "sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q=="
- },
- "cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "dev": true,
- "requires": {
- "node-fetch": "2.6.7"
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- }
- },
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
- },
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==",
- "dev": true
- },
- "dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true
- },
- "decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "requires": {
- "mimic-response": "^3.1.0"
- },
- "dependencies": {
- "mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
- }
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true
- },
- "default-require-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
- "integrity": "sha512-B0n2zDIXpzLzKeoEozorDSa1cHc1t0NjmxP0zuAxbizNU2MBqYJJKYXrrFdKuQliojXynrxgd7l4ahfg/+aA5g==",
- "dev": true,
- "requires": {
- "strip-bom": "^3.0.0"
- }
- },
- "defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "optional": true
- },
- "denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
- "detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
- "dev": true
- },
- "detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "optional": true
- },
- "dezalgo": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
- "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
- "dev": true,
- "requires": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
- },
- "dmd": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz",
- "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==",
- "dev": true,
- "requires": {
- "array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "common-sequence": "^2.0.2",
- "file-set": "^4.0.2",
- "handlebars": "^4.7.7",
- "marked": "^4.2.3",
- "object-get": "^2.1.1",
- "reduce-flatten": "^3.0.1",
- "reduce-unique": "^2.0.1",
- "reduce-without": "^1.0.1",
- "test-value": "^3.0.0",
- "walk-back": "^5.1.0"
- },
- "dependencies": {
- "marked": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz",
- "integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==",
- "dev": true
- }
- }
- },
- "dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
- },
- "domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "requires": {
- "domelementtype": "^2.2.0"
- }
- },
- "dompurify": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz",
- "integrity": "sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==",
- "dev": true
- },
- "domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- }
- },
- "duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true
- },
- "duplexify": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
- "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
- "requires": {
- "end-of-stream": "^1.4.1",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1",
- "stream-shift": "^1.0.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "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==",
- "devOptional": true
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "requires": {
- "ansi-colors": "^4.1.1"
- }
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
- },
- "error": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz",
- "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==",
- "dev": true,
- "requires": {
- "string-template": "~0.2.1"
- }
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
- },
- "eventemitter2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
- "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
- "dev": true
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true
- },
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- },
- "express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "express-session": {
- "version": "1.17.3",
- "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
- "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
- "requires": {
- "cookie": "0.4.2",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-headers": "~1.0.2",
- "parseurl": "~1.3.3",
- "safe-buffer": "5.2.1",
- "uid-safe": "~2.1.5"
- },
- "dependencies": {
- "cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
- "dev": true
- },
- "faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==",
- "dev": true,
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- }
- }
- },
- "file-set": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz",
- "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==",
- "dev": true,
- "requires": {
- "array-back": "^5.0.0",
- "glob": "^7.1.6"
- },
- "dependencies": {
- "array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true
- }
- }
- },
- "file-sync-cmp": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
- "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==",
- "dev": true
- },
- "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"
- }
- },
- "finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- }
- },
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "find-replace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
- "dev": true,
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- }
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "findup-sync": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
- "integrity": "sha512-z8Nrwhi6wzxNMIbxlrTzuUW6KWuKkogZ/7OdDVq+0+kxn77KUH1nipx8iU6suqkHqc4y6n7a9A8IpmxY/pTjWg==",
- "dev": true,
- "requires": {
- "glob": "~5.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "fined": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
- "dev": true,
- "requires": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- }
- },
- "flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
- "dev": true
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
- },
- "follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
- "dev": true
- },
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- },
- "foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha512-3TOY+4TKV0Ml83PXJQY+JFQaHNV38lzQDIzzXYg1kWdBLenGgoZhAs0CKgzI31vi2pWEpQMq/Yi4bpKwCPkw7g==",
- "dev": true,
- "requires": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==",
- "dev": true,
- "requires": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
- }
- },
- "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"
- }
- }
- }
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "formidable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
- "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
- "dev": true,
- "requires": {
- "dezalgo": "^1.0.4",
- "hexoid": "^1.0.0",
- "once": "^1.4.0",
- "qs": "^6.11.0"
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
- "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.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "fs-then-native": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz",
- "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "optional": true,
- "requires": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- }
- },
- "gaze": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
- "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
- "dev": true,
- "requires": {
- "globule": "^1.0.0"
- }
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "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==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "getobject": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
- "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
- "dev": true
- },
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "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.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
- "dev": true,
- "requires": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- }
- },
- "global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
- "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://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
- "globule": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
- "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
- "dev": true,
- "requires": {
- "glob": "~7.1.1",
- "lodash": "^4.17.21",
- "minimatch": "~3.0.2"
- }
- },
- "got": {
- "version": "11.8.5",
- "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz",
- "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==",
- "requires": {
- "@sindresorhus/is": "^4.0.0",
- "@szmarczak/http-timer": "^4.0.5",
- "@types/cacheable-request": "^6.0.1",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^5.0.3",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "http2-wrapper": "^1.0.0-beta.5.2",
- "lowercase-keys": "^2.0.0",
- "p-cancelable": "^2.0.0",
- "responselike": "^2.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true
- },
- "grunt": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.5.3.tgz",
- "integrity": "sha512-mKwmo4X2d8/4c/BmcOETHek675uOqw0RuA/zy12jaspWqvTp4+ZeQF1W+OTpcbncnaBsfbQJ6l0l4j+Sn/GmaQ==",
- "dev": true,
- "requires": {
- "dateformat": "~3.0.3",
- "eventemitter2": "~0.4.13",
- "exit": "~0.1.2",
- "findup-sync": "~0.3.0",
- "glob": "~7.1.6",
- "grunt-cli": "~1.4.3",
- "grunt-known-options": "~2.0.0",
- "grunt-legacy-log": "~3.0.0",
- "grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.4.13",
- "js-yaml": "~3.14.0",
- "minimatch": "~3.0.4",
- "mkdirp": "~1.0.4",
- "nopt": "~3.0.6",
- "rimraf": "~3.0.2"
- },
- "dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
- "dev": true,
- "requires": {
- "abbrev": "1"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- }
- }
- },
- "grunt-chmod": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/grunt-chmod/-/grunt-chmod-1.1.1.tgz",
- "integrity": "sha512-f807W/VOIhhaOW85JyeRd4DgB0RcbsGQV/4IvtcKctOWGvPJns4AqN7xW73PG9+RwDnSGxApS+6Xov5L2LeNXg==",
- "dev": true,
- "requires": {
- "shelljs": "^0.5.3"
- }
- },
- "grunt-cli": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
- "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
- "dev": true,
- "requires": {
- "grunt-known-options": "~2.0.0",
- "interpret": "~1.1.0",
- "liftup": "~3.0.1",
- "nopt": "~4.0.1",
- "v8flags": "~3.2.0"
- },
- "dependencies": {
- "nopt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
- "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
- "dev": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- }
- }
- },
- "grunt-concurrent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-3.0.0.tgz",
- "integrity": "sha512-AgXtjUJESHEGeGX8neL3nmXBTHSj1QC48ABQ3ng2/vjuSBpDD8gKcVHSlXP71pFkIR8TQHf+eomOx6OSYSgfrA==",
- "dev": true,
- "requires": {
- "arrify": "^2.0.1",
- "async": "^3.1.0",
- "indent-string": "^4.0.0",
- "pad-stream": "^2.0.0"
- }
- },
- "grunt-contrib-clean": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.1.tgz",
- "integrity": "sha512-uRvnXfhiZt8akb/ZRDHJpQQtkkVkqc/opWO4Po/9ehC2hPxgptB9S6JHDC/Nxswo4CJSM0iFPT/Iym3cEMWzKA==",
- "dev": true,
- "requires": {
- "async": "^3.2.3",
- "rimraf": "^2.6.2"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "grunt-contrib-compress": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-2.0.0.tgz",
- "integrity": "sha512-r/dAGx4qG+rmBFF4lb/hTktW2huGMGxkSLf9msh3PPtq0+cdQRQerZJ30UKevX3BLQsohwLzO0p1z/LrH6aKXQ==",
- "dev": true,
- "requires": {
- "adm-zip": "^0.5.1",
- "archiver": "^5.1.0",
- "chalk": "^4.1.0",
- "lodash": "^4.17.20",
- "pretty-bytes": "^5.4.1",
- "stream-buffers": "^3.0.2"
- }
- },
- "grunt-contrib-concat": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-2.1.0.tgz",
- "integrity": "sha512-Vnl95JIOxfhEN7bnYIlCgQz41kkbi7tsZ/9a4usZmxNxi1S2YAIOy8ysFmO8u4MN26Apal1O106BwARdaNxXQw==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.2",
- "source-map": "^0.5.3"
- }
- },
- "grunt-contrib-copy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
- "integrity": "sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA==",
- "dev": true,
- "requires": {
- "chalk": "^1.1.1",
- "file-sync-cmp": "^0.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
- "dev": true,
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true
- }
- }
- },
- "grunt-contrib-jshint": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-3.2.0.tgz",
- "integrity": "sha512-pcXWCSZWfoMSvcV4BwH21TUtLtcX0Ms8IGuOPIcLeXK3fud9KclY7iqMKY94jFx8TxZzh028YYtpR+io8DiEaQ==",
- "dev": true,
- "requires": {
- "chalk": "~4.1.2",
- "hooker": "^0.2.3",
- "jshint": "~2.13.4"
- }
- },
- "grunt-contrib-uglify": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-5.2.2.tgz",
- "integrity": "sha512-ITxiWxrjjP+RZu/aJ5GLvdele+sxlznh+6fK9Qckio5ma8f7Iv8woZjRkGfafvpuygxNefOJNc+hfjjBayRn2Q==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.2",
- "maxmin": "^3.0.0",
- "uglify-js": "^3.16.1",
- "uri-path": "^1.0.0"
- }
- },
- "grunt-contrib-watch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
- "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
- "dev": true,
- "requires": {
- "async": "^2.6.0",
- "gaze": "^1.1.0",
- "lodash": "^4.17.10",
- "tiny-lr": "^1.1.1"
- },
- "dependencies": {
- "async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.14"
- }
- }
- }
- },
- "grunt-jsdoc": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/grunt-jsdoc/-/grunt-jsdoc-2.4.1.tgz",
- "integrity": "sha512-S0zxU0wDewRu7z+vijEItOWe/UttxWVmvz0qz2ZVcAYR2GpXjsiski2CAVN0b18t2qeVLdmxZkJaEWCOsKzcAw==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.1",
- "jsdoc": "^3.6.3"
- }
- },
- "grunt-jsdoc-to-markdown": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/grunt-jsdoc-to-markdown/-/grunt-jsdoc-to-markdown-6.0.0.tgz",
- "integrity": "sha512-vvanKUErp6CHl4MuLQ9vwJewpMu8Fi7z09lr4OwMLr+GBu3nG5lRNZuu5mkWY8qv1aU8WkX97/rJaVs3A1Wx8g==",
- "dev": true,
- "requires": {
- "jsdoc-to-markdown": "^7.0.0"
- }
- },
- "grunt-jsonlint": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/grunt-jsonlint/-/grunt-jsonlint-2.1.3.tgz",
- "integrity": "sha512-h04qC969LIyhsJaASeJ/hDnnKnsnSNZKqjYHra6cc/WQzrfMZinQPdr11FhU4T8OzAq6ecMX5QauYiJkbjUV/Q==",
- "dev": true,
- "requires": {
- "@prantlf/jsonlint": "10.2.0"
- }
- },
- "grunt-known-options": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
- "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
- "dev": true
- },
- "grunt-legacy-log": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz",
- "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==",
- "dev": true,
- "requires": {
- "colors": "~1.1.2",
- "grunt-legacy-log-utils": "~2.1.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.19"
- }
- },
- "grunt-legacy-log-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
- "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
- "dev": true,
- "requires": {
- "chalk": "~4.1.0",
- "lodash": "~4.17.19"
- }
- },
- "grunt-legacy-util": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz",
- "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==",
- "dev": true,
- "requires": {
- "async": "~3.2.0",
- "exit": "~0.1.2",
- "getobject": "~1.0.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.21",
- "underscore.string": "~3.3.5",
- "which": "~2.0.2"
- }
- },
- "grunt-mkdir": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-mkdir/-/grunt-mkdir-1.1.0.tgz",
- "integrity": "sha512-FRE17OYVveNbVJFX8GPGa5bzH2ZiAdBx3q0Kwk2Dg6l+TzLGaTdufUxiUWUbS2MERFacnmXZwDDOR5ZbYW0o+Q==",
- "dev": true,
- "requires": {}
- },
- "grunt-npm-command": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/grunt-npm-command/-/grunt-npm-command-0.1.2.tgz",
- "integrity": "sha512-QsGLL8Pp+tzeIkCqohIbOtVopOhINErRVpxKY+SnvSEE3BXOKKSanlIh9cd1mliajO57sXG2ZC4R8L3v2NSPTQ==",
- "dev": true,
- "requires": {}
- },
- "grunt-sass": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-3.1.0.tgz",
- "integrity": "sha512-90s27H7FoCDcA8C8+R0GwC+ntYD3lG6S/jqcavWm3bn9RiJTmSfOvfbFa1PXx4NbBWuiGQMLfQTj/JvvqT5w6A==",
- "dev": true,
- "requires": {}
- },
- "grunt-simple-mocha": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/grunt-simple-mocha/-/grunt-simple-mocha-0.4.1.tgz",
- "integrity": "sha512-EibTuZVvyLd9v/9An+5sL+XLoArs1QkFSTUcOG/AbBzeCYemZppcO9YSEspWUwU/T/NNtAyzB+x7B6zAmKQqkA==",
- "dev": true,
- "requires": {
- "mocha": "*"
- }
- },
- "grunt-simple-nyc": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/grunt-simple-nyc/-/grunt-simple-nyc-3.0.1.tgz",
- "integrity": "sha512-/YLY+jNI6gBuVO3xu07zwvDN+orTAFS50W00yb/2ncvc2PFO4pR+oU7TyiHhe8a6O3KuQDHsyCE0iE+rqJagQg==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.15",
- "nyc": "^14.1.0",
- "simple-cli": "^5.0.3"
- }
- },
- "gzip-size": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
- "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
- "dev": true,
- "requires": {
- "duplexer": "^0.1.1",
- "pify": "^4.0.1"
- }
- },
- "handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true
- }
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "optional": true
- },
- "hash-sum": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
- "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
- },
- "hasha": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
- "integrity": "sha512-w0Kz8lJFBoyaurBiNrIvxPqr/gJ6fOfSkpAPOepN3oECqGJag37xPbOv57izi/KP8auHgNYxn5fXtAb+1LsJ6w==",
- "dev": true,
- "requires": {
- "is-stream": "^1.0.1"
- }
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
- },
- "help-me": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz",
- "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==",
- "requires": {
- "glob": "^7.1.6",
- "readable-stream": "^3.6.0"
- }
- },
- "hexoid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
- "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
- "dev": true
- },
- "homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
- "dev": true,
- "requires": {
- "parse-passwd": "^1.0.0"
- }
- },
- "hooker": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
- "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "hpagent": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz",
- "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA=="
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
- }
- },
- "http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
- },
- "http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- }
- },
- "http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "dev": true
- },
- "http2-wrapper": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
- "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
- "requires": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.0.0"
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "requires": {
- "agent-base": "6",
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "i18next": {
- "version": "21.10.0",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz",
- "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==",
- "requires": {
- "@babel/runtime": "^7.17.2"
- }
- },
- "i18next-http-backend": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.4.1.tgz",
- "integrity": "sha512-s4Q9hK2jS29iyhniMP82z+yYY8riGTrWbnyvsSzi5TaF7Le4E7b5deTmtuaRuab9fdDcYXtcwdBgawZG+JCEjA==",
- "dev": true,
- "requires": {
- "cross-fetch": "3.1.5"
- }
- },
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
- },
- "ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true
- },
- "immutable": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz",
- "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==",
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
- "dev": true
- },
- "ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
- },
- "is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
- "dev": true,
- "requires": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- }
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "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==",
- "devOptional": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "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
- },
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
- "dev": true,
- "requires": {
- "is-unc-path": "^1.0.0"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- },
- "is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
- "dev": true,
- "requires": {
- "unc-path-regex": "^0.1.2"
- }
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
- },
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true
- },
- "istanbul-lib-hook": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
- "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
- "dev": true,
- "requires": {
- "append-transform": "^1.0.0"
- }
- },
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "requires": {
- "@babel/generator": "^7.4.0",
- "@babel/parser": "^7.4.3",
- "@babel/template": "^7.4.0",
- "@babel/traverse": "^7.4.3",
- "@babel/types": "^7.4.0",
- "istanbul-lib-coverage": "^2.0.5",
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "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": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "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"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0"
- }
- },
- "jquery-i18next": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/jquery-i18next/-/jquery-i18next-1.2.1.tgz",
- "integrity": "sha512-UNcw3rgxoKjGEg4w23FEn2h3OlPJU7rPzsgDuXDBZktIzeiVbJohs9Cv9hj8oP8KNfBRKOoErL/OVxg2FaAR4g==",
- "dev": true
- },
- "js-sdsl": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz",
- "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw=="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "js2xmlparser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
- "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
- "dev": true,
- "requires": {
- "xmlcreate": "^2.0.4"
- }
- },
- "jsdoc": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz",
- "integrity": "sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.9.4",
- "@types/markdown-it": "^12.2.3",
- "bluebird": "^3.7.2",
- "catharsis": "^0.9.0",
- "escape-string-regexp": "^2.0.0",
- "js2xmlparser": "^4.0.2",
- "klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
- "marked": "^4.0.10",
- "mkdirp": "^1.0.4",
- "requizzle": "^0.2.3",
- "strip-json-comments": "^3.1.0",
- "taffydb": "2.6.2",
- "underscore": "~1.13.2"
- }
- },
- "jsdoc-api": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.2.0.tgz",
- "integrity": "sha512-93YDnlm/OYTlLOFeNs4qAv0RBCJ0kGj67xQaWy8wrbk97Rw1EySitoOTHsTHXPEs3uyx2IStPKGrbE7LTnZXbA==",
- "dev": true,
- "requires": {
- "array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "collect-all": "^1.0.4",
- "file-set": "^4.0.2",
- "fs-then-native": "^2.0.0",
- "jsdoc": "^4.0.0",
- "object-to-spawn-args": "^2.0.1",
- "temp-path": "^1.0.0",
- "walk-back": "^5.1.0"
- },
- "dependencies": {
- "jsdoc": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.0.tgz",
- "integrity": "sha512-tzTgkklbWKrlaQL2+e3NNgLcZu3NaK2vsHRx7tyHQ+H5jcB9Gx0txSd2eJWlMC/xU1+7LQu4s58Ry0RkuaEQVg==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.9.4",
- "@jsdoc/salty": "^0.2.1",
- "@types/markdown-it": "^12.2.3",
- "bluebird": "^3.7.2",
- "catharsis": "^0.9.0",
- "escape-string-regexp": "^2.0.0",
- "js2xmlparser": "^4.0.2",
- "klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
- "marked": "^4.0.10",
- "mkdirp": "^1.0.4",
- "requizzle": "^0.2.3",
- "strip-json-comments": "^3.1.0",
- "underscore": "~1.13.2"
- }
- }
- }
- },
- "jsdoc-nr-template": {
- "version": "git+ssh://git@github.com/node-red/jsdoc-nr-template.git#3c7c8f96d585c7c5918a2e63519310e1297e162d",
- "dev": true,
- "from": "jsdoc-nr-template@github:node-red/jsdoc-nr-template"
- },
- "jsdoc-parse": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz",
- "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==",
- "dev": true,
- "requires": {
- "array-back": "^6.2.2",
- "lodash.omit": "^4.5.0",
- "lodash.pick": "^4.4.0",
- "reduce-extract": "^1.0.0",
- "sort-array": "^4.1.5",
- "test-value": "^3.0.0"
- }
- },
- "jsdoc-to-markdown": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.1.1.tgz",
- "integrity": "sha512-CI86d63xAVNO+ENumWwmJ034lYe5iGU5GwjtTA11EuphP9tpnoi4hrKgR/J8uME0D+o4KUpVfwX1fjZhc8dEtg==",
- "dev": true,
- "requires": {
- "array-back": "^6.2.2",
- "command-line-tool": "^0.8.0",
- "config-master": "^3.1.0",
- "dmd": "^6.1.0",
- "jsdoc-api": "^7.1.1",
- "jsdoc-parse": "^6.1.0",
- "walk-back": "^5.1.0"
- }
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
- "jshint": {
- "version": "2.13.6",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz",
- "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==",
- "dev": true,
- "requires": {
- "cli": "~1.0.0",
- "console-browserify": "1.1.x",
- "exit": "0.1.x",
- "htmlparser2": "3.8.x",
- "lodash": "~4.17.21",
- "minimatch": "~3.0.2",
- "strip-json-comments": "1.0.x"
- },
- "dependencies": {
- "dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.0.1",
- "entities": "^2.0.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true
- }
- }
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
- "dev": true
- },
- "domhandler": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==",
- "dev": true
- },
- "htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
- "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==",
- "dev": true,
- "requires": {
- "domelementtype": "1",
- "domhandler": "2.3",
- "domutils": "1.5",
- "entities": "1.0",
- "readable-stream": "1.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- },
- "strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==",
- "dev": true
- }
- }
- },
- "json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "jsonata": {
- "version": "1.8.6",
- "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.6.tgz",
- "integrity": "sha512-ZH2TPYdNP2JecOl/HvrH47Xc+9imibEMQ4YqKy/F/FrM+2a6vfbGxeCX23dB9Fr6uvGwv+ghf1KxWB3iZk09wA=="
- },
- "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"
- }
- },
- "just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
- "dev": true
- },
- "key-list": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/key-list/-/key-list-0.1.4.tgz",
- "integrity": "sha512-DMGLZAmEoKRUHPlc772EW0i92P/WY12/oWYc2pQZb5MVGOSjYmF0BEQXbOLjbou1+/PqZ+CivwfyjaUwmyl4CQ==",
- "dev": true
- },
- "keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
- "requires": {
- "json-buffer": "3.0.1"
- }
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true
- },
- "klaw": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
- "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.9"
- }
- },
- "lazystream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
- "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
- "dev": true,
- "requires": {
- "readable-stream": "^2.0.5"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="
- },
- "liftup": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
- "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==",
- "dev": true,
- "requires": {
- "extend": "^3.0.2",
- "findup-sync": "^4.0.0",
- "fined": "^1.2.0",
- "flagged-respawn": "^1.0.1",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.1",
- "rechoir": "^0.7.0",
- "resolve": "^1.19.0"
- },
- "dependencies": {
- "findup-sync": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
- "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
- "dev": true,
- "requires": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^4.0.2",
- "resolve-dir": "^1.0.1"
- }
- }
- }
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "linkify-it": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
- "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
- "dev": true,
- "requires": {
- "uc.micro": "^1.0.1"
- }
- },
- "livereload-js": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
- "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
- "dev": true
- },
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true
- }
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
- "dev": true
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
- "lodash.omit": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
- "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
- "dev": true
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "lodash.union": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
- "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
- "dev": true
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- }
- },
- "lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
- },
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "optional": true,
- "requires": {
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "optional": true
- }
- }
- },
- "make-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.2"
- }
- },
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
- "dev": true
- },
- "markdown-it": {
- "version": "12.3.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
- "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1",
- "entities": "~2.1.0",
- "linkify-it": "^3.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
- },
- "dependencies": {
- "entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
- "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
- "dev": true
- }
- }
- },
- "markdown-it-anchor": {
- "version": "8.6.6",
- "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz",
- "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==",
- "dev": true,
- "requires": {}
- },
- "marked": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
- "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==",
- "dev": true
- },
- "maxmin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-3.0.0.tgz",
- "integrity": "sha512-wcahMInmGtg/7c6a75fr21Ch/Ks1Tb+Jtoan5Ft4bAI0ZvJqyOw8kkM7e7p8hDSzY805vmxwHT50KcjGwKyJ0g==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "figures": "^3.2.0",
- "gzip-size": "^5.1.1",
- "pretty-bytes": "^5.3.0"
- }
- },
- "mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
- "dev": true
- },
- "media-typer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
- "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="
- },
- "memorystore": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz",
- "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==",
- "requires": {
- "debug": "^4.3.0",
- "lru-cache": "^4.0.3"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "dev": true,
- "requires": {
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
- },
- "micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "requires": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- }
- },
- "mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
- },
- "minami": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/minami/-/minami-1.2.3.tgz",
- "integrity": "sha512-3f2QqqbUC1usVux0FkQMFYB73yd9JIxmHSn1dWQacizL6hOUaNu6mA3KxZ9SfiCc4qgcgq+5XP59+hP7URa1Dw==",
- "dev": true
- },
- "minimatch": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
- "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
- },
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "requires": {
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "mkdirp2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
- "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==",
- "dev": true
- },
- "mocha": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
- "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
- "requires": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.3",
- "debug": "4.3.3",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.2.0",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "4.2.1",
- "ms": "2.1.3",
- "nanoid": "3.3.1",
- "serialize-javascript": "6.0.0",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "workerpool": "6.2.0",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "dependencies": {
- "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"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "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"
- },
- "dependencies": {
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "minimatch": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
- "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "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"
- }
- }
- }
- },
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
- },
- "moment-timezone": {
- "version": "0.5.39",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.39.tgz",
- "integrity": "sha512-hoB6suq4ISDj7BDgctiOy6zljBsdYT0++0ZzZm9rtxIvJhIbQ3nmbgSWe7dNFGurl6/7b1OUkHlmN9JWgXVz7w==",
- "requires": {
- "moment": ">= 2.9.0"
- }
- },
- "mqtt": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz",
- "integrity": "sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==",
- "requires": {
- "commist": "^1.0.0",
- "concat-stream": "^2.0.0",
- "debug": "^4.1.1",
- "duplexify": "^4.1.1",
- "help-me": "^3.0.0",
- "inherits": "^2.0.3",
- "lru-cache": "^6.0.0",
- "minimist": "^1.2.5",
- "mqtt-packet": "^6.8.0",
- "number-allocator": "^1.0.9",
- "pump": "^3.0.0",
- "readable-stream": "^3.6.0",
- "reinterval": "^1.1.0",
- "rfdc": "^1.3.0",
- "split2": "^3.1.0",
- "ws": "^7.5.5",
- "xtend": "^4.0.2"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "mqtt-packet": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz",
- "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==",
- "requires": {
- "bl": "^4.0.2",
- "debug": "^4.1.1",
- "process-nextick-args": "^2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "mri": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
- "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "requires": {
- "append-field": "^1.0.0",
- "busboy": "^1.0.0",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.4",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
- },
- "nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "nested-error-stacks": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
- "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
- "dev": true
- },
- "nise": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
- "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^2.0.0",
- "@sinonjs/fake-timers": "^10.0.2",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "path-to-regexp": "^1.7.0"
- },
- "dependencies": {
- "@sinonjs/commons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
- "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz",
- "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^2.0.0"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
- }
- }
- }
- },
- "node-addon-api": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz",
- "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==",
- "optional": true
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "devOptional": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-red-admin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.0.0.tgz",
- "integrity": "sha512-1J1tcV+zkCIy24n0rcJ/DSPSCziEgLGld+QBYk1rNESIo+gFyL5RMkCOcII2IrBTZF/kcDTElepMTCILXbMDfQ==",
- "requires": {
- "ansi-colors": "^4.1.1",
- "axios": "0.27.2",
- "bcrypt": "5.0.1",
- "bcryptjs": "^2.4.3",
- "cli-table": "^0.3.11",
- "enquirer": "^2.3.6",
- "minimist": "^1.2.6",
- "mustache": "^4.2.0",
- "read": "^1.0.7"
- },
- "dependencies": {
- "bcrypt": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz",
- "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==",
- "optional": true,
- "requires": {
- "@mapbox/node-pre-gyp": "^1.0.0",
- "node-addon-api": "^3.1.0"
- }
- },
- "node-addon-api": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
- "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
- "optional": true
- }
- }
- },
- "node-red-node-test-helper": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.0.tgz",
- "integrity": "sha512-mgeMEsRDbxmF16dQeBHEF0n944i09V4d1tMYpll83P2kxu/78Iqc6kuP9E12duqQSgWR8SOGNUqMxz9vpog1DA==",
- "dev": true,
- "requires": {
- "body-parser": "1.20.0",
- "express": "4.18.1",
- "read-pkg-up": "7.0.1",
- "semver": "7.3.7",
- "should": "^13.2.3",
- "should-sinon": "0.0.6",
- "sinon": "11.1.2",
- "stoppable": "1.1.0",
- "supertest": "6.2.3"
- },
- "dependencies": {
- "body-parser": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
- "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
- "dev": true,
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.10.3",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "express": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
- "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.0",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.10.3",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "qs": {
- "version": "6.10.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
- "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
- "dev": true,
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
- },
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "superagent": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz",
- "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==",
- "dev": true,
- "requires": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.0.1",
- "methods": "^1.1.2",
- "mime": "^2.5.0",
- "qs": "^6.10.3",
- "readable-stream": "^3.6.0",
- "semver": "^7.3.7"
- }
- },
- "supertest": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz",
- "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==",
- "dev": true,
- "requires": {
- "methods": "^1.1.2",
- "superagent": "^7.1.3"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- }
- }
- },
- "node-watch": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
- "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ=="
- },
- "nodemon": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
- "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
- "dev": true,
- "requires": {
- "chokidar": "^3.5.2",
- "debug": "^3.2.7",
- "ignore-by-default": "^1.0.1",
- "minimatch": "^3.1.2",
- "pstree.remy": "^1.1.8",
- "semver": "^5.7.1",
- "simple-update-notifier": "^1.0.7",
- "supports-color": "^5.5.0",
- "touch": "^3.1.0",
- "undefsafe": "^2.0.5"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "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"
- }
- }
- }
- },
- "nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "requires": {
- "abbrev": "1"
- }
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.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://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
- },
- "npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "optional": true,
- "requires": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
- "number-allocator": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.12.tgz",
- "integrity": "sha512-sGB0qoQGmKimery9JubBQ9pQUr1V/LixJAk3Ygp7obZf6mpSXime8d7XHEobbIimkdZpgjkNlLt6G7LPEWFYWg==",
- "requires": {
- "debug": "^4.3.1",
- "js-sdsl": "4.1.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "nyc": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
- "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
- "dev": true,
- "requires": {
- "archy": "^1.0.0",
- "caching-transform": "^3.0.2",
- "convert-source-map": "^1.6.0",
- "cp-file": "^6.2.0",
- "find-cache-dir": "^2.1.0",
- "find-up": "^3.0.0",
- "foreground-child": "^1.5.6",
- "glob": "^7.1.3",
- "istanbul-lib-coverage": "^2.0.5",
- "istanbul-lib-hook": "^2.0.7",
- "istanbul-lib-instrument": "^3.3.0",
- "istanbul-lib-report": "^2.0.8",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^2.2.4",
- "js-yaml": "^3.13.1",
- "make-dir": "^2.1.0",
- "merge-source-map": "^1.1.0",
- "resolve-from": "^4.0.0",
- "rimraf": "^2.6.3",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^5.2.3",
- "uuid": "^3.3.2",
- "yargs": "^13.2.2",
- "yargs-parser": "^13.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true
- },
- "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"
- }
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.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://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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.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://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- },
- "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"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.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"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.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"
- }
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.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://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
- }
- },
- "oauth2orize": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz",
- "integrity": "sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==",
- "requires": {
- "debug": "2.x.x",
- "uid2": "0.0.x",
- "utils-merge": "1.x.x"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
- },
- "object-get": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz",
- "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==",
- "dev": true
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
- },
- "object-to-spawn-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz",
- "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==",
- "dev": true
- },
- "object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
- "dev": true,
- "requires": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "object.map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
- "dev": true,
- "requires": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- }
- },
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "requires": {
- "wrappy": "1"
- }
- },
- "opted": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/opted/-/opted-1.0.2.tgz",
- "integrity": "sha512-uEvunmdmKcSFiBSmnY2E9E/HbghO5yc1J0yNmq7T18YkAJeWNlo33e6VYKkRK4eudVrpvvlLdemAeAuL6rZxjQ==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.4"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
- "dev": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true
- },
- "osenv": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
- "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
- "dev": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "package-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
- "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.15",
- "hasha": "^3.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- }
- },
- "pad-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz",
- "integrity": "sha512-3QeQw19K48BQzUGZ9dEf/slX5Jbfy5ZeBTma2XICketO7kFNK7omF00riVcecOKN+DSiJZcK2em1eYKaVOeXKg==",
- "dev": true,
- "requires": {
- "pumpify": "^1.3.3",
- "split2": "^2.1.1",
- "through2": "^2.0.0"
- },
- "dependencies": {
- "split2": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
- "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
- "dev": true,
- "requires": {
- "through2": "^2.0.2"
- }
- }
- }
- },
- "parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
- "dev": true,
- "requires": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- }
- },
- "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"
- }
- },
- "parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
- "dev": true
- },
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
- },
- "parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "requires": {
- "parse5": "^6.0.1"
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "passport": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz",
- "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==",
- "requires": {
- "passport-strategy": "1.x.x",
- "pause": "0.0.1",
- "utils-merge": "^1.0.1"
- }
- },
- "passport-http-bearer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz",
- "integrity": "sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==",
- "requires": {
- "passport-strategy": "1.x.x"
- }
- },
- "passport-oauth2-client-password": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz",
- "integrity": "sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ==",
- "requires": {
- "passport-strategy": "1.x.x"
- }
- },
- "passport-strategy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
- "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA=="
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
- "dev": true,
- "requires": {
- "path-root-regex": "^0.1.0"
- }
- },
- "path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true
- }
- }
- },
- "pause": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
- "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.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://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.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://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- }
- }
- },
- "pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "proxy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz",
- "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==",
- "dev": true,
- "requires": {
- "args": "5.0.1",
- "basic-auth-parser": "0.0.2",
- "debug": "^4.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
- },
- "pstree.remy": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
- "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "pumpify": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
- "dev": true,
- "requires": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- },
- "dependencies": {
- "duplexify": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.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"
- }
- },
- "pump": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "punycode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
- "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw=="
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- },
- "quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
- },
- "random-bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
- "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ=="
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
- },
- "raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
- }
- },
- "read": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
- "requires": {
- "mute-stream": "~0.0.4"
- }
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.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://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
- }
- },
- "read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.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"
- },
- "dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- }
- }
- },
- "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==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "readdir-glob": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz",
- "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==",
- "dev": true,
- "requires": {
- "minimatch": "^5.1.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "rechoir": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
- "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
- "dev": true,
- "requires": {
- "resolve": "^1.9.0"
- }
- },
- "reduce-extract": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz",
- "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==",
- "dev": true,
- "requires": {
- "test-value": "^1.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- },
- "test-value": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz",
- "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.2",
- "typical": "^2.4.2"
- }
- }
- }
- },
- "reduce-flatten": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz",
- "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==",
- "dev": true
- },
- "reduce-unique": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz",
- "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==",
- "dev": true
- },
- "reduce-without": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz",
- "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==",
- "dev": true,
- "requires": {
- "test-value": "^2.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- },
- "test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
- }
- }
- }
- },
- "regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
- },
- "reinterval": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
- "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ=="
- },
- "release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "requires": {
- "es6-error": "^4.0.1"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true
- },
- "require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
- },
- "requizzle": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
- "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.21"
- }
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
- },
- "resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
- "dev": true,
- "requires": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "requires": {
- "lowercase-keys": "^2.0.0"
- }
- },
- "rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "devOptional": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safe-json-parse": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
- "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==",
- "dev": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "sass": {
- "version": "1.56.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz",
- "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==",
- "dev": true,
- "requires": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "requires": {
- "lru-cache": "^6.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "dependencies": {
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- }
- }
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "devOptional": true
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "shelljs": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
- "integrity": "sha512-C2FisSSW8S6TIYHHiMHN0NqzdjWfTekdMpA2FJTbRWnQMLO1RRIXEB9eVZYOlofYmjZA7fY3ChoFu09MeI3wlQ==",
- "dev": true
- },
- "should": {
- "version": "13.2.3",
- "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
- "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
- "dev": true,
- "requires": {
- "should-equal": "^2.0.0",
- "should-format": "^3.0.3",
- "should-type": "^1.4.0",
- "should-type-adaptors": "^1.0.1",
- "should-util": "^1.0.0"
- }
- },
- "should-equal": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
- "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
- "dev": true,
- "requires": {
- "should-type": "^1.4.0"
- }
- },
- "should-format": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
- "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==",
- "dev": true,
- "requires": {
- "should-type": "^1.3.0",
- "should-type-adaptors": "^1.0.1"
- }
- },
- "should-sinon": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz",
- "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==",
- "dev": true,
- "requires": {}
- },
- "should-type": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
- "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==",
- "dev": true
- },
- "should-type-adaptors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
- "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
- "dev": true,
- "requires": {
- "should-type": "^1.3.0",
- "should-util": "^1.0.0"
- }
- },
- "should-util": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
- "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
- "dev": true
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "devOptional": true
- },
- "simple-cli": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/simple-cli/-/simple-cli-5.0.5.tgz",
- "integrity": "sha512-Er2FhsIayL/sktxg6fOCdNQJBTXhlf/fswNFsdmks88xsHzQ/IXGwxYgSSKeXBq4yqn83/iD4Sg8yjagwysUgw==",
- "dev": true,
- "requires": {
- "async": "^3.1.0",
- "chalk": "^2.4.2",
- "cross-spawn": "^7.0.0",
- "key-list": "^0.1.4",
- "lodash": "^4.17.15",
- "opted": "^1.0.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"
- }
- },
- "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "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"
- }
- }
- }
- },
- "simple-update-notifier": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
- "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
- "dev": true,
- "requires": {
- "semver": "~7.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "dev": true
- }
- }
- },
- "sinon": {
- "version": "11.1.2",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
- "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.8.3",
- "@sinonjs/fake-timers": "^7.1.2",
- "@sinonjs/samsam": "^6.0.2",
- "diff": "^5.0.0",
- "nise": "^5.1.0",
- "supports-color": "^7.2.0"
- }
- },
- "sort-array": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz",
- "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==",
- "dev": true,
- "requires": {
- "array-back": "^5.0.0",
- "typical": "^6.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true
- },
- "typical": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz",
- "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==",
- "dev": true
- }
- }
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "dev": true
- },
- "source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true
- },
- "spawn-wrap": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
- "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
- "dev": true,
- "requires": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
- },
- "dependencies": {
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "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"
- }
- },
- "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"
- }
- }
- }
- },
- "spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.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://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.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.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "requires": {
- "readable-stream": "^3.0.0"
- }
- },
- "sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
- "dev": true
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
- },
- "stoppable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
- "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
- "dev": true
- },
- "stream-buffers": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz",
- "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==",
- "dev": true
- },
- "stream-connect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz",
- "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.2"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
- "stream-shift": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
- "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
- },
- "stream-via": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
- "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==",
- "dev": true
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "string-template": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
- "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==",
- "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==",
- "devOptional": 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==",
- "devOptional": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- },
- "superagent": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz",
- "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==",
- "dev": true,
- "requires": {
- "component-emitter": "^1.3.0",
- "cookiejar": "^2.1.3",
- "debug": "^4.3.4",
- "fast-safe-stringify": "^2.1.1",
- "form-data": "^4.0.0",
- "formidable": "^2.1.1",
- "methods": "^1.1.2",
- "mime": "2.6.0",
- "qs": "^6.11.0",
- "semver": "^7.3.8"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "supertest": {
- "version": "6.2.4",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz",
- "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==",
- "dev": true,
- "requires": {
- "methods": "^1.1.2",
- "superagent": "^8.0.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "table-layout": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
- "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
- "dev": true,
- "requires": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
- }
- },
- "taffydb": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
- "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==",
- "dev": true
- },
- "tar": {
- "version": "6.1.12",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz",
- "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==",
- "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"
- },
- "dependencies": {
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "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"
- }
- },
- "temp-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
- "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==",
- "dev": true
- },
- "test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.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://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.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://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- },
- "read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
- }
- }
- }
- },
- "test-value": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
- "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
- "dev": true,
- "requires": {
- "array-back": "^2.0.0",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
- }
- },
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.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"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "tiny-lr": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
- "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
- "dev": true,
- "requires": {
- "body": "^5.1.0",
- "debug": "^3.1.0",
- "faye-websocket": "~0.10.0",
- "livereload-js": "^2.3.0",
- "object-assign": "^4.1.0",
- "qs": "^6.4.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- }
- }
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
- },
- "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"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- },
- "touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
- "dev": true,
- "requires": {
- "nopt": "~1.0.10"
- },
- "dependencies": {
- "nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "dev": true,
- "requires": {
- "abbrev": "1"
- }
- }
- }
- },
- "tough-cookie": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
- "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
- "requires": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "dependencies": {
- "universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
- }
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "devOptional": true
- },
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "dependencies": {
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
- }
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
- },
- "typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
- "dev": true
- },
- "uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
- "uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g=="
- },
- "uid-safe": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
- "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
- "requires": {
- "random-bytes": "~1.0.0"
- }
- },
- "uid2": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
- "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
- },
- "unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
- "dev": true
- },
- "undefsafe": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
- "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true
- },
- "underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
- "dev": true
- },
- "underscore.string": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
- "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
- "dev": true,
- "requires": {
- "sprintf-js": "^1.1.1",
- "util-deprecate": "^1.0.2"
- }
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "uri-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
- "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==",
- "dev": true
- },
- "url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "requires": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
- },
- "v8flags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
- "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
- },
- "walk-back": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz",
- "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==",
- "dev": true
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "devOptional": true
- },
- "websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dev": true,
- "requires": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- }
- },
- "websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "devOptional": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "optional": true,
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
- "dev": true,
- "requires": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
- "dev": true
- }
- }
- },
- "workerpool": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
- "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
- "dev": true
- },
- "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"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "ws": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
- "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
- "requires": {}
- },
- "xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- }
- },
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
- },
- "xmlcreate": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
- "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
- "dev": true
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
- },
- "yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.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": {
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- }
- }
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
- },
- "zip-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz",
- "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==",
- "dev": true,
- "requires": {
- "archiver-utils": "^2.1.0",
- "compress-commons": "^4.1.0",
- "readable-stream": "^3.6.0"
- }
- }
- }
-}
From 3a1cc38aaf542b797a0170d6c59cce5be75595a0 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Thu, 2 Feb 2023 11:09:55 +0000
Subject: [PATCH 131/178] Update for 3.1.0-beta.1
---
CHANGELOG.md | 90 +++++++++++++++++++
package.json | 2 +-
.../@node-red/editor-api/package.json | 6 +-
.../@node-red/editor-client/package.json | 2 +-
.../node_modules/@node-red/nodes/package.json | 2 +-
.../@node-red/registry/package.json | 4 +-
.../@node-red/runtime/package.json | 6 +-
.../node_modules/@node-red/util/package.json | 2 +-
packages/node_modules/node-red/package.json | 10 +--
9 files changed, 107 insertions(+), 17 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 630d91b4b..872c40e7f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,93 @@
+#### 3.1.0-beta.1: Beta Release
+
+Editor
+
+ - NEW: Locking Flows (#3938) @knolleary
+ - NEW: Improve UX around hiding flows via context menu (#3930) @knolleary
+ - NEW: Add support for inline image in markdown editor by drag and drop of an image file (#4006) @HiroyasuNishiyama
+ - NEW: Add support for mermaid diagram to markdown editor (#4007) @HiroyasuNishiyama
+ - NEW: Support uri fragments for nodes and groups including edit support (#3870) @knolleary
+
+ - Remember compact/pretty flow export user choice (#3974) @Steve-Mcl
+ - fix .red-ui-notification class (#4035) @xiaobinqt
+ - Fix border radius on Modules list header (#4038) @bonanitech
+ - fix workspace reference error in case of empty tabs (#4029) @HiroyasuNishiyama
+ - Disable delete tab menu when single tab exists (#4030) @HiroyasuNishiyama
+ - Disable hide all menu if all tabs hidden (#4031) @HiroyasuNishiyama
+ - fix hide subflow tooltip (#4033) @HiroyasuNishiyama
+ - Fix disabled menu items in project feature (#4027) @kazuhitoyokoi
+ - Let themes change radialMenu text colors (#3995) @bonanitech
+ - Add Japanese translations for v3.0.3 (#4012) @kazuhitoyokoi
+ - Add Japanese translation for v3.1.0-beta.0 (#3997) @kazuhitoyokoi
+ - Add Japanese translation for v3.1.0-beta.0 (#3916) @kazuhitoyokoi
+ - Hide subflow category after deleting subflow (#3980) @kazuhitoyokoi
+ - Prevent dbl-click opening node edit dialog with text selected (#3970) @knolleary
+ - Handle replacing unknown node inside group or subflow (#3921) @knolleary
+ - Fix #3939, red border red-ui-typedInput-container (#3949) @Steveorevo
+ - i18n item URL copy notification & add Japanese message (#3946) @HiroyasuNishiyama
+ - add Japanese message for item url copy actions (#3947) @HiroyasuNishiyama
+ - Fix autocomplete entry for responseUrl (#3884) @knolleary
+ - Fix Japanese translation for JSONata editor (#3872) @HiroyasuNishiyama
+ - Fix search type with spaces (#3841) @Steve-Mcl
+ - Fix error hanndling of JSONata expression editor for extended functions (#3871) @HiroyasuNishiyama
+ - Add button type to the adding SSH key button (#3866) @kazuhitoyokoi
+ - Check radio button as default in project dialog (#3879) @kazuhitoyokoi
+ - Add $clone as supported function (#3874) @HiroyasuNishiyama
+ - Env var jsonata (#3807) @HiroyasuNishiyama
+ - Add Japanese translation for v3.0.2 (#3852) @kazuhitoyokoi
+
+Runtime
+
+ - NEW: Add global environment variable feature (#3941) @HiroyasuNishiyama
+ - Force IPv4 name resolution to have priority (#4019) @dceejay
+ - Fix async loading of modules containing both nodes and plugins (#3999) @knolleary
+ - Use main branch as default in project feature (#4036) @kazuhitoyokoi
+ - Rename package var to avoid strict mode error (#4020) @knolleary
+ - Fix typos in settings.js (#4013) @ypid
+ - Ensure credentials object is removed before returning node in getFlow request (#3971) @knolleary
+ - Ignore commit error in project feature (#3987) @kazuhitoyokoi
+ - Update dependencies (#3969) @knolleary
+ - Add check that node sends object rather than primitive type (#3909) @knolleary
+ - Ensure key_path is quoted in GIT_SSH_COMMAND in case of spaces in pathname (#3912) @knolleary
+ - Fix nodesDir scan when node package has js/html in sub dir to package.json (#3867) @Steve-Mcl
+ - Fix file permissions (#3917) @kazuhitoyokoi
+ - ci: add minimum GitHub token permissions for workflows (#3907) @boahc077
+
+Nodes
+
+ - Catch: fix typo in catch.html (#3965) @we11adam
+ - Change: Fix change node overwriting msg with itself (#3899) @dceejay
+ - Comment node: Clarify where the text will appear (#4004) @dirkjanfaber
+ - CSV: change replace to replaceAll (#3990) @dceejay
+ - CSV node: check header properties for ' and " (#3920) @dceejay
+ - CSV: Fix for CSV undefined property (#3906) @dceejay
+ - Delay: let delay node handle both flush then reset (#3898) @dceejay
+ - Function: Limit number of ports in function node (#3886) @kazuhitoyokoi
+ - Function: Remove dot from variable name for external module in function node (#3880) @kazuhitoyokoi
+ - Function: add function node monaco types util and promisify (#3868) @Steve-Mcl
+ - HTTP In: Ensure msg.req.headers is enumerable (#3908) @knolleary
+ - HTTP Request: Support form-data arrays (#3991) @hardillb
+ - HTTP Request: Fix httprequest tests to be more lenient on error message (#3922) @knolleary
+ - HTTP Request: Add missing property to node object HTTPRequest (#3842) @hardillb
+ - HTTP Request/Response: Support sortable list on property UI of http request and http response nodes (#3857) @kazuhitoyokoi
+ - HTTP Response: Ensure statusCode is a number (#3894) @hardillb
+ - Inject: Allow Inject node to work with async context stores (#4021) @knolleary
+ - Join/Batch: Add count to join and batch node labels (#4028) @dceejay
+ - MQTT: Fix birth topic handling in MQTT node (#3905) @Steve-Mcl
+ - MQTT: Fix pull-down menus of MQTT configuration node (#3890) @kazuhitoyokoi
+ - MQTT: Prevent invalid mqtt birth topic crashing node-red (#3869) @Steve-Mcl
+ - MQTT: ensure sessionExpiry(Interval) is applied (#3840) @Steve-Mcl
+ - MQTT: Fix mqtt nodes not reconnecting on modified-flows deploy (#3992) @knolleary
+ - MQTT: fix single subscription mqtt node status (#3966) @Steve-Mcl
+ - Range: Add drop mode to range node (#3935) @dceejay
+ - Remove done from describe (#3873) @HiroyasuNishiyama
+ - Split node: avoid duplicate done call for buffer split (#4000) @knolleary
+ - Status: Fix typo in 25-status.html (#3981) @kazuhitoyokoi
+ - TCP Node: ensure newline substitution applies to whole message (#4009) @dceejay
+ - Template: Add information about environment variable to template node (#3882) @kazuhitoyokoi
+ - Trigger: Hide trigger node repeat send option if sending nothing (#4023) @dceejay
+ - Watch: fix watch node test on MacOS/ARM (#3942) @HiroyasuNishiyama
+
#### 3.0.2: Maintenance Release
Editor
diff --git a/package.json b/package.json
index ed0edd2b0..ad6ccd4db 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "node-red",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"description": "Low-code programming for event-driven applications",
"homepage": "http://nodered.org",
"license": "Apache-2.0",
diff --git a/packages/node_modules/@node-red/editor-api/package.json b/packages/node_modules/@node-red/editor-api/package.json
index 01fcb0ec8..920104803 100644
--- a/packages/node_modules/@node-red/editor-api/package.json
+++ b/packages/node_modules/@node-red/editor-api/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/editor-api",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"main": "./lib/index.js",
"repository": {
@@ -16,8 +16,8 @@
}
],
"dependencies": {
- "@node-red/util": "3.1.0-beta.0",
- "@node-red/editor-client": "3.1.0-beta.0",
+ "@node-red/util": "3.1.0-beta.1",
+ "@node-red/editor-client": "3.1.0-beta.1",
"bcryptjs": "2.4.3",
"body-parser": "1.20.1",
"clone": "2.1.2",
diff --git a/packages/node_modules/@node-red/editor-client/package.json b/packages/node_modules/@node-red/editor-client/package.json
index dbcdb1ba5..2fcd5950b 100644
--- a/packages/node_modules/@node-red/editor-client/package.json
+++ b/packages/node_modules/@node-red/editor-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/editor-client",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/node_modules/@node-red/nodes/package.json b/packages/node_modules/@node-red/nodes/package.json
index c4b7023dd..a4a6d18b5 100644
--- a/packages/node_modules/@node-red/nodes/package.json
+++ b/packages/node_modules/@node-red/nodes/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/nodes",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/node_modules/@node-red/registry/package.json b/packages/node_modules/@node-red/registry/package.json
index 8dbe03d5b..a6f5858f0 100644
--- a/packages/node_modules/@node-red/registry/package.json
+++ b/packages/node_modules/@node-red/registry/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/registry",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"main": "./lib/index.js",
"repository": {
@@ -16,7 +16,7 @@
}
],
"dependencies": {
- "@node-red/util": "3.1.0-beta.0",
+ "@node-red/util": "3.1.0-beta.1",
"clone": "2.1.2",
"fs-extra": "10.1.0",
"semver": "7.3.8",
diff --git a/packages/node_modules/@node-red/runtime/package.json b/packages/node_modules/@node-red/runtime/package.json
index f3c58ee71..58e84ab2d 100644
--- a/packages/node_modules/@node-red/runtime/package.json
+++ b/packages/node_modules/@node-red/runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/runtime",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"main": "./lib/index.js",
"repository": {
@@ -16,8 +16,8 @@
}
],
"dependencies": {
- "@node-red/registry": "3.1.0-beta.0",
- "@node-red/util": "3.1.0-beta.0",
+ "@node-red/registry": "3.1.0-beta.1",
+ "@node-red/util": "3.1.0-beta.1",
"async-mutex": "0.4.0",
"clone": "2.1.2",
"express": "4.18.2",
diff --git a/packages/node_modules/@node-red/util/package.json b/packages/node_modules/@node-red/util/package.json
index a02b99711..6833cabf4 100644
--- a/packages/node_modules/@node-red/util/package.json
+++ b/packages/node_modules/@node-red/util/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/util",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/node_modules/node-red/package.json b/packages/node_modules/node-red/package.json
index e87a14c97..ae8aa69bd 100644
--- a/packages/node_modules/node-red/package.json
+++ b/packages/node_modules/node-red/package.json
@@ -1,6 +1,6 @@
{
"name": "node-red",
- "version": "3.1.0-beta.0",
+ "version": "3.1.0-beta.1",
"description": "Low-code programming for event-driven applications",
"homepage": "http://nodered.org",
"license": "Apache-2.0",
@@ -31,10 +31,10 @@
"flow"
],
"dependencies": {
- "@node-red/editor-api": "3.1.0-beta.0",
- "@node-red/runtime": "3.1.0-beta.0",
- "@node-red/util": "3.1.0-beta.0",
- "@node-red/nodes": "3.1.0-beta.0",
+ "@node-red/editor-api": "3.1.0-beta.1",
+ "@node-red/runtime": "3.1.0-beta.1",
+ "@node-red/util": "3.1.0-beta.1",
+ "@node-red/nodes": "3.1.0-beta.1",
"basic-auth": "2.0.1",
"bcryptjs": "2.4.3",
"express": "4.18.2",
From 6d717a21cfe516572551d19156f723a05589e9f9 Mon Sep 17 00:00:00 2001
From: Nick O'Leary
Date: Thu, 2 Feb 2023 13:34:01 +0000
Subject: [PATCH 132/178] Add 310 tour
---
CHANGELOG.md | 5 +-
.../editor-client/src/js/ui/tour/tourGuide.js | 7 +-
.../src/tours/3.0/images/context-menu.png | Bin 0 -> 67976 bytes
.../{ => 3.0}/images/continuous-search.png | Bin
.../{ => 3.0}/images/debug-path-tooltip.png | Bin
.../{ => 3.0}/images/junction-quick-add.png | Bin
.../tours/{ => 3.0}/images/junction-slice.gif | Bin
.../images/split-wire-with-links.gif | Bin
.../editor-client/src/tours/3.0/welcome.js | 155 ++++++++++++++++++
.../src/tours/images/context-menu.png | Bin 67976 -> 95577 bytes
.../src/tours/images/global-env-vars.png | Bin 0 -> 69266 bytes
.../src/tours/images/hiding-flows.png | Bin 0 -> 25433 bytes
.../src/tours/images/locking-flows.png | Bin 0 -> 5534 bytes
.../src/tours/images/mermaid.png | Bin 0 -> 193465 bytes
.../editor-client/src/tours/welcome.js | 149 ++++++-----------
15 files changed, 215 insertions(+), 101 deletions(-)
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/3.0/images/context-menu.png
rename packages/node_modules/@node-red/editor-client/src/tours/{ => 3.0}/images/continuous-search.png (100%)
rename packages/node_modules/@node-red/editor-client/src/tours/{ => 3.0}/images/debug-path-tooltip.png (100%)
rename packages/node_modules/@node-red/editor-client/src/tours/{ => 3.0}/images/junction-quick-add.png (100%)
rename packages/node_modules/@node-red/editor-client/src/tours/{ => 3.0}/images/junction-slice.gif (100%)
rename packages/node_modules/@node-red/editor-client/src/tours/{ => 3.0}/images/split-wire-with-links.gif (100%)
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/3.0/welcome.js
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/global-env-vars.png
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/hiding-flows.png
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/locking-flows.png
create mode 100644 packages/node_modules/@node-red/editor-client/src/tours/images/mermaid.png
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 872c40e7f..04fd110ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
#### 3.1.0-beta.1: Beta Release
+
Editor
- NEW: Locking Flows (#3938) @knolleary
@@ -7,7 +8,8 @@ Editor
- NEW: Add support for inline image in markdown editor by drag and drop of an image file (#4006) @HiroyasuNishiyama
- NEW: Add support for mermaid diagram to markdown editor (#4007) @HiroyasuNishiyama
- NEW: Support uri fragments for nodes and groups including edit support (#3870) @knolleary
-
+ - NEW: Add global environment variable feature (#3941) @HiroyasuNishiyama
+
- Remember compact/pretty flow export user choice (#3974) @Steve-Mcl
- fix .red-ui-notification class (#4035) @xiaobinqt
- Fix border radius on Modules list header (#4038) @bonanitech
@@ -38,7 +40,6 @@ Editor
Runtime
- - NEW: Add global environment variable feature (#3941) @HiroyasuNishiyama
- Force IPv4 name resolution to have priority (#4019) @dceejay
- Fix async loading of modules containing both nodes and plugins (#3999) @knolleary
- Use main branch as default in project feature (#4036) @kazuhitoyokoi
diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tour/tourGuide.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tour/tourGuide.js
index 406715651..7d16e640b 100644
--- a/packages/node_modules/@node-red/editor-client/src/js/ui/tour/tourGuide.js
+++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tour/tourGuide.js
@@ -435,10 +435,15 @@ RED.tourGuide = (function() {
function listTour() {
return [
+ {
+ id: "3_1",
+ label: "3.1",
+ path: "./tours/welcome.js"
+ },
{
id: "3_0",
label: "3.0",
- path: "./tours/welcome.js"
+ path: "./tours/3.0/welcome.js"
},
{
id: "2_2",
diff --git a/packages/node_modules/@node-red/editor-client/src/tours/3.0/images/context-menu.png b/packages/node_modules/@node-red/editor-client/src/tours/3.0/images/context-menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..1acaab48b867480c8927079552f7e9431374573d
GIT binary patch
literal 67976
zcmeFZWmH^E*Cvbw3GN!)-Q6XPlRy$65F|Lk-6gm?1cwkHBm@uc?j9s~BaHgIISIaRfHZM&}Oh!^T0%%@~e;o#sfl@#SQ;ouPGfEOz&0&wLo
zo*zH(2Jfs1l7%Z9rPu-fu`$z8GFMZBV+B5=!Xd$v!99UC0bY{u0XN6!mJPh2IVkEn!@&_TKwt1m
zn)F9-a0pMWUg@~#sHuvY*xPa%o7%rO+M2l-Q+wFj*g1=ONYKJs
zhytIXm$_)EVNF~k3O-(KCWNI#|DgXSR?!bQ%w3aR|
z4x(IK?(XiK?tGl~P8M7|A|fJO+`L@8yc|Fa4rfn07h?|&J7>DboBVqpc{67dCo2aR
zD|?JQ8!jGBZm$2So0*5z|D_xB
zo5yajc|AT(9C|ZRO*3bE8&~M4UfWr@Nb-uqp7H;^{NF)}L+>T}!pg(UMn~St*38Zs
z=qf29%rDOMKYsH+_SF4vPhlSJ|Gnq`_RT*%#kruX^}ns&qiA4P0oh1C73cbooF$)*
zbsS2@4^c+Kfl$F6sPIS`=66&irnBDdWlhsuEFFUyrr
z?;?w8q_{njuZ>TgPikYb{?VJOilf0@<>9b}?pc|I+l6hquh|9po!@spi&2i#KMP_O
zqgmb-%NYV6X7)bl{j?_BB;wSc)84s9pSOG1_hMmz7+9X$vqA3X&owniTgG=+-i+Q=
z?-hQ@^3MO&_9N@YVpe5<2O{1^{N}f^Gy-0H01`blJes03!U)bdu6=01PvGN!uI4cz
zh=L{7CUyRM>HjtS?^^u-yF90F%Jk>8;A0pb<@YGGzz#GLT&k>mf&W8{76_*^rMgqj
z`2z^w-~0eSgrF1u)owo2tX&Xl%y~N4z@+a>KGb0EB0-q!tWke0nCiT;?ZwIr$#FQh
zWrws*oWF7y79qzy+$mQuf$GY?3c@cZ4QeKhouP$k&_5%{LER3&2v+%j4blGJ^8BkR
zf&a5o7|HPc;@2JmteL1b5wcc>YuT5$g4zX?8p+8125d`Tf&^!(@oQ#Y%q+-A<}9d>
z{ZY}X1KU+a!Hy9bm<0Plfc**-QEm@(iS=`I(*sl!4#~V7_o8aeFbDcoK3>0K^YKZ(
zQ>_zJa}n`ANrLnryxYqM!BBnmVu(j9r}Qk}u1NzdAvY#cQ5WtQn+z31i;Fy?u{Cbc
zoArH@#M=0K2h=@!%H_&AY_?2KO6k^+5hHBuwRE1t|r
zv)p<7N>}JWO=OLjV?7{IGGPVJur@Dn1($Tp6P_b2*dnbbr}TR&%g2!PH{eEVz2TL}
z+B0yi)srId#R_r*6^nCW!Yq0oE&|L#C@SbGMISckJ>|gu`AS{)8~=+`=o1-{id?ew
z$ZB38S7L?rB9#=g0DIU78I7L;*B~mG$BCD!0&9pvEQp;X0*i@?#rBime
zZHi+c+`q#NvThm0-CCTC;p~G%%9si1{CqXTqh7+YkUd#1gScReV;=TxV-a3GC~RYq
zdKl~V2;OLnLbsmicwtqt3a6{@JFU7y8?E0$44|mm1%ffR^Ztfs>E`E7cBvLkze7hz
zQ5t!fLsZ_e%BgE-E+tnlaHM#?l7UGmR6dUs)J$#u_4>_eEWvK?6Cf2RCguu#l
z){VSF*o?s`2k#{vvXdQjkyZI1jfOcAUzm3M)0|X-Ua`UqU;7I*{?+ill%mO@S4Hv2
zkX(PiL0@#CWe<}TGZYrfrl9e?*3zsd3xV*$ER_6N-}!W~&ywpbhe5OO4QYX6{d)gS
zS{kye8Rcu3>kaHh8@6wL&Z-I#3$ZCI8<2Ynv!dhdf!Fbw83Y-&6Tcs&>5UNdyn9d1
z(^@lpx!aDFnB(oVFW1jxsQU&sSE)`V!VQJf&}l$d{Fd)@-%oYaBHXsTH4?qtCw%@koO4K{Vztu-$nM*=*f(OQ{*#jgK3
zRhVq}7`(TQBTPNF6Q!fujfa(4D)q|p63-pJ7D{3gJg%rC!iX?<;)hc=Xmlxlz4{ox
zLiVwXGe5L$++C(PY&V6<)G6F1?A;VCp+mBTcj*$cI7*v`S?7!78k%0#6bpTFpmF+cX_$JrL4H8}pl)^tXq
zra;=1w7Z*cB`lW-l`MBH(qN!aC|Djh%tI)qa{uz-~M)5tuIwp7+5z^CVSN`~A=4
z<59UcdcTtA)+BbuzpZ)uxPCd(h_N0`#uDc=8+I4jQ<|_FA~U@p4PJ=p{c{%N-cI%?
zbcVoXisR8P7f=38oJ-YwGpSdPDz}d0w5mpv5x&%@e<*FGEA{R9<1J{$GwCGFR50c%
zQ&KJ83x%9~t$I}HIBBeA7J0q>Ucu&~ACGDvif=iGYd=fUi)1Qli8B7~B&@#IbARb9X+Q>-O7fZolPXSIia<-9uX0g2lI;=v?C0+XZ717mHQrr=wzVONTxX
zu`o)n?Wx@RGuzsE#yA7_C0Af@ee*34iNmXAhy>TUvr7HRAlt*a;e)_+wAA&1ds|b&
z{fftW%u)U~AdI%FUklZRl>6U(Fsi!2emKGw{#laiw-4d9TY
z(E{_uz*Aibmlq2w_kS1cnm95trTp*T=-Gw{c@A;Z1&6K*G}GX-VJu>WYh%bgW>a?TB9+Lf`&4OBLkaYdl72vxoKlB#a6CHk2>p?+!i3>5Rscd
zb%x?jJ;V2p5odO+KCaGGN{Q9l>=jGh?NsO9?Q2ez4%-eR
zliNsVf4Sq=JALtC0a(a_1v)o!!B>{fEhp7uk~dvc_eVcx4Td5pT&G`Zcy#{mW1Q7@
z9to2?%lB|`YllZ^-Z$e~A2TV-Exmhm3nI!!qKhTQ7RB+nlxccdKZII#)XYxWi!$x5
z=lUd536A_9F8m?n*LR2hZC>ZQULH2Fex6L(E}Fr&hwg1RcPD9W8`JlP5BG5xS!J-ZQrasNKP?*Vv`Md_-p?VN<13;
z)I1`~Yquo#;TDp6vk3XSG``4cX)w5W-Maq+Fv(a*-!yC>V39s?aW8c|g`E&c1BGKZ
zuGm4n$$pOi{Z&ahs(xWv>$Nok#NEheonbE;e{fnwIhJLmfAjF1}Gc9oZ?)y)PWVRAE#-
zt@-n_-1krB%Iy}H&l>u$ww1PW3(SBh=FwNc5r0`cWS^BFj4Z(LMP*rEp+0T!8reOc
zQPoFa+W7UI+|U-0n6>fQDY{+`LPv#z-c&um$sk=IPg#)*wnQ2PP|5YHF@H(6vSjoA
ztS1vcrEb@-H!wlG7z5iRQoAqXzJ$ZC1d;KEuvvR&k*GwsI-&(UPd;{vL?
zZ8jH=7ln*(w|(-1st$=jo@Jp~=kpdV$R
zu0%5E7NX+xAfaA=fv0%m|8V$_av-oWgCcb)!&ze{;qe#g*W6K#l0pm{QBwO+1CN~l
z!_A7+pNF$zsSrv`wnlc{Dthd-wVwRQpiE@KHDD1~Px0#j=|VK~g>jIo2J-|DK7{Z@-tx
z4?7=JyB;T%qhK|;)X@`1HY&W1p`0?;Ahc?LAb;q4=sne1T5V6tK4FP0+>qZXAa&f0
z&*pkU=>O+~;ksR*7_&Ixs(c4`L0Dyz)8?SEjJpLPd``fh+66lwU*YaW)+wP|b8|`%
z(-k3g-|CIF|G9Qb4qsbRrl};FeNx|K2XWlTwU8vc*uF8G?$CP^sv8nYao?}64j$tx
z=!VIQo=ru0J6O+Ef^8TKE|Cw%JhaZP7krxIg=JPF@SW_%+=ud(qx8-~x{pxv7tg$Z
zvN;s7>ZZk~{bBg%_P{y!#^H`pI_fYy^r`1bbR1<$#n7e*;;u(o%}@gcpbxmWy@3Vf
z*uL9xl@QDN=6V-Gkht|aeq6On_Y}()h}D!#Kec|aM+1EQMa!WYb1W^AUGD7$llCB<
z9n%KYU=X(Cr$t>Kvje@(>TX0ves#!>NCSho9(Ha@69VtPXE^S%YT@YIUEITE+zMce
zXq>g=H|Lz)>Lr=i9H!KSTDAnrOOo&QEu^AC$&qv5Y$|(*Tmpn8$nD_*&_z@-8IK#r2p5wl208SW@FDp<&MUuq!{_3d-c
zL(XFSRc?Bo*(M)twS(k39=YnAvWOegFMO(rmc{_d6s;WD#pN>>-SnzaI}DpTa^;|f
zeou$crD+7M!>OVKEOuuB=py)fCysnU0^%}-_$t%IEpqurw
z?9P)k$~18sO^bt1QKLWg1;1C8_ZvO*Ago*$cF}4`j`tS1wF65h?gL;P@1f48@mUHE
zqXyUQ>vFHxjGx619OJ~cKAF%iAkE@~#EIS+XQ%75##2O(4iST^iitgJTA@oW2m}xaX$3u4|yTQhnw7GD_Lt=6NC;o8G4$OneEzG`CTbaqjMf6m$%j
zo7L#FkdKLpI~`zl`YXt#su0loClB#C(f`1M+p?sHT;*|MC=iXEk?LA|{t$p7P91j=
zIqrel9)TaBAtCG5s)~Y*I3p90Wg~vWi&?vOBu24;iCfFR_fp2`Y#YPy3-P$S~WIv)K+lJ|9u5GN$Ms4
zVyhF%^2wPB7X>0R(lRbl>gHKcs#!5;K(|6oL$CI+VkLn~5)$r_#jVQ#^{2UiYl_#V
z@odalQjYT1nPu!Io6;p;8-lVv?zl0DEp96cue}sl=6KzMXh+$w{Kw8+rJ4XWIdOj2
zZbO@TRTG4hK@JCAwB)6TT_3ekZ+6h62Hz#`2)Xlhpfe@9l9b>O=fBtJ7o?r{*uCtS
z>rQQ9eRd(-ErE!QkGixb?UFuRT{aW(;7pjIU)&(B-2VW0ILZv=_Y!39$5PCQJQLfA
z;oT6D%ow`j2f`xkAw!1uyzut*$4B%BPYtdHwXq5m_Oi?o=m{zV(Bj^IQdOGrSt|GF
zVf&2zC5cD!=%V*xR4dQNDCGMyeD%Qvr{>eFkjWE*-BTW?L?QQD9-bOAnUsHm$_dBr
z^`;GmjY}Py{ltvn%~XC%Cwkhy(GSYMEqlyt(hoBeeuvYCXsKs+E9>1)ume?;Gh#y@
zN7Rk3;DDr&w_E*R)J~NaGd$lpqN)jl7e(@nt!Gp9>`22zeX91AD9u_;22qigOwy)x
zz=H`tI~)2Im06j{n`*Gro6u_;{gg4M_zTS6?-m{=J~_5=IM^ZdUB&hHbjz-^z?8#N
z>}HB%?p(VKshGft6Hs)3ylArbRLrjY-HUcq?K|7FtRS6nqe@|RuY9G@Cyrv8e2a7W
zl8TOCN`tW{QT-(i@@CgGg_0v
zbH(AW%xq1h`u30trya}{39V;GGH6wr*kvMhNT`d1M@pljJc3S533SXuHT@12Y$XCD
zHH+_`J;z#Gy5Aiozjr6PnjiBca^gImFzz%<-Bk)d(~X?=O(?YhVsz~E!fdUGam>Gy
zt-9%Lm@^5clG4kLFQtrc4*f2g*jE*0x$PsYYZX3Zsw1$61QU-YeU0xgM0{Rpw?M=X>Rah!whNlhQ)k6;DTg&VhD)aGJ=+VkJzn(nXPRKr9Js)Qd_D+aS1tIYPDBDP>cj-;AqZRoZ;g
zz{fC1$P{x*gBpLJej;+enfcgom$i7l~L>JMKgxu8vkA*@eyY7?9
zv&yVqrn1pnp{^)`{nNlx0nt{l0-p>L`#JG6hQ}R&^leV|6jgplP?U#T#~&nYRoa0Z
zd7sv_EUC95j_wvB@LO{0o=K5^dxctg{4zx{KYAPG$XCXCEQ+6w+q65c35pRfM|^V<
zRD|?oAluA>A4@U_NLxPgS%=h<;yAljOjnp|?B<$Q(6rZuzaMu6uK6vMd0pO7IYS#gIb
z44wm|-RgD=KK>g<7{D~8VMIXTIFpI)pxQDh@Ixh8*Z|1fi{*mY7C~S}_0u5Av%If?
z?#QnbiBLWIco|8$(S57V`_*Zh$?PL(a45sRa;Ivw`(tYVBnMF#ibSU$>xM2@H{hHQ
z%6eQSs3b)dR(vwqY6{~aWyk%&M43x^w8L*f-8LzIP-X4Z-;9|P9Xm~jgC6JFk)Uha
zBFq4`A+!0TlCkEGG2T$R*+19^5yXO>n^ZoQ6qBZ%h
z%E46lPAV43WzVfWZY5|yx$}kJUF*1p2gjlvicQ{8s(C)#UBpG>@^^n}5E4G=r_+5N
zZ-KB8U-3m0N3pm4hp9w5kTZc^9v#Q|`^>}-WggkR6vwc87mi;XmSK*%_~cmru5h498FIwITRL8)r9i_g@m{i!ZP{b|{w|aW>(GK*^HsdGAyLtRQQS7X6V93wM%7
zSMbv?W|h`%)Mp1>Gc!kX+LId5X+DQ>z-mESCnhBGXSbQpbFbunL7pp&3k
z9G&vf*Q=ujO#WyrJVVvr=W72D_m0g)5A|KGFyVyTroY-jrSx>09
z-#{5XWwv9SSB4jHlUwCmoqcjvl68U}$-=BpTvTH-)9#kJIbS9yQb#vcYA`x-Vxzsl
zz9vqKdz{ESPi<34{jS9RP3)VDAI`t6*Lg+0ura(mk|Zijuf;DH3U=?5SUa*q-{bfO
zlQPW2$rus5Q9Eve;X1Gj0En1Hmq#ZFY2_7T|K|#{%>NYWIk$irK`YT1P(uE+gyiws
zqVz;W%#c*9X>DE%R(jS^kp?YF!Jr)pd>!$IbA1~!bZ(QJ8P;5$7)ftjkaL<+I-wfn
zt|oKlUX>!9dF=vfFAH13X>vFjPrNf7Npb0y&W0P^9j%$gq`+7Yje33i!G*Z7jwP+l=?sCCP2BzMK3H`GJHpkmS19rhuQVe6!GRP?;Zw
zj$k1T%2YYEYF*F2bW^TY{>kC)+O7BgB@Fzm#rZTDlQU^ln-y^fYfOx~k@tK4S8r*x
zj1c4--7+SFEwpMr3>Vl;Qe)H9H6c!bkW2GI1J%drPSLF8{$zKuqg0cdt$aJIx74!GAKgemZ9zw}AP^oh-A%VfuRlich-m(sXNgRHn
zR#i-1#$fT0DF=;j*!_j~eU}beKm%~Qei&NEjfmtl&b7dq@@HdGa-*Wu$0=Jn
zX>jgG+8>RiU;h{K3A@NFsIyV!+20Zip-r2*Lf*Jq0+;`Y2N|_n+R&>0RZ*6#l|HN7
z79S^J19`?`p)hi#-kV>!`fnBtG4E2UmhS7%-ztx`;O&hWjNUo!{d|QoD#GgK_Om1(
z5aYXD+uIm*Pz#%OnY>QDgE1@ad%YH~b5Tc3r~M)a0H}TGkfbKKQ{)fBK1lEpFfz~i
z)Xbh*Iq&_bD=G!n5{Tuy=qfyp!OELEAB$fA2zqD-fPLc}<(jzr>8d_LLFU+jF0ESq
zt-l036(1p<42Bm}PFhK_{u~(@lT<<~(7j`sDDBIvq4spbV86&|;$|-n2NgM
zeb3XsPW>EmOUx!hA?(_-8~Kq&^34d{Ff?yUjXLboMp%HQJAdv6b9M4ZSZx*~LV9RT
z2((U6b>7H`o$@i(LrD%goc3Y-{xz|XZLR$i(uHC7X-a51LV}I3*SjS41ChLVG(U12
zAMe?5j)N7{!sHnvh=jYB2@Qka2W*nvH$X=k-(G|BHMV^(>u@y2ov(Q>+}(WpC3GpK
zl&Mh;2rOH@FvqcTXAZl20hrd2shwK?Ss1#ZI93O9$blzE`0H1V>@VyCz|3+~vV;D*
zKOIJ_%g7ph)&N{*#mqSa`UDbN1RkTAvC3&kUgMijXPqiRUXB8=V0N4uesReugVAZf
z_J%zZD^oKl>!1$z_$jG74B;UObUP5Z7UoY#=xlRs;+uI%4l`2fNUQ~RW_9!(`A+W2
zo-$?3l7%eDW`7V{$BQ$!9=Bd7(qKX@#Q~7H`wlS=k$_KNdj%u2eMZk-4L`bZGd05|
zyC7dx%~$CC+KwMNE|)F~j1VD-P}rsR9l(M4)?$e(j~X}6Tz{uR1s6>fNaD&A3Vx4{
z!OSYonlWhCqXYU^Xw~7;O}Ne3enhTIWiSa40@yAGXeo6tNBy_Zhrj<&rn&${nPCch
zX!{ZxCbMKyzf|Q0U1$^402-l5bygF5W_;C*LUZMg@XO?Im{A)S4;-{Km@kyzCp5Fx
zv~1Oz0eB`r7XbvG-QG_WxmJ@-(q#)@d=QY
zb=tFW+(W!%bEv>V74kOQpAC8mXQ|iJP`!baLZRdKIeeq(m_Q-PHJ*~MtSahOx~zLA
z;a`ffJh##TNRX|#?&1DsEcb9p;V$Y80C5gWAaL{@zo-@GzZe~-gsr+55{ZYBe8kwk
ztC`UGyQg&EaR1ZHmFDAKauJAj%kJySZLc(lRJD2Cir5C@_>9~<0?2SdKCym#Y;Q_0
zFZ>_eMg7OTmru*@cgwf7b?0nhkf-a)^+$A0>4qUr{8nK-k|R=C=FB_swP1WyoEH!P
z)vN0v(yRG?dwV)&aS7h8G8-adCmD3z03gU_02r7t^!LrM+_0WK(4U4*Z95Up#9pY?
zna%v*KJBtA$_CqP=AYo?+-%N*=D0;zQ7u2~v0#*^73X;ELhA%;zwAe#^4%hW
z5@FZ*mjwQ{csf_|-@>%cf%4eHckiv$^>1qo_u4FCu%dAFkxw9^U{
ztN~2oW*vZKvz$jG(i7OfR{`Ly)D}qWjO_WFZ@lP9YZ0$U*BFkG=L-79LlxJ^wXn{GCfCc03heg
zbIhAk`{#H;ha==g22F+c^~PTSEqTTyhW*a}?%eQtG7W6($XqFI@6?s+_qRGXyH$8p
zXon?pJ@LCM8?bIszqelZrV~pVP9M`3pMfpTZrtqK~GSkD%K11CeE<8?+%YqD>#d~z3*y$JkgvJ#
z%J{waEBgRsyT`=P{C)nsWkF2m1hAF=z}y>vp^~gLiL0?6_goF5%BDT>7BF!E?<}UZ
z-I_hUUue5qXuIEQ<9+U`i)KQ-H^4jj+#xU_KD|gB(Px8>Y5
ze=L~eGHkt7((uw;;uTmVKdLxhbRO%O1u5O3PR1D5aJQFP4tt%>
zo;kLLK69H}OCR$wXP@>3^80MdGmzv7?pY-T{JP|_+ZS0dZ5xmms!?UUegfTrc)u9m
zkNjdlcnR!Ks!sI2biZA#+{h@Zm9v&ZXM0W7hQIn=JB1cmj>u8|n}*UGjTQZ~090u?
zL)(8{!k5Y=zF*O$-^%UC0@$c$sH$;Xqv2<54>xT<4fJ?KXhoHR#)RmZXm9?*Rqn&u
zgrSuj+{Z6uwa{V#AieKH=Nk3$zME`@G}M}vObD{{t(zmraiVBZ6u?rO;ZmwsO`Pd1
zpQKjZPdZmUXPW0M|+=ywg$(zO<{dZgAY*ME_fD;UySIR5-ARSh{
zU{##$5ZiYC!`}F`GR}7&z#I+3+%IsxQ9Drnf*q7
z&s_~!Pqy$gZC1tN1It0VA8aWVneeXqZccqu0R#idFrV%sN9{Wv$)h{L!6(FO9&`v^
zzh8N{qcS#M+y>YHALL6Heq8}Pj%cPx3WmSO0OIz&`TfK%;+AcNOE86*B}1rM{Kw`a
z5)M+6DfGBO-N4-t0PTPhHs&fUKnl-ISDb{?AbU;P2pbPJp*VY_{v=3$;0XS3;h_Mh8ty!
zzL`;2i%5j_KjCxhq?YoW3?Gg+@K0mPkuVVkp$+rdS>VESwTpV3Q+X1kS3re(Ncq(G
z6JT#Pg~y@hEB$0FkBU#Y!RbgmSp|Je@AP+oiEmodVxin-p+=l8(f*5W7;#V(pPDF^
zcrrW??A9ND@WpBmKS?H5^^%FrbX#w0OQSh(BkbSusZsT>hHL8=>V1%w)
z6^i4mL=6`RJhq4QPlubk)U>j{Ta@XpNQ&1|0R0I%^rXEws&-o)iG86xQQNTRQPSO=
zQ|no^NhYmgA97Yv_~5soY@-6o^RHf0r59v_yjEZMhuCG7{{%=Hei`Rfd>LVueBf$<
zFrQTA3S0c@q=4AV?hDzsG~|ASLpjN76tXhxFD`){Nk#s7z5YE?r(;P2Mtq!3dTa!y
z%7;pBTDHogqceeW&zRWXNQ((`m*%?hfrKo9_viUXWg;)esF0
z1CM7YEVEzC@X;aTP%c6>s?AcUl0ZTnNYHaAVrPe{?`7}gCnq_)Rr5^SH|5-^HOjs-
z191oC57*^dhQy*$-%A(1Llf?C{6P4mPBz<}a1A))e8*;Mq#}kjpEN9&qEAUd{h^q|
zG@sYSnar-G_CBVSk(6xUZgpgGv87uUtP`Qfxbq*cM&quwqGPY00$duvJc;_?+70wS
z_x<(VpvR^O?U<;7JD5h?@3qA7(
z5I--82bzgpZ6pmuM9Zn9vZDn?Cp)xyHjy7@t@q&Td&H+tXe`Ul0hGH7)cjM6-oUTH
z{4NFv8Q-g1IJYNu=mY3Ry{s46aS@8&wF(&U_Y)uxDev8e`-qBJ>Cvgeab?-|YQ*;i
z)pxoe&NkeCLz-+Y2-_%|Zt}X?OzUHd5g~BAtFd^N(kRhZuPQoL@G`gwoJEomhNIIF
z|MSgUXiKNpJd7n72#>Z6tTO$6w*4zcu3HtuYdlg$n=e$|XVmYxvAyTIJ__`fYLO3_
ztO-^3a}ozYd1@lBbN541r{Z=E2~|=+62hMHQ|VZQLkQCxzlI6mbEKClud#A+rUHFr
zgt(>{rTfv_bwA4(`V_Th@K_NOH&goMBsg1a)5#RRo4RGDmF+OSK+P&nyg&&DrQ&?!+@Aj28cyHzC_GR^S8!5?T))fmZ&sB=Is;NT{8*@t$E5J(YS5uu
zUDKu=3pXV3NvGT?5N3p0L<|>Emvv-926iHG5a|rcPb>hX?-|8+3Fx{;b3
z7}wsTi+p#@f!#_XM->m=6UYOG^h7*EBdEqUFex<^UQg?`QFPNt!7^r9gi|jkI_33G
zU9o%V%E5EtxMldW)O~hOd7dzdXX+{j8)3Y3kR%<6&{=0Fu3oOHBRQQ;VX7TI9($FP
zn#u~Hg}=Ac<&4=cfU*Yxs=}$%Q6P4=E_;G7X>PKIxe3_^7L
zyw_l1yc{!ve=tcOP6om?DhEVUUDtR8!Bz62VXRQtG0er5?I(}m{hyV4+wL5ZV7aXC
zUZuDDB(lw
zR5_i&`&U2#0GS>K5ethZ2#=f&Lyx8J;ENZSF5^4;wj5~^+Hr1|lRPaLQIj*u+17*z
zcfzi7xwP)rJbE#;HhUETs{T$$8VTrm≧h`;Ao2cW=E&fS`~X;_=(6n8!UyaT&;l
z#E7Cu(yRZ<16bDLrm=f@S0)Q7jUMN^S{ic*)x%_3YfaS&HK*|X1yGP*o<#4H)OXII
zO&uejsE#W4FZW(zQ%|BYLiMQ<1dA;nV|6Yk{K)b823C;uzi{{0CWE|$IiDbWqy1;S
zM<3*Uj>>zJhF+jLtPhd(qC9iKSra9y8xRDae+NiP4;~Ldn3QwT
z%rsvnyol7VYm}3M*>>2aQv~u7cs~SL|MO_-?
zGyDK2epiNygUe)}a%9l(oOfvF#V5I!PsaMvwF8FFM#ja@^09k@`X0<CZT$x?M%l9gKORL%S)Y0!;v5x8}}4^69zr
z@H@WyjtsH0FgG}Q|#(b1$Z+m=%laWcNrZ!tgj`Y_WP^Rb{8fem9R`!&*K&?cs&$6TpD
z-rk>6;-PQ7rJN7R#o{4l;OvWOW1oYHxLjoP#vTnhP%~5X*T3BL6CSlv!c;QxPud*6eKU4^+c2RQ%sJwbK7x@
zz5Mns+}y7&PEl#N;FRJFADZq5sJ*B@n(s(%2=%e)Be?qJuPlmMk;p5`5!Rux2j}&bz&7KCx2CeUp
zfI??q>&f%>Dppv$1eK&YP2i8Zq
zWwbn~?4xXmYPSwuGp57G9qYl2@Hh1S^RsX>gxDaQ4KS{}j|XmmQYRn$vt!5mzY-Tj
zNDkdXzdh)jx}i*eXg2W01z_gJSzMc=Pbm@pO+Qs*Zc$zNMgWv(v~=p@iQ#(qN(W!U
zs<;0POccESH^#eF3#VPhpyD2Zc10KrJarbZ{x%fbKw5YAC(<}KR#@Fr43y>LxI8%U
z5$y5zl+pa{gW0Z2Q^qf75e-;UdhXvyF5RG;oAdo^nt<}=iRbt-j;ZX;HygeDBh{m#
z-_70u#K`QE$YY4qgJ+TbNiUUw*H{%OrQlzMrRNSsazX7qQn^SjW(@EixpAkJ*#xQt
zcvtjX{#QeKL~L4GzZJT`;-`NDnAB>;tv4(D_BNC-7-<*@tc^z7RGQ92sMCENjS<4<^*4JMm
zEwP=~i@iY_Y)eYUWp%Q=)M9^5SReDH?aB4vsTK=t`I>lb{WjD)5@z%D}mv_0Ijr}HLc@UE=9
z3;Fyni^q|E+|5o`g@p9S+I9ffSx1A_e6TVa5XRhg;QKaTXME=pen4>QUO6vw&-OlO
zfClPR=U+i)Oar&AK+O((n122=J$Yb~nL@$niJWBmv1c4`^dqI*XEVq9KuMlLW68l|
zl3XvJLPhKO*Z%w+3S4*gXA5n#FxU?n0VuiV5z>D6l7a^^VSBPMhZ#7wt@%!xO4)Fm
z4|63$EgBWxkMDLvaK*;?&5L>0*>{dby7ITsOq!4D6k~u-NhAEo(_@XI2VepID)%Ey
zXBe2UZ(6D?eW4zr`{ogd0kURC#ykz~(Un$+qyYS_`DC|e9Y@DLgGy>Mz&AA?-JHt#
zTjLe`)b*Y3`7faS=vyfcFop|uwKOCM-LrIrbMA=a{Oa1@JOrx(@A%C
z?&YM0)9(F?p`7R6-vTffkYm(60NBJp?&sITW)KJjOFnr9LTuk}ceUGSWu9oShs;-@eOD|$SD1cgVeO;d1w6`g+hlb9#_^=8f_
zuBR?G*xsP!3QBN?mcS_QkHYYAAAndag6kfjekLvQc5YmPM<=qPR+@Zar{#ddaw$N*
z_Tu>MRX7fHF1^q3pSqQtP1FJOHo$Piil6kKoK<+XBT}|svj(^59>niE6uG_+AdU?!
zuqkYLJpTl2-2XaCJG9m3pxCEMj9gw5Q66iIQJ+_n`*?|idygm5$CZ%L&Fj~PQaPG-
zzkNUIoNb*k;A+;J{0)PZfc+8z45i*@DhINPbkq}Jn^e$=$IQ+)`Yq&2);r7I=K#p+
ziQFm3vs`BgR?O1gecFyl)aY6ZI<0#=Iv3v_jysM^Rmn9yMal`EWpkqG(CyfS7M2z(
zth?I0fbu||o2kKQnJ7%j>-Fq-&5vh>^U)rD3Ic2eWHrq^%_0`=o`22OAU?u=q{**}
zZW}EU(#Sj)4DaRRj&+>g`*WfK=Aj_0Ijp~4ch-({4ChEDi5H6%qiiZE
zC-~>wA56twxH9&phd?+3Inh)b7q!>}Kc6l!sE+)jFeWPPeVZmXzr4YZ0RwDId`dv*
z!ML+f`>z)QcKRG1FuR5FWqcSj=%1l00ps9PTB-flwga}WH?$-Xg*)d_3n4iaw7ByuPNTJR)Hqgz)D(ZpU(ujq@jC1WrTY
zF2jHksJj3N$)@%o1b3lgf1rE~BJvRGm6#t7Gx$)%2iRaejUSdUER+GB4$M*c^^wV-
zj&y(7Ck2kStC@I?LgnMo6Z`s&y4W9n*jYB`H+~&;^qGK_YXUOyT9(V5lc@X~-wKTOzs&mOYwGl;*qv&}3e!j7U
zO!H9{svq)oUa8-gvCsnu#6=c^_PBFN$HgR=Tvn9t*zXlgIB;+MVw!l1G
zBh9#5&2CYJ;NzwP7Gw3}A#mtSxGDKJprxD{i}8*jQ@9{vETJ8$FRk(XiE3FM;0XDW
z`Ibv?l#+|cQ9EM7KvG0>0wR_$wYB<9r1Z#|w8`^hmprR$0G^@=LH7Q*(%sXb@in=}
z96*#XHWL{D#ZEHn;*0|7r75(qKx13AeIO(I%HtI*Y9XTwFafe2@3dB@##%EhG~*r1
z#KmI(jBEhVs2&=pSJ&G_>Tb!M-#J?>8s$fV=hiJ5{E-p>H5z_N%a=bb#g7LMYTjt$j68tSn;dpWlF1-VFSk%$psezhiOV6{vbJ#AwCOdbCkv%Pck-WT)Cat
zjzCG^W)-O`-_(^8A%IGt!60jcd!;Voc7>7O*4=s_R`N(UJ5vsDRn&=&(`3Jg;;et)
zHrH5u<#P8<5%cJ3dGoq5w`yzuN`8Du4H|lhB0zWU@%})-<*jD;s?asgWi*~Eye~5y
zQO-e~2zZa=2AV|#@-RyCB2VDMna&9tCr>eJ&CB#JCSnOb!!lb|4DDs>wa9jT<5IQx
zA%L}a)2=A3=DUcqHW_wr+7j&d8RC(ecQgoKo~Jjhy_ejcf{7{$F_rp+$2@%kH~*QY
z@UETLmSk#*3l~5plF-gnXwvP<)X3U0m{M?pC%W~p{_4(RIG>d2N)E$7$N;OkOs)Do
z5gH|HqnXx_VE-JBH&=?+C!~L8s?M8zqG&lVwIy-nsx2AkMz?BUVc`Mt?cS-TX5puS
zbPtLL$2Tw(@|xLE)&juToW$uc-)XaK7cJOx=%s(Y#+%Pj_n0RGq!|3DQ{SLM8h(wC
z08eUg2pl~OV2WIbQOSr<+#FcMyDrVU%={|=8w#`I?7H$o7dPNNIU;dVY{
zmHsw{3JTZ_|Ct5h(J&>8ui3#<+J#{EX%i(*;q(KJrj96&PpjQl;1DYR+v88hanZy%
z5)l5F@VYO>z_D-3tbkaLb;TdhALVFYq?4xjU*x@ITvc8FHz){5r$|V5cXR0O?w0OO
z>F(|hX{1FEM5G%8q(M5BMo^4d2fgn5`p@&si)JLmYy|Yokrm)Y7LPaRNNrC4X3DNOH_?}
z|C&jILxgOH&Euhp^&PWaN~O9w@$E(txyf3pQ_8RF7sb_EXr-vG6UYx(?H73O4G4X!
z8Dmn2>jLXTKVrg!=)hc0%tpgD2Lg2Oaw&nNo1l%5N0~QIeUXV7J`Yw%xMG09XnKXhd7DNBGLU~VH#s0S>9;eN9_ZkrdT7ckep#HVLLyrX`RtN`(NCAsI>C&eX5d8(>K0=$pAHD&yW8Q>16FRE@HXZ*FY}rQiCm@XghBB5<
z^Ig7|=psMP&`nmpfvl441m4J9P`?T2e)T^1y5gKvxDie2F)j8}>lyw1`}n?PA+BWL
z@$mVN6_x?Q1Q+Jy$Y8l--&bc$g5ht)8Gr-zGkv0U7K0uowy_n*+I`lGlH%LgW-*fL
z|4dqVg#f%uz#GuT2B={^0e>Ua9}PdYO>8jMd4;Tg()~na2-f+V5zfscG?Lv@{QLRP
zdN1w$Z{eR;v)@*MIox$RC(dojGHc>vTI;7jJ>m`#AItf?Ao*xwa88BgEi*bEL;ceD
zuT_^mw9caMaw!H*9p!nWabAx>5loJ)+u=t2iq*Kw2Z%X(DQN||?LIQ(Uw~OYk(5cJ
z=VrxOWJg1pAAXG3dlk$4%DT|kDoWV#)kkf?&y5m~9zq8j^sIwxSVOcRq#*5^;38Or
z=*sVYZkg)-_5Jv~cbhegZBh8{bIV~xp7t+QHZrTh2!2j^JSN>9Y6z*d&gZ3$BWy#GRC&^1hDcmiV_vWy%8u#;VrQgQ{5e{8n_tk
zF^O5-f#nDQ3IaJz8`Y1G6D}0?vGmr>FYT4G{6Mt}AzcCF*tfSbDtx2Ne&sr=Q$sjB
zSNJ-K_Z10vHdP?C?l%f1%OI%7*@W3^jJ(%?7u9FRFsb9DROGbla%*`U$1c8uN5(h3
zzw7+vZ}l~S!@8D9WOkOXInm;n#6`mX-s;aXnGM?N!+(Q?!K_m7%C_!ZQJx)%FV?qp
zP!%F3yBEc)BJ{3Y$D3SLR~8b==y^wEA+@$>LZ!2y4T!MyxgbLz9JG|T>rBV&NVvPzqx8IH!rWJ4b&XjJg_fH*&p5kF=K+E%bvY45SpCdGP?DDdzI=q
z<0SA1uhT82dWhe0
zq&Qx2VMHW_^`2L&N&-h-qU94hf1F1g!jcVChT9$_|;D@F8Y_*rY$>0-T}%})80
zx-Gq?{wD+o7@^sa6Mb&7-kw#CU8?Zcw|A_lo2pwKbcny^s(OA2x7eE+(P!|)?3v90
zRl%LTs4m)-ff8d)&*(X7Q&>#8^FK+l%~
ziDtdd_a#iFf4eFobRx8-;SKbv_nE#xQGU%A*UDvIsc8Mih*2+SK3QjXv^Ux|`ImQ&
za3PdY2MHILhjgx#6Q!lC_{R}Lr@W;bu2V#rOVqSBG|2aa4E8~o=<%=EPIA7#~i}ghb8jsc6*yAFDBd4I=@(N=Dq?X3o%AwIuY#(Z<%HN4tW&O%uKwFTX-R(eGt~UM}LRr
zw)?_cUm72+T;-=U0T(u%ZYPbg)?4XzS>DFg(?CgF>46#nX{Va8N0{3_Le#V0je01=Z)`3aU&{e;ht9A9yI3cG7r
z{fFeW(#N#b!r
zu=k71d3!777M~Ux9jDmFesbcn+AB_yPz{SDp|4ejzmBh~fT|!;sd#Owv3{z0#UtjU
z<`MCBq=?C5)qg^S_Ap_#Y77x+9&TMK{IQWJ*FcLWpBIOLNwSjpvy_WJpnMJNxX%dF
zPlMl~VvW${pxNg)O4ewbj!(2U-i$dSIAU2&i3-Ahi)>%2n(N6LszFJ?ml*QlwH|oj
zyzb%?5z~pCy$k1-?6@#RkG70^KRKDUVO5EoS$~U-p-Q0P2~EZQgk)lmsq->MS;>UB
zY&-grESq|87~}o!OaHQvv^1jEK@7rh7KUp$#R(S$nge!G6m?;}1CQ?o=^k6D(J$f3%RSgh(jnkV~>guHJX1p2q=9_0m{=Qik~oI-M*Z^EB@B
zl>88Pau3${wm{9~1c$er@Lc0-jxWa|8~V^0UwOb!gLy|W)WGs6yGZ!3jv5s
zexb{UO?`JDDX{JY{ZG^ymU*pZQcC*pK$d^&+W=c#i;{#Q>`gB7$`|SEF8amRrwaG(
z5m}JwrP#Iki@c9w4Q~!CSq?-WL@_wGjR=~CRHF|D5N#>hsl`4&%(R6MnB$L%`rNE!G^wpW<^c8D7R)GOwvHBz?_&Qo*)zrEe7&0Tpz`V~^^*2YVj=E>t
zYQ3Dzfrud6dZcdH@U%?o`;vyvb0Kc47oJPJ71(ONmIwx<))rVunuuq3lb^Jl6tffG
z$q8%3VB#<^SgsKxfLB*vv0VZ5JtkfBAWr7o7%@{6l)K%IDHI$HDaub{Q`&sQ=av;xVIxZQw
zS@@PnzM0D>G?QBA_%MS{EsSQ7tuv~r?A2uLh9%|mP`VuPqZ?()G@rb6<4(C+H)&1p
z=-MyDMs2vDko1JCw`7eq7eG}!#^F?wWOq5)_D-AWqYx0W3;<@Sn`DhO`}6^-S`BFuj#Wvb!h97$wGH@tB^q>f
z+b#rnh#ni7b>S4wT}H;bebe{<3Fw1Y9_iJ|@`#LXkHp{0|NOial-7}`L?XV25Q#>(
zOX%3Xu^UI%iJ#a1Sl;e0Wr3~OP
z?E_|%jXizc+tJE=H~FP$sE_ulm-myudpv)qZe>KH_o1T<{g0GU;jXi)Ot=ipvzFOT$E9b|FusS9UaUZ0qw#Ep
zDNAKS_0fvUU6Jc0!QLqF4wkxmtx%#ID8
zLy?2-^tMKkV+pLGj%3`8ZIwqAOLi}!ue1C>+{gs8GsDa^?K`5pt2@_EBObIvLeG^K
zQ+botcUip2U5rmF2|@fKS|gHJai++yIaUQ;#BK~OF0(@e
zBtxx6C-U?2dOfri*y5)zw70i7H=CWN$a${n9)Fm5Pu&pkJ`^4+yn?}N1ob^hNx2Y~
z{Up0XDL?j>geg3JTk>(y2e^UPi_hZD)=FGYcBCJv4t{=v{@~cNCPg$0j)IOPs21{L
z8{lpoC&nX*_Z4>6%wL@GwrSM(`;
zhB)JnQm>C9r<~_0C_SOi@Z=Bh=2*@t)0p!S}ty&t0f!(z44vKK6HhJt|a7`%cepkB$9M$I%UTU`I(W#
zcAs6F&sNGj^vi3D)*Nz=_g{z?b2>2RiR!H*C13R-z^yvbcnrcRIUG=(@FfZ#e*SW#
z#v1Yq@oZ@1MPmD%rMjo`5(G%P1T_~oqh?Dqv!WvPeX|0xc{qvBZ6zGQp$`h_
z;w&!Z@b7N7lZIe1vghJQ;f9`23)aY9ST)mVZITXQ)0Oj2NYNn4bR1>59&n9$cwI=V
zdbK6_H8a8fQW}3^iQ7Al$cnZ+g5z}eVq3W}|2fjUJLU!rO+PCztWoBTlZ{wd-7;(P@kPjAhmW=2?ZHYI{M?hlW
zUut@X)8{-1hYLHN;lk~?r&TmCcC6I@jOKuIlj@86`_pDkAruH6m<{}GW@w)EYZs*@%ctf1S2twdr%Q3;H{_PAuTmc@{Z9oE29kB
zN-N9y?eD~f3x7HPpr_a6Vc2fH@wP+{0#}j0)w!+SSkJGd8M;L^F6renu1I~5XrFi~
zw#%ido#73e!wJnX1uxX>(rG1e#9D0Em2pyrphd{Ltp))n)o+}Wrr*eZni2oZo;!~c
z`4Q4N?ZXv*L)tJw_+n4bKwHLtK9Jk%-lr3fMW!GquEG4gXP~)T)J$PaIGxE2+qq^R
z>)Qqr!_I5APfeB{Xru*fJjNUaR7?}Fq3zrG++PX$24BlQB7EK~c_!jg>^nfie~>~K
z8c_dMm)}G`ib{T-%miQ;+#4z&{f_%Zon$8waw-?GFH`u+`EWJSLcWuR@8I5qLiL8{
zYcbd#yF+2slb+88O}JmDWS<)h4_xa#SIHrxCH$(3a}yHX%PKY}#2_J7W|vhz#pbEb9dBrptT!P5?n6*tO}0
zwQd%Jk|^??+}LeIdwCa)Prz>QZrTQ?pE3sGzq<(zsMp}?v9Acn5X%uY7p!k$9KN;YGv*Y5P{YY6?F
zPNJae_T+6U&`;t|&d1-ZR~|vj
zm^JKd{F8-ogD~0?;0f$n&*ojSeAzziU_@v>coP{n#bb#D@ob}?fZ7Nv(t7$AJ13`{
z8jZ489WX1j{z6}W=1l{DuCArdDE}956@^6u)U@;e-7ne{_OMkv;{K#y|A$ju2O#Us
zc0Z_q#Ax5U&B#LKH-SR4G;GY|T20r>C}
zQk39-z6Ops5G{WH`7!Z1dcF`9^l{K2aq-Ph?bt3t>GhBg)NC7~FDZrJ1Q8bI04TB-
zZZF}i!`JS<9e5!yZ@-|^mQk+5Bt}6`JB|#SVJ~Xwt?lta8QK~k_qfkUy{SHqzDbx2
zg&svnqe{BONa)3w8~NPS^S&k1k)i=`B>tktjdmYvcqU${Ht4lfl$P_2PDdqQ9DS@!
z`9}(uhe^YI-0&{2JoUY|4ggQS%-4o~kbdge3P43CU{<>>L$j*~(Wp6ghSDUp+
z1a^^@HPu0(+AcQPKH#yTahn9)6ySv(cb?BwM
zA!lG)b88`)
zKYadp0(JikpsOM80w=f^pkb|jw(s=;9@3$-0Z?uGZwIJ9L*Y>(c`>~!q&rb7&ts^?
zM+;E={*t5Qjo0%A4GGaIgS{GwFdaYQ_om7Et-Z*+C~fjiZlWdoFR5;Tr7K;c=Z@BV
z2Ph7PK(4_@Eu9pB)O{0nFF?-#rXOmT0%ZJf2d63v2qGjca6JwLGeZAC6M!8~0n^Rd
z8)dv1Cv&47U6`EBOKH@6Z*Ja}ATv4wmc$!1_kJiDnrY(&9O58r5Ja&$@6#!FB>E`G
zGf)FbX8qf*%V)j3z;Fr$uw|?b9Gc)ce%*jX&BX0a;86YKHpZ-D=n5ZW4IF{nT&l56
z!u}_I?uS_m7}fV3Im8T877r3(6S21V-QHu4=-lhEPjurLOD9xLfR9P$Y#muSnbEM@
za_E-=_($ArV9ZNqEe>ogkF@8>bGf2+3QNMt*Pyt|66
zur1Heo0yI~=E`It&UQesN$W-Xo4he2%wqJQEcJ0|T9ZMRghpUyW_h3?k?Ukmwst;$
zRyj5dM?F6~8->~VgWR#F=WHym{e^H9ykcUF0CI_MErjpwW16r8;Ike}K_YLv;=uZI
zsHGF6ed#rrfL_Tq0k^e&8~N0!*eEcAZ;SnLzx5Agb2kOut&6QV^YNE=zwS;=4w=Iq
zO2EmV%rHg?oN_4cSE=h)04=kIZp%6$3#l41HIS)`qLZ^wkzeLKML0~9aVJ71ADh3n
zomP(~9QD)B<*sjC8%zO;vPtG9uKINM7FkA0^)026t6sH1X;Sba_$`wqUiEqYc^<;G
zgy#f4|CVb8ycqSygdHv4C^cbycb!IG8-N+CYUmIQHz$Sf9JUn8**SC$a8w{oyHZ)0
zw*X=uwbl#&-tg|1-&Oc0#NLcQfITg!RR!75&t?bTCc>nzfxf{+WcX|c&&UI7l9!kg
zZj$y=vE6f@E`;%FbJFTH{ZqFfIVKOXBV3{NEIC!UT_5pO(JP9eOr4kavS9NfPM;1N$VwMxoYMmDn$)2thD?$RW8X3wJl4Bi4@am)6;6|5GqWw$A}x
zibfo+cdU?YpNhy8cE6l*(x$I5jGFf-Wk@~Kj+Rq$?oqPlVD=M)64Z(1Deg;}UrIDp
z;WP$jyj=c!Qqjlofr5X^Cy7C
zF-Rwf;9$9Z+12an(b%H6^gCtt^Ptb#s^Q(cC9#&4-eAHVJ=F5jd&Sm}MHHKk9Uh;O
z^;NQ?_qA1r#HvmH1)qLWLJ6&%vWpO@UD@U`5uVhKUzsXZF`X^K?3sG*bEm+K$@UWt
zAI(QuDpYSZpVI^upnQcb^0EVw=ByI&xq)3KZQ+*Ud`J94U_yX)rU+5>-D
zA&Zbd@>X^4gJ8lPPW2X!>$wAC;vg=1$8OtKLQXXYN3rqd40)}N6|rJIneCP^z3nK6
z*RC&^8PnYrm=YLwA&4{dLq%NCo9sr8guAK%C;=o1-5FLThj;FCM6QO$2kCr>w%do&
zpL15RITSC-MVOp0GcDY*q!`?&f@IK$?7Rc0#kJqe@$9iOxm)^*I(gBqge3Uh;Z
zcqY6x;^9PbyvPJCrzqwkzWU-oBo}Ua2M;M{hn!KLBee`Q(fPPBBdzaiLHHW9EM8QG
zPUeh^_ssSc&oyy@WBjO!AzckF2kj1%O**@A+kCB@)}RjYvov+d=?{XJI~qfigJ>kL
z))36Rs^lk$H@JLcC((NAG_?|~-t%+$4@L$c5=jlOy^30}9kpvQm0B`;4dJp&yalSN
z(OHEYf}9k(UP-z7I@f||f;8J%WkgQME!&2#hr-xs4L!eii_tG$ovW&-U#)ejKz0xu3J3M#6fKtS#pX|xi`gwB;e1s7
z`l8@{@>Lti$j`9bHH6`KVZ@Jt2D+RO*
zn)NB?(>c~d=T=IFn=Z|QQ4P9E5q7iL6wCp~S94_;AhYNLLHsuDLjC^HJ)IOyYQFQ5
zoj-hU%UCFIpnZ>T9aGB(idV9kao=HOzN_-#^Q|7tlsTQ7W5N6u)=q7^V6ozKJAY
zOst5Ex0~-Pk);n(9_F)FF&qODOWw~|&1=mAEW1^e3fl-14zIOMFcw
zO9qJ_5sBHtZBg_<3g~ujD4kLVk%~y=l_9`i2Oh@okHNIP4g#}NmkRR~jXg6?>FsE!
zs^>hO5sxz=@tkx2W{iCBiTa4dQUG7RYqdu+W9M$i5V^1dwcGbCvmPgh&+`FJpK0x~
zf8Z??ULZf_HfJ-#$t-!((xtrc{kP5BT>896?(Ap>e`bMQsynT~1aY3#BzymdfMuyf
z6|b=p41RBk`qM}nluXElD#+g~r@m5R*c!kv7d}NZjqCS64pxe9B~l5+op8O&*afxIi%YxRUlf
zCcw~^Fa40NWRue_kB@6fwGB7-!e+QYq@{4uDuMLXzblYSGTAWWeZpQEgr3`RbtF=9
zo*J+Lisze{wYhMjPI_*jFnhi&5qAb&!DgGF
z8mT>=ja2v5NN^Kn&3C1YET|I+Z%6GfN!B18JurJbC69R_FTuknC5vp0B2;8^8_&F(
z`BKtdBhboSL!Zaqv=bVamY2VhVyn%%FXqEh?5WX3bko~i8naf%>@9)Q$^3Mbf;nkE
z!+a;&dd6!nc7p)t6Y@&uDQ3f&=>!M1T*ubd>g6Kg
zyRO~vF(B!e6!JNOEDxU2vLwdik@!~mlR{v4DU5%2YEp&}kWV{3aICCMlbp`!9^u0z
zJ`rZ6{#?x;nLGL|vKvAeQ1yJoQiuqRQ+QiH5%VbvUnbqs{Nc%!h>W=iBWg*d3d4}F
z@N)*f;-)X?h>c@gZYS7t!B%c0n5Mh~w2_@7XOfA}5g(6FVS*r_53O=7ezWCDKk0JW
z-TFDnloI(k>$flh0E^henzX^C>~*^&hn(lLWNhPOI+1qFHkhVtE%1dAR`@3%Dij*?
z_u57G7(-^5*5T5jbW@KZRnJdR-Cg$&^y|3zLESwWhYi{E2d8sb8bBk;19|%9jE?5$c^)j92Sp!yVpM#PY3AQ#c@E
zOO5m*W#U}bbtp?VM5BJ{pAy)l6MdKhVIQ+V6vruq6UIFc07_3qoPXo3S-LDa1bVvq
z(y56aQl!oylLsaA&
z`%a00yo@n^HB_zS%jC1Y+b7ri__`-nvqWfNqt+dHgI~hgoV>ZNKspd9*kYkzDy{6c
z`^&gX^wQZ&*DN_=@`{1M>uSq_7alEUim0ehOPA;3Ejw3LDb8=d<6|oAd*=Bwu41>=
zc3H+jS5tZl!6jrBq03TBc-=PXlgEd;+jx@*c>sAbp_;U_Cv6(5oqwCvVH=gI{n7kdzvZyhBu9*o)N
zM@l;&N}6G@G&cwDAU;CtHbC4!G{LBZ-!c|y=%hv^{DCr@NL)(UQh_|ynwr@$vZQs*
zO!egg{k}k&navIawdPvjIA0>n(zmLd!@ibCDL`A@PJdM3AEow*(i>fXiy{2h(j(K5o;)OZ7ERf9|IPCRQX1Q6M|8@UNyZR)w
zznG2i@66QI$CQ?nW1lPO$Xmu=n59t$zLianRT+1y
zwQ+m>SbXpDcgxNChfE90pTEAa@q4Nqj5N{iufk#J#lopQu?=CuQWJy2Ly=N5CEw_6
zU=i!3K%$@^3pIt43zf&D{kk)JHGZ{om~&W|QwW*8`Bm6`nzZ2fk$+!%&3*E1<&^JH
z(wk1Nw}L{QM<-K(_BsWNvUl4XL_vMc9Y2YdxP=`%64b6O>Gr$NxRsgq2dlnw)VU<~
zk??DyGDM{`np-46_{%X*Cx%*}n9`Hn2fs&;dj)>Iv-bbh*+A!Zq(2x=aF_UWkf3PO
zhWQ*T`WE#DU9yJ5(fLlS;MJ;F%IAWl{O6Yhb9($3u@nK06({`DcN^1>uYT3T@sC;H|1P~&}PpzRSEB!Lqs{DM!AbH(?u
z?6ER^|MSc9I_Mt<$a~&h&&_8L_6PkKU2?;(%8%VK>*?N(RO-(f%y8R>P(|@OMw*#+
z^cCw*X-s<3^hKv!vQ_bnv^@GoQaRjlv$QV7_@DnKMTz-)Rj|hHDE;^MV+7w=(bvpw
z!!5qL&dfa5!-?!>ORL@HG?&q>tG=RnGT8i650@dS!@eZbdnqrF_8SjVzU3nb%?#2<
z+~)s@dTY#vyOlA?S_aEissl%D8umY0r!~YKk&jLYSf8frylIfn*Zm<-!M^D^QvbU<
zeorrc2FdIIhqzA&e{kt^#ItuPNB!N7Z}+ll%;}NO6LsUEU@V&(+?L7je77$1x9-E_
zsz_PvIXn(qji{AkL!x`D=bz6gn7w@*#`1R!XYh@6C;QA-f+jx*{@hRFr|ZXw04EfM
zT>+cFA?#HSzYck#F9rR8Qkv}dIeM2d@_7g)w*>SP6fv?#2)N(GH`-7^6E6^V-Yso%
z8<7h`+V-FqV@i(5)T7#jInfCIED9SZW7_m9g`pp>VT$=aqG%eizqnVJXY`wE@0Ks7&6fRL}P*_t*UqJhdmoD3%0^2DS{VKhBIc-K*;EF=Qy5
z+yjfL+w8hMxHpi_h{dT$){8ZKc6G&N_H~wXR)bT+;9(0pcz>1kYt?FVv+DdYtJp}H
z_C=yCIxjWDH%!eeIogfP%`BPrzu=7)B}i1Ks339Ddh~bSHeMK^t+(HNpk~egXmcgV
z8~t}jGbT9EoxK;M7z=g?K|29%s3po8E44n4(p+G5Ppq7r^^lmFAkVs4lSAA1X$|F#(jTYkem-ulVO
zbx$b#^UYS8Voc|RakzhehyIg;qG0i^pvb-do&pS~d2sN{l$?K^14Q-Us7BvRO%wgA
zF;vsJ;9zbJod409AXwz{Uj(`TL;I}{4t_0d1qQL{ke+=;-X1Dcx=*8KiNO$Hq8cC-1owM{Xd^TZ;d!;Abk9Xe}9Hg0~2w}
zc9{G6-w)*trfRe|jCt$7KZ}$TB^OqFv&a0OM+fdJ3pk5W5B~r7%nVyK8Y8XV_utJa
zMgdRs|9?%qAKEOH0+LhX;}#B)NRoW81cil#G~yMSR2LUr^6I+d7n^aY;Apxpq{yQB-h8cz(3B*$(a@a)m~8Q@;WYifQ;W0zy?JT
zd+8QYU=T;n(+2eiWHz6LcplHI;fxyLlXpLO*$qesV3kGCm&_st)(MoPRAc?ZV_GkZ>|?if)PU7rz2I@RZjrbASOT{|NL~**zD9p8djJj6^)^{|vDCirydA
zeBgHJywu0dus#X|F$;qdjnK8l_0h)_)v~&p`?)8cFNED!FAaXSx>v8p6@c_jDpT`d
zzcUw*VX%)F%krtwtS{O-{v((TpTs}-Eh-*y+B&NY5#3(Whg^#XT{1-ro#v2D`)+sv
z4+xX)OD5U-fihUwla1*5L{UcPyzmo9SzKybIkVbzI~u^=>Js@rOqrypqT*d=MvdK~
z3vV3b94M>T!DKzDi66D%tUN}7@bXB}b;95i3F256#|Cvt!Z{jat1@VZ&KR+hm6+O
z6HbyOpgZ0!G+Ag$n@21GdQmpm2jNt{ca%Jg_gC9l(*S*!{Wt;oxvYEpKUo0azd#&u
z%`HeTk)^-WMO&WKwZ6|D;K3bpiUK*cI1`drQ83EF>2M7q7cm*~*dCmxG8bn;3Dt{$
z`$d*U9>~6>dFiBOy#d{S5<}<;v$|AR^kB_3!)`m<;w4tf6-rJ|CdAxN;-@!Yh(TIn
z#k#J~)}f?+xn#wu%^sEv5tQ%LiQRA^xqhLxshCiq_K2Zx-*3ZYZ%V5_BO-Dv*X4)+pw{
zVR?FCEpfb`Yi@_=<=4_m6%WlxAjy(6F2a3^5hZE*Dd493F1y=J2jNFH{Rh4DVQw$5
zC1?MDJ4oim>?aa6j%zlf)F}wLQe}*K&4Vu{^GjJ}q
zft}|P6PPGn*;*zf4%nu*)-1+aU3Fc(GA*&B2`Z6?;v!Lq7FZcAC~zXZq|X&Y*~@(5
zZ^r4)UTmqMI1};6h8u>Y$uWe0omU~6e2y0M=mX{5RF?{@Z@I$ZtLY;8FqbqV)qM;f
zh+<0@w&$z0y0^X2DoA-z-J8NOmw*7vhWrwUpOlV$@EM4PcsR1Y@25x3XTTOPQdRPD
z@f1p_`lX}bJi(q`WO_z&-7i^9p;zl({JM_*v%V6B8B#@T$ZC5s*2J(FoIv$VUsUhL
z+Wd^C_xS+cBXy1!lWz^yY9_0D59#gj1+qs~9qqEm%txgs2&B)?Xq+BcY>9OOQ72BY
z;Yn%+>f4MYCDTw1PCuY)gQ^GzUcIDMXG%Mpqo5U``&@^CljkD^Q{`fIBGcBoVI5n}$(yKVp8u7bzNSjO?O`4ni8!S@o
zGUA2VGR55(F!B)2aLr93b@@pc4*ps)ibt6mSq%BZKe`m>XvYOk3_cPB^eG1WV@{MK
z(;{s4S`?dOy`@aKK>Xw;kUql`vK?4an1W%U9)S~f$GP4^skkOiF;!NmDixQ8l$Ni#
zsYXE@Rg}S&mf-ScpIR-)hita#MavtdRtkw5N~z#u+P$>Z0NJlqPg8ce`PFgTIPUv9
zn>yU!d&iJCa9tCQY#s>w1SM25T0N&HRZI%o_6@IUBo`%=vdG3!_w?BCHEZE;V
zRTP`y$s1-!^EFYt-UC<<3dZR6q^;4-Hp^zh*K&1O`|6vU>XxMgLcM+&hIqqdTVBbPAHl5CGF+-SIaiym&5|L}7I`5j+ccsA_@qBTjV^eIB6Ok3d*
zFqBz!`NlL3_9>kaVdXaOX#GA`|&_DEd&ThwzMi
z%vvD|CH^ZULr2T6?A`ZN3Gqo7LT=4qNTdq@OWf3zM~mx^Lj5GBsrz7@b1Gg&x1)mb
zxQ{vCDAMl6XobrB&x&gg#Kw`h!Wp*X5-7Pddk$rCD(>YKtXb&gux0V4r(7aldcyNO
zp<=Vr(2D#rJ-d@cB$Ly`N6yW@en5hL=rqHbC*g#fqEpS5Q#lVOyX#Qfr|qe{?WFuO
z(ydJkjU7Rj>M%2CCYli3^2b;?-iF%gxQPQ>L>!C~UtH17;DQ%mI;fh_6`$T-p*19U
z<<(m_At1<-om^!jU;LuxA4+(Fhq2aQ+ML~}^^11e^&2xK(f$=ZV`6(jKr?&KIy)n@
zUNl#Pb{>qYzLJP&v*9`jAB!OCJG0P52BW!hB?9G-#?q655XQ#WEbwNnRvm1GE%4QIZ#e~QaZi_I)=hf%+Np9u*(NvDjgx6Y!
ztYfUX+2bffe9Pmrt_$wIE~d*bQ!|5SXNc2>br3OkcR`nlOZvk0lIYDiFf)rrxUX;s
zGLZW1_~X8vq<_OY>BgSb;Edj|d=FOv$V(u^6?5xK?0YbQj2^r(UKSsd@7C0V81^tm
z6Orh`G580ltsT>x%ID9tjaUb(7iF9*6@|uKlxYq`=5%)*SaPDZs1<3SslhqjeixXl
zLe;zW*-6kzqG;TtrDEi^MhKnC7*58MO_)pkQK~w?7bsL%Cy=Ri|N5pE6SUKvA*(P>
zm?{#dh#HSR=PWu7>KK)kE8SKtLY-07q#%9Jd+ipiInR;k1$r)Qy
zW;(GKUY2E-OrC?I;#QNs&1Kv=43j+v^U%#I4Bzp+$yk)OTMDXu93>8y3Ei;ald0VN
z!EH?nvAwi^A*xvL^J5@A2
zO1aI^;1kb-_R7Mu&Bvwu#EZ5gTovMxG>;a^Boyd#jjjA7v{RBh42^LekL8kFcHwwU
zX9O-DF|CPx8kmbv;IbgXPDl`M>W^&2#|$%`D%bECO7m|U1L)$$@`0{Abs@{7$!x!6
z;co?ZQARWl2`qs%5zUCZBR>7F!8M97sruz@%T9>o7g4GCAb_p
zg6+{fagT6zhcYWEdZIH#mZR!+V7%M=u%fH6IOVG2IXNEQYNQ-)3d-QkzgzF|%l5cd
zV@ZPVtteyH1-vEnj^)gdKWTw?3eJy}#37R#vUEqlFHXG@WRw_A8{9)KXM*L}L{G~0
zox?F4e^@q#`LpDXGl-;jhqqVlhoOjO*r0a(>&7AOS{cZP1gi(QBnu3@4wf^~XS=jb
z*&`b6g_j#9&h^h^TAJqnz$uY3rvBl4@yQxCu92dW#zr&b)L6%;X}GynTvv?Mz3v3o
z=Q7XY?NG@{ln?j@UL&5HL=L@4)f$rEkb$iL*a@aJqOgS?zw$Ph)K3k9aD9Dj(VX+S
zy!nijYc_XO;r91uDidQZHXat<9bFkMiVs{$TN0^>e%L0Reg#X=y5Tqy=qjs5j8S*A
z2!oCe54K7LBpPnlNhgWQ)#d38AdsUkMkY{CwOzm9{iaOqjv9za^W$8PeYE`a*&0@g
zZlV9hh@v>=aYk)=ZKAT+ilzR;G9YEElNs1!eh5bPxxa6p{@*YJ273^S{Gm}w;|reEt?mB33M@g?rqe
zV3Thr7A+<5KeE1-%IOL|AVN{@pLbV9X!~EO3}nC(
zymj^cKd}nMn54+soX`yYf52{0XK>AbS)hNg>5vkDEn~pf=G+@e|9MgK0-VlSxbWWx
z_oyP$^+$z%RQ#Luaev3A^8h~2OFH%MgH7oG2rcp6uHyb1f6sjYMFaDatp9y5+hfq2
z5>sxCe?O}$Kq36Y1pd=-d}Q$aR2y@v|9dGQ?FC8~>}~7)`(V_FU~zvs-HAUU@xO<^
z1uVy38t*UA2b|dec^7_MX9eAs?mu^89kly@C1?J>bQ?oxK*G;1X}QS&`cS%S|0rfD0+JHDM-X~8Q`Z`%mzIA8F@O6R#sL#4vV5Q
zAW_2;Y9iJlK}nBhOpkMiqN5;Y5Ej>#{htRPk00WSvvrUMVpY(^GV_6k%k}Yog;Jgq
zP=Nqt{4vl9X(T?%2PYM>IPM)569`QxrFW8jLu&iH4~;Mb;$;`$dwO`;~~
z>$95#7sw+S97I;q>kVZ4B*o_r3D*vDq(4Fas7}ki5DuIG#_Cq}B+ndI?Vo;Jrf8}N
z**czoi82aBxS>F53g0?Yz5&P>_6dZhES!B%7Wyoihu>hlA5CW=n70@`DmlbKPPr@&6r>m21e2$fYs
zBV)KnvQbSH6;f=lBnB{XK#sVo#HOr%E8;SHtc0#A^3^bH+;9(Y+eB8fCB!@;#+8T*
zpOC^cl2lmQO4ifpQXjcX-wm(yEl3%=Wx|p^|4O?Ai;0vmhE!Ti@?0RI{(Z2tno7+T
z&`bRv?7ekRRpHw%Oi4*M(k)$*Qqm<2f+F1llF}tD-6=>(ODQGYu>k==klu7ix5W2s
z4IVtL9Jxrdk1th`TFa!Xb+L)CJ5TwJt}y(abIf+hNRh23iOM!y+NJPkf;mX$MBa>}b?k4w-p}K-qFm@NTJag-z&V?A?T^pz$@yPNDbg0R77j=aGy+T4fmGBy3|&$~kFz)%(?~XsA8{{i
z8@I+mK7I$lLJ|3QGn`HWz8cw~ii(;S(@L_eF$03yj)+6Y-|6nre_f
zomCi%|Sh*EA4|E300otP`JQg@F@{m_dtRy^h
zv{YIzr+5oz3tSI?Lf2^o8@=CKUlH?`Mb?C~Q?hwzhJKyx3F?m05IV=RhwRwn1#dPv}g07TUoari_;}M*^fCNcoGPrQOBKJ
zR0C1JG^!zEoEB#Ldg{awqPj2BT7IN!#QCX(Y^4|^qe5APaqpf_