From 3905ae40ae82ec27410e1ab7715a3e0c6225612b Mon Sep 17 00:00:00 2001 From: leifermendez Date: Thu, 5 Jan 2023 21:09:08 +0000 Subject: [PATCH 01/53] =?UTF-8?q?ci(providers):=20=F0=9F=91=8D=20updated?= =?UTF-8?q?=20versions=20stable=20providers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 8cbfd560a3585750c6edbccd544a21318c71c337 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Mon, 16 Jan 2023 09:13:52 +0100 Subject: [PATCH 02/53] =?UTF-8?q?ci(providers):=20=EF=BF=BD=20Check=20BREA?= =?UTF-8?q?KING=20CHANGE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/provider/src/web-whatsapp/package.json | 2 +- starters/apps/base-wweb-json/package.json | 2 +- starters/apps/base-wweb-memory/package.json | 2 +- starters/apps/base-wweb-mongo/package.json | 2 +- starters/apps/base-wweb-mysql/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/provider/src/web-whatsapp/package.json b/packages/provider/src/web-whatsapp/package.json index 7514818..d15dbe0 100644 --- a/packages/provider/src/web-whatsapp/package.json +++ b/packages/provider/src/web-whatsapp/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "whatsapp-web.js": "1.18.4" + "whatsapp-web.js": "1.19.2" } } diff --git a/starters/apps/base-wweb-json/package.json b/starters/apps/base-wweb-json/package.json index f52ab5a..d01b825 100644 --- a/starters/apps/base-wweb-json/package.json +++ b/starters/apps/base-wweb-json/package.json @@ -14,7 +14,7 @@ "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", "@bot-whatsapp/portal": "latest", - "whatsapp-web.js": "1.18.4" + "whatsapp-web.js": "1.19.2" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-wweb-memory/package.json b/starters/apps/base-wweb-memory/package.json index b9c4712..d508c4f 100644 --- a/starters/apps/base-wweb-memory/package.json +++ b/starters/apps/base-wweb-memory/package.json @@ -14,7 +14,7 @@ "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", "@bot-whatsapp/portal": "latest", - "whatsapp-web.js": "1.18.4" + "whatsapp-web.js": "1.19.2" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-wweb-mongo/package.json b/starters/apps/base-wweb-mongo/package.json index 9c51d8a..a64f35c 100644 --- a/starters/apps/base-wweb-mongo/package.json +++ b/starters/apps/base-wweb-mongo/package.json @@ -9,7 +9,7 @@ }, "keywords": [], "dependencies": { - "whatsapp-web.js": "1.18.4", + "whatsapp-web.js": "1.19.2", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", diff --git a/starters/apps/base-wweb-mysql/package.json b/starters/apps/base-wweb-mysql/package.json index e95ec1a..ee90e12 100644 --- a/starters/apps/base-wweb-mysql/package.json +++ b/starters/apps/base-wweb-mysql/package.json @@ -9,7 +9,7 @@ }, "keywords": [], "dependencies": { - "whatsapp-web.js": "1.18.4", + "whatsapp-web.js": "1.19.2", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", From eab39e4ac06fd46f1a4671f8c15d1456b4400b97 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Tue, 24 Jan 2023 16:54:31 +0100 Subject: [PATCH 03/53] feat: :fire: bailey add media --- package.json | 2 + packages/provider/common/fileType.js | 16 ++++++ packages/provider/src/baileys/index.js | 42 ++++++++++++++- packages/provider/src/baileys/package.json | 1 - packages/provider/src/baileys/utils.js | 50 ++++++++++++------ yarn.lock | 61 ++++++++++++++++++++-- 6 files changed, 149 insertions(+), 23 deletions(-) create mode 100644 packages/provider/common/fileType.js diff --git a/package.json b/package.json index 2d1061e..3f7f729 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,9 @@ "eslint-config-prettier": "^8.5.0", "fs-extra": "^11.1.0", "git-cz": "^4.9.0", + "got": "11.8.3", "husky": "^8.0.2", + "mime-types": "^2.1.35", "only-allow": "^1.1.1", "prettier": "^2.8.0", "pretty-quick": "^3.1.3", diff --git a/packages/provider/common/fileType.js b/packages/provider/common/fileType.js new file mode 100644 index 0000000..3521e61 --- /dev/null +++ b/packages/provider/common/fileType.js @@ -0,0 +1,16 @@ +const mimeDep = require('mime-types') +/** + * Extrar el mimetype from buffer + * @param {string} response + * @returns + */ +const fileTypeFromFile = async (response) => { + const type = response.headers['content-type'] ?? null + const ext = mimeDep.extension(type) + return { + type, + ext, + } +} + +module.exports = { fileTypeFromFile } diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index de6c66d..b12d094 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -170,12 +170,51 @@ class BaileysProvider extends ProviderClass { sendMedia = async (number, imageUrl, text) => { const fileDownloaded = await baileyDownloadMedia(imageUrl) + const mimeType = mime.lookup(fileDownloaded) + + if (mimeType.includes('image')) + return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) + return this.sendVideo(number, fileDownloaded, text) + if (mimeType.includes('audio')) + return this.sendAudio(number, fileDownloaded, text) + + console.log(mimeType) return this.vendor.sendMessage(number, { image: readFileSync(fileDownloaded), caption: text, }) } + /** + * + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendImage = async (number, filePath, text) => { + return this.vendor.sendMessage(number, { + image: readFileSync(filePath), + caption: text, + }) + } + + /** + * + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendVideo = async (number, filePath, text) => { + return this.vendor.sendMessage(number, { + video: readFileSync(filePath), + caption: text, + gifPlayback: true, + }) + } + /** * @alpha * @param {string} number @@ -185,8 +224,7 @@ class BaileysProvider extends ProviderClass { */ sendAudio = async (number, audioUrl, voiceNote = false) => { - const numberClean = number.replace('+', '') - await this.vendor.sendMessage(`${numberClean}@c.us`, { + await this.vendor.sendMessage(number, { audio: { url: audioUrl }, ptt: voiceNote, }) diff --git a/packages/provider/src/baileys/package.json b/packages/provider/src/baileys/package.json index da529d3..918a8e9 100644 --- a/packages/provider/src/baileys/package.json +++ b/packages/provider/src/baileys/package.json @@ -1,7 +1,6 @@ { "dependencies": { "@adiwajshing/baileys": "4.4.0", - "mime-types": "2.1.35", "wa-sticker-formatter": "4.3.2" } } diff --git a/packages/provider/src/baileys/utils.js b/packages/provider/src/baileys/utils.js index 433ddee..22c36a7 100644 --- a/packages/provider/src/baileys/utils.js +++ b/packages/provider/src/baileys/utils.js @@ -1,10 +1,12 @@ -const { createWriteStream } = require('fs') +const { createWriteStream, rename } = require('fs') const combineImage = require('combine-image') const qr = require('qr-image') const { tmpdir } = require('os') const http = require('http') const https = require('https') +const { fileTypeFromFile } = require('../../common/fileType') + const baileyCleanNumber = (number, full = false) => { number = number.replace('@s.whatsapp.net', '') number = !full ? `${number}@s.whatsapp.net` : `${number}` @@ -47,27 +49,43 @@ const baileyIsValidNumber = (rawNumber) => { * @param {*} url * @returns */ -const baileyDownloadMedia = (url) => { - return new Promise((resolve, reject) => { - const ext = url.split('.').pop() +const baileyDownloadMedia = async (url) => { + const handleDownload = () => { const checkProtocol = url.includes('https:') const handleHttp = checkProtocol ? https : http - const name = `tmp-${Date.now()}.${ext}` + const name = `tmp-${Date.now()}-dat` const fullPath = `${tmpdir()}/${name}` const file = createWriteStream(fullPath) - handleHttp.get(url, function (response) { - response.pipe(file) - file.on('finish', function () { - file.close() - resolve(fullPath) - }) - file.on('error', function () { - console.log('errro') - file.close() - reject(null) + + return new Promise((res, rej) => { + handleHttp.get(url, function (response) { + response.pipe(file) + file.on('finish', async function () { + file.close() + res({ response, fullPath }) + }) + file.on('error', function () { + file.close() + rej(null) + }) }) }) - }) + } + + const handleFile = (pathInput, ext) => + new Promise((resolve, reject) => { + const fullPath = `${pathInput}.${ext}` + rename(pathInput, fullPath, (err) => { + if (err) reject(null) + resolve(fullPath) + }) + }) + + const httpResponse = await handleDownload() + const { ext } = await fileTypeFromFile(httpResponse.response) + const getPath = await handleFile(httpResponse.fullPath, ext) + + return getPath } module.exports = { diff --git a/yarn.lock b/yarn.lock index cf802d5..4b1ffb6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1112,7 +1112,10 @@ __metadata: eslint-config-prettier: ^8.5.0 fs-extra: ^11.1.0 git-cz: ^4.9.0 + got: 11.8.3 husky: ^8.0.2 + mime-types: ^2.1.35 + name2mime: ^1.0.1 only-allow: ^1.1.1 prettier: ^2.8.0 pretty-quick: ^3.1.3 @@ -2933,6 +2936,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^4.0.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^5.2.0": version: 5.3.0 resolution: "@sindresorhus/is@npm:5.3.0" @@ -2977,7 +2987,7 @@ __metadata: languageName: node linkType: hard -"@szmarczak/http-timer@npm:^4.0.0": +"@szmarczak/http-timer@npm:^4.0.0, @szmarczak/http-timer@npm:^4.0.5": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" dependencies: @@ -5073,6 +5083,13 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + "cacheable-lookup@npm:^7.0.0": version: 7.0.0 resolution: "cacheable-lookup@npm:7.0.0" @@ -5125,7 +5142,7 @@ __metadata: languageName: node linkType: hard -"cacheable-request@npm:^7.0.1": +"cacheable-request@npm:^7.0.1, cacheable-request@npm:^7.0.2": version: 7.0.2 resolution: "cacheable-request@npm:7.0.2" dependencies: @@ -9899,6 +9916,25 @@ __metadata: languageName: node linkType: hard +"got@npm:11.8.3": + version: 11.8.3 + resolution: "got@npm:11.8.3" + 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 + checksum: 3b6db107d9765470b18e4cb22f7c7400381be7425b9be5823f0168d6c21b5d6b28b023c0b3ee208f73f6638c3ce251948ca9b54a1e8f936d3691139ac202d01b + languageName: node + linkType: hard + "got@npm:^10.0.0, got@npm:^10.7.0": version: 10.7.0 resolution: "got@npm:10.7.0" @@ -10446,6 +10482,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e + languageName: node + linkType: hard + "http2-wrapper@npm:^2.1.10": version: 2.2.0 resolution: "http2-wrapper@npm:2.2.0" @@ -13443,7 +13489,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.35, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -13839,6 +13885,13 @@ __metadata: languageName: node linkType: hard +"name2mime@npm:^1.0.1": + version: 1.0.1 + resolution: "name2mime@npm:1.0.1" + checksum: 46630096d2a5c381231f5e5025d3aaef824b5db29677971b8a93f565e63979524d6f43457dd4b93591341c26af2abb44ef7aa87943c51d2eed60b94519815880 + languageName: node + linkType: hard + "named-placeholders@npm:^1.1.2": version: 1.1.2 resolution: "named-placeholders@npm:1.1.2" @@ -16820,7 +16873,7 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.2.0": +"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 From e19c3a25a40259c74b4add9635af4844907eed26 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Tue, 24 Jan 2023 19:43:11 +0100 Subject: [PATCH 04/53] feat: :zap: more feature --- packages/provider/src/baileys/index.js | 32 +++++++++++--------------- yarn.lock | 8 ------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index b12d094..4bc0a03 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -13,6 +13,7 @@ const { Browsers, DisconnectReason, } = require('@adiwajshing/baileys') + const { baileyGenerateImage, baileyCleanNumber, @@ -179,15 +180,11 @@ class BaileysProvider extends ProviderClass { if (mimeType.includes('audio')) return this.sendAudio(number, fileDownloaded, text) - console.log(mimeType) - return this.vendor.sendMessage(number, { - image: readFileSync(fileDownloaded), - caption: text, - }) + return this.sendFile() } /** - * + * Enviar imagen * @param {*} number * @param {*} imageUrl * @param {*} text @@ -201,7 +198,7 @@ class BaileysProvider extends ProviderClass { } /** - * + * Enviar video * @param {*} number * @param {*} imageUrl * @param {*} text @@ -216,6 +213,7 @@ class BaileysProvider extends ProviderClass { } /** + * Enviar audio * @alpha * @param {string} number * @param {string} message @@ -224,7 +222,7 @@ class BaileysProvider extends ProviderClass { */ sendAudio = async (number, audioUrl, voiceNote = false) => { - await this.vendor.sendMessage(number, { + return this.vendor.sendMessage(number, { audio: { url: audioUrl }, ptt: voiceNote, }) @@ -248,17 +246,13 @@ class BaileysProvider extends ProviderClass { */ sendFile = async (number, filePath) => { - if (existsSync(filePath)) { - const mimeType = mime.lookup(filePath) - const numberClean = number.replace('+', '') - const fileName = filePath.split('/').pop() - - await this.vendor.sendMessage(`${numberClean}@c.us`, { - document: { url: filePath }, - mimetype: mimeType, - fileName: fileName, - }) - } + const mimeType = mime.lookup(filePath) + const fileName = filePath.split('/').pop() + return this.vendor.sendMessage(number, { + document: { url: filePath }, + mimetype: mimeType, + fileName: fileName, + }) } /** diff --git a/yarn.lock b/yarn.lock index 4b1ffb6..c99a8c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1115,7 +1115,6 @@ __metadata: got: 11.8.3 husky: ^8.0.2 mime-types: ^2.1.35 - name2mime: ^1.0.1 only-allow: ^1.1.1 prettier: ^2.8.0 pretty-quick: ^3.1.3 @@ -13885,13 +13884,6 @@ __metadata: languageName: node linkType: hard -"name2mime@npm:^1.0.1": - version: 1.0.1 - resolution: "name2mime@npm:1.0.1" - checksum: 46630096d2a5c381231f5e5025d3aaef824b5db29677971b8a93f565e63979524d6f43457dd4b93591341c26af2abb44ef7aa87943c51d2eed60b94519815880 - languageName: node - linkType: hard - "named-placeholders@npm:^1.1.2": version: 1.1.2 resolution: "named-placeholders@npm:1.1.2" From 14d1a61fa259c09135c37c55bd79e97c9c8367e4 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Tue, 24 Jan 2023 22:14:55 +0100 Subject: [PATCH 05/53] feat(provider): :zap: bailey add send file video audio --- packages/provider/common/download.js | 65 ++++++++++++++++++++++++++ packages/provider/common/fileType.js | 16 ------- packages/provider/src/baileys/index.js | 9 ++-- packages/provider/src/baileys/utils.js | 53 +-------------------- 4 files changed, 71 insertions(+), 72 deletions(-) create mode 100644 packages/provider/common/download.js delete mode 100644 packages/provider/common/fileType.js diff --git a/packages/provider/common/download.js b/packages/provider/common/download.js new file mode 100644 index 0000000..76e23a0 --- /dev/null +++ b/packages/provider/common/download.js @@ -0,0 +1,65 @@ +const mimeDep = require('mime-types') +const { tmpdir } = require('os') +const http = require('http') +const https = require('https') +const { rename, createWriteStream } = require('fs') + +/** + * Extrar el mimetype from buffer + * @param {string} response + * @returns + */ +const fileTypeFromFile = async (response) => { + const type = response.headers['content-type'] ?? null + const ext = mimeDep.extension(type) + return { + type, + ext, + } +} + +/** + * Descargar archivo binay en tmp + * @param {*} url + * @returns + */ +const generalDownload = async (url) => { + const handleDownload = () => { + const checkProtocol = url.includes('https:') + const handleHttp = checkProtocol ? https : http + const name = `tmp-${Date.now()}-dat` + const fullPath = `${tmpdir()}/${name}` + const file = createWriteStream(fullPath) + + return new Promise((res, rej) => { + handleHttp.get(url, function (response) { + response.pipe(file) + file.on('finish', async function () { + file.close() + res({ response, fullPath }) + }) + file.on('error', function () { + file.close() + rej(null) + }) + }) + }) + } + + const handleFile = (pathInput, ext) => + new Promise((resolve, reject) => { + const fullPath = `${pathInput}.${ext}` + rename(pathInput, fullPath, (err) => { + if (err) reject(null) + resolve(fullPath) + }) + }) + + const httpResponse = await handleDownload() + const { ext } = await fileTypeFromFile(httpResponse.response) + const getPath = await handleFile(httpResponse.fullPath, ext) + + return getPath +} + +module.exports = { generalDownload } diff --git a/packages/provider/common/fileType.js b/packages/provider/common/fileType.js deleted file mode 100644 index 3521e61..0000000 --- a/packages/provider/common/fileType.js +++ /dev/null @@ -1,16 +0,0 @@ -const mimeDep = require('mime-types') -/** - * Extrar el mimetype from buffer - * @param {string} response - * @returns - */ -const fileTypeFromFile = async (response) => { - const type = response.headers['content-type'] ?? null - const ext = mimeDep.extension(type) - return { - type, - ext, - } -} - -module.exports = { fileTypeFromFile } diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 4bc0a03..9361731 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -4,7 +4,7 @@ const pino = require('pino') const rimraf = require('rimraf') const mime = require('mime-types') const { join } = require('path') -const { existsSync, createWriteStream, readFileSync } = require('fs') +const { createWriteStream, readFileSync } = require('fs') const { Console } = require('console') const { @@ -18,9 +18,10 @@ const { baileyGenerateImage, baileyCleanNumber, baileyIsValidNumber, - baileyDownloadMedia, } = require('./utils') +const { generalDownload } = require('../../common/download') + const logger = new Console({ stdout: createWriteStream(`${process.cwd()}/baileys.log`), }) @@ -170,7 +171,7 @@ class BaileysProvider extends ProviderClass { */ sendMedia = async (number, imageUrl, text) => { - const fileDownloaded = await baileyDownloadMedia(imageUrl) + const fileDownloaded = await generalDownload(imageUrl) const mimeType = mime.lookup(fileDownloaded) if (mimeType.includes('image')) @@ -180,7 +181,7 @@ class BaileysProvider extends ProviderClass { if (mimeType.includes('audio')) return this.sendAudio(number, fileDownloaded, text) - return this.sendFile() + return this.sendFile(number, fileDownloaded) } /** diff --git a/packages/provider/src/baileys/utils.js b/packages/provider/src/baileys/utils.js index 22c36a7..0b2a886 100644 --- a/packages/provider/src/baileys/utils.js +++ b/packages/provider/src/baileys/utils.js @@ -1,11 +1,6 @@ -const { createWriteStream, rename } = require('fs') +const { createWriteStream } = require('fs') const combineImage = require('combine-image') const qr = require('qr-image') -const { tmpdir } = require('os') -const http = require('http') -const https = require('https') - -const { fileTypeFromFile } = require('../../common/fileType') const baileyCleanNumber = (number, full = false) => { number = number.replace('@s.whatsapp.net', '') @@ -43,54 +38,8 @@ const baileyIsValidNumber = (rawNumber) => { return !exist } -/** - * Incompleta - * Descargar archivo multimedia para enviar - * @param {*} url - * @returns - */ -const baileyDownloadMedia = async (url) => { - const handleDownload = () => { - const checkProtocol = url.includes('https:') - const handleHttp = checkProtocol ? https : http - const name = `tmp-${Date.now()}-dat` - const fullPath = `${tmpdir()}/${name}` - const file = createWriteStream(fullPath) - - return new Promise((res, rej) => { - handleHttp.get(url, function (response) { - response.pipe(file) - file.on('finish', async function () { - file.close() - res({ response, fullPath }) - }) - file.on('error', function () { - file.close() - rej(null) - }) - }) - }) - } - - const handleFile = (pathInput, ext) => - new Promise((resolve, reject) => { - const fullPath = `${pathInput}.${ext}` - rename(pathInput, fullPath, (err) => { - if (err) reject(null) - resolve(fullPath) - }) - }) - - const httpResponse = await handleDownload() - const { ext } = await fileTypeFromFile(httpResponse.response) - const getPath = await handleFile(httpResponse.fullPath, ext) - - return getPath -} - module.exports = { baileyCleanNumber, baileyGenerateImage, baileyIsValidNumber, - baileyDownloadMedia, } From b2feaea588278a4bf85cfaf70e4673d8f2bc7226 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Wed, 25 Jan 2023 09:05:01 +0100 Subject: [PATCH 06/53] docs: :bug: fix modal --- packages/docs/src/routes/docs/layout!.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docs/src/routes/docs/layout!.tsx b/packages/docs/src/routes/docs/layout!.tsx index 4d66df2..8f49e8a 100644 --- a/packages/docs/src/routes/docs/layout!.tsx +++ b/packages/docs/src/routes/docs/layout!.tsx @@ -3,7 +3,7 @@ import type { DocumentHead } from '@builder.io/qwik-city' import ExtraBar from '~/components/widgets/ExtraBar' import Header from '~/components/widgets/Header' import NavBar from '~/components/widgets/NavBar' -import { SearchModal } from '~/components/widgets/SearchModal' +// import { SearchModal } from '~/components/widgets/SearchModal' import SponsorBar from '~/components/widgets/SponsorBar' import { GlobalStore } from '~/contexts' // import Navigation from '~/components/widgets/Navigation' @@ -15,7 +15,7 @@ export default component$(() => { return ( <> - + {/* */}
From e7a8e85ead9a7dffbdbb04e172f83c3f66bc7262 Mon Sep 17 00:00:00 2001 From: lisandroprada Date: Wed, 25 Jan 2023 08:21:12 -0300 Subject: [PATCH 07/53] Update index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agregado: Definición de la constante BOTNAME. --- packages/docs/src/routes/docs/flows/index.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 0cb1222..cf6c23c 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -226,6 +226,7 @@ async (ctx,{flowDynamic, endFlow})=>{ Argumento para asignar nombre y puerto al BOT ```js +const BOTNAME = 'bot'; QRPortalWeb({name:BOTNAME, port:3005 }); ``` From 9dd7c02b6a5474aff063f7d6be0ca8519504b93c Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Wed, 25 Jan 2023 16:10:13 -0500 Subject: [PATCH 08/53] feat(provider): :rocket: implements all send media to venom provider --- packages/provider/src/venom/index.js | 67 +++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 4b7c231..10fe5aa 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -2,18 +2,20 @@ const { ProviderClass } = require('@bot-whatsapp/bot') const venom = require('venom-bot') const { createWriteStream } = require('fs') const { Console } = require('console') +const mime = require('mime-types') const { venomCleanNumber, venomGenerateImage, venomisValidNumber, - venomDownloadMedia, } = require('./utils') const logger = new Console({ stdout: createWriteStream(`${process.cwd()}/venom.log`), }) +const { generalDownload } = require('../../common/download') + /** * ⚙️ VenomProvider: Es una clase tipo adaptor * que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas) @@ -134,6 +136,53 @@ class VenomProvider extends ProviderClass { // return this.vendor.sendButtons(number, "Title", buttons1, "Description"); } + /** + * Enviar audio + * @alpha + * @param {string} number + * @param {string} message + * @param {boolean} voiceNote optional + * @example await sendMessage('+XXXXXXXXXXX', 'audio.mp3') + */ + + sendAudio = async (number, audioPath, voiceNote = false) => { + return this.vendor.sendVoice(number, audioPath) + } + + /** + * Enviar imagen + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendImage = async (number, filePath, text) => { + return this.vendor.sendImage(number, filePath, 'image-name', text) + } + + /** + * + * @param {string} number + * @param {string} filePath + * @example await sendMessage('+XXXXXXXXXXX', './document/file.pdf') + */ + + sendFile = async (number, filePath, text) => { + const fileName = filePath.split('/').pop() + return this.vendor.sendFile(number, filePath, fileName, text) + } + + /** + * Enviar video + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendVideo = async (number, filePath, text) => { + return this.vendor.sendVideoAsGif(number, filePath, 'video.gif', text) + } + /** * Enviar imagen o multimedia * @param {*} number @@ -141,10 +190,18 @@ class VenomProvider extends ProviderClass { * @param {*} message * @returns */ - sendMedia = async (number, mediaInput, message) => { - if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`) - const fileDownloaded = await venomDownloadMedia(mediaInput) - return this.vendor.sendImage(number, fileDownloaded, '.', message) + sendMedia = async (number, mediaUrl, text) => { + const fileDownloaded = await generalDownload(mediaUrl) + const mimeType = mime.lookup(fileDownloaded) + + if (mimeType.includes('image')) + return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) + return this.sendVideo(number, fileDownloaded, text) + if (mimeType.includes('audio')) + return this.sendAudio(number, fileDownloaded) + + return this.sendFile(number, fileDownloaded, text) } /** From 6ff1a3a980196c01c66ed04ee07d0e7e57256504 Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 12:51:15 -0500 Subject: [PATCH 09/53] feat(provider): :rocket: send file wwebjs --- packages/provider/src/web-whatsapp/index.js | 122 +++++++++++++++++--- 1 file changed, 104 insertions(+), 18 deletions(-) diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index f7f8bd0..2709960 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -1,7 +1,7 @@ const { Client, LocalAuth, MessageMedia, Buttons } = require('whatsapp-web.js') const { ProviderClass } = require('@bot-whatsapp/bot') const { Console } = require('console') -const { createWriteStream } = require('fs') +const { createWriteStream, readFileSync } = require('fs') const { wwebCleanNumber, wwebDownloadMedia, @@ -13,6 +13,9 @@ const logger = new Console({ stdout: createWriteStream('./log'), }) +const { generalDownload } = require('../../common/download') +const mime = require('mime-types') + /** * ⚙️ WebWhatsappProvider: Es una clase tipo adaptor * que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas) @@ -35,6 +38,7 @@ class WebWhatsappProvider extends ProviderClass { '--disable-setuid-sandbox', '--unhandled-rejections=strict', ], + //executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', }, }) @@ -103,23 +107,6 @@ class WebWhatsappProvider extends ProviderClass { }, ] - /** - * Enviar un archivo multimedia - * https://docs.wwebjs.dev/MessageMedia.html - * @private - * @param {*} number - * @param {*} mediaInput - * @returns - */ - sendMedia = async (number, mediaInput = null) => { - if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`) - const fileDownloaded = await wwebDownloadMedia(mediaInput) - const media = MessageMedia.fromFilePath(fileDownloaded) - return this.vendor.sendMessage(number, media, { - sendAudioAsVoice: true, - }) - } - /** * Enviar botones * https://docs.wwebjs.dev/Buttons.html @@ -170,6 +157,105 @@ class WebWhatsappProvider extends ProviderClass { return this.vendor.sendMessage(number, message) } + /** + * Enviar imagen + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendImage = async (number, filePath, text) => { + const base64 = readFileSync(filePath, { encoding: 'base64' }) + const mimeType = mime.lookup(filePath) + const media = new MessageMedia(mimeType, base64) + return this.vendor.sendMessage(number, media, text) + } + + /** + * Enviar audio + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + /** + * Enviar audio + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendAudio = async (number, filePath, text) => { + const base64 = readFileSync(filePath, { encoding: 'base64' }) + const mimeType = mime.lookup(filePath) + const media = new MessageMedia(mimeType, base64) + return this.vendor.sendMessage(number, media, text) + } + /** + * Enviar audio + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendAudio = async (number, filePath, text) => { + const base64 = readFileSync(filePath, { encoding: 'base64' }) + const mimeType = mime.lookup(filePath) + const media = new MessageMedia(mimeType, base64) + return this.vendor.sendMessage(number, media, text) + } + + /** + * Enviar video + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendVideo = async (number, filePath) => { + const base64 = readFileSync(filePath, { encoding: 'base64' }) + const mimeType = mime.lookup(filePath) + const media = new MessageMedia(mimeType, base64) + return this.vendor.sendMessage(number, media, { + sendMediaAsDocument: true, + }) + } + + /** + * Enviar Arhivos/pdf + * @param {*} number + * @param {*} imageUrl + * @param {*} text + * @returns + */ + sendFile = async (number, filePath, text) => { + const base64 = readFileSync(filePath, { encoding: 'base64' }) + const mimeType = mime.lookup(filePath) + const media = new MessageMedia(mimeType, base64) + return this.vendor.sendMessage(number, media, text) + } + + /** + * Enviar imagen o multimedia + * @param {*} number + * @param {*} mediaInput + * @param {*} message + * @returns + */ + sendMedia = async (number, mediaUrl, text) => { + const fileDownloaded = await generalDownload(mediaUrl) + const mimeType = mime.lookup(fileDownloaded) + + if (mimeType.includes('image')) + return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) + return this.sendVideo(number, fileDownloaded) + if (mimeType.includes('audio')) + return this.sendAudio(number, fileDownloaded) + + return this.sendFile(number, fileDownloaded) + } + /** * * @param {*} userId From cbe438b77854e8df48b9dafaf7a837d21124ac5f Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:28:25 -0500 Subject: [PATCH 10/53] feat(provider): :rocket: fix issues in providers venom and wwebjs --- packages/provider/src/venom/index.js | 2 +- packages/provider/src/web-whatsapp/index.js | 34 ++++++--------------- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 10fe5aa..3e1b630 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -145,7 +145,7 @@ class VenomProvider extends ProviderClass { * @example await sendMessage('+XXXXXXXXXXX', 'audio.mp3') */ - sendAudio = async (number, audioPath, voiceNote = false) => { + sendAudio = async (number, audioPath) => { return this.vendor.sendVoice(number, audioPath) } diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 2709960..f66e97a 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -4,7 +4,6 @@ const { Console } = require('console') const { createWriteStream, readFileSync } = require('fs') const { wwebCleanNumber, - wwebDownloadMedia, wwebGenerateImage, wwebIsValidNumber, } = require('./utils') @@ -168,7 +167,9 @@ class WebWhatsappProvider extends ProviderClass { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, text) + return this.vendor.sendMessage(number, media, { + caption: 'soy una imagen', + }) } /** @@ -178,31 +179,14 @@ class WebWhatsappProvider extends ProviderClass { * @param {*} text * @returns */ - /** - * Enviar audio - * @param {*} number - * @param {*} imageUrl - * @param {*} text - * @returns - */ + sendAudio = async (number, filePath, text) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, text) - } - /** - * Enviar audio - * @param {*} number - * @param {*} imageUrl - * @param {*} text - * @returns - */ - sendAudio = async (number, filePath, text) => { - const base64 = readFileSync(filePath, { encoding: 'base64' }) - const mimeType = mime.lookup(filePath) - const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, text) + return this.vendor.sendMessage(number, media, { + caption: 'soy un audio', + }) } /** @@ -228,11 +212,11 @@ class WebWhatsappProvider extends ProviderClass { * @param {*} text * @returns */ - sendFile = async (number, filePath, text) => { + sendFile = async (number, filePath) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, text) + return this.vendor.sendMessage(number, media) } /** From dcb0566d2bc3da40cd0c71554bb5ea0ec115d9ca Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:31:05 -0500 Subject: [PATCH 11/53] feat(provider): :rocket: fix provider venom and wwebjs From b2afa45352a7ab1f5d9775f3c1fde475bd8ca204 Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:32:42 -0500 Subject: [PATCH 12/53] feat(provider): :rocket: fix provider From f8c7184487065443ab10f77aaf585e8bd63ca441 Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:42:45 -0500 Subject: [PATCH 13/53] feat(provider): :rocket: fix provider From 0ad4c58457b548dc41c0f9e8470d59c48de7b95a Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:51:20 -0500 Subject: [PATCH 14/53] feat(provider): :rocket: fix provider --- packages/provider/src/web-whatsapp/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index f66e97a..693d1b9 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -163,7 +163,7 @@ class WebWhatsappProvider extends ProviderClass { * @param {*} text * @returns */ - sendImage = async (number, filePath, text) => { + sendImage = async (number, filePath) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) @@ -180,7 +180,7 @@ class WebWhatsappProvider extends ProviderClass { * @returns */ - sendAudio = async (number, filePath, text) => { + sendAudio = async (number, filePath) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) From e22780d3faba94f71a70f1f201a20690608fa5bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Sat, 28 Jan 2023 15:46:13 +0100 Subject: [PATCH 15/53] fix(bot): :zap: fix fallback refactor --- __test__/05-case.test.js | 118 ++++++++++++++++++ packages/bot/core/core.class.js | 48 ++++--- packages/docs/src/routes/docs/flows/index.mdx | 98 ++++++++------- 3 files changed, 204 insertions(+), 60 deletions(-) create mode 100644 __test__/05-case.test.js diff --git a/__test__/05-case.test.js b/__test__/05-case.test.js new file mode 100644 index 0000000..6ca65d0 --- /dev/null +++ b/__test__/05-case.test.js @@ -0,0 +1,118 @@ +const { test } = require('uvu') +const assert = require('uvu/assert') +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_DB = require('../packages/provider/src/mock') +const { + addKeyword, + createBot, + createFlow, + createProvider, +} = require('../packages/bot/index') + +/** + * Falsear peticion async + * @param {*} fakeData + * @returns + */ +const fakeHTTP = async (fakeData = []) => { + await delay(5) + const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) + return Promise.resolve(data) +} + +test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { + const MOCK_VALUES = [ + '¿CUal es tu email?', + 'Continuamos....', + '¿Cual es tu edad?', + ] + const provider = createProvider(PROVIDER_DB) + const database = new MOCK_DB() + + const flujoPrincipal = addKeyword(['hola']) + .addAnswer( + MOCK_VALUES[0], + { + capture: true, + }, + async (ctx, { flowDynamic, fallBack }) => { + const validation = ctx.body.includes('@') + + if (validation) { + const getDataFromApi = await fakeHTTP([ + 'Gracias por tu email se ha validado de manera correcta', + ]) + return flowDynamic(getDataFromApi) + } + return fallBack(validation) + } + ) + .addAnswer(MOCK_VALUES[1]) + .addAnswer( + MOCK_VALUES[2], + { capture: true }, + async (ctx, { flowDynamic, fallBack }) => { + if (ctx.body !== '18') { + await delay(50) + return fallBack(false, 'Ups creo que no eres mayor de edad') + } + return flowDynamic('Bien tu edad es correcta!') + } + ) + .addAnswer('Puedes pasar') + + createBot({ + database, + flow: createFlow([flujoPrincipal]), + provider, + }) + + provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + provider.delaySendMessage(10, 'message', { + from: '000', + body: 'this is not email value', + }) + + provider.delaySendMessage(20, 'message', { + from: '000', + body: 'test@test.com', + }) + + provider.delaySendMessage(90, 'message', { + from: '000', + body: '20', + }) + + provider.delaySendMessage(200, 'message', { + from: '000', + body: '18', + }) + + await delay(1200) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is(MOCK_VALUES[0], getHistory[0]) + assert.is('this is not email value', getHistory[1]) + assert.is(MOCK_VALUES[0], getHistory[2]) + assert.is('test@test.com', getHistory[3]) + assert.is( + '1 Gracias por tu email se ha validado de manera correcta', + getHistory[4] + ) + assert.is(MOCK_VALUES[1], getHistory[5]) + assert.is(MOCK_VALUES[2], getHistory[6]) + assert.is('20', getHistory[7]) + assert.is('Ups creo que no eres mayor de edad', getHistory[8]) + assert.is('18', getHistory[9]) + assert.is('Bien tu edad es correcta!', getHistory[10]) + assert.is('Puedes pasar', getHistory[11]) +}) + +test.run() + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index f7051b3..418fef4 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -71,8 +71,8 @@ class CoreClass { logger.log(`[handleMsg]: `, messageCtxInComming) const { body, from } = messageCtxInComming let msgToSend = [] - let fallBackFlag = false let endFlowFlag = false + let fallBackFlag = false if (this.generalArgs.blackList.includes(from)) return if (!body) return if (!body.length) return @@ -105,11 +105,23 @@ class CoreClass { return } - // 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx - const sendFlow = async (messageToSend, numberOrId) => { - // [1 Paso] esto esta bien! + // 📄 Continuar con el siguiente flujo + const continueFlow = async () => { + const cotinueMessage = + this.flowClass.find(refToContinue?.ref, true) || [] + sendFlow(cotinueMessage, from, { continue: true }) + return + } + + // 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx + const sendFlow = async ( + messageToSend, + numberOrId, + options = { continue: false } + ) => { + if (!options.continue && prevMsg?.options?.capture) + await cbEveryCtx(prevMsg?.ref) - if (prevMsg?.options?.capture) await cbEveryCtx(prevMsg?.ref) const queue = [] for (const ctxMessage of messageToSend) { if (endFlowFlag) return @@ -127,11 +139,13 @@ class CoreClass { } // 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje - const fallBack = async () => { - fallBackFlag = true - await this.sendProviderAndSave(from, refToContinue) + const fallBack = async (next = false, message = null) => { QueuePrincipal.queue = [] - return refToContinue + if (next) return continueFlow() + return this.sendProviderAndSave(from, { + ...refToContinue, + answer: message ?? refToContinue.answer, + }) } // 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes @@ -141,8 +155,7 @@ class CoreClass { listMsg = [], optListMsg = { limit: 5, fallback: false } ) => { - if (!Array.isArray(listMsg)) - throw new Error('Esto debe ser un ARRAY') + if (!Array.isArray(listMsg)) listMsg = [listMsg] fallBackFlag = optListMsg.fallback const parseListMsg = listMsg @@ -165,7 +178,7 @@ class CoreClass { for (const msg of parseListMsg) { await this.sendProviderAndSave(from, msg) } - return + return continueFlow() } // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback @@ -181,11 +194,12 @@ class CoreClass { fallBack, flowDynamic, endFlow, + continueFlow, }) } // 📄🤘(tiene return) [options: nested(array)]: Si se tiene flujos hijos los implementa - if (!fallBackFlag && prevMsg?.options?.nested?.length) { + if (prevMsg?.options?.nested?.length) { const nestedRef = prevMsg.options.nested const flowStandalone = nestedRef.map((f) => ({ ...nestedRef.find((r) => r.refSerialize === f.refSerialize), @@ -197,12 +211,11 @@ class CoreClass { return } - // 📄🤘(tiene return) [options: capture (boolean)]: Si se tiene option boolean - if (!fallBackFlag && !prevMsg?.options?.nested?.length) { + // 📄🤘(tiene return) Si el mensaje previo implementa capture + if (!prevMsg?.options?.nested?.length) { const typeCapture = typeof prevMsg?.options?.capture - const valueCapture = prevMsg?.options?.capture - if (['string', 'boolean'].includes(typeCapture) && valueCapture) { + if (typeCapture === 'boolean' && fallBackFlag) { msgToSend = this.flowClass.find(refToContinue?.ref, true) || [] sendFlow(msgToSend, from) return @@ -228,6 +241,7 @@ class CoreClass { } /** + * @deprecated * @private * @param {*} message * @param {*} ref diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 0cb1222..29a0c63 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -29,13 +29,16 @@ const flowPrincipal = addKeyword(['hola', 'alo']) Es importante que el número **vaya acompañado de su prefijo**, en el caso de España "34". ```js -createBot({ +createBot( + { flow: adapterFlow, provider: adapterProvider, database: adapterDB, - },{ - blackList:['34XXXXXXXXX','34XXXXXXXXX','34XXXXXXXXX','34XXXXXXXXX'] - }) + }, + { + blackList: ['34XXXXXXXXX', '34XXXXXXXXX', '34XXXXXXXXX', '34XXXXXXXXX'], + } +) ``` --- @@ -175,65 +178,74 @@ const flowString = addKeyword('hola') ``` --- + ## endFlow() -Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y +Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y que el usuario pueda finalizar por él mismo el flujo. Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones. - - ```js const flowFormulario = addKeyword(['Hola']) - -.addAnswer(['Hola!','Escriba su *Nombre* para generar su solicitud'], -{capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, -async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - .addAnswer(['También necesito tus dos apellidos'], - {capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, - async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - .addAnswer(['Dejeme su número de teléfono y le llamaré lo antes posible.'], -{capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, -async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - - - + .addAnswer( + ['Hola!', 'Escriba su *Nombre* para generar su solicitud'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) + .addAnswer( + ['También necesito tus dos apellidos'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) + .addAnswer( + ['Dejeme su número de teléfono y le llamaré lo antes posible.'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) ``` --- - - - - # QRPortalWeb Argumento para asignar nombre y puerto al BOT ```js -QRPortalWeb({name:BOTNAME, port:3005 }); - +QRPortalWeb({ name: BOTNAME, port: 3005 }) ``` --- - - Date: Sat, 28 Jan 2023 16:06:12 +0100 Subject: [PATCH 16/53] fix(cli): :zap: refactor fallback in child flow --- packages/bot/core/core.class.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 418fef4..b3bc15b 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -143,8 +143,8 @@ class CoreClass { QueuePrincipal.queue = [] if (next) return continueFlow() return this.sendProviderAndSave(from, { - ...refToContinue, - answer: message ?? refToContinue.answer, + ...prevMsg, + answer: message ?? prevMsg.answer, }) } From f95331d3dc70e76a3dfbe4c8d24059f0e7a164ef Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 28 Jan 2023 16:25:22 +0100 Subject: [PATCH 17/53] feat(provider): :zap: venom wweb --- package.json | 1 - packages/docs/src/routes/docs/flows/index.mdx | 98 +++++++++++-------- .../provider/src/web-whatsapp/package.json | 2 +- yarn.lock | 50 +--------- 4 files changed, 59 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 859f059..2ad9893 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,6 @@ "eslint-config-prettier": "^8.5.0", "fs-extra": "^11.1.0", "git-cz": "^4.9.0", - "got": "11.8.3", "husky": "^8.0.2", "mime-types": "^2.1.35", "only-allow": "^1.1.1", diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 0cb1222..29a0c63 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -29,13 +29,16 @@ const flowPrincipal = addKeyword(['hola', 'alo']) Es importante que el número **vaya acompañado de su prefijo**, en el caso de España "34". ```js -createBot({ +createBot( + { flow: adapterFlow, provider: adapterProvider, database: adapterDB, - },{ - blackList:['34XXXXXXXXX','34XXXXXXXXX','34XXXXXXXXX','34XXXXXXXXX'] - }) + }, + { + blackList: ['34XXXXXXXXX', '34XXXXXXXXX', '34XXXXXXXXX', '34XXXXXXXXX'], + } +) ``` --- @@ -175,65 +178,74 @@ const flowString = addKeyword('hola') ``` --- + ## endFlow() -Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y +Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y que el usuario pueda finalizar por él mismo el flujo. Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones. - - ```js const flowFormulario = addKeyword(['Hola']) - -.addAnswer(['Hola!','Escriba su *Nombre* para generar su solicitud'], -{capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, -async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - .addAnswer(['También necesito tus dos apellidos'], - {capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, - async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - .addAnswer(['Dejeme su número de teléfono y le llamaré lo antes posible.'], -{capture: true,buttons:[{body:'❌ Cancelar solicitud'}]}, -async (ctx,{flowDynamic, endFlow})=>{ - if(ctx.body == '❌ Cancelar solicitud'){ - await flowDynamic([{body: "❌ *Su solicitud de cita ha sido cancelada* ❌", buttons:[{body:'⬅️ Volver al Inicio'}]}]) - return endFlow() - } - }) - - - + .addAnswer( + ['Hola!', 'Escriba su *Nombre* para generar su solicitud'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) + .addAnswer( + ['También necesito tus dos apellidos'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) + .addAnswer( + ['Dejeme su número de teléfono y le llamaré lo antes posible.'], + { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { + if (ctx.body == '❌ Cancelar solicitud') { + await flowDynamic([ + { + body: '❌ *Su solicitud de cita ha sido cancelada* ❌', + buttons: [{ body: '⬅️ Volver al Inicio' }], + }, + ]) + return endFlow() + } + } + ) ``` --- - - - - # QRPortalWeb Argumento para asignar nombre y puerto al BOT ```js -QRPortalWeb({name:BOTNAME, port:3005 }); - +QRPortalWeb({ name: BOTNAME, port: 3005 }) ``` --- - - Date: Sat, 28 Jan 2023 16:44:30 +0100 Subject: [PATCH 18/53] feat(provider): :zap: venom wweb --- packages/bot/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bot/package.json b/packages/bot/package.json index fe542c1..30211e4 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.73-alpha.0", + "version": "0.0.84-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { From 1c66f178a56d284bb8cb9df5ca17685c7e5d1ddd Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 28 Jan 2023 18:41:58 +0100 Subject: [PATCH 19/53] fix(cli): :zap: endflow --- __test__/06-case.test.js | 111 ++++++++++++++++++++++++++++++++ packages/bot/core/core.class.js | 11 +++- packages/bot/package.json | 2 +- 3 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 __test__/06-case.test.js diff --git a/__test__/06-case.test.js b/__test__/06-case.test.js new file mode 100644 index 0000000..c68679e --- /dev/null +++ b/__test__/06-case.test.js @@ -0,0 +1,111 @@ +const { test } = require('uvu') +const assert = require('uvu/assert') +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_DB = require('../packages/provider/src/mock') +const { + addKeyword, + createBot, + createFlow, + createProvider, +} = require('../packages/bot/index') + +/** + * Falsear peticion async + * @param {*} fakeData + * @returns + */ +const fakeHTTP = async (fakeData = []) => { + await delay(5) + const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) + return Promise.resolve(data) +} + +test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { + const MOCK_VALUES = [ + '¿CUal es tu email?', + 'Continuamos....', + '¿Cual es tu edad?', + ] + const provider = createProvider(PROVIDER_DB) + const database = new MOCK_DB() + + const flujoPrincipal = addKeyword(['hola']) + .addAnswer( + MOCK_VALUES[0], + { + capture: true, + }, + async (ctx, { flowDynamic, fallBack }) => { + const validation = ctx.body.includes('@') + + if (validation) { + const getDataFromApi = await fakeHTTP([ + 'Gracias por tu email se ha validado de manera correcta', + ]) + return flowDynamic(getDataFromApi) + } + return fallBack(validation) + } + ) + .addAnswer(MOCK_VALUES[1], null, async (_, { endFlow }) => { + return endFlow() + }) + .addAnswer( + MOCK_VALUES[2], + { capture: true }, + async (ctx, { flowDynamic, fallBack }) => { + if (ctx.body !== '18') { + await delay(50) + return fallBack(false, 'Ups creo que no eres mayor de edad') + } + return flowDynamic('Bien tu edad es correcta!') + } + ) + .addAnswer('Puedes pasar') + + createBot({ + database, + flow: createFlow([flujoPrincipal]), + provider, + }) + + provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + provider.delaySendMessage(10, 'message', { + from: '000', + body: 'this is not email value', + }) + + provider.delaySendMessage(20, 'message', { + from: '000', + body: 'test@test.com', + }) + + provider.delaySendMessage(90, 'message', { + from: '000', + body: '20', + }) + + await delay(1200) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is(MOCK_VALUES[0], getHistory[0]) + assert.is('this is not email value', getHistory[1]) + assert.is(MOCK_VALUES[0], getHistory[2]) + assert.is('test@test.com', getHistory[3]) + assert.is( + '1 Gracias por tu email se ha validado de manera correcta', + getHistory[4] + ) + assert.is(MOCK_VALUES[1], getHistory[5]) + assert.is('20', getHistory[6]) + assert.is(undefined, getHistory[7]) +}) + +test.run() + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index b3bc15b..90340e6 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -98,10 +98,15 @@ class CoreClass { } // 📄 Finalizar flujo - const endFlow = async () => { + const endFlow = async (message = null) => { prevMsg = null endFlowFlag = true clearQueue() + if (message) + this.sendProviderAndSave(from, { + ...prevMsg, + answer: message ?? prevMsg.answer, + }) return } @@ -199,7 +204,7 @@ class CoreClass { } // 📄🤘(tiene return) [options: nested(array)]: Si se tiene flujos hijos los implementa - if (prevMsg?.options?.nested?.length) { + if (!endFlowFlag && prevMsg?.options?.nested?.length) { const nestedRef = prevMsg.options.nested const flowStandalone = nestedRef.map((f) => ({ ...nestedRef.find((r) => r.refSerialize === f.refSerialize), @@ -212,7 +217,7 @@ class CoreClass { } // 📄🤘(tiene return) Si el mensaje previo implementa capture - if (!prevMsg?.options?.nested?.length) { + if (!endFlowFlag && !prevMsg?.options?.nested?.length) { const typeCapture = typeof prevMsg?.options?.capture if (typeCapture === 'boolean' && fallBackFlag) { diff --git a/packages/bot/package.json b/packages/bot/package.json index 30211e4..827194b 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.84-alpha.0", + "version": "0.0.86-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { From b655ae449e7958ea940d8cc3c678fd66f60b6385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Sun, 29 Jan 2023 12:46:31 +0100 Subject: [PATCH 20/53] fix(bot): :fire: endFlow with ctx --- packages/bot/core/core.class.js | 48 ++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index b3bc15b..9ddf444 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -91,6 +91,25 @@ class CoreClass { this.databaseClass.save(ctxByNumber) } + // 📄 Crar CTX de mensaje (uso private) + const createCtxMessage = (payload = {}, index = 0) => { + const body = + typeof payload === 'string' + ? payload + : payload?.body ?? payload?.answer + const media = payload?.media ?? null + const buttons = payload?.buttons ?? [] + const capture = payload?.capture ?? false + + return toCtx({ + body, + from, + keyword: null, + index, + options: { media, buttons, capture }, + }) + } + // 📄 Limpiar cola de procesos const clearQueue = () => { QueuePrincipal.pendingPromise = false @@ -98,9 +117,12 @@ class CoreClass { } // 📄 Finalizar flujo - const endFlow = async () => { + const endFlow = async (message = null) => { prevMsg = null endFlowFlag = true + if (message) + this.sendProviderAndSave(from, createCtxMessage(message)) + clearQueue() return } @@ -151,28 +173,12 @@ class CoreClass { // 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes // para evitar bloque de whatsapp - const flowDynamic = async ( - listMsg = [], - optListMsg = { limit: 5, fallback: false } - ) => { + const flowDynamic = async (listMsg = []) => { if (!Array.isArray(listMsg)) listMsg = [listMsg] - fallBackFlag = optListMsg.fallback - const parseListMsg = listMsg - .map((opt, index) => { - const body = typeof opt === 'string' ? opt : opt.body - const media = opt?.media ?? null - const buttons = opt?.buttons ?? [] - - return toCtx({ - body, - from, - keyword: null, - index, - options: { media, buttons }, - }) - }) - .slice(0, optListMsg.limit) + const parseListMsg = listMsg.map((opt, index) => + createCtxMessage(opt, index) + ) if (endFlowFlag) return for (const msg of parseListMsg) { From f6114affadfbc324536a86167d1fdfe8da3c8de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Sun, 29 Jan 2023 13:39:09 +0100 Subject: [PATCH 21/53] fix(bot): :fire: endFlow with ctx --- packages/bot/core/core.class.js | 9 ++++++++- packages/bot/package.json | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 9ddf444..60644a5 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -166,7 +166,14 @@ class CoreClass { if (next) return continueFlow() return this.sendProviderAndSave(from, { ...prevMsg, - answer: message ?? prevMsg.answer, + answer: + typeof message === 'string' + ? message + : message?.body ?? prevMsg.answer, + options: { + ...prevMsg.options, + buttons: message?.buttons ?? prevMsg.options?.buttons, + }, }) } diff --git a/packages/bot/package.json b/packages/bot/package.json index 30211e4..5d2dc0c 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.84-alpha.0", + "version": "0.0.89-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { From de5de37d658fe2cc0bd274a698ec19f5a924718f Mon Sep 17 00:00:00 2001 From: Gregoriotecnico <118696506+Gregoriotecnico@users.noreply.github.com> Date: Sun, 29 Jan 2023 15:09:15 +0100 Subject: [PATCH 22/53] =?UTF-8?q?Actualizaci=C3=B3n=20de=20funci=C3=B3n=20?= =?UTF-8?q?endFlow()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/src/routes/docs/flows/index.mdx | 70 +++++++++++-------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 94b1f59..863f574 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -181,57 +181,65 @@ const flowString = addKeyword('hola') ## endFlow() -Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y -que el usuario pueda finalizar por él mismo el flujo. +Esta funcion se utliza para **finalizar un flujo con dos** o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y +que el usuario **pueda finalizar por él mismo el flujo**. Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones. ```js -const flowFormulario = addKeyword(['Hola']) +let nombre; +let apellidos; +let telefono; + +const flowFormulario = addKeyword(['Hola','⬅️ Volver al Inicio']) .addAnswer( - ['Hola!', 'Escriba su *Nombre* para generar su solicitud'], + ['Hola!','Para enviar el formulario necesito unos datos...' ,'Escriba su *Nombre*'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', // Aquí terminamos el flow si la condicion se comple + buttons:[{body:'⬅️ Volver al Inicio' }] // Y además, añadimos un botón por si necesitas derivarlo a otro flow + + + }) + nombre = ctx.body + return flowDynamic(`Encantado *${nombre}*, continuamos...`) } ) .addAnswer( ['También necesito tus dos apellidos'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', + buttons:[{body:'⬅️ Volver al Inicio' }] + + + }) + apellidos = ctx.body + return flowDynamic(`Perfecto *${nombre}*, por último...`) } ) .addAnswer( ['Dejeme su número de teléfono y le llamaré lo antes posible.'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', + buttons:[{body:'⬅️ Volver al Inicio' }] + }) + + + telefono = ctx.body + await delay(2000) + return flowDynamic(`Estupendo *${nombre}*! te dejo el resumen de tu formulario + \n- Nombre y apellidos: *${nombre} ${apellidos}* + \n- Telefono: *${telefono}*`) } ) + ``` --- From f7d90efc2f48dad8fed3cbd21b2578ad296c2bd6 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sun, 29 Jan 2023 18:33:32 +0100 Subject: [PATCH 23/53] chore(release): 0.1.19 --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b39939..d0bdbfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,36 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.1.19](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.18...v0.1.19) (2023-01-29) + + +### Features + +* :fire: bailey add media ([eab39e4](https://github.com/leifermendez/bot-whatsapp/commit/eab39e4ac06fd46f1a4671f8c15d1456b4400b97)) +* :zap: more feature ([e19c3a2](https://github.com/leifermendez/bot-whatsapp/commit/e19c3a25a40259c74b4add9635af4844907eed26)) +* **provider:** :rocket: fix issues in providers venom and wwebjs ([cbe438b](https://github.com/leifermendez/bot-whatsapp/commit/cbe438b77854e8df48b9dafaf7a837d21124ac5f)) +* **provider:** :rocket: fix provider ([0ad4c58](https://github.com/leifermendez/bot-whatsapp/commit/0ad4c58457b548dc41c0f9e8470d59c48de7b95a)) +* **provider:** :rocket: fix provider ([f8c7184](https://github.com/leifermendez/bot-whatsapp/commit/f8c7184487065443ab10f77aaf585e8bd63ca441)) +* **provider:** :rocket: fix provider ([b2afa45](https://github.com/leifermendez/bot-whatsapp/commit/b2afa45352a7ab1f5d9775f3c1fde475bd8ca204)) +* **provider:** :rocket: fix provider venom and wwebjs ([dcb0566](https://github.com/leifermendez/bot-whatsapp/commit/dcb0566d2bc3da40cd0c71554bb5ea0ec115d9ca)) +* **provider:** :rocket: implements all send media to venom provider ([9dd7c02](https://github.com/leifermendez/bot-whatsapp/commit/9dd7c02b6a5474aff063f7d6be0ca8519504b93c)) +* **provider:** :rocket: send file wwebjs ([6ff1a3a](https://github.com/leifermendez/bot-whatsapp/commit/6ff1a3a980196c01c66ed04ee07d0e7e57256504)) +* **provider:** :zap: bailey add send file video audio ([14d1a61](https://github.com/leifermendez/bot-whatsapp/commit/14d1a61fa259c09135c37c55bd79e97c9c8367e4)) +* **provider:** :zap: venom wweb ([fd2847a](https://github.com/leifermendez/bot-whatsapp/commit/fd2847aea0db17a0bdf33b5bca67a4cb8db2da16)) +* **provider:** :zap: venom wweb ([f95331d](https://github.com/leifermendez/bot-whatsapp/commit/f95331d3dc70e76a3dfbe4c8d24059f0e7a164ef)) +* **provider:** 🚀 implements all send media to venom provider ([bd7d150](https://github.com/leifermendez/bot-whatsapp/commit/bd7d150c047af41fdbb47f0a50a21e82cd79ee85)) + + +### Bug Fixes + +* **bot:** :fire: endFlow with ctx ([f6114af](https://github.com/leifermendez/bot-whatsapp/commit/f6114affadfbc324536a86167d1fdfe8da3c8de6)) +* **bot:** :fire: endFlow with ctx ([b655ae4](https://github.com/leifermendez/bot-whatsapp/commit/b655ae449e7958ea940d8cc3c678fd66f60b6385)) +* **bot:** :zap: endFlow butons ([87a4203](https://github.com/leifermendez/bot-whatsapp/commit/87a4203cd5b88f566387a76d586248e4265d6e4e)) +* **bot:** :zap: fix fallback refactor ([e22780d](https://github.com/leifermendez/bot-whatsapp/commit/e22780d3faba94f71a70f1f201a20690608fa5bf)) +* **cli:** :zap: endflow ([1c66f17](https://github.com/leifermendez/bot-whatsapp/commit/1c66f178a56d284bb8cb9df5ca17685c7e5d1ddd)) +* **cli:** :zap: refactor fallback in child flow ([b33e346](https://github.com/leifermendez/bot-whatsapp/commit/b33e34692d3abcb6874308a9be79f74be4a2c3a8)) +* **cli:** :zap: refactor fallback in child flow ([8da4b20](https://github.com/leifermendez/bot-whatsapp/commit/8da4b204b41125b5d0fa0aee4fa87c1f5faf5568)) + ### [0.1.18](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.17...v0.1.18) (2023-01-24) diff --git a/package.json b/package.json index 2ad9893..30e3cf4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/root", - "version": "0.1.18", + "version": "0.1.19", "description": "Bot de wahtsapp open source para MVP o pequeños negocios", "main": "app.js", "private": true, From 0a69b8d9b5180d40c373a9234eebdee966f6c4fb Mon Sep 17 00:00:00 2001 From: Jhonarias13 Date: Tue, 31 Jan 2023 09:35:02 -0500 Subject: [PATCH 24/53] corrige caption 'soy una imagen' en sendImage() wwebprovider --- packages/provider/src/web-whatsapp/index.js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 693d1b9..60a142d 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -163,13 +163,11 @@ class WebWhatsappProvider extends ProviderClass { * @param {*} text * @returns */ - sendImage = async (number, filePath) => { + sendImage = async (number, filePath, caption) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, { - caption: 'soy una imagen', - }) + return this.vendor.sendMessage(number, media, { caption }) } /** @@ -180,13 +178,11 @@ class WebWhatsappProvider extends ProviderClass { * @returns */ - sendAudio = async (number, filePath) => { + sendAudio = async (number, filePath, caption) => { const base64 = readFileSync(filePath, { encoding: 'base64' }) const mimeType = mime.lookup(filePath) const media = new MessageMedia(mimeType, base64) - return this.vendor.sendMessage(number, media, { - caption: 'soy un audio', - }) + return this.vendor.sendMessage(number, media, { caption }) } /** @@ -235,7 +231,7 @@ class WebWhatsappProvider extends ProviderClass { if (mimeType.includes('video')) return this.sendVideo(number, fileDownloaded) if (mimeType.includes('audio')) - return this.sendAudio(number, fileDownloaded) + return this.sendAudio(number, fileDownloaded, text) return this.sendFile(number, fileDownloaded) } From 0f8a33cc0ca33236da6c2b28d2d5859b22573409 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Wed, 1 Feb 2023 16:33:57 +0100 Subject: [PATCH 25/53] refactor(cli): :zap: flowDynamic --- __test__/05-case.test.js | 2 +- packages/bot/core/core.class.js | 40 ++++++++++++++--------------- packages/database/src/mock/index.js | 5 +++- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/__test__/05-case.test.js b/__test__/05-case.test.js index 6ca65d0..16b11f5 100644 --- a/__test__/05-case.test.js +++ b/__test__/05-case.test.js @@ -54,7 +54,7 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { async (ctx, { flowDynamic, fallBack }) => { if (ctx.body !== '18') { await delay(50) - return fallBack(false, 'Ups creo que no eres mayor de edad') + return fallBack('Ups creo que no eres mayor de edad') } return flowDynamic('Bien tu edad es correcta!') } diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 9b329cc..68fd4d5 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -118,19 +118,11 @@ class CoreClass { // 📄 Finalizar flujo const endFlow = async (message = null) => { - prevMsg = null endFlowFlag = true if (message) this.sendProviderAndSave(from, createCtxMessage(message)) clearQueue() - return - } - - // 📄 Continuar con el siguiente flujo - const continueFlow = async () => { - const cotinueMessage = - this.flowClass.find(refToContinue?.ref, true) || [] - sendFlow(cotinueMessage, from, { continue: true }) + sendFlow([]) return } @@ -138,10 +130,10 @@ class CoreClass { const sendFlow = async ( messageToSend, numberOrId, - options = { continue: false } + options = { prev: prevMsg } ) => { - if (!options.continue && prevMsg?.options?.capture) - await cbEveryCtx(prevMsg?.ref) + if (options.prev?.options?.capture) + await cbEveryCtx(options.prev?.ref) const queue = [] for (const ctxMessage of messageToSend) { @@ -160,9 +152,8 @@ class CoreClass { } // 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje - const fallBack = async (next = false, message = null) => { + const fallBack = async (message = null) => { QueuePrincipal.queue = [] - if (next) return continueFlow() return this.sendProviderAndSave(from, { ...prevMsg, answer: @@ -171,7 +162,7 @@ class CoreClass { : message?.body ?? prevMsg.answer, options: { ...prevMsg.options, - buttons: message?.buttons ?? prevMsg.options?.buttons, + buttons: prevMsg.options?.buttons, }, }) } @@ -185,12 +176,19 @@ class CoreClass { const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index) ) + const currentPrev = await this.databaseClass.getPrevByNumber(from) if (endFlowFlag) return for (const msg of parseListMsg) { await this.sendProviderAndSave(from, msg) } - return continueFlow() + + const nextFlow = await this.flowClass.find(refToContinue?.ref, true) + const filterNextFlow = nextFlow.filter( + (msg) => msg.refSerialize !== currentPrev?.refSerialize + ) + + return sendFlow(filterNextFlow, from, { prev: undefined }) } // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback @@ -206,7 +204,6 @@ class CoreClass { fallBack, flowDynamic, endFlow, - continueFlow, }) } @@ -246,10 +243,11 @@ class CoreClass { */ sendProviderAndSave = (numberOrId, ctxMessage) => { const { answer } = ctxMessage - return Promise.all([ - this.providerClass.sendMessage(numberOrId, answer, ctxMessage), - this.databaseClass.save({ ...ctxMessage, from: numberOrId }), - ]) + return this.providerClass + .sendMessage(numberOrId, answer, ctxMessage) + .then(() => + this.databaseClass.save({ ...ctxMessage, from: numberOrId }) + ) } /** diff --git a/packages/database/src/mock/index.js b/packages/database/src/mock/index.js index 4c07c03..2ab91a0 100644 --- a/packages/database/src/mock/index.js +++ b/packages/database/src/mock/index.js @@ -10,7 +10,10 @@ class MockDatabase { constructor() {} getPrevByNumber = (from) => { - const history = this.listHistory.slice().reverse() + const history = this.listHistory + .slice() + .reverse() + .filter((i) => !!i.keyword) return history.find((a) => a.from === from) } From ebd30ea1d78125d105d2785def8780a626305556 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Wed, 1 Feb 2023 16:34:24 +0100 Subject: [PATCH 26/53] refactor(cli): :zap: flowDynamic --- .prettierrc.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierrc.json b/.prettierrc.json index e74ed9f..f0db82f 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -2,5 +2,6 @@ "trailingComma": "es5", "tabWidth": 4, "semi": false, - "singleQuote": true + "singleQuote": true, + "printWidth": 120 } From c655c480095bfb54b10f3bc6f7be4daaa545b70f Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Wed, 1 Feb 2023 16:58:10 +0100 Subject: [PATCH 27/53] refactor(bot): :zap: working fallBack --- __test__/05-case.test.js | 38 +++++------------- packages/bot/core/core.class.js | 69 +++++++++++++-------------------- 2 files changed, 36 insertions(+), 71 deletions(-) diff --git a/__test__/05-case.test.js b/__test__/05-case.test.js index 16b11f5..f61d114 100644 --- a/__test__/05-case.test.js +++ b/__test__/05-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') /** * Falsear peticion async @@ -21,11 +16,7 @@ const fakeHTTP = async (fakeData = []) => { } test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { - const MOCK_VALUES = [ - '¿CUal es tu email?', - 'Continuamos....', - '¿Cual es tu edad?', - ] + const MOCK_VALUES = ['¿CUal es tu email?', 'Continuamos....', '¿Cual es tu edad?'] const provider = createProvider(PROVIDER_DB) const database = new MOCK_DB() @@ -39,26 +30,20 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { const validation = ctx.body.includes('@') if (validation) { - const getDataFromApi = await fakeHTTP([ - 'Gracias por tu email se ha validado de manera correcta', - ]) + const getDataFromApi = await fakeHTTP(['Gracias por tu email se ha validado de manera correcta']) return flowDynamic(getDataFromApi) } return fallBack(validation) } ) .addAnswer(MOCK_VALUES[1]) - .addAnswer( - MOCK_VALUES[2], - { capture: true }, - async (ctx, { flowDynamic, fallBack }) => { - if (ctx.body !== '18') { - await delay(50) - return fallBack('Ups creo que no eres mayor de edad') - } - return flowDynamic('Bien tu edad es correcta!') + .addAnswer(MOCK_VALUES[2], { capture: true }, async (ctx, { flowDynamic, fallBack }) => { + if (ctx.body !== '18') { + await delay(50) + return fallBack(false, 'Ups creo que no eres mayor de edad') } - ) + return flowDynamic('Bien tu edad es correcta!') + }) .addAnswer('Puedes pasar') createBot({ @@ -98,10 +83,7 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { assert.is('this is not email value', getHistory[1]) assert.is(MOCK_VALUES[0], getHistory[2]) assert.is('test@test.com', getHistory[3]) - assert.is( - '1 Gracias por tu email se ha validado de manera correcta', - getHistory[4] - ) + assert.is('1 Gracias por tu email se ha validado de manera correcta', getHistory[4]) assert.is(MOCK_VALUES[1], getHistory[5]) assert.is(MOCK_VALUES[2], getHistory[6]) assert.is('20', getHistory[7]) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 68fd4d5..fae0ba4 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -43,8 +43,7 @@ class CoreClass { }, { event: 'require_action', - func: ({ instructions, title = '⚡⚡ ACCIÓN REQUERIDA ⚡⚡' }) => - printer(instructions, title), + func: ({ instructions, title = '⚡⚡ ACCIÓN REQUERIDA ⚡⚡' }) => printer(instructions, title), }, { event: 'ready', @@ -52,8 +51,7 @@ class CoreClass { }, { event: 'auth_failure', - func: ({ instructions }) => - printer(instructions, '⚡⚡ ERROR AUTH ⚡⚡'), + func: ({ instructions }) => printer(instructions, '⚡⚡ ERROR AUTH ⚡⚡'), }, { @@ -78,9 +76,7 @@ class CoreClass { if (!body.length) return let prevMsg = await this.databaseClass.getPrevByNumber(from) - const refToContinue = this.flowClass.findBySerialize( - prevMsg?.refSerialize - ) + const refToContinue = this.flowClass.findBySerialize(prevMsg?.refSerialize) if (prevMsg?.ref) { const ctxByNumber = toCtx({ @@ -93,10 +89,7 @@ class CoreClass { // 📄 Crar CTX de mensaje (uso private) const createCtxMessage = (payload = {}, index = 0) => { - const body = - typeof payload === 'string' - ? payload - : payload?.body ?? payload?.answer + const body = typeof payload === 'string' ? payload : payload?.body ?? payload?.answer const media = payload?.media ?? null const buttons = payload?.buttons ?? [] const capture = payload?.capture ?? false @@ -119,21 +112,15 @@ class CoreClass { // 📄 Finalizar flujo const endFlow = async (message = null) => { endFlowFlag = true - if (message) - this.sendProviderAndSave(from, createCtxMessage(message)) + if (message) this.sendProviderAndSave(from, createCtxMessage(message)) clearQueue() sendFlow([]) return } // 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx - const sendFlow = async ( - messageToSend, - numberOrId, - options = { prev: prevMsg } - ) => { - if (options.prev?.options?.capture) - await cbEveryCtx(options.prev?.ref) + const sendFlow = async (messageToSend, numberOrId, options = { prev: prevMsg }) => { + if (options.prev?.options?.capture) await cbEveryCtx(options.prev?.ref) const queue = [] for (const ctxMessage of messageToSend) { @@ -142,9 +129,7 @@ class CoreClass { if (delayMs) await delay(delayMs) QueuePrincipal.enqueue(() => Promise.all([ - this.sendProviderAndSave(numberOrId, ctxMessage).then( - () => resolveCbEveryCtx(ctxMessage) - ), + this.sendProviderAndSave(numberOrId, ctxMessage).then(() => resolveCbEveryCtx(ctxMessage)), ]) ) } @@ -152,19 +137,26 @@ class CoreClass { } // 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje - const fallBack = async (message = null) => { + const fallBack = async (validation = false, message = null) => { QueuePrincipal.queue = [] - return this.sendProviderAndSave(from, { + + if (validation) { + const currentPrev = await this.databaseClass.getPrevByNumber(from) + const nextFlow = await this.flowClass.find(refToContinue?.ref, true) + const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) + + return sendFlow(filterNextFlow, from, { prev: undefined }) + } + + await this.sendProviderAndSave(from, { ...prevMsg, - answer: - typeof message === 'string' - ? message - : message?.body ?? prevMsg.answer, + answer: typeof message === 'string' ? message : message?.body ?? prevMsg.answer, options: { ...prevMsg.options, buttons: prevMsg.options?.buttons, }, }) + return } // 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes @@ -173,9 +165,7 @@ class CoreClass { const flowDynamic = async (listMsg = []) => { if (!Array.isArray(listMsg)) listMsg = [listMsg] - const parseListMsg = listMsg.map((opt, index) => - createCtxMessage(opt, index) - ) + const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index)) const currentPrev = await this.databaseClass.getPrevByNumber(from) if (endFlowFlag) return @@ -184,17 +174,14 @@ class CoreClass { } const nextFlow = await this.flowClass.find(refToContinue?.ref, true) - const filterNextFlow = nextFlow.filter( - (msg) => msg.refSerialize !== currentPrev?.refSerialize - ) + const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) return sendFlow(filterNextFlow, from, { prev: undefined }) } // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback const resolveCbEveryCtx = async (ctxMessage) => { - if (!ctxMessage?.options?.capture) - return await cbEveryCtx(ctxMessage?.ref) + if (!ctxMessage?.options?.capture) return await cbEveryCtx(ctxMessage?.ref) } // 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo @@ -245,9 +232,7 @@ class CoreClass { const { answer } = ctxMessage return this.providerClass .sendMessage(numberOrId, answer, ctxMessage) - .then(() => - this.databaseClass.save({ ...ctxMessage, from: numberOrId }) - ) + .then(() => this.databaseClass.save({ ...ctxMessage, from: numberOrId })) } /** @@ -277,9 +262,7 @@ class CoreClass { for (const ctxMessage of messageToSend) { const delayMs = ctxMessage?.options?.delay || 0 if (delayMs) await delay(delayMs) - QueuePrincipal.enqueue(() => - this.sendProviderAndSave(numberOrId, ctxMessage) - ) + QueuePrincipal.enqueue(() => this.sendProviderAndSave(numberOrId, ctxMessage)) } return Promise.all(queue) } From 331d2a309c3377342c8e7d9519c19e9456a4f78c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 Feb 2023 09:10:57 +0000 Subject: [PATCH 28/53] docs(contributor): contrib-readme-action has updated readme --- README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 777209f..ce15a85 100644 --- a/README.md +++ b/README.md @@ -112,14 +112,35 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación. Null + + + devrlbusiness +
+ Developer RL Business +
+ + + + + Gregoriotecnico +
+ Null +
+ jlferrete
Jose Luis Ferrete Olarte
- - + + + + lisandroprada +
+ Null +
+ 6rak0 @@ -140,7 +161,8 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación.
Rodrigo Mendoza Cabrera
- + + yond1994 From 811618b256975220dae402a9a69020d9f788e122 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 10:12:45 +0100 Subject: [PATCH 29/53] docs: :sparkles: digitalocean sponsor --- .../docs/src/assets/images/digital-ocean.png | Bin 0 -> 9212 bytes .../src/components/atoms/DigitalOcean.tsx | 213 ++++++++++++++++++ .../src/components/widgets/SponsorBar.tsx | 17 +- 3 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 packages/docs/src/assets/images/digital-ocean.png create mode 100644 packages/docs/src/components/atoms/DigitalOcean.tsx diff --git a/packages/docs/src/assets/images/digital-ocean.png b/packages/docs/src/assets/images/digital-ocean.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0163b02358556eca5f264990a0c67f534289b7 GIT binary patch literal 9212 zcmXv!WmFqo)4@Z5;$AGc7HF~J?k+)sTX6_bDDF;y;OpN$a|4I$61S zm_jW9;ucP3meleNrq-4kmZlb8U4|`%007z?c`0!%&!t1dqp$n?_=Go$FQYon*>5HM9?FKQQ8ObjUHKgbsT z9t$u;)LAR+^$#!iC$;XX6ZPqtIl(o+0=``9S{sQW3AhCHA2>l95UL^dHU8enf| zKPkU>&$H2u7yzKwMFkRqCHT%u_r&r!b{c5qJ4A{C<2aLS&80rFY>E1U?t{JYzu?fm zS_BXz&8WQs6qVchWLrz0^Qc6!#*Kq2!tb+cvQ2&vH!mrAi*`3b{q{dn!mo0(h zz7e~+z}$h{S-v%qZMuUUlS3p-E_Ms^%@H|AGKuF(I3fu7m0Ya$JaYE-bWH%?sDQ&X z4P@|pV{iBL47XWYqKsgHbwG~y%fZ>{3Az0;;w!cCrYuGzAtQrv_>1=mb?Zn^BJ%pd zsfxkBSfrTPlnHxQQ5_oOh zNAVwPGKml3$CW39_y~uo$MB7l31K~tF&&-HVzGzOo}#PR|EgYwZ3g&c1j?w1-lBtw zXK)L!4DQHPZ_cWme@TrOB9j+?r0H?}#B<#>_;BvcKswYbS}M@ry*9jeI^8IeZ@hab zB&&Z}nq6^Ikzx*tz6^{M8!4b@J^pr1V!cE<($vLtfJ0f~+*aGk7;|z6hmpQb28c}~ zD{j{<)myphHsV4|{V2B^M3^cF`|_1_^alQx;b2kXyy!wF>K=t~@2w}M&_4E+4^&)_ zY0?FecUgz-jeY2o3>`{lcbqyI#c$z=KpqgZiAy`FA(ed2UwE$yLnacIjo+NT(SQX{ z28k$)ntlIRa`^XGg-ZsGq+bxP8l7VIhx2TfSOM{K$`2U8cvip=96MYgNOj#KzEXqD z`~=Oc!A&i_dS=s^wUN8r0DzfH7bH*VF4N(ZG)^q1yuBrPPUF;Jq=A3 zwmDm-N+Kc65~-(C%`ej3J}L2)LiJb7ooZUXm*r(~cs=to|7O5F{5$5GiX(NHesA@_ z;!VbLYGQy%0ytijFDp2T`tAN3D5g4-dFGvO={l~bFs-E-%EYt?WO%~&8;wGQ-tg0w zLz{1;`bd*COj4>sPVYL$iEz!|Y_F8nH}uArE-|$*YwAKc=^TsYp1$3^F;yn3`69P> zF9TiG(3uxiOLZ@Y*nz`q+;>-C3)NksZQ@wd_e3e zJaoi;6M8eU-Z*9O6wRJt9Z~4!(&PP<5!7t36GVvkv_@G8I2{0c`iF$4ejc4^?o<)bL zdamr`E5gkhKpx4LCScqd7B%>aE0%ECvfuLS)K3E65|r%`aG50k1P#|4WNKcz=!P!l zXFp!P`5$@Mi~^LA1x+QwSbC~bq+IW;EsC50)Yn-hJJ7=4aTr12=CI$ycKvqqgy&VuR|u`OiwS@WOuUK@v!i5)IPF^O{WYY0zM%%aOqNmdAVS82iFptlv)uJ;U8gw z1@D+AhCoWB|5&E#M#sVh6w!!sy;FHn=GnOE9OO9N^m<%m`Ng=Zq-#HK%?Q$rnPtXE z)P_fefS$7WV!J%Bmp~@(HF;u^fu*-1REcr^T~y$Ce(zmLE7Q#n0Khw3ws_Wfwg#D< zIk=|ZJe_XEfZcuR%jO$Y|0bOh>yX384EZn<%VxCluxgBCBv^oZulYX6E}#NuOW6vN zh1#Br*4*oj0(isOAPt1>1EIu- zxPpK5#|AL0@8nJiilUa(@;sHVugbII8W$cLJ&E;d~$})|L*iN`LFq?E)>W$|y(r&z{ zpD&xg5zK8rK{?U7>Z-Ux2D5ca7f*-p@F*e4yLGN~t3yk7Zlq^j5x;nG_DHk$sEzc{ zUXl(fWfJ7hS6g7Zqag%f?h|d;Ma%UYReRQKx}j7@pzu|JgnJ0_-N%-S+-kMUR^vqQ z4SK#lfwkm5O)`LGPk#RE$;)W5XePRX8b{hW>iJ#Y*WYwPz1WP0n#zm^P`3Bev(j|N zHbB^_tFB*^La;yP?>R2sMb4_D({$DRa~UIdeO25f)&!mJvc zYE%XF@EKOcIqPqk6OnxhoS^}KMc8wCGmo5ZXJq?r(ZHtGBkH8xsl~VlPk3Fir+w0A zyaB>=SH)ktsDhXBFmNvFLeWeH0T0nC{OfOv{*@UOiU0t-QFGmBwzhK~lu}>&Qe6^a z=f8?5@Mn|1@e9>A)fi6-iP_j2itL#Arf-?kevwsw0k|hS?qWn8-6|J#=^+2j)fY<( zUzC0T;2KC2r)|Ss>-!!&a}@U;Pa$K_BZk~wdc7=#3IKQltw1J9rxVzUO0fZeEo4QU zuo{`+Am`s6l|sF(1<+X1Z`w!zu^9u%ymxu%5uw5sAb?WKtTtoprQVV4ZBbJ}6xg>} zsn{r+f|>~9RqWP`TKh)8YlKrPRV%g9+mhe(>)kAEgM2+=ia+8Iicr#T1VBK*-6G;^ zn5~FhN%~$6W<7K=SaCX0cflY>)bW~eF#Rp(C!p(0dmEpD0IeiFeo*qdyL8dfQzMPY37Tv)D{t^j}n(X_mL9y0FRAwU3o z5dBJjwJ=q~c*<8BzG1S_=hxVJs5dEl_c-|G4WJ5_?Zzl>FItZa9XtD=VC>Wk0iYIA z^hxGie3ccz8Sp5iTY2)5)^5L@&xYip=bYJ*Y)$uq*89I;cV%7n+eR)w9k_t=pJh-D z0j=x=8ED~uOBr;!F~a=xq^Vv6x_#!q-ie&O{r^2~(Wf1grOJ6mIq`R_uC952<&gg( z=XIdJr5}}`4{tp(2HWdTr%RcC-+?UV8sDbNGo4a|@2~~s#pU*vc%z??Q7`d^I3%}@ zFAU1&dvuWSNcSXcR+`V)G0{6C6hQ*ZL=={s3vNtSnB;9yPZxh2-|2F+yrW5&x&G6W zeUaq(H_IaGwwayvn*(HMDcP4|&1Z~In{eG1ioIDwKkw9df`$4`ZWh8ZCChV6&|j2U z8uc>`;3ZQF$)@b+QP@!u@D=dX5Nx(Q!mZ-oB;+KfBoMDQ5>)g%=wrqLtkqL2Lb_88BS&i+2F$OAMVW&kf5H@gRJW-;%ir zr8#QN=$eD3ih4XQ>gg=Xbg{fE`<;j})Mt5$)yT*H`5i$u+9&1O6;fjhbVm)2p1%mC zI7SQ?QCS)1MNa6Z%#1MMm|rS5tgEUgFr0RM96G53%}K zK|u8uNCY|DU-yNZD?5)UVn zfgfp)*sli#c;S51Gdjtrqtep2p8K$1r{CS@A`b5Nb#X-o>4Ex zuy8qm7mtmY5r`CFpr@jUR@qfO(AycWQt+lmQ=>jOgO?`G!a+VNE0IfOq|d!j0=i-4 z-GUC=p;{H?TIdZr6Op_X%e+6#9HdmSgH>SR%lpuV?$Lk!x63m$$E0H0PR2GFD7Fkt zagYK^X`wdBkCEM~jm!{-38^r7fqMgDHqAGastyXU=Fb-k$2v~m=V9{?FUiyH7eCkc zHklj@&C0<{4gWM!mu})V!Q(_hK7sE!2gxS9s19TeRZm%*o zX5)r9T&j$jHf3yXSSz1##7+9Al#k`M^JDps^7J#tp@%XtZ2C4P+h313^=zO1kd1U{ zPi0mEiIVuSnuPtRo$gvheY${QyZJDa$a@DC={VyUYethSOgdT0+GQFshY@|kX{l)80g(vpADYBmOlM%53w{DGZg%@r5LqTWc>LtN( zx9XL{I)k4D3NRaocS)8}3F_b?}Cj+AY-_hBZI(>7FR6s+bfF? zR`;c3N0;uMTxpJp@0ST0Kl{<;6t;0|&XX5--e&z4Y8ghfV_8nmv}K^tZBkwO8I0l< zYH?P$sTc%L|0vRRr3$emM15Z{D$IRD0vsT4AsslAEvil9X%Utgg5cog7zXmVL=G z;pq%Q4ESQ&JL8J*=i}1U?9E&ruAGivE(xObz*h3&vOe+M?+jKJ5gMQ7e^NOZB{`g) z1m0R@7Bco|UEG512KeSmsvP!y)r_8>RvuD?w7-846=HsGV3|x=%=lYoEVo>M9j10s zG{OwK3Pwl;dJ>F^tNZ+#wQVSMR-Zpgf~4#2=)9g?Gc$#=^bTD{+g!}$Sm$YdN?isZ z@V~n&mfYD(i0V&ay&AGDM!opOxnRR`fmY=kR-lfc=`w4OX7-MP5Ga1qlvcLqh!yhF z7rwRql|!6HH#6lDvzUS}7(kp8zSDFAcfbubt^GSCbPYXXolkC&IkcnA#R`MV0tQ=uFE0`IOa z3)6TRX7=C%b-cNPfMkPC1$*$<6Mh6Gz2a!}Yfss-;_iCAzcw+N_^1~X=e3`#s-^1y zzte%DXG9L!=LsEgt4h=(E#gZm>~X4KlSb7#Y*Gbcclp3}hQ7AS!%m;l?O-moZxR0- ziqX>J#)ZR*Zr|}CAFQQZ#d+!Dw;F14mAbh*el}4d+&P#MW>2FCzT~0-CPm-nD;n7! ztW1gt?hOUcinMUfF&WM%p9@=F9?4a|<856Q3>s4{0^R7}&%H+((6S^XA3or*5C&?J z_JzOU=1?K1OjV359X+LB+qGxohXk0dgwu1Ad}u3$#Z~fbg`3v*MTnGIwQkAaL@=vU z3h^Gb7AdPD_Y6!YR4MF+zfTOR7>`rlAZj=z62*0&3=WkxOU9%k{pHPz0Jo(Yc$KjH-I`fc%>p+{ zOO3Q+aipeaPEZ7i1e%v|{i^|L-J{^ApZatuN1$Win(thNot&m~s#N{;R76PBYB;wV zp8IBPw4oaJ!pRRj7fN)wH11t(^Kdhy&z8}B=t{F6iSg-SxvKS!Jgz0*$w|=23o!2r zSPmCl+cF_j_T&Mf5S|cV*%=TbP}`$gco=Z^qKD)kotXx z;`Ovga%rg4@53g`=uf6sAxBPJ7klgsRIo8F7im^>ODB z&P?E|{48&A*|kUT=+cJ@0a50QWsibed z<=Vb-^314b>E&6cXT#Dl<(`ph7SH+H%u~Z<19sY;K0fj5bvR2->9ETYn)IgN6z5+K zT$XP&O^q+arYhUNCUQs4^NFIrG^arWX)Sp`%d+}c!=O=8Wq{-xL_nQFMIcp~4mG<|hwfLCC| z(QB$oP7y&q!rKV?g};2P6RVy{4z=|^G_Y_32yO+EZ-M6~95fY%0E|2n?0@6X1Gnes z<+>@l4VQ=7dzgDXSx=K2`Se`O#p1mM*DIQ)$fX?I+*kVE5IftAwVvHtJjKcvvbF89 z+k7adpd#s;+Zz-dA_VFfpfU07ZV|CeE27eiz9sPV-`iEI9(%|<)$BWzj#|5ZHz&uo zpU9l0kJ>Usa!3L>8l+1F|)K5@vw)+#Wqu!WPaQjFGT~~05LJ&VUa*^y}$~GS?ipFN= zVX_0^t_+w@p$y~IFWYvgl4_}zRyNcuAJ=^sY7nP1G#ZTkWK2FtmL z@GQg~D=$~^Y}*qD?yap{UG~OjFYU)MLF{u`iHGT8VGf1uH?$E%*Y8?nQug#06BirL zCshtc>ZM5{16MmbZQ(ye1tf*r>)(4X>Ra2pH$_Aul3 zL5+NG7|^L+lU}Y}4q;^Pu-i(rP{sbmx=U%%FS*#H=4{i+Fle=#bADTLEUepl{}ZvU z9p0ctN2eYB_buH=GcSWOpKmMpT`v-3vO7g(_FRMbvnn6_(^FO^7==tLm7_u&<(lD% zzMrEko@QX+xB$%%M@&I5Q4N;RV)xMcwK*BfJ-8 zEXLRo5lC4^I>AE4^w6%pNnusru33Yz6nkj{eRqLsP zrnlr*il?5=<%o{7O3V1E% z?Y*i|eUQVm=346FHI)cm9ILaI9 z;YSDs?e5n^jGcJG@O0`cY+#D!t9V+Q@O-0S_DHXk%u;4&6zJ?y1#*vr|03Ne2l^71 zeq=#cV$}grY@;x~(M~el1CtB{+o9yAdDuf;A{^=8>55-5YC1-ML*=S(bwV9g=%>^2 zC1aRU9_G9eP=?#gK%NhHXZFg&(OrYQ4|lqDORl(m787CM#m;6G2XDy3pDIfne7Fpuztmxw}rm}7>tE9R|Ai>bUFr2^JHRvxmV~(93_1a{5iIoDdFJs#Hv4bJ7%JCSt7%>;I{TB4>fL zXtf{RCetGE2_1x)KT4Xk+OYMemXn1z!%^BrDKxj%JQPr|x_xrNfbPEl^T3eu?n*?tP7?#c1a3>xk+r3F zA*&uSIvas?<|$9vxQN~gkCX)HHgxiCDJ$t|R2-KoJCEc9@i8`7R*#A4%e>1CkB`(P z&WZYU9z5a7)aK3sqlP#gZ?>G6crCAiX%?HK=sq%1sV)W8R~;#H z`0aOq^;R3=Bd1qPk=lN;+JNbn3Hd)OnrRNA90A{(`eCv$XL|(aq$l@_pN_W~M6;8Y z%`cF3e1;~^#8ish6*>xa5p;Jt6A>c;0FzwQL!IsMT!_?QYB1OBi7M)`Qlvj{68E*D zNUiJJ`_%6w4&i7evmVk$%;B|Q{d4i@CY$>zs1kSJwf+kL>a1}}c2!2xgQpQ+!*;y_ zxk}lN*Osy=p$%4@685jaOJghQXx zZdKsY$S8`B#4gWm_o@kiUJR3Hh;XvlWzvTfJqz;RtO0yqsD-8-wH49qT{JnLbUhJ2 z$s*{G86$jM zr;IPjr>HfUA!|V{=pUR=V4&?Z_hKf!ox3D|tNqISl>x{m7Kq;@9x4 ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +) diff --git a/packages/docs/src/components/widgets/SponsorBar.tsx b/packages/docs/src/components/widgets/SponsorBar.tsx index c0d8183..f355691 100644 --- a/packages/docs/src/components/widgets/SponsorBar.tsx +++ b/packages/docs/src/components/widgets/SponsorBar.tsx @@ -7,6 +7,8 @@ import { src as qwik } from '~/assets/images/qwik.png?width=100&metadata' import { src as leanga } from '~/assets/images/leanga.png?width=40&metadata' // @ts-ignore import { src as netlify } from '~/assets/images/full-logo-light.png?width=100&metadata' +// @ts-ignore +import { src as digitalOcean } from '~/assets/images/digital-ocean.png?width=100&metadata' /** * options = [] array con la lista de opciones de la documentacion @@ -41,7 +43,20 @@ export default component$(() => { Qwind Hero Image (Cool dog) + + + +
  • + + + DigitalOcean From 88c05c12a4b79368307bc8733c7b95dc7bf3a9e8 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 10:24:48 +0100 Subject: [PATCH 30/53] docs: :sparkles: digitalocean sponsor --- .prettierrc.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierrc.json b/.prettierrc.json index e74ed9f..f0db82f 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -2,5 +2,6 @@ "trailingComma": "es5", "tabWidth": 4, "semi": false, - "singleQuote": true + "singleQuote": true, + "printWidth": 120 } From 74fb3b864d25a3cd4bafffe95f5122b504a6443e Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 10:39:17 +0100 Subject: [PATCH 31/53] docs: :sparkles: digitalocean sponsor --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index ce15a85..af4b124 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # Chatbot Library ![](https://img.shields.io/npm/v/@bot-whatsapp/bot?color=%2300c200&label=%40bot-whatsapp) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) -[![BotWhatsapp Releases(Prod)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml/badge.svg)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml) - +[![](https://img.shields.io/discord/915193197645402142?logo=discord)](https://link.codigoencasa.com/DISCORD)

    From 96c2bffd093269be8e39474a84c156938504a6cb Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 13:37:21 +0100 Subject: [PATCH 32/53] fix(provider): :zap: baily wa.link --- packages/bot/package.json | 2 +- packages/provider/src/baileys/index.js | 53 +++++++------------------- 2 files changed, 15 insertions(+), 40 deletions(-) diff --git a/packages/bot/package.json b/packages/bot/package.json index 3d4acf3..563cd74 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.91-alpha.0", + "version": "0.0.96-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 9361731..7a5de23 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -7,18 +7,9 @@ const { join } = require('path') const { createWriteStream, readFileSync } = require('fs') const { Console } = require('console') -const { - default: makeWASocket, - useMultiFileAuthState, - Browsers, - DisconnectReason, -} = require('@adiwajshing/baileys') +const { default: makeWASocket, useMultiFileAuthState, Browsers, DisconnectReason } = require('@adiwajshing/baileys') -const { - baileyGenerateImage, - baileyCleanNumber, - baileyIsValidNumber, -} = require('./utils') +const { baileyGenerateImage, baileyCleanNumber, baileyIsValidNumber } = require('./utils') const { generalDownload } = require('../../common/download') @@ -46,9 +37,7 @@ class BaileysProvider extends ProviderClass { */ initBailey = async () => { const NAME_DIR_SESSION = `${this.globalVendorArgs.name}_sessions` - const { state, saveCreds } = await useMultiFileAuthState( - NAME_DIR_SESSION - ) + const { state, saveCreds } = await useMultiFileAuthState(NAME_DIR_SESSION) this.saveCredsGlobal = saveCreds try { @@ -57,7 +46,7 @@ class BaileysProvider extends ProviderClass { auth: state, browser: Browsers.macOS('Desktop'), syncFullHistory: false, - logger: pino({ level: 'error' }), + logger: pino({ level: 'fatal' }), }) sock.ev.on('connection.update', async (update) => { @@ -96,10 +85,7 @@ class BaileysProvider extends ProviderClass { `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`, ], }) - await baileyGenerateImage( - qr, - `${this.globalVendorArgs.name}.qr.png` - ) + await baileyGenerateImage(qr, `${this.globalVendorArgs.name}.qr.png`) } }) @@ -131,9 +117,10 @@ class BaileysProvider extends ProviderClass { const [messageCtx] = messages let payload = { ...messageCtx, - body: messageCtx?.message?.conversation, + body: messageCtx?.message?.extendedTextMessage?.text ?? messageCtx?.message?.conversation, from: messageCtx?.key?.remoteJid, } + if (payload.from === 'status@broadcast') return if (payload?.key?.fromMe) return @@ -142,9 +129,7 @@ class BaileysProvider extends ProviderClass { return } - const btnCtx = - payload?.message?.buttonsResponseMessage - ?.selectedDisplayText + const btnCtx = payload?.message?.buttonsResponseMessage?.selectedDisplayText if (btnCtx) payload.body = btnCtx @@ -174,12 +159,9 @@ class BaileysProvider extends ProviderClass { const fileDownloaded = await generalDownload(imageUrl) const mimeType = mime.lookup(fileDownloaded) - if (mimeType.includes('image')) - return this.sendImage(number, fileDownloaded, text) - if (mimeType.includes('video')) - return this.sendVideo(number, fileDownloaded, text) - if (mimeType.includes('audio')) - return this.sendAudio(number, fileDownloaded, text) + if (mimeType.includes('image')) return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) return this.sendVideo(number, fileDownloaded, text) + if (mimeType.includes('audio')) return this.sendAudio(number, fileDownloaded, text) return this.sendFile(number, fileDownloaded) } @@ -294,10 +276,8 @@ class BaileysProvider extends ProviderClass { sendMessage = async (numberIn, message, { options }) => { const number = baileyCleanNumber(numberIn) - if (options?.buttons?.length) - return this.sendButtons(number, message, options.buttons) - if (options?.media) - return this.sendMedia(number, options.media, message) + if (options?.buttons?.length) return this.sendButtons(number, message, options.buttons) + if (options?.media) return this.sendMedia(number, options.media, message) return this.sendText(number, message) } @@ -332,12 +312,7 @@ class BaileysProvider extends ProviderClass { * @example await sendContact("xxxxxxxxxxx@c.us" || "xxxxxxxxxxxxxxxxxx@g.us", "+xxxxxxxxxxx", "Robin Smith", messages) */ - sendContact = async ( - remoteJid, - contactNumber, - displayName, - messages = null - ) => { + sendContact = async (remoteJid, contactNumber, displayName, messages = null) => { const cleanContactNumber = contactNumber.replaceAll(' ', '') const waid = cleanContactNumber.replace('+', '') From 23e09efaeccaf51018c55da492edff45b625f0a9 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 15:46:07 +0100 Subject: [PATCH 33/53] fix(cli): :zap: working flowDynamic test --- .vscode/extensions.json | 2 +- __test__/07-case.test.js | 92 +++++++++++++++++++++ packages/bot/core/core.class.js | 2 +- packages/provider/src/web-whatsapp/index.js | 32 +++---- 4 files changed, 104 insertions(+), 24 deletions(-) create mode 100644 __test__/07-case.test.js diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0d0e52b..1ace260 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["xyc.vscode-mdx-preview"] + "recommendations": ["xyc.vscode-mdx-preview", "vivaxy.vscode-conventional-commits", "mhutchie.git-graph"] } diff --git a/__test__/07-case.test.js b/__test__/07-case.test.js new file mode 100644 index 0000000..6eb8e42 --- /dev/null +++ b/__test__/07-case.test.js @@ -0,0 +1,92 @@ +const { test } = require('uvu') +const assert = require('uvu/assert') +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_DB = require('../packages/provider/src/mock') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') + +/** + * Falsear peticion async + * @param {*} fakeData + * @returns + */ +const fakeHTTP = async (fakeData = []) => { + await delay(5) + const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) + return Promise.resolve(data) +} + +let STATE_APP = {} + +test(`[Caso - 07] Retornar estado`, async () => { + const MOCK_VALUES = ['¿Cual es tu nombre?', '¿Cual es tu edad?', 'Tu datos son:'] + const provider = createProvider(PROVIDER_DB) + const database = new MOCK_DB() + + const flujoPrincipal = addKeyword(['hola']) + .addAnswer( + MOCK_VALUES[0], + { + capture: true, + }, + async (ctx, { flowDynamic, fallBack }) => { + STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], name: ctx.body } + + flowDynamic('Gracias por tu nombre!') + } + ) + .addAnswer( + MOCK_VALUES[1], + { + capture: true, + }, + async (ctx, { flowDynamic, endFlow }) => { + STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], age: ctx.body } + + await flowDynamic('Gracias por tu edad!') + } + ) + .addAnswer(MOCK_VALUES[2], null, async (ctx, { flowDynamic }) => { + flowDynamic(`Nombre: ${STATE_APP[ctx.from].name} Edad: ${STATE_APP[ctx.from].age}`) + }) + .addAnswer('🤖🤖 Gracias por tu participacion') + + createBot({ + database, + flow: createFlow([flujoPrincipal]), + provider, + }) + + provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + provider.delaySendMessage(20, 'message', { + from: '000', + body: 'Leifer', + }) + + provider.delaySendMessage(40, 'message', { + from: '000', + body: '90', + }) + + await delay(1200) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is(MOCK_VALUES[0], getHistory[0]) + assert.is('Leifer', getHistory[1]) + assert.is('Gracias por tu nombre!', getHistory[2]) + assert.is('¿Cual es tu edad?', getHistory[3]) + assert.is('90', getHistory[4]) + assert.is('Gracias por tu edad!', getHistory[5]) + assert.is('Tu datos son:', getHistory[6]) + assert.is('Nombre: Leifer Edad: 90', getHistory[7]) + assert.is('🤖🤖 Gracias por tu participacion', getHistory[8]) + assert.is(undefined, getHistory[9]) +}) + +test.run() + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index fae0ba4..1c15932 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -175,7 +175,7 @@ class CoreClass { const nextFlow = await this.flowClass.find(refToContinue?.ref, true) const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) - + console.log(`🚩🚩🚩`, filterNextFlow?.answer) return sendFlow(filterNextFlow, from, { prev: undefined }) } diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 693d1b9..0e763c6 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -2,11 +2,7 @@ const { Client, LocalAuth, MessageMedia, Buttons } = require('whatsapp-web.js') const { ProviderClass } = require('@bot-whatsapp/bot') const { Console } = require('console') const { createWriteStream, readFileSync } = require('fs') -const { - wwebCleanNumber, - wwebGenerateImage, - wwebIsValidNumber, -} = require('./utils') +const { wwebCleanNumber, wwebGenerateImage, wwebIsValidNumber } = require('./utils') const logger = new Console({ stdout: createWriteStream('./log'), @@ -32,11 +28,7 @@ class WebWhatsappProvider extends ProviderClass { }), puppeteer: { headless: true, - args: [ - '--no-sandbox', - '--disable-setuid-sandbox', - '--unhandled-rejections=strict', - ], + args: ['--no-sandbox', '--disable-setuid-sandbox', '--unhandled-rejections=strict'], //executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', }, }) @@ -80,10 +72,7 @@ class WebWhatsappProvider extends ProviderClass { `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`, ], }) - await wwebGenerateImage( - qr, - `${this.globalVendorArgs.name}.qr.png` - ) + await wwebGenerateImage(qr, `${this.globalVendorArgs.name}.qr.png`) }, }, { @@ -116,6 +105,9 @@ class WebWhatsappProvider extends ProviderClass { * @returns */ sendButtons = async (number, message, buttons = []) => { + console.log(`🚩 ¿No te funciona los botones? Intenta instalar`) + console.log(`npm i github:pedroslopez/whatsapp-web.js#fix-buttons-list`) + const buttonMessage = new Buttons(message, buttons, '', '') return this.vendor.sendMessage(number, buttonMessage) } @@ -230,12 +222,9 @@ class WebWhatsappProvider extends ProviderClass { const fileDownloaded = await generalDownload(mediaUrl) const mimeType = mime.lookup(fileDownloaded) - if (mimeType.includes('image')) - return this.sendImage(number, fileDownloaded, text) - if (mimeType.includes('video')) - return this.sendVideo(number, fileDownloaded) - if (mimeType.includes('audio')) - return this.sendAudio(number, fileDownloaded) + if (mimeType.includes('image')) return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) return this.sendVideo(number, fileDownloaded) + if (mimeType.includes('audio')) return this.sendAudio(number, fileDownloaded) return this.sendFile(number, fileDownloaded) } @@ -249,8 +238,7 @@ class WebWhatsappProvider extends ProviderClass { */ sendMessage = async (userId, message, { options }) => { const number = wwebCleanNumber(userId) - if (options?.buttons?.length) - return this.sendButtons(number, message, options.buttons) + if (options?.buttons?.length) return this.sendButtons(number, message, options.buttons) if (options?.media) return this.sendMedia(number, options.media) return this.sendText(number, message) } From f76932021ce968d93241b55cfcdb8ae0e0e6c934 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 3 Feb 2023 18:17:46 +0100 Subject: [PATCH 34/53] fix(cli): :zap: working flowDynamic test --- __test__/07-case.test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/__test__/07-case.test.js b/__test__/07-case.test.js index 6eb8e42..024fc60 100644 --- a/__test__/07-case.test.js +++ b/__test__/07-case.test.js @@ -82,7 +82,8 @@ test(`[Caso - 07] Retornar estado`, async () => { assert.is('Tu datos son:', getHistory[6]) assert.is('Nombre: Leifer Edad: 90', getHistory[7]) assert.is('🤖🤖 Gracias por tu participacion', getHistory[8]) - assert.is(undefined, getHistory[9]) + assert.is('🤖🤖 Gracias por tu participacion', getHistory[9]) + assert.is(undefined, getHistory[10]) }) test.run() From aef52d2694fa6616d614338643db198b4f7f1fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Fri, 3 Feb 2023 19:26:00 +0100 Subject: [PATCH 35/53] fix(cli): :zap: working flowDynamic test --- __test__/07-case.test.js | 3 +-- packages/bot/core/core.class.js | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/__test__/07-case.test.js b/__test__/07-case.test.js index 024fc60..6eb8e42 100644 --- a/__test__/07-case.test.js +++ b/__test__/07-case.test.js @@ -82,8 +82,7 @@ test(`[Caso - 07] Retornar estado`, async () => { assert.is('Tu datos son:', getHistory[6]) assert.is('Nombre: Leifer Edad: 90', getHistory[7]) assert.is('🤖🤖 Gracias por tu participacion', getHistory[8]) - assert.is('🤖🤖 Gracias por tu participacion', getHistory[9]) - assert.is(undefined, getHistory[10]) + assert.is(undefined, getHistory[9]) }) test.run() diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 1c15932..1258b5a 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -172,10 +172,11 @@ class CoreClass { for (const msg of parseListMsg) { await this.sendProviderAndSave(from, msg) } - const nextFlow = await this.flowClass.find(refToContinue?.ref, true) const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) - console.log(`🚩🚩🚩`, filterNextFlow?.answer) + + if (filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref)) return + return sendFlow(filterNextFlow, from, { prev: undefined }) } From c0113ca49295aff220d8defcb53f2ba7f2872d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Fri, 3 Feb 2023 19:32:04 +0100 Subject: [PATCH 36/53] fix(cli): :zap: working flowDynamic test --- packages/bot/core/core.class.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 1258b5a..a4a0cd0 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -168,16 +168,25 @@ class CoreClass { const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index)) const currentPrev = await this.databaseClass.getPrevByNumber(from) + const skipContinueFlow = async () => { + const nextFlow = await this.flowClass.find(refToContinue?.ref, true) + const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) + const isContinueFlow = filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref) + return { + continue: !isContinueFlow, + contexts: filterNextFlow, + } + } + if (endFlowFlag) return for (const msg of parseListMsg) { await this.sendProviderAndSave(from, msg) } - const nextFlow = await this.flowClass.find(refToContinue?.ref, true) - const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) - if (filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref)) return + const continueFlowData = await skipContinueFlow() - return sendFlow(filterNextFlow, from, { prev: undefined }) + if (continueFlowData.continue) return sendFlow(continueFlowData.contexts, from, { prev: undefined }) + return } // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback From d220f2c6228ca0528994a94712c5e753869ea63a Mon Sep 17 00:00:00 2001 From: Zamphi <40876040+mistertito86@users.noreply.github.com> Date: Sat, 4 Feb 2023 12:38:16 -0300 Subject: [PATCH 37/53] Modificacion de centencia sql MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se agregó CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci al final de la sentencia SQL para especificar el conjunto de caracteres y la collación para la tabla. Este conjunto de caracteres y collación permitirán que la tabla almacene una amplia gama de caracteres y símbolos, y determine cómo se comparan y ordenan. --- .../ base de datos / src / mysql }/index.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) rename {packages/database/src/mysql => paquetes / base de datos / src / mysql }/index.js (86%) diff --git a/packages/database/src/mysql/index.js b/paquetes / base de datos / src / mysql /index.js similarity index 86% rename from packages/database/src/mysql/index.js rename to paquetes / base de datos / src / mysql /index.js index e01b55a..8e2fbeb 100644 --- a/packages/database/src/mysql/index.js +++ b/paquetes / base de datos / src / mysql /index.js @@ -70,15 +70,15 @@ class MyslAdapter { new Promise((resolve) => { const tableName = 'history' - const sql = `CREATE TABLE ${tableName} - (id INT AUTO_INCREMENT PRIMARY KEY, - ref varchar(255) NOT NULL, - keyword varchar(255) NOT NULL, - answer longtext NOT NULL, - refSerialize varchar(255) NOT NULL, - phone varchar(255) NOT NULL, - options longtext NOT NULL - )` + const sql = `CREATE TABLE ${tableName} + (id INT AUTO_INCREMENT PRIMARY KEY, + ref varchar(255) NOT NULL, + keyword varchar(255) NOT NULL, + answer longtext NOT NULL, + refSerialize varchar(255) NOT NULL, + phone varchar(255) NOT NULL, + options longtext NOT NULL) + CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci` this.db.query(sql, (err) => { if (err) throw err From e34560c77d4852d2e90930f0858e51aa67d4eeab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leifer=20Jes=C3=BAs=20Mendez?= Date: Sat, 4 Feb 2023 17:01:10 +0100 Subject: [PATCH 38/53] feat(cli): :fire: add regex expression in addKeyworkd --- __test__/08-case.test.js | 43 +++++++++++++++++++++++++++ packages/bot/io/flow.class.js | 18 +++++++---- packages/bot/io/methods/addKeyword.js | 10 ++++--- 3 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 __test__/08-case.test.js diff --git a/__test__/08-case.test.js b/__test__/08-case.test.js new file mode 100644 index 0000000..82fc46a --- /dev/null +++ b/__test__/08-case.test.js @@ -0,0 +1,43 @@ +const { test } = require('uvu') +const assert = require('uvu/assert') +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_DB = require('../packages/provider/src/mock') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') + +test(`[Caso - 08] Regular expression on keyword`, async () => { + const provider = createProvider(PROVIDER_DB) + const database = new MOCK_DB() + + const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` + const flujoPrincipal = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) + .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) + .addAnswer('Fin!') + + createBot({ + database, + flow: createFlow([flujoPrincipal]), + provider, + }) + + provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + provider.delaySendMessage(20, 'message', { + from: '000', + body: '374245455400126', + }) + + await delay(40) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is('Gracias por proporcionar un numero de tarjeta valido', getHistory[0]) + assert.is('Fin!', getHistory[1]) + assert.is(undefined, getHistory[2]) +}) + +test.run() + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} diff --git a/packages/bot/io/flow.class.js b/packages/bot/io/flow.class.js index 458c423..13de732 100644 --- a/packages/bot/io/flow.class.js +++ b/packages/bot/io/flow.class.js @@ -25,9 +25,17 @@ class FlowClass { let refSymbol = null overFlow = overFlow ?? this.flowSerialize + const customRegex = (str = null) => { + if (typeof str !== 'string') return + const instanceRegex = new RegExp(str) + return instanceRegex.test(str) + } + /** Retornar expresion regular para buscar coincidencia */ - const mapSensitive = (str, flag = false) => { - const regexSensitive = flag ? 'g' : 'i' + const mapSensitive = (str, mapOptions = { sensitive: false, regex: false }) => { + if (mapOptions.regex) return customRegex(str) + + const regexSensitive = mapOptions.sensitive ? 'g' : 'i' if (Array.isArray(str)) { return new RegExp(str.join('|'), regexSensitive) } @@ -36,6 +44,7 @@ class FlowClass { const findIn = (keyOrWord, symbol = false, flow = overFlow) => { const sensitive = refSymbol?.options?.sensitive || false + const regex = refSymbol?.options?.regex || false capture = refSymbol?.options?.capture || false if (capture) return messages @@ -46,7 +55,7 @@ class FlowClass { if (refSymbol?.ref) findIn(refSymbol.ref, true) } else { refSymbol = flow.find((c) => { - return mapSensitive(c.keyword, sensitive).test(keyOrWord) + return mapSensitive(c.keyword, { sensitive, regex }).test(keyOrWord) }) if (refSymbol?.ref) findIn(refSymbol.ref, true) return messages @@ -56,8 +65,7 @@ class FlowClass { return messages } - findBySerialize = (refSerialize) => - this.flowSerialize.find((r) => r.refSerialize === refSerialize) + findBySerialize = (refSerialize) => this.flowSerialize.find((r) => r.refSerialize === refSerialize) findIndexByRef = (ref) => this.flowSerialize.findIndex((r) => r.ref === ref) } diff --git a/packages/bot/io/methods/addKeyword.js b/packages/bot/io/methods/addKeyword.js index e17f9be..50a5c0c 100644 --- a/packages/bot/io/methods/addKeyword.js +++ b/packages/bot/io/methods/addKeyword.js @@ -8,12 +8,14 @@ const { toJson } = require('./toJson') * @param {*} options {sensitive:boolean} default false */ const addKeyword = (keyword, options) => { + if (typeof keyword !== 'string' && !Array.isArray(keyword)) { + throw new Error('DEBE_SER_STRING_ARRAY_REGEX') + } + const parseOptions = () => { const defaultProperties = { - sensitive: - typeof options?.sensitive === 'boolean' - ? options?.sensitive - : false, + sensitive: typeof options?.sensitive === 'boolean' ? options?.sensitive : false, + regex: typeof options?.regex === 'boolean' ? options?.regex : false, } return defaultProperties From c9831d202ab2c85f15a0247cd2a2426bc435270c Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Feb 2023 17:39:34 +0100 Subject: [PATCH 39/53] fix(database): fix naming --- packages/database/src/ mysql /index.js | 106 ++++++++++++++++++ .../ base de datos / src / mysql /index.js | 106 ------------------ 2 files changed, 106 insertions(+), 106 deletions(-) create mode 100644 packages/database/src/ mysql /index.js delete mode 100644 paquetes / base de datos / src / mysql /index.js diff --git a/packages/database/src/ mysql /index.js b/packages/database/src/ mysql /index.js new file mode 100644 index 0000000..2a9b0c4 --- /dev/null +++ b/packages/database/src/ mysql /index.js @@ -0,0 +1,106 @@ +const mysql = require("mysql2"); + +class MyslAdapter { + db; + listHistory = []; + credentials = { host: null, user: null, database: null, password: null }; + + constructor(_credentials) { + this.credentials = _credentials; + this.init().then(); + } + + async init() { + this.db = mysql.createConnection(this.credentials); + + await this.db.connect(async (error) => { + if (!error) { + console.log(`Solicitud de conexión a base de datos exitosa`); + await this.checkTableExists(); + } + + if (error) { + console.log(`Solicitud de conexión fallida ${error.stack}`); + } + }); + } + + getPrevByNumber = (from) => + new Promise((resolve, reject) => { + const sql = `SELECT * FROM history WHERE phone=${from} ORDER BY id DESC`; + this.db.query(sql, (error, rows) => { + if (error) { + reject(error); + } + + if (rows.length) { + const [row] = rows; + row.options = JSON.parse(row.options); + resolve(row); + } + + if (!rows.length) { + resolve(null); + } + }); + }); + + save = (ctx) => { + const values = [ + [ + ctx.ref, + ctx.keyword, + ctx.answer, + ctx.refSerialize, + ctx.from, + JSON.stringify(ctx.options), + ], + ]; + const sql = + "INSERT INTO history (ref, keyword, answer, refSerialize, phone, options ) values ?"; + + this.db.query(sql, [values], (err) => { + if (err) throw err; + console.log("Guardado en DB...", values); + }); + this.listHistory.push(ctx); + }; + + createTable = () => + new Promise((resolve) => { + const tableName = "history"; + + const sql = `CREATE TABLE ${tableName} + (id INT AUTO_INCREMENT PRIMARY KEY, + ref varchar(255) NOT NULL, + keyword varchar(255) NOT NULL, + answer longtext NOT NULL, + refSerialize varchar(255) NOT NULL, + phone varchar(255) NOT NULL, + options longtext NOT NULL) + CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci`; + + this.db.query(sql, (err) => { + if (err) throw err; + console.log(`Tabla ${tableName} creada correctamente `); + resolve(true); + }); + }); + + checkTableExists = () => + new Promise((resolve) => { + const sql = "SHOW TABLES LIKE 'history'"; + + this.db.query(sql, (err, rows) => { + if (err) throw err; + + if (!rows.length) { + this.createTable(); + } + + resolve(!!rows.length); + }); + }); +} + +module.exports = MyslAdapter; diff --git a/paquetes / base de datos / src / mysql /index.js b/paquetes / base de datos / src / mysql /index.js deleted file mode 100644 index 8e2fbeb..0000000 --- a/paquetes / base de datos / src / mysql /index.js +++ /dev/null @@ -1,106 +0,0 @@ -const mysql = require('mysql2') - -class MyslAdapter { - db - listHistory = [] - credentials = { host: null, user: null, database: null, password: null } - - constructor(_credentials) { - this.credentials = _credentials - this.init().then() - } - - async init() { - this.db = mysql.createConnection(this.credentials) - - await this.db.connect(async (error) => { - if (!error) { - console.log(`Solicitud de conexión a base de datos exitosa`) - await this.checkTableExists() - } - - if (error) { - console.log(`Solicitud de conexión fallida ${error.stack}`) - } - }) - } - - getPrevByNumber = (from) => - new Promise((resolve, reject) => { - const sql = `SELECT * FROM history WHERE phone=${from} ORDER BY id DESC` - this.db.query(sql, (error, rows) => { - if (error) { - reject(error) - } - - if (rows.length) { - const [row] = rows - row.options = JSON.parse(row.options) - resolve(row) - } - - if (!rows.length) { - resolve(null) - } - }) - }) - - save = (ctx) => { - const values = [ - [ - ctx.ref, - ctx.keyword, - ctx.answer, - ctx.refSerialize, - ctx.from, - JSON.stringify(ctx.options), - ], - ] - const sql = - 'INSERT INTO history (ref, keyword, answer, refSerialize, phone, options ) values ?' - - this.db.query(sql, [values], (err) => { - if (err) throw err - console.log('Guardado en DB...', values) - }) - this.listHistory.push(ctx) - } - - createTable = () => - new Promise((resolve) => { - const tableName = 'history' - - const sql = `CREATE TABLE ${tableName} - (id INT AUTO_INCREMENT PRIMARY KEY, - ref varchar(255) NOT NULL, - keyword varchar(255) NOT NULL, - answer longtext NOT NULL, - refSerialize varchar(255) NOT NULL, - phone varchar(255) NOT NULL, - options longtext NOT NULL) - CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci` - - this.db.query(sql, (err) => { - if (err) throw err - console.log(`Tabla ${tableName} creada correctamente `) - resolve(true) - }) - }) - - checkTableExists = () => - new Promise((resolve) => { - const sql = "SHOW TABLES LIKE 'history'" - - this.db.query(sql, (err, rows) => { - if (err) throw err - - if (!rows.length) { - this.createTable() - } - - resolve(!!rows.length) - }) - }) -} - -module.exports = MyslAdapter From 1afc3ba182070713b5bec40eaab0fa1f680830cd Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Feb 2023 17:50:11 +0100 Subject: [PATCH 40/53] fix(database): fix naming --- packages/database/src/{ mysql => mysql}/index.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/database/src/{ mysql => mysql}/index.js (100%) diff --git a/packages/database/src/ mysql /index.js b/packages/database/src/mysql/index.js similarity index 100% rename from packages/database/src/ mysql /index.js rename to packages/database/src/mysql/index.js From 2ecc41f3f002138a5737edd04979337b00c3e0be Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Feb 2023 18:03:57 +0100 Subject: [PATCH 41/53] chore: :zap: pre-chore --- .husky/commit-msg | 2 +- .prettierignore | 2 +- packages/bot/index.js | 6 +- packages/bot/io/methods/addAnswer.js | 14 +- packages/bot/provider/provider.class.js | 3 +- packages/bot/tests/bot.class.test.js | 86 ++-------- packages/bot/tests/methods.test.js | 14 +- packages/bot/utils/delay.js | 3 +- packages/bot/utils/flattener.js | 4 +- packages/bot/utils/hash.js | 5 +- packages/bot/utils/interactive.js | 4 +- packages/cli/check/index.js | 10 +- packages/cli/clean/index.js | 5 +- packages/cli/configuration/index.js | 6 +- packages/cli/install/tool.js | 10 +- packages/cli/interactive/index.js | 19 +-- .../src/dialogflow-cx/dialogflow-cx.class.js | 26 +-- packages/contexts/src/dialogflow-cx/index.js | 3 +- .../src/dialogflow/dialogflow.class.js | 13 +- packages/contexts/src/dialogflow/index.js | 3 +- packages/contexts/src/mock/index.js | 3 +- packages/database/src/mongo/index.js | 7 +- packages/database/src/mysql/index.js | 148 ++++++++---------- .../generated/IBMPlexMono-Regular.module.css | 3 +- .../generated/IBMPlexMono-SemiBold.module.css | 4 +- .../fonts/generated/Pally-Variable.module.css | 7 +- .../SourceSerifPro-Regular.module.css | 3 +- .../generated/Synonym-Variable.module.css | 7 +- .../generated/TenorSans-Regular.module.css | 7 +- .../src/components/atoms/DigitalOcean.tsx | 32 +--- packages/docs/src/components/atoms/Logo.tsx | 9 +- .../docs/src/components/atoms/Netlify.tsx | 8 +- .../docs/src/components/core/RouterHead.tsx | 5 +- packages/docs/src/components/core/Social.tsx | 15 +- .../docs/src/components/core/ToggleMenu.tsx | 4 +- .../docs/src/components/core/ToggleTheme.tsx | 13 +- .../components/icons/IconArrowDownRight.tsx | 4 +- .../docs/src/components/icons/IconMenu.tsx | 4 +- .../docs/src/components/icons/IconMoon.tsx | 4 +- .../src/components/widgets/Collaborator.tsx | 4 +- .../src/components/widgets/Collaborators.tsx | 3 +- .../docs/src/components/widgets/ExtraBar.tsx | 4 +- packages/docs/src/components/widgets/FAQs.tsx | 10 +- .../docs/src/components/widgets/Features.tsx | 16 +- packages/docs/src/components/widgets/Hero.tsx | 33 ++-- .../docs/src/components/widgets/Members.tsx | 11 +- .../docs/src/components/widgets/NavBar.tsx | 90 +++++------ .../src/components/widgets/Navigation.tsx | 125 +++++++-------- .../docs/src/components/widgets/Stats.tsx | 16 +- packages/docs/src/contexts/index.tsx | 3 +- packages/docs/src/root.tsx | 18 +-- .../docs/src/routes/docs/database/index.mdx | 9 +- .../docs/src/routes/docs/essential/index.mdx | 25 ++- .../docs/src/routes/docs/example/index.mdx | 14 +- packages/docs/src/routes/docs/flows/index.mdx | 67 +++----- packages/docs/src/routes/docs/index.mdx | 12 +- .../docs/src/routes/docs/install/index.mdx | 11 +- packages/docs/src/routes/docs/layout!.tsx | 9 +- .../docs/src/routes/docs/migration/index.mdx | 49 ++---- .../docs/src/routes/docs/overview/index.mdx | 10 +- .../docs/src/routes/docs/providers/index.mdx | 9 +- .../src/routes/docs/providers/meta/index.mdx | 5 +- .../routes/docs/providers/twilio/index.mdx | 10 +- packages/docs/src/routes/index.tsx | 6 +- packages/docs/src/services/github.ts | 19 +-- packages/docs/src/services/opencollective.ts | 9 +- packages/docs/tailwind.config.js | 4 +- .../portal/.vscode/qwik-city.code-snippets | 6 +- packages/portal/.vscode/qwik.code-snippets | 15 +- packages/portal/portal.http.js | 19 +-- .../portal/src/components/header/header.tsx | 16 +- packages/portal/src/components/icons/qwik.tsx | 8 +- packages/portal/src/components/qr/qr.tsx | 14 +- .../components/router-head/router-head.tsx | 5 +- packages/portal/src/global.css | 3 +- packages/portal/src/routes/index.css | 3 +- packages/portal/src/routes/index.tsx | 22 +-- packages/provider/src/meta/index.js | 17 +- packages/provider/src/meta/server.js | 8 +- packages/provider/src/twilio/index.js | 14 +- packages/provider/src/twilio/server.js | 4 +- packages/provider/src/venom/index.js | 35 ++--- 82 files changed, 411 insertions(+), 904 deletions(-) diff --git a/.husky/commit-msg b/.husky/commit-msg index 4002db7..3d3fb52 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npx --no -- commitlint --edit +npm run lint:fix && npx --no -- commitlint --edit diff --git a/.prettierignore b/.prettierignore index 547ec21..7fffea9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,5 @@ packages/**/lib -packages/docs/*.json +packages/docs/ **/.git **/.svn **/.hg diff --git a/packages/bot/index.js b/packages/bot/index.js index ac96063..fe03d60 100644 --- a/packages/bot/index.js +++ b/packages/bot/index.js @@ -8,8 +8,7 @@ const { addKeyword, addAnswer, addChild, toSerialize } = require('./io/methods') * @param {*} args * @returns */ -const createBot = async ({ flow, database, provider }, args = {}) => - new CoreClass(flow, database, provider, args) +const createBot = async ({ flow, database, provider }, args = {}) => new CoreClass(flow, database, provider, args) /** * Crear instancia de clase Io (Flow) @@ -29,8 +28,7 @@ const createFlow = (args) => { */ const createProvider = (providerClass = class {}, args = null) => { const providerInstance = new providerClass(args) - if (!providerClass.prototype instanceof ProviderClass) - throw new Error('El provider no implementa ProviderClass') + if (!providerClass.prototype instanceof ProviderClass) throw new Error('El provider no implementa ProviderClass') return providerInstance } diff --git a/packages/bot/io/methods/addAnswer.js b/packages/bot/io/methods/addAnswer.js index f0ccdad..5236c14 100644 --- a/packages/bot/io/methods/addAnswer.js +++ b/packages/bot/io/methods/addAnswer.js @@ -17,15 +17,10 @@ const addAnswer = * @returns */ const getAnswerOptions = () => ({ - media: - typeof options?.media === 'string' ? `${options?.media}` : null, + media: typeof options?.media === 'string' ? `${options?.media}` : null, buttons: Array.isArray(options?.buttons) ? options.buttons : [], - capture: - typeof options?.capture === 'boolean' - ? options?.capture - : false, - child: - typeof options?.child === 'string' ? `${options?.child}` : null, + capture: typeof options?.capture === 'boolean' ? options?.capture : false, + child: typeof options?.child === 'string' ? `${options?.child}` : null, delay: typeof options?.delay === 'number' ? options?.delay : 0, }) @@ -49,8 +44,7 @@ const addAnswer = * Esta funcion aplana y busca los callback anidados de los hijos * @returns */ - const getCbFromNested = () => - flatObject(Array.isArray(nested) ? nested : [nested]) + const getCbFromNested = () => flatObject(Array.isArray(nested) ? nested : [nested]) const callback = typeof cb === 'function' ? cb : () => null diff --git a/packages/bot/provider/provider.class.js b/packages/bot/provider/provider.class.js index 212f042..57d7185 100644 --- a/packages/bot/provider/provider.class.js +++ b/packages/bot/provider/provider.class.js @@ -20,8 +20,7 @@ class ProviderClass extends EventEmitter { */ sendMessage = async (userId, message) => { - if (NODE_ENV !== 'production') - console.log('[sendMessage]', { userId, message }) + if (NODE_ENV !== 'production') console.log('[sendMessage]', { userId, message }) return message } } diff --git a/packages/bot/tests/bot.class.test.js b/packages/bot/tests/bot.class.test.js index d74fdad..4db4ca8 100644 --- a/packages/bot/tests/bot.class.test.js +++ b/packages/bot/tests/bot.class.test.js @@ -2,13 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const FlowClass = require('../io/flow.class') const MockProvider = require('../../../__mocks__/mock.provider') -const { - createBot, - CoreClass, - createFlow, - createProvider, - ProviderClass, -} = require('../index') +const { createBot, CoreClass, createFlow, createProvider, ProviderClass } = require('../index') class MockFlow { allCallbacks = { ref: () => 1 } @@ -100,20 +94,13 @@ test(`[Bot] Eventos 'require_action,ready,auth_failure,message '`, async () => { await createBot(setting) /// Escuchamos eventos - mockProvider.on( - 'require_action', - (r) => (responseEvents['require_action'] = r) - ) + mockProvider.on('require_action', (r) => (responseEvents['require_action'] = r)) mockProvider.on('ready', (r) => (responseEvents['ready'] = r)) mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r)) mockProvider.on('message', (r) => (responseEvents['message'] = r)) /// Emitimos eventos - mockProvider.delaySendMessage( - 0, - 'require_action', - MOCK_EVENTS.require_action - ) + mockProvider.delaySendMessage(0, 'require_action', MOCK_EVENTS.require_action) mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready) mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure) mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message) @@ -121,21 +108,12 @@ test(`[Bot] Eventos 'require_action,ready,auth_failure,message '`, async () => { await delay(0) /// Testeamos eventos - assert.is( - JSON.stringify(responseEvents.require_action), - JSON.stringify(MOCK_EVENTS.require_action) - ) + assert.is(JSON.stringify(responseEvents.require_action), JSON.stringify(MOCK_EVENTS.require_action)) assert.is(responseEvents.ready, MOCK_EVENTS.ready) - assert.is( - JSON.stringify(responseEvents.auth_failure), - JSON.stringify(MOCK_EVENTS.auth_failure) - ) + assert.is(JSON.stringify(responseEvents.auth_failure), JSON.stringify(MOCK_EVENTS.auth_failure)) - assert.is( - JSON.stringify(responseEvents.message), - JSON.stringify(MOCK_EVENTS.message) - ) + assert.is(JSON.stringify(responseEvents.message), JSON.stringify(MOCK_EVENTS.message)) }) test(`[Bot] Probando Flujos Internos`, async () => { @@ -166,20 +144,13 @@ test(`[Bot] Probando Flujos Internos`, async () => { await createBot(setting) /// Escuchamos eventos - mockProvider.on( - 'require_action', - (r) => (responseEvents['require_action'] = r) - ) + mockProvider.on('require_action', (r) => (responseEvents['require_action'] = r)) mockProvider.on('ready', (r) => (responseEvents['ready'] = r)) mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r)) mockProvider.on('message', (r) => (responseEvents['message'] = r)) /// Emitimos eventos - mockProvider.delaySendMessage( - 0, - 'require_action', - MOCK_EVENTS.require_action - ) + mockProvider.delaySendMessage(0, 'require_action', MOCK_EVENTS.require_action) mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready) mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure) mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message) @@ -187,21 +158,12 @@ test(`[Bot] Probando Flujos Internos`, async () => { await delay(0) /// Testeamos eventos - assert.is( - JSON.stringify(responseEvents.require_action), - JSON.stringify(MOCK_EVENTS.require_action) - ) + assert.is(JSON.stringify(responseEvents.require_action), JSON.stringify(MOCK_EVENTS.require_action)) assert.is(responseEvents.ready, MOCK_EVENTS.ready) - assert.is( - JSON.stringify(responseEvents.auth_failure), - JSON.stringify(MOCK_EVENTS.auth_failure) - ) + assert.is(JSON.stringify(responseEvents.auth_failure), JSON.stringify(MOCK_EVENTS.auth_failure)) - assert.is( - JSON.stringify(responseEvents.message), - JSON.stringify(MOCK_EVENTS.message) - ) + assert.is(JSON.stringify(responseEvents.message), JSON.stringify(MOCK_EVENTS.message)) }) test(`[Bot] Probando Flujos Nested`, async () => { @@ -234,20 +196,13 @@ test(`[Bot] Probando Flujos Nested`, async () => { botInstance.sendProviderAndSave('xxxxx', 'xxxxx') botInstance.continue('xxxxx', 'xxxxx') /// Escuchamos eventos - mockProvider.on( - 'require_action', - (r) => (responseEvents['require_action'] = r) - ) + mockProvider.on('require_action', (r) => (responseEvents['require_action'] = r)) mockProvider.on('ready', (r) => (responseEvents['ready'] = r)) mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r)) mockProvider.on('message', (r) => (responseEvents['message'] = r)) /// Emitimos eventos - mockProvider.delaySendMessage( - 0, - 'require_action', - MOCK_EVENTS.require_action - ) + mockProvider.delaySendMessage(0, 'require_action', MOCK_EVENTS.require_action) mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready) mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure) mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message) @@ -255,21 +210,12 @@ test(`[Bot] Probando Flujos Nested`, async () => { await delay(0) /// Testeamos eventos - assert.is( - JSON.stringify(responseEvents.require_action), - JSON.stringify(MOCK_EVENTS.require_action) - ) + assert.is(JSON.stringify(responseEvents.require_action), JSON.stringify(MOCK_EVENTS.require_action)) assert.is(responseEvents.ready, MOCK_EVENTS.ready) - assert.is( - JSON.stringify(responseEvents.auth_failure), - JSON.stringify(MOCK_EVENTS.auth_failure) - ) + assert.is(JSON.stringify(responseEvents.auth_failure), JSON.stringify(MOCK_EVENTS.auth_failure)) - assert.is( - JSON.stringify(responseEvents.message), - JSON.stringify(MOCK_EVENTS.message) - ) + assert.is(JSON.stringify(responseEvents.message), JSON.stringify(MOCK_EVENTS.message)) }) test.run() diff --git a/packages/bot/tests/methods.test.js b/packages/bot/tests/methods.test.js index 10b0977..f030731 100644 --- a/packages/bot/tests/methods.test.js +++ b/packages/bot/tests/methods.test.js @@ -35,10 +35,7 @@ test('Debere probar toSerialize', () => { const ARRANGE = { keyword: ['hola!', 'ole'], } - const MAIN_CTX = addKeyword(ARRANGE.keyword) - .addAnswer('Segundo!') - .addAnswer('Segundo!') - .toJson() + const MAIN_CTX = addKeyword(ARRANGE.keyword).addAnswer('Segundo!').addAnswer('Segundo!').toJson() const [ANSWER_A] = MAIN_CTX @@ -71,9 +68,7 @@ test('Debere probar la anidación', () => { answer_A: 'Bienvenido', answer_B: 'Continuar', } - const MAIN_CTX = addKeyword(ARRANGE.keyword) - .addAnswer(ARRANGE.answer_A) - .addAnswer(ARRANGE.answer_B) + const MAIN_CTX = addKeyword(ARRANGE.keyword).addAnswer(ARRANGE.answer_A).addAnswer(ARRANGE.answer_B) assert.is(MAIN_CTX.ctx.answer, ARRANGE.answer_B) }) @@ -107,10 +102,7 @@ test('Debere probar error las addAnswer', () => { }) test('Obtener toJson', () => { - const [ctxA, ctxB, ctxC] = addKeyword('hola') - .addAnswer('pera!') - .addAnswer('chao') - .toJson() + const [ctxA, ctxB, ctxC] = addKeyword('hola').addAnswer('pera!').addAnswer('chao').toJson() assert.is(ctxA.keyword, 'hola') assert.match(ctxA.ref, /^key_/) diff --git a/packages/bot/utils/delay.js b/packages/bot/utils/delay.js index 021fafe..a6534c0 100644 --- a/packages/bot/utils/delay.js +++ b/packages/bot/utils/delay.js @@ -1,4 +1,3 @@ -const delay = (miliseconds) => - new Promise((res) => setTimeout(res, miliseconds)) +const delay = (miliseconds) => new Promise((res) => setTimeout(res, miliseconds)) module.exports = { delay } diff --git a/packages/bot/utils/flattener.js b/packages/bot/utils/flattener.js index 875736d..ddc823f 100644 --- a/packages/bot/utils/flattener.js +++ b/packages/bot/utils/flattener.js @@ -3,9 +3,7 @@ const flatObject = (listArray = []) => { if (!listArray.length) return {} - const cbNestedObj = cbNestedList - .map(({ ctx }) => ctx?.callbacks) - .filter((i) => !!i) + const cbNestedObj = cbNestedList.map(({ ctx }) => ctx?.callbacks).filter((i) => !!i) const queueCb = cbNestedObj.reduce((acc, current) => { const getKeys = Object.keys(current) const parse = getKeys.map((icb, i) => ({ diff --git a/packages/bot/utils/hash.js b/packages/bot/utils/hash.js index 84a25db..6902d58 100644 --- a/packages/bot/utils/hash.js +++ b/packages/bot/utils/hash.js @@ -16,9 +16,6 @@ const generateRef = (prefix = false) => { * @returns */ const generateRefSerialize = ({ index, answer, keyword }) => - crypto - .createHash('md5') - .update(JSON.stringify({ index, answer, keyword })) - .digest('hex') + crypto.createHash('md5').update(JSON.stringify({ index, answer, keyword })).digest('hex') module.exports = { generateRef, generateRefSerialize } diff --git a/packages/bot/utils/interactive.js b/packages/bot/utils/interactive.js index c317a7f..44905cf 100644 --- a/packages/bot/utils/interactive.js +++ b/packages/bot/utils/interactive.js @@ -4,9 +4,7 @@ const printer = (message, title) => { if (NODE_ENV !== 'test') { // console.clear() if (title) console.log(bgRed(`${title}`)) - console.log( - yellow(Array.isArray(message) ? message.join('\n') : message) - ) + console.log(yellow(Array.isArray(message) ? message.join('\n') : message)) console.log(``) } } diff --git a/packages/cli/check/index.js b/packages/cli/check/index.js index 454f67c..5befb8a 100644 --- a/packages/cli/check/index.js +++ b/packages/cli/check/index.js @@ -5,15 +5,9 @@ const checkNodeVersion = () => { return new Promise((resolve, reject) => { console.log(bgCyan('🚀 Revisando tu Node.js')) const version = process.version - const majorVersion = parseInt( - version.replace('v', '').split('.').shift() - ) + const majorVersion = parseInt(version.replace('v', '').split('.').shift()) if (majorVersion < 16) { - console.error( - red( - `🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}` - ) - ) + console.error(red(`🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}`)) console.log(``) reject('ERROR_NODE') } diff --git a/packages/cli/clean/index.js b/packages/cli/clean/index.js index 6b7f6fd..60b8092 100644 --- a/packages/cli/clean/index.js +++ b/packages/cli/clean/index.js @@ -2,10 +2,7 @@ const rimraf = require('rimraf') const { yellow } = require('kleur') const { join } = require('path') -const PATH_WW = [ - join(process.cwd(), '.wwebjs_auth'), - join(process.cwd(), 'session.json'), -] +const PATH_WW = [join(process.cwd(), '.wwebjs_auth'), join(process.cwd(), 'session.json')] const cleanSession = () => { const queue = [] diff --git a/packages/cli/configuration/index.js b/packages/cli/configuration/index.js index 50565d9..2ce6077 100644 --- a/packages/cli/configuration/index.js +++ b/packages/cli/configuration/index.js @@ -23,11 +23,7 @@ const JSON_TEMPLATE = { const PATH_CONFIG = join(process.cwd(), 'config.json') const jsonConfig = () => { - return writeFile( - PATH_CONFIG, - JSON.stringify(JSON_TEMPLATE, null, 2), - 'utf-8' - ) + return writeFile(PATH_CONFIG, JSON.stringify(JSON_TEMPLATE, null, 2), 'utf-8') } module.exports = { jsonConfig } diff --git a/packages/cli/install/tool.js b/packages/cli/install/tool.js index 8095cd0..a74cec6 100644 --- a/packages/cli/install/tool.js +++ b/packages/cli/install/tool.js @@ -20,13 +20,9 @@ const installDeps = (pkgManager, packageList) => { const installSingle = (pkgInstall) => () => { new Promise((resolve) => { try { - childProcess = spawn( - pkgManager, - [PKG_OPTION[pkgManager], pkgInstall], - { - stdio: 'inherit', - } - ) + childProcess = spawn(pkgManager, [PKG_OPTION[pkgManager], pkgInstall], { + stdio: 'inherit', + }) childProcess.on('error', (e) => { console.error(e) diff --git a/packages/cli/interactive/index.js b/packages/cli/interactive/index.js index 53cc885..d65ca19 100644 --- a/packages/cli/interactive/index.js +++ b/packages/cli/interactive/index.js @@ -30,9 +30,7 @@ const startInteractive = async () => { await nextSteps() } catch (e) { console.error(bgRed(`Ups! 🙄 algo no va bien.`)) - console.error( - bgRed(`Revisa los requerimientos minimos en la documentacion`) - ) + console.error(bgRed(`Revisa los requerimientos minimos en la documentacion`)) } } @@ -82,8 +80,7 @@ const nextSteps = async () => { const { outDir = '', providerDb = [], providerWs = [] } = response const createApp = async (templateName = null) => { - if (!templateName) - throw new Error('TEMPLATE_NAME_INVALID: ', templateName) + if (!templateName) throw new Error('TEMPLATE_NAME_INVALID: ', templateName) const possiblesPath = [ join(__dirname, '..', '..', 'starters', 'apps', templateName), @@ -115,11 +112,7 @@ const nextSteps = async () => { const vendorProvider = async () => { const [answer] = providerWs if (!providerWs.length) { - console.log( - red( - `Debes seleccionar un proveedor de whatsapp. Tecla [Space] para seleccionar` - ) - ) + console.log(red(`Debes seleccionar un proveedor de whatsapp. Tecla [Space] para seleccionar`)) process.exit(1) } return answer @@ -132,11 +125,7 @@ const nextSteps = async () => { const dbProvider = async () => { const [answer] = providerDb if (!providerDb.length) { - console.log( - red( - `Debes seleccionar un proveedor de base de datos. Tecla [Space] para seleccionar` - ) - ) + console.log(red(`Debes seleccionar un proveedor de base de datos. Tecla [Space] para seleccionar`)) process.exit(1) } return answer diff --git a/packages/contexts/src/dialogflow-cx/dialogflow-cx.class.js b/packages/contexts/src/dialogflow-cx/dialogflow-cx.class.js index 2d0ebd2..6be4f9e 100644 --- a/packages/contexts/src/dialogflow-cx/dialogflow-cx.class.js +++ b/packages/contexts/src/dialogflow-cx/dialogflow-cx.class.js @@ -38,10 +38,8 @@ class DialogFlowCXContext extends CoreClass { * */ } - if (!this.optionsDX.location.length) - throw new Error('LOCATION_NO_ENCONTRADO') - if (!this.optionsDX.agentId.length) - throw new Error('AGENTID_NO_ENCONTRADO') + if (!this.optionsDX.location.length) throw new Error('LOCATION_NO_ENCONTRADO') + if (!this.optionsDX.agentId.length) throw new Error('AGENTID_NO_ENCONTRADO') const rawJson = readFileSync(GOOGLE_ACCOUNT_PATH, 'utf-8') const { project_id, private_key, client_email } = JSON.parse(rawJson) @@ -86,9 +84,7 @@ class DialogFlowCXContext extends CoreClass { }, } - const [single] = (await this.sessionClient.detectIntent(reqDialog)) || [ - null, - ] + const [single] = (await this.sessionClient.detectIntent(reqDialog)) || [null] const listMessages = single.queryResult.responseMessages.map((res) => { if (res.message == 'text') { @@ -96,17 +92,11 @@ class DialogFlowCXContext extends CoreClass { } if (res.message == 'payload') { - const { - media = null, - buttons = [], - answer = '', - } = res.payload.fields - const buttonsArray = buttons?.listValue?.values?.map( - (btnValue) => { - const { stringValue } = btnValue.structValue.fields.body - return { body: stringValue } - } - ) + const { media = null, buttons = [], answer = '' } = res.payload.fields + const buttonsArray = buttons?.listValue?.values?.map((btnValue) => { + const { stringValue } = btnValue.structValue.fields.body + return { body: stringValue } + }) return { answer: answer?.stringValue, options: { diff --git a/packages/contexts/src/dialogflow-cx/index.js b/packages/contexts/src/dialogflow-cx/index.js index 2a561c4..13c479e 100644 --- a/packages/contexts/src/dialogflow-cx/index.js +++ b/packages/contexts/src/dialogflow-cx/index.js @@ -5,8 +5,7 @@ const DialogCXFlowClass = require('./dialogflow-cx.class') * @param {*} args * @returns */ -const createBotDialog = async ({ database, provider }, _options) => - new DialogCXFlowClass(database, provider, _options) +const createBotDialog = async ({ database, provider }, _options) => new DialogCXFlowClass(database, provider, _options) module.exports = { createBotDialog, diff --git a/packages/contexts/src/dialogflow/dialogflow.class.js b/packages/contexts/src/dialogflow/dialogflow.class.js index 6a7cda0..33df66b 100644 --- a/packages/contexts/src/dialogflow/dialogflow.class.js +++ b/packages/contexts/src/dialogflow/dialogflow.class.js @@ -65,10 +65,7 @@ class DialogFlowContext extends CoreClass { * para evitar este problema. * https://github.com/codigoencasa/bot-whatsapp/pull/140 */ - const session = this.sessionClient.projectAgentSessionPath( - this.projectId, - from - ) + const session = this.sessionClient.projectAgentSessionPath(this.projectId, from) const reqDialog = { session, queryInput: { @@ -79,15 +76,11 @@ class DialogFlowContext extends CoreClass { }, } - const [single] = (await this.sessionClient.detectIntent(reqDialog)) || [ - null, - ] + const [single] = (await this.sessionClient.detectIntent(reqDialog)) || [null] const { queryResult } = single - const msgPayload = queryResult?.fulfillmentMessages?.find( - (a) => a.message === 'payload' - ) + const msgPayload = queryResult?.fulfillmentMessages?.find((a) => a.message === 'payload') // Revisamos si el dialogFlow tiene multimedia if (msgPayload && msgPayload?.payload) { diff --git a/packages/contexts/src/dialogflow/index.js b/packages/contexts/src/dialogflow/index.js index e988f50..377fd88 100644 --- a/packages/contexts/src/dialogflow/index.js +++ b/packages/contexts/src/dialogflow/index.js @@ -5,8 +5,7 @@ const DialogFlowClass = require('./dialogflow.class') * @param {*} args * @returns */ -const createBotDialog = async ({ database, provider }) => - new DialogFlowClass(database, provider) +const createBotDialog = async ({ database, provider }) => new DialogFlowClass(database, provider) module.exports = { createBotDialog, diff --git a/packages/contexts/src/mock/index.js b/packages/contexts/src/mock/index.js index b609be5..4e2e10f 100644 --- a/packages/contexts/src/mock/index.js +++ b/packages/contexts/src/mock/index.js @@ -5,8 +5,7 @@ const MockClass = require('./mock.class') * @param {*} args * @returns */ -const createBotMock = async ({ database, provider }) => - new MockClass(database, provider) +const createBotMock = async ({ database, provider }) => new MockClass(database, provider) module.exports = { createBotMock, diff --git a/packages/database/src/mongo/index.js b/packages/database/src/mongo/index.js index 6af68f0..9ea3fa5 100644 --- a/packages/database/src/mongo/index.js +++ b/packages/database/src/mongo/index.js @@ -24,12 +24,7 @@ class MongoAdapter { } getPrevByNumber = async (from) => { - const result = await this.db - .collection('history') - .find({ from }) - .sort({ _id: -1 }) - .limit(1) - .toArray() + const result = await this.db.collection('history').find({ from }).sort({ _id: -1 }).limit(1).toArray() return result[0] } diff --git a/packages/database/src/mysql/index.js b/packages/database/src/mysql/index.js index 2a9b0c4..0beea56 100644 --- a/packages/database/src/mysql/index.js +++ b/packages/database/src/mysql/index.js @@ -1,76 +1,66 @@ -const mysql = require("mysql2"); +const mysql = require('mysql2') class MyslAdapter { - db; - listHistory = []; - credentials = { host: null, user: null, database: null, password: null }; + db + listHistory = [] + credentials = { host: null, user: null, database: null, password: null } - constructor(_credentials) { - this.credentials = _credentials; - this.init().then(); - } + constructor(_credentials) { + this.credentials = _credentials + this.init().then() + } - async init() { - this.db = mysql.createConnection(this.credentials); + async init() { + this.db = mysql.createConnection(this.credentials) - await this.db.connect(async (error) => { - if (!error) { - console.log(`Solicitud de conexión a base de datos exitosa`); - await this.checkTableExists(); - } + await this.db.connect(async (error) => { + if (!error) { + console.log(`Solicitud de conexión a base de datos exitosa`) + await this.checkTableExists() + } - if (error) { - console.log(`Solicitud de conexión fallida ${error.stack}`); - } - }); - } + if (error) { + console.log(`Solicitud de conexión fallida ${error.stack}`) + } + }) + } - getPrevByNumber = (from) => - new Promise((resolve, reject) => { - const sql = `SELECT * FROM history WHERE phone=${from} ORDER BY id DESC`; - this.db.query(sql, (error, rows) => { - if (error) { - reject(error); - } + getPrevByNumber = (from) => + new Promise((resolve, reject) => { + const sql = `SELECT * FROM history WHERE phone=${from} ORDER BY id DESC` + this.db.query(sql, (error, rows) => { + if (error) { + reject(error) + } - if (rows.length) { - const [row] = rows; - row.options = JSON.parse(row.options); - resolve(row); - } + if (rows.length) { + const [row] = rows + row.options = JSON.parse(row.options) + resolve(row) + } - if (!rows.length) { - resolve(null); - } - }); - }); + if (!rows.length) { + resolve(null) + } + }) + }) - save = (ctx) => { - const values = [ - [ - ctx.ref, - ctx.keyword, - ctx.answer, - ctx.refSerialize, - ctx.from, - JSON.stringify(ctx.options), - ], - ]; - const sql = - "INSERT INTO history (ref, keyword, answer, refSerialize, phone, options ) values ?"; + save = (ctx) => { + const values = [[ctx.ref, ctx.keyword, ctx.answer, ctx.refSerialize, ctx.from, JSON.stringify(ctx.options)]] + const sql = 'INSERT INTO history (ref, keyword, answer, refSerialize, phone, options ) values ?' - this.db.query(sql, [values], (err) => { - if (err) throw err; - console.log("Guardado en DB...", values); - }); - this.listHistory.push(ctx); - }; + this.db.query(sql, [values], (err) => { + if (err) throw err + console.log('Guardado en DB...', values) + }) + this.listHistory.push(ctx) + } - createTable = () => - new Promise((resolve) => { - const tableName = "history"; + createTable = () => + new Promise((resolve) => { + const tableName = 'history' - const sql = `CREATE TABLE ${tableName} + const sql = `CREATE TABLE ${tableName} (id INT AUTO_INCREMENT PRIMARY KEY, ref varchar(255) NOT NULL, keyword varchar(255) NOT NULL, @@ -78,29 +68,29 @@ class MyslAdapter { refSerialize varchar(255) NOT NULL, phone varchar(255) NOT NULL, options longtext NOT NULL) - CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci`; + CHARACTER SET utf8mb4 COLLATE utf8mb4_General_ci` - this.db.query(sql, (err) => { - if (err) throw err; - console.log(`Tabla ${tableName} creada correctamente `); - resolve(true); - }); - }); + this.db.query(sql, (err) => { + if (err) throw err + console.log(`Tabla ${tableName} creada correctamente `) + resolve(true) + }) + }) - checkTableExists = () => - new Promise((resolve) => { - const sql = "SHOW TABLES LIKE 'history'"; + checkTableExists = () => + new Promise((resolve) => { + const sql = "SHOW TABLES LIKE 'history'" - this.db.query(sql, (err, rows) => { - if (err) throw err; + this.db.query(sql, (err, rows) => { + if (err) throw err - if (!rows.length) { - this.createTable(); - } + if (!rows.length) { + this.createTable() + } - resolve(!!rows.length); - }); - }); + resolve(!!rows.length) + }) + }) } -module.exports = MyslAdapter; +module.exports = MyslAdapter diff --git a/packages/docs/src/assets/fonts/generated/IBMPlexMono-Regular.module.css b/packages/docs/src/assets/fonts/generated/IBMPlexMono-Regular.module.css index deddf7c..f0ab1c0 100644 --- a/packages/docs/src/assets/fonts/generated/IBMPlexMono-Regular.module.css +++ b/packages/docs/src/assets/fonts/generated/IBMPlexMono-Regular.module.css @@ -8,6 +8,5 @@ font-family: IBMPlexMono-Regular; src: url(IBMPlexMono-Regular-subset.woff2) format('woff2'), url(IBMPlexMono-Regular-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+2C, U+2E, U+41-43, U+46, U+49, U+4B-4F, U+53-55, U+58, - U+61-65, U+67-69, U+6C-76; + unicode-range: U+20, U+2C, U+2E, U+41-43, U+46, U+49, U+4B-4F, U+53-55, U+58, U+61-65, U+67-69, U+6C-76; } diff --git a/packages/docs/src/assets/fonts/generated/IBMPlexMono-SemiBold.module.css b/packages/docs/src/assets/fonts/generated/IBMPlexMono-SemiBold.module.css index e2fdf72..6b47965 100644 --- a/packages/docs/src/assets/fonts/generated/IBMPlexMono-SemiBold.module.css +++ b/packages/docs/src/assets/fonts/generated/IBMPlexMono-SemiBold.module.css @@ -8,6 +8,6 @@ font-family: IBMPlexMono-SemiBold; src: url(IBMPlexMono-SemiBold-subset.woff2) format('woff2'), url(IBMPlexMono-SemiBold-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+24, U+2E, U+30, U+38, U+39, U+41, U+42, U+44, U+47, - U+4E, U+4F, U+52-55, U+57, U+59, U+65, U+68, U+6F, U+72, U+74; + unicode-range: U+20, U+24, U+2E, U+30, U+38, U+39, U+41, U+42, U+44, U+47, U+4E, U+4F, U+52-55, U+57, U+59, U+65, + U+68, U+6F, U+72, U+74; } diff --git a/packages/docs/src/assets/fonts/generated/Pally-Variable.module.css b/packages/docs/src/assets/fonts/generated/Pally-Variable.module.css index 74aa400..e899bbf 100644 --- a/packages/docs/src/assets/fonts/generated/Pally-Variable.module.css +++ b/packages/docs/src/assets/fonts/generated/Pally-Variable.module.css @@ -6,9 +6,8 @@ @font-face { font-family: Pally-Variable; - src: url(Pally-Variable-subset.woff2) format('woff2'), - url(Pally-Variable-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+24, U+2C, U+2E, U+30, U+33, U+39, U+41-43, U+46, - U+49-4D, U+53, U+55, U+58, U+61-65, U+67-69, U+6B-77, U+79; + src: url(Pally-Variable-subset.woff2) format('woff2'), url(Pally-Variable-subset.zopfli.woff) format('woff'); + unicode-range: U+20, U+24, U+2C, U+2E, U+30, U+33, U+39, U+41-43, U+46, U+49-4D, U+53, U+55, U+58, U+61-65, U+67-69, + U+6B-77, U+79; font-weight: 400 700; } diff --git a/packages/docs/src/assets/fonts/generated/SourceSerifPro-Regular.module.css b/packages/docs/src/assets/fonts/generated/SourceSerifPro-Regular.module.css index b1a323f..a491d8c 100644 --- a/packages/docs/src/assets/fonts/generated/SourceSerifPro-Regular.module.css +++ b/packages/docs/src/assets/fonts/generated/SourceSerifPro-Regular.module.css @@ -8,6 +8,5 @@ font-family: SourceSerifPro-Regular; src: url(SourceSerifPro-Regular-subset.woff2) format('woff2'), url(SourceSerifPro-Regular-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+2C, U+2E, U+41-44, U+49, U+4A, U+4C, U+53, U+55, - U+61-65, U+67-69, U+6B-76, U+79; + unicode-range: U+20, U+2C, U+2E, U+41-44, U+49, U+4A, U+4C, U+53, U+55, U+61-65, U+67-69, U+6B-76, U+79; } diff --git a/packages/docs/src/assets/fonts/generated/Synonym-Variable.module.css b/packages/docs/src/assets/fonts/generated/Synonym-Variable.module.css index b834dbb..00cb8df 100644 --- a/packages/docs/src/assets/fonts/generated/Synonym-Variable.module.css +++ b/packages/docs/src/assets/fonts/generated/Synonym-Variable.module.css @@ -6,9 +6,8 @@ @font-face { font-family: Synonym-Variable; - src: url(Synonym-Variable-subset.woff2) format('woff2'), - url(Synonym-Variable-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+24, U+2C, U+2E, U+30, U+33, U+35, U+41-44, U+46, U+47, - U+49, U+4B-4F, U+53-55, U+57-59, U+61, U+63-65, U+67-69, U+6C-76; + src: url(Synonym-Variable-subset.woff2) format('woff2'), url(Synonym-Variable-subset.zopfli.woff) format('woff'); + unicode-range: U+20, U+24, U+2C, U+2E, U+30, U+33, U+35, U+41-44, U+46, U+47, U+49, U+4B-4F, U+53-55, U+57-59, U+61, + U+63-65, U+67-69, U+6C-76; font-weight: 400 700; } diff --git a/packages/docs/src/assets/fonts/generated/TenorSans-Regular.module.css b/packages/docs/src/assets/fonts/generated/TenorSans-Regular.module.css index 819cfa3..b3dbfc6 100644 --- a/packages/docs/src/assets/fonts/generated/TenorSans-Regular.module.css +++ b/packages/docs/src/assets/fonts/generated/TenorSans-Regular.module.css @@ -6,8 +6,7 @@ @font-face { font-family: TenorSans-Regular; - src: url(TenorSans-Regular-subset.woff2) format('woff2'), - url(TenorSans-Regular-subset.zopfli.woff) format('woff'); - unicode-range: U+20, U+24, U+2E, U+30, U+36, U+46, U+49, U+4A, U+53, U+54, - U+61, U+63, U+65, U+69, U+6B, U+6E, U+6F, U+72-75, U+79; + src: url(TenorSans-Regular-subset.woff2) format('woff2'), url(TenorSans-Regular-subset.zopfli.woff) format('woff'); + unicode-range: U+20, U+24, U+2E, U+30, U+36, U+46, U+49, U+4A, U+53, U+54, U+61, U+63, U+65, U+69, U+6B, U+6E, U+6F, + U+72-75, U+79; } diff --git a/packages/docs/src/components/atoms/DigitalOcean.tsx b/packages/docs/src/components/atoms/DigitalOcean.tsx index dc16647..fc97537 100644 --- a/packages/docs/src/components/atoms/DigitalOcean.tsx +++ b/packages/docs/src/components/atoms/DigitalOcean.tsx @@ -56,10 +56,7 @@ export const DigitalOcean = () => ( h-3.1V2h3.2V14.9z M361.9,21.1v1.1c0,4.4,2.6,6.6,6.2,6.6c3.7,0,6.5-2.5,6.5-7.2c0-4.6-2.8-7.1-6.5-7.1 C364.5,14.5,361.9,16.8,361.9,21.1z" /> - + @@ -111,14 +108,7 @@ export const DigitalOcean = () => ( c1.2,1.2,2.6,1.8,4.3,1.8c1.7,0,3.1-0.6,4.3-1.8c1.2-1.2,1.8-2.6,1.8-4.3c0-1.7-0.6-3.1-1.8-4.2 C225.7,46.5,224.3,45.9,222.6,45.9z" /> - + ( c3.5-3.6,5.3-8.4,5.3-14.2V63h-9.7V66.3z M260.6,89.4c-1.7,2-3.9,2.9-6.8,2.9c-2.8,0-5-0.9-6.7-2.9c-1.7-1.9-2.5-4.5-2.5-7.7 c0-3.2,0.9-5.8,2.5-7.7c1.7-1.9,3.9-2.9,6.7-2.9c2.8,0,5,1,6.8,2.9c1.7,2,2.6,4.6,2.6,7.7C263.2,84.9,262.3,87.5,260.6,89.4z" /> - + ( d="M312.7,52.5H303V63h-5.6v9h5.6v16.2c0,5.1,1,8.7,3,10.8c2,2.1,5.6,3.2,10.6,3.2 c1.6,0,3.2-0.1,4.8-0.2l0.4,0v-9l-3.4,0.2c-2.3,0-3.9-0.4-4.7-1.2c-0.8-0.8-1.1-2.6-1.1-5.2V72h9.2v-9h-9.2V52.5z" /> - + ( - Qwind Logo + Qwind Logo Chatbot )) diff --git a/packages/docs/src/components/atoms/Netlify.tsx b/packages/docs/src/components/atoms/Netlify.tsx index 9047eab..3090113 100644 --- a/packages/docs/src/components/atoms/Netlify.tsx +++ b/packages/docs/src/components/atoms/Netlify.tsx @@ -1,11 +1,5 @@ export const Netlify = () => ( - + { {head.title} - + {head.meta.map((m) => ( diff --git a/packages/docs/src/components/core/Social.tsx b/packages/docs/src/components/core/Social.tsx index 43d6ac2..f620441 100644 --- a/packages/docs/src/components/core/Social.tsx +++ b/packages/docs/src/components/core/Social.tsx @@ -34,14 +34,8 @@ export const Social = () => { content="https://campaign.codigoencasa.com" /> */} - - + + @@ -52,10 +46,7 @@ export const Social = () => { name="twitter:title" content="💻 Conviértete en un Programador Backend aprendiendo todo de Cloud y Nodejs" /> - + ) } diff --git a/packages/docs/src/components/core/ToggleMenu.tsx b/packages/docs/src/components/core/ToggleMenu.tsx index 51779fc..567fd46 100644 --- a/packages/docs/src/components/core/ToggleMenu.tsx +++ b/packages/docs/src/components/core/ToggleMenu.tsx @@ -27,9 +27,7 @@ export default component$((props: ItemProps) => { // TODO: document.body.classList.toggle('overflow-hidden') document.getElementById('header')?.classList.toggle('h-screen') - document - .querySelector('#header nav') - ?.classList.toggle('hidden') + document.querySelector('#header nav')?.classList.toggle('hidden') }} > diff --git a/packages/docs/src/components/core/ToggleTheme.tsx b/packages/docs/src/components/core/ToggleTheme.tsx index 00de98e..6ef1196 100644 --- a/packages/docs/src/components/core/ToggleTheme.tsx +++ b/packages/docs/src/components/core/ToggleTheme.tsx @@ -10,16 +10,13 @@ interface ItemProps { export default component$((props: ItemProps) => { const { iconClass } = props const store = useStore({ - theme: - (typeof window !== 'undefined' && window?.localStorage?.theme) || - undefined, + theme: (typeof window !== 'undefined' && window?.localStorage?.theme) || undefined, }) useClientEffect$(() => { store.theme = window.localStorage.theme === 'dark' || - (!('theme' in window.localStorage) && - window.matchMedia('(prefers-color-scheme: dark)').matches) + (!('theme' in window.localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light' }) @@ -42,11 +39,7 @@ export default component$((props: ItemProps) => { } }} > - {store.theme == 'dark' ? ( - - ) : ( - - )} + {store.theme == 'dark' ? : } ) }) diff --git a/packages/docs/src/components/icons/IconArrowDownRight.tsx b/packages/docs/src/components/icons/IconArrowDownRight.tsx index 8adfab2..5fd5087 100644 --- a/packages/docs/src/components/icons/IconArrowDownRight.tsx +++ b/packages/docs/src/components/icons/IconArrowDownRight.tsx @@ -7,9 +7,7 @@ export const IconArrowDownRight = (props: ItemProps) => { return ( { diff --git a/packages/docs/src/components/icons/IconMoon.tsx b/packages/docs/src/components/icons/IconMoon.tsx index fa65ec0..296951f 100644 --- a/packages/docs/src/components/icons/IconMoon.tsx +++ b/packages/docs/src/components/icons/IconMoon.tsx @@ -7,9 +7,7 @@ export const IconMoon = (props: ItemProps) => { return (
    -

    - {props.user.login} -
    +
    {props.user.login}
  • diff --git a/packages/docs/src/components/widgets/Collaborators.tsx b/packages/docs/src/components/widgets/Collaborators.tsx index 23f2844..cfd2d24 100644 --- a/packages/docs/src/components/widgets/Collaborators.tsx +++ b/packages/docs/src/components/widgets/Collaborators.tsx @@ -32,8 +32,7 @@ export default component$((props: { users: User[] }) => { Super estrellas

    - Todo es posible gracias a el mayor recursos de todos, el - recurso humano. Tu tambien puedes{' '} + Todo es posible gracias a el mayor recursos de todos, el recurso humano. Tu tambien puedes{' '} formar parte diff --git a/packages/docs/src/components/widgets/ExtraBar.tsx b/packages/docs/src/components/widgets/ExtraBar.tsx index fda47b2..0d9ae34 100644 --- a/packages/docs/src/components/widgets/ExtraBar.tsx +++ b/packages/docs/src/components/widgets/ExtraBar.tsx @@ -15,8 +15,8 @@ export default component$(() => { 📄 Editar esta pagina

    - Forma parte de esta comunidad mejorando la documentación - siente libre de poder agregar o editar lo que quieras + Forma parte de esta comunidad mejorando la documentación siente libre de poder agregar o editar + lo que quieras

    diff --git a/packages/docs/src/components/widgets/FAQs.tsx b/packages/docs/src/components/widgets/FAQs.tsx index 28aa2c1..5834e24 100644 --- a/packages/docs/src/components/widgets/FAQs.tsx +++ b/packages/docs/src/components/widgets/FAQs.tsx @@ -56,13 +56,9 @@ export default component$(() => { {question} - {answer - .split('\n\n') - .map((paragraph) => ( -

    - {paragraph} -

    - ))} + {answer.split('\n\n').map((paragraph) => ( +

    {paragraph}

    + ))} ))} diff --git a/packages/docs/src/components/widgets/Features.tsx b/packages/docs/src/components/widgets/Features.tsx index 4888086..ddd3dc8 100644 --- a/packages/docs/src/components/widgets/Features.tsx +++ b/packages/docs/src/components/widgets/Features.tsx @@ -50,13 +50,11 @@ export default component$(() => { Caracteristicas

    - Nuestras principales{' '} - funciones + Nuestras principales funciones

    - El secreto es mantener los procesos repetitivos en - procesos automatizados simples, por eso te mostramos en - que destacamos. + El secreto es mantener los procesos repetitivos en procesos automatizados simples, por eso te + mostramos en que destacamos.

    @@ -70,12 +68,8 @@ export default component$(() => {
    -

    - {title} -

    -

    - {description} -

    +

    {title}

    +

    {description}

    ))} diff --git a/packages/docs/src/components/widgets/Hero.tsx b/packages/docs/src/components/widgets/Hero.tsx index b3761f8..01ee042 100644 --- a/packages/docs/src/components/widgets/Hero.tsx +++ b/packages/docs/src/components/widgets/Hero.tsx @@ -9,36 +9,24 @@ import { src as placeholder } from '~/assets/images/chatbot-whatsapp.png?width=4 export default component$(() => { return ( -
    +

    - Crear chatbot{' '} - - WhatsApp - - {' '} - en minutos + Crear chatbot WhatsApp + en minutos

    - - Con esta libreria,{' '} - + Con esta libreria, - puedes configurar respuestas - automatizadas para preguntas frecuentes + puedes configurar respuestas automatizadas para preguntas frecuentes {' '} - , recibir y responder mensajes de manera - automatizada, y hacer un seguimiento de las - interacciones con los clientes. Además, - nuestro Chatbot se integra fácilmente con - otros sistemas y herramientas que ya esté - utilizando en su negocio. + , recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las + interacciones con los clientes. Además, nuestro Chatbot se integra fácilmente con + otros sistemas y herramientas que ya esté utilizando en su negocio.

    @@ -48,10 +36,7 @@ export default component$(() => {
    - + Ver documentación { Miembros

    - Conviértete en un miembro destacado y forma parte del - proyecto y disfruta de manera adelantada de las - actualizaciones{' '} - + Conviértete en un miembro destacado y forma parte del proyecto y disfruta de manera adelantada + de las actualizaciones{' '} + Únete

    diff --git a/packages/docs/src/components/widgets/NavBar.tsx b/packages/docs/src/components/widgets/NavBar.tsx index 56915c9..5b332bc 100644 --- a/packages/docs/src/components/widgets/NavBar.tsx +++ b/packages/docs/src/components/widgets/NavBar.tsx @@ -5,55 +5,45 @@ import { DocumentationCtx } from '~/contexts' /** * options = [] array con la lista de opciones de la documentacion */ -export default component$( - ({ options = [] }: { options: DocumentationCtx[] }) => { - return ( -
    - {options.map((item, i) => ( - - ))} -
    - ) - } -) +export default component$(({ options = [] }: { options: DocumentationCtx[] }) => { + return ( +
    + {options.map((item, i) => ( + + ))} +
    + ) +}) -export const UlCompoent = component$( - (porps: { title: string; list: { link: string; name: string }[] }) => { - return ( -
      -
    • -
      - {porps.title} -
      - +export const UlCompoent = component$((porps: { title: string; list: { link: string; name: string }[] }) => { + return ( +
        +
      • +
        {porps.title}
        + +
      • +
      + ) +}) + +export const LiComponent = component$((porps: { list: { link: string; name: string }[] }) => { + const location = useLocation() + const currentPage = location.pathname + return ( +
        + {porps.list.map((opt) => ( +
      • + + {opt.name} +
      • -
      - ) - } -) - -export const LiComponent = component$( - (porps: { list: { link: string; name: string }[] }) => { - const location = useLocation() - const currentPage = location.pathname - return ( -
        - {porps.list.map((opt) => ( -
      • - - {opt.name} - -
      • - ))} -
      - ) - } -) + ))} +
    + ) +}) diff --git a/packages/docs/src/components/widgets/Navigation.tsx b/packages/docs/src/components/widgets/Navigation.tsx index 779a787..092ed93 100644 --- a/packages/docs/src/components/widgets/Navigation.tsx +++ b/packages/docs/src/components/widgets/Navigation.tsx @@ -1,74 +1,63 @@ import { component$ } from '@builder.io/qwik' -export const ButtonLink = component$( - (props: { name: string; link: string; direction: 'left' | 'right' }) => { - const ArrowRight = () => ( - - - - ) +export const ButtonLink = component$((props: { name: string; link: string; direction: 'left' | 'right' }) => { + const ArrowRight = () => ( + + + + ) - const ArrowLeft = () => ( - - - - ) + const ArrowLeft = () => ( + + + + ) - return ( - - {props.direction === 'left' ? ( - <> - - {props.name} - - ) : ( - <> - {props.name} - - - )} - - ) - } -) + return ( + + {props.direction === 'left' ? ( + <> + + {props.name} + + ) : ( + <> + {props.name} + + + )} + + ) +}) -export default component$( - (props: { pages: ({ name: string; link: string } | null)[] }) => { - const { pages } = props - return ( -
    -
    - {pages[0] ? ( - - ) : null} - {pages[1] ? ( - - ) : null} -
    +export default component$((props: { pages: ({ name: string; link: string } | null)[] }) => { + const { pages } = props + return ( +
    +
    + {pages[0] ? : null} + {pages[1] ? : null}
    - ) - } -) +
    + ) +}) diff --git a/packages/docs/src/components/widgets/Stats.tsx b/packages/docs/src/components/widgets/Stats.tsx index c4dc31a..0721ba7 100644 --- a/packages/docs/src/components/widgets/Stats.tsx +++ b/packages/docs/src/components/widgets/Stats.tsx @@ -5,33 +5,25 @@ export default component$(() => {
    -
    - 132K -
    +
    132K

    Downloads

    -
    - 24.8K -
    +
    24.8K

    Stars

    -
    - 10.3K -
    +
    10.3K

    Forks

    -
    - 48.4K -
    +
    48.4K

    Users

    diff --git a/packages/docs/src/contexts/index.tsx b/packages/docs/src/contexts/index.tsx index 7282539..ca33495 100644 --- a/packages/docs/src/contexts/index.tsx +++ b/packages/docs/src/contexts/index.tsx @@ -13,5 +13,4 @@ export interface User { avatar_url: string } -export const GlobalStore = - createContext('documentation-site') +export const GlobalStore = createContext('documentation-site') diff --git a/packages/docs/src/root.tsx b/packages/docs/src/root.tsx index 2cddda0..61c3906 100644 --- a/packages/docs/src/root.tsx +++ b/packages/docs/src/root.tsx @@ -1,14 +1,5 @@ -import { - component$, - useContextProvider, - useStore, - useStyles$, -} from '@builder.io/qwik' -import { - QwikCityProvider, - RouterOutlet, - ServiceWorkerRegister, -} from '@builder.io/qwik-city' +import { component$, useContextProvider, useStore, useStyles$ } from '@builder.io/qwik' +import { QwikCityProvider, RouterOutlet, ServiceWorkerRegister } from '@builder.io/qwik-city' import { RouterHead } from '~/components/core/RouterHead' import { DarkThemeLauncher } from '~/components/core/DarkThemeLauncher' @@ -78,10 +69,7 @@ export default component$(() => { - + diff --git a/packages/docs/src/routes/docs/database/index.mdx b/packages/docs/src/routes/docs/database/index.mdx index dab499f..01eb796 100644 --- a/packages/docs/src/routes/docs/database/index.mdx +++ b/packages/docs/src/routes/docs/database/index.mdx @@ -4,11 +4,10 @@ import Navigation from '../../../components/widgets/Navigation' # DataBase (Base de datos) - ⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar - algunas configuracion adicional como **user, host, password** para esos - casos te recomendamos guiarte de los - **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** - o si gustas puedes editar esta documentación para ir agregando más info + ⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar algunas configuracion adicional como + **user, host, password** para esos casos te recomendamos guiarte de los + **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** o si gustas puedes editar esta + documentación para ir agregando más info Es la pieza encargada de mantener el **"estado"** de una conversación, para mayor facilidad la libreria te proporcia diferentes conectores que se de adapten mejor a tu desarrollo diff --git a/packages/docs/src/routes/docs/essential/index.mdx b/packages/docs/src/routes/docs/essential/index.mdx index 8187544..0f0dc45 100644 --- a/packages/docs/src/routes/docs/essential/index.mdx +++ b/packages/docs/src/routes/docs/essential/index.mdx @@ -22,12 +22,7 @@ Tan sencillo como decir **palabra/s clave** y **mensaje a responder** Ambos metodos **[addKeyword](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addKeyword.js)** y el **[addAnswer](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addAnswer.js)** tienen una serie opciones disponibles ```js -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const flowPrincipal = addKeyword(['hola', 'alo']) .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?']) @@ -39,11 +34,10 @@ const flowPrincipal = addKeyword(['hola', 'alo']) ## Provider (Proveedor) - ⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar - algunas configuracion adicional como **token, api, etc.** para esos casos te - recomendamos guiarte de los - **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** - o si gustas puedes editar esta documentación para ir agregando más info + ⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar algunas configuracion adicional como + **token, api, etc.** para esos casos te recomendamos guiarte de los + **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** o si gustas puedes editar esta + documentación para ir agregando más info Es la pieza que conectara tu flujo con Whatsapp. En este chatbot tenemos varios proveedores disponibles la mayoria gratis pero tambien tenemos integracion la api oficial de whatsapp o twilio @@ -71,11 +65,10 @@ Los proveedores disponibles hasta el momento son los siguientes: ## DataBase (Base de datos) - ⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar - algunas configuracion adicional como **user, host, password** para esos - casos te recomendamos guiarte de los - **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** - o si gustas puedes editar esta documentación para ir agregando más info + ⚡ Dependiendo del tipo de conector que utlices puede que necesites pasar algunas configuracion adicional como + **user, host, password** para esos casos te recomendamos guiarte de los + **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** o si gustas puedes editar esta + documentación para ir agregando más info Es la pieza encargada de mantener el **"estado"** de una conversación, para mayor facilidad la libreria te proporcia diferentes conectores que se de adapten mejor a tu desarrollo diff --git a/packages/docs/src/routes/docs/example/index.mdx b/packages/docs/src/routes/docs/example/index.mdx index 8daded3..057fcc6 100644 --- a/packages/docs/src/routes/docs/example/index.mdx +++ b/packages/docs/src/routes/docs/example/index.mdx @@ -5,12 +5,7 @@ import Navigation from '../../../components/widgets/Navigation' Si copias y pegas este codigo y tu entorno de trabajo cumple con todos los requesitos te debe funcionar abajo explico muy por encima ```js -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const MockAdapter = require('@bot-whatsapp/database/mock') @@ -42,12 +37,7 @@ main() En esta parte solo estamos declaramos las dependencias que vamos a utilizar. Si quieres saber a fondo cada una de las funciones te recomiendo pasarte por la seccion de **[conceptos](/docs/concepts)** ```js -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const MockAdapter = require('@bot-whatsapp/database/mock') diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 94b1f59..0c2cf0b 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -9,12 +9,7 @@ Tan sencillo como decir **palabra/s clave** y **mensaje a responder** Ambos metodos **[addKeyword](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addKeyword.js)** y el **[addAnswer](https://github.com/codigoencasa/bot-whatsapp/blob/dev/packages/bot/io/methods/addAnswer.js)** tienen una serie opciones disponibles ```js -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const flowPrincipal = addKeyword(['hola', 'alo']) .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?']) @@ -81,37 +76,21 @@ Esta funcion se utliza para responder un mensaje despues del `addKeyword()` ```js const { addKeyword } = require('@bot-whatsapp/bot') -const flowString = addKeyword('hola').addAnswer( - 'Este mensaje se enviara 1 segundo despues', - { - delay: 1000, - } -) +const flowString = addKeyword('hola').addAnswer('Este mensaje se enviara 1 segundo despues', { + delay: 1000, +}) -const flowString = addKeyword('hola').addAnswer( - 'Este mensaje envia una imagen', - { - media: 'https://i.imgur.com/0HpzsEm.png', - } -) +const flowString = addKeyword('hola').addAnswer('Este mensaje envia una imagen', { + media: 'https://i.imgur.com/0HpzsEm.png', +}) -const flowString = addKeyword('hola').addAnswer( - 'Este mensaje envia tres botones', - { - buttons: [ - { body: 'Boton 1' }, - { body: 'Boton 2' }, - { body: 'Boton 3' }, - ], - } -) +const flowString = addKeyword('hola').addAnswer('Este mensaje envia tres botones', { + buttons: [{ body: 'Boton 1' }, { body: 'Boton 2' }, { body: 'Boton 3' }], +}) -const flowString = addKeyword('hola').addAnswer( - 'Este mensaje espera una respueta del usuario', - { - capture: true, - } -) +const flowString = addKeyword('hola').addAnswer('Este mensaje espera una respueta del usuario', { + capture: true, +}) ``` --- @@ -123,13 +102,9 @@ Este argumento se utiliza para obtener el contexto de la conversación ```js const { addKeyword } = require('@bot-whatsapp/bot') -const flowString = addKeyword('hola').addAnswer( - 'Indica cual es tu email', - null, - (ctx) => { - console.log('👉 Informacion del contexto: ', ctx) - } -) +const flowString = addKeyword('hola').addAnswer('Indica cual es tu email', null, (ctx) => { + console.log('👉 Informacion del contexto: ', ctx) +}) ``` --- @@ -143,13 +118,9 @@ se repetira el mensaje `Indica cual es tu email` ```js const { addKeyword } = require('@bot-whatsapp/bot') -const flowString = addKeyword('hola').addAnswer( - 'Indica cual es tu email', - null, - (ctx, { fallBack }) => { - if (!ctx.body.includes('@')) return fallBack() - } -) +const flowString = addKeyword('hola').addAnswer('Indica cual es tu email', null, (ctx, { fallBack }) => { + if (!ctx.body.includes('@')) return fallBack() +}) ``` --- diff --git a/packages/docs/src/routes/docs/index.mdx b/packages/docs/src/routes/docs/index.mdx index 505bd6a..ab6d5f1 100644 --- a/packages/docs/src/routes/docs/index.mdx +++ b/packages/docs/src/routes/docs/index.mdx @@ -4,10 +4,9 @@ import Navigation from '../../components/widgets/Navigation' # Introducción - **Atención** estás leyendo la documentación de la **versión v2** de esta - librería, si vienes de la versión anterior te recomendamos pasarte por la - sección de **[migración](/docs/migration/)** para que puedas disfrutar de - las nuevas características. + **Atención** estás leyendo la documentación de la **versión v2** de esta librería, si vienes de la versión anterior + te recomendamos pasarte por la sección de **[migración](/docs/migration/)** para que puedas disfrutar de las nuevas + características. ## ¿Qué es esto? @@ -34,10 +33,7 @@ npm create bot-whatsapp@latest muted playsinline > - +
    diff --git a/packages/docs/src/routes/docs/install/index.mdx b/packages/docs/src/routes/docs/install/index.mdx index 342043a..4fa8575 100644 --- a/packages/docs/src/routes/docs/install/index.mdx +++ b/packages/docs/src/routes/docs/install/index.mdx @@ -28,10 +28,7 @@ El **CLI** te hace una revisión previa, de versión de Node y sistema operativo muted playsinline > - +
    @@ -54,10 +51,8 @@ Cada plantilla tiene sus dependencias necesarias basadas en tu previa selección ``` - 📄 Si deseas cambiar tu **proveedor o tu motor** de base de datos no es - necesario volver ejecutar el CLI (lo puedes hacer sin problema) aunque - tambien basta con solo modificar un par de lineas. [Ver - explicación](/docs/essential) + 📄 Si deseas cambiar tu **proveedor o tu motor** de base de datos no es necesario volver ejecutar el CLI (lo puedes + hacer sin problema) aunque tambien basta con solo modificar un par de lineas. [Ver explicación](/docs/essential) --- diff --git a/packages/docs/src/routes/docs/layout!.tsx b/packages/docs/src/routes/docs/layout!.tsx index 8f49e8a..8fe70cb 100644 --- a/packages/docs/src/routes/docs/layout!.tsx +++ b/packages/docs/src/routes/docs/layout!.tsx @@ -27,11 +27,7 @@ export default component$(() => {
    -
    +
    @@ -54,8 +50,7 @@ export const head: DocumentHead = { meta: [ { name: 'description', - content: - 'Crear chatbot WhatsApp en minutos — Servicio de chatbot para whatspp gratis proyecto OpenSource', + content: 'Crear chatbot WhatsApp en minutos — Servicio de chatbot para whatspp gratis proyecto OpenSource', }, ], } diff --git a/packages/docs/src/routes/docs/migration/index.mdx b/packages/docs/src/routes/docs/migration/index.mdx index 84a1658..2e09f97 100644 --- a/packages/docs/src/routes/docs/migration/index.mdx +++ b/packages/docs/src/routes/docs/migration/index.mdx @@ -49,11 +49,7 @@ En la **_versión (legacy)_** se implementas los flujos de esta manera, en dos a "title": "¿Que te interesa ver?", "message": "Abajo unos botons", "footer": "", - "buttons": [ - { "body": "Telefonos" }, - { "body": "Computadoras" }, - { "body": "Otros" } - ] + "buttons": [{ "body": "Telefonos" }, { "body": "Computadoras" }, { "body": "Otros" }] } }, "catalogo": { @@ -70,51 +66,28 @@ En esta versión es mucho más sencillo, abajo encontrarás un ejemplo del mismo ```js //app.js -const { - createBot, - createProvider, - createFlow, - addKeyword, - addChild, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword, addChild } = require('@bot-whatsapp/bot') const BaileysProvider = require('@bot-whatsapp/provider/baileys') //Provider const MockAdapter = require('@bot-whatsapp/database/mock') //Base de datos /** * Declarando flujos principales. */ -const flowHola = addKeyword(['hola', 'ola', 'alo']).addAnswer( - 'Bienvenido a tu tienda online!' -) +const flowHola = addKeyword(['hola', 'ola', 'alo']).addAnswer('Bienvenido a tu tienda online!') -const flowAdios = addKeyword(['adios', 'bye']) - .addAnswer('Que te vaya bien!!') - .addAnswer('Hasta luego!') +const flowAdios = addKeyword(['adios', 'bye']).addAnswer('Que te vaya bien!!').addAnswer('Hasta luego!') -const flowProductos = addKeyword(['productos', 'info']).addAnswer( - 'Te envio una imagen', - { - buttons: [ - { body: 'Telefonos' }, - { body: 'Computadoras' }, - { body: 'Otros' }, - ], - } -) +const flowProductos = addKeyword(['productos', 'info']).addAnswer('Te envio una imagen', { + buttons: [{ body: 'Telefonos' }, { body: 'Computadoras' }, { body: 'Otros' }], +}) -const flowCatalogo = addKeyword(['imagen', 'foto']).addAnswer( - 'Te envio una imagen', - { media: 'https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif' } -) +const flowCatalogo = addKeyword(['imagen', 'foto']).addAnswer('Te envio una imagen', { + media: 'https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif', +}) const main = async () => { const adapterDB = new MockAdapter() - const adapterFlow = createFlow([ - flowHola, - flowAdios, - flowProductos, - flowCatalogo, - ]) //Se crean los flujos. + const adapterFlow = createFlow([flowHola, flowAdios, flowProductos, flowCatalogo]) //Se crean los flujos. const adapterProvider = createProvider(BaileysProvider) createBot({ flow: adapterFlow, diff --git a/packages/docs/src/routes/docs/overview/index.mdx b/packages/docs/src/routes/docs/overview/index.mdx index 79830ff..7d2e57c 100644 --- a/packages/docs/src/routes/docs/overview/index.mdx +++ b/packages/docs/src/routes/docs/overview/index.mdx @@ -49,17 +49,15 @@ Qwik is a new kind of web framework that can deliver instant loading web applica

    Instant-on

    - Unlike other frameworks, Qwik is resumable which means Qwik - applications require 0 hydration. This allows Qwik apps to have - instant-on interactivity, regardless of size or complexity + Unlike other frameworks, Qwik is resumable which means Qwik applications require 0 hydration. This allows + Qwik apps to have instant-on interactivity, regardless of size or complexity

    Optimized for speed

    - Qwik has unprecedented performance, offering sub-second full page - loads even on mobile devices. Qwik achieves this by delivering pure - HTML, and incrementally loading JS only as-needed. + Qwik has unprecedented performance, offering sub-second full page loads even on mobile devices. Qwik + achieves this by delivering pure HTML, and incrementally loading JS only as-needed.

    diff --git a/packages/docs/src/routes/docs/providers/index.mdx b/packages/docs/src/routes/docs/providers/index.mdx index 0f6db6a..e534576 100644 --- a/packages/docs/src/routes/docs/providers/index.mdx +++ b/packages/docs/src/routes/docs/providers/index.mdx @@ -4,11 +4,10 @@ import Navigation from '../../../components/widgets/Navigation' # Proveedores - ⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar - algunas configuracion adicional como **token, api, etc.** para esos casos te - recomendamos guiarte de los - **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** - o si gustas puedes editar esta documentación para ir agregando más info + ⚡ Dependiendo del tipo de proveedor que utlices puede que necesites pasar algunas configuracion adicional como + **token, api, etc.** para esos casos te recomendamos guiarte de los + **[starters](https://github.com/codigoencasa/bot-whatsapp/tree/dev/starters/apps)** o si gustas puedes editar esta + documentación para ir agregando más info Es la pieza que conectara tu flujo con Whatsapp. En este chatbot tenemos varios proveedores disponibles la mayoria gratis pero tambien tenemos integracion la api oficial de whatsapp o twilio diff --git a/packages/docs/src/routes/docs/providers/meta/index.mdx b/packages/docs/src/routes/docs/providers/meta/index.mdx index a44476f..d0f1d6f 100644 --- a/packages/docs/src/routes/docs/providers/meta/index.mdx +++ b/packages/docs/src/routes/docs/providers/meta/index.mdx @@ -59,10 +59,7 @@ En el **archivo principal** del bot donde estás implementando la función del a - **jwtToken:** Lo puedes encontrar en la pagina anterior - **verifyToken:** Puedes escribir lo que quieras es como una palabra clave - - En el ejemplo de abajo puedes ver como una sugerencia de como puede ser - utilizando variables de entorno - +En el ejemplo de abajo puedes ver como una sugerencia de como puede ser utilizando variables de entorno ```js const main = async () => { diff --git a/packages/docs/src/routes/docs/providers/twilio/index.mdx b/packages/docs/src/routes/docs/providers/twilio/index.mdx index 5548ad5..37fc6dd 100644 --- a/packages/docs/src/routes/docs/providers/twilio/index.mdx +++ b/packages/docs/src/routes/docs/providers/twilio/index.mdx @@ -5,10 +5,7 @@ import Navigation from '../../../../components/widgets/Navigation' Twilio es una plataforma de desarrollo que permite a los desarrolladores construir aplicaciones de comunicación en la nube y sistemas web. Las API de comunicaciones de Twilio permiten a las empresas proporcionar la experiencia de comunicación adecuada para sus clientes dentro de la web y las aplicaciones móviles. Al usar las API de Twilio, los desarrolladores pueden agregar rápidamente esta funcionalidad a una aplicación, como mensajes de voz, videollamadas, mensajes de texto y más. - - Twilio te proporciona una cuenta **Sandbox** para que puedas probar - gratuitamente el servicio - +Twilio te proporciona una cuenta **Sandbox** para que puedas probar gratuitamente el servicio ### Requerimientos @@ -66,10 +63,7 @@ En el **archivo principal** del bot donde estás implementando la función del a - **ACC_VENDOR:** Es el numero de whatsapp (si ya tienes el plan de pago de Twilio usa el numero que compraste), si aun estas en modo sandbox utliza el numero proporcionado en el paso numero 2 - - En el ejemplo de abajo puedes ver como una sugerencia de como puede ser - utilizando variables de entorno - +En el ejemplo de abajo puedes ver como una sugerencia de como puede ser utilizando variables de entorno ```js const main = async () => { diff --git a/packages/docs/src/routes/index.tsx b/packages/docs/src/routes/index.tsx index 9b0f04a..71fa15a 100644 --- a/packages/docs/src/routes/index.tsx +++ b/packages/docs/src/routes/index.tsx @@ -13,8 +13,7 @@ import { GITHUB_TOKEN } from './docs/constant' // import { SearchModal } from '~/components/widgets/SearchModal' export const onGet: RequestHandlerNetlify = async ({ platform }) => { - const CHECK_GITHUB_TOKEN = - (platform as any)?.['GITHUB_TOKEN'] ?? GITHUB_TOKEN + const CHECK_GITHUB_TOKEN = (platform as any)?.['GITHUB_TOKEN'] ?? GITHUB_TOKEN const dataGithub = await fetchGithub(CHECK_GITHUB_TOKEN) const dataOpenCollective = await fetchOpenCollective() return { @@ -52,8 +51,7 @@ export const head: DocumentHead = { meta: [ { name: 'description', - content: - 'Crear chatbot WhatsApp en minutos — Servicio de chatbot para whatspp gratis proyecto OpenSource', + content: 'Crear chatbot WhatsApp en minutos — Servicio de chatbot para whatspp gratis proyecto OpenSource', }, ], } diff --git a/packages/docs/src/services/github.ts b/packages/docs/src/services/github.ts index e60d250..6ef1186 100644 --- a/packages/docs/src/services/github.ts +++ b/packages/docs/src/services/github.ts @@ -3,17 +3,14 @@ * @returns */ export const fetchGithub = async (token: string) => { - const data = await fetch( - `https://api.github.com/repos/codigoencasa/bot-whatsapp/contributors`, - { - method: 'GET', - headers: { - Accept: 'application/vnd.github+json', - 'X-GitHub-Api-Version': '2022-11-28', - Authorization: `Bearer ${token}`, - }, - } - ) + const data = await fetch(`https://api.github.com/repos/codigoencasa/bot-whatsapp/contributors`, { + method: 'GET', + headers: { + Accept: 'application/vnd.github+json', + 'X-GitHub-Api-Version': '2022-11-28', + Authorization: `Bearer ${token}`, + }, + }) const listUsers = await data.json() return listUsers.map((u: any) => ({ ...u, diff --git a/packages/docs/src/services/opencollective.ts b/packages/docs/src/services/opencollective.ts index 9a89f25..55e7e75 100644 --- a/packages/docs/src/services/opencollective.ts +++ b/packages/docs/src/services/opencollective.ts @@ -3,12 +3,9 @@ * @returns */ export const fetchOpenCollective = async () => { - const data = await fetch( - `https://opencollective.com/bot-whatsapp/members/users.json?limit=22&offset=0`, - { - method: 'GET', - } - ) + const data = await fetch(`https://opencollective.com/bot-whatsapp/members/users.json?limit=22&offset=0`, { + method: 'GET', + }) const listUsers = await data.json() return listUsers.map((u: any) => ({ html_url: u.profile, diff --git a/packages/docs/tailwind.config.js b/packages/docs/tailwind.config.js index 1614b2e..a92fde1 100644 --- a/packages/docs/tailwind.config.js +++ b/packages/docs/tailwind.config.js @@ -76,9 +76,7 @@ module.exports = { a: { fontWeight: theme('fontWeight.semibold'), textDecoration: 'none', - borderBottom: `1px solid ${theme( - 'colors.sky.300' - )}`, + borderBottom: `1px solid ${theme('colors.sky.300')}`, }, 'a:hover': { borderBottomWidth: '2px', diff --git a/packages/portal/.vscode/qwik-city.code-snippets b/packages/portal/.vscode/qwik-city.code-snippets index b6c1c17..361ddf7 100644 --- a/packages/portal/.vscode/qwik-city.code-snippets +++ b/packages/portal/.vscode/qwik-city.code-snippets @@ -3,11 +3,7 @@ "scope": "javascriptreact,typescriptreact", "prefix": "q:onGet", "description": "onGet function for a route index", - "body": [ - "export const onGet: RequestHandler = (request) => {", - " $0", - "};" - ] + "body": ["export const onGet: RequestHandler = (request) => {", " $0", "};"] }, "onGet (typed)": { "scope": "javascriptreact,typescriptreact", diff --git a/packages/portal/.vscode/qwik.code-snippets b/packages/portal/.vscode/qwik.code-snippets index 4b89dbf..c2a8a8f 100644 --- a/packages/portal/.vscode/qwik.code-snippets +++ b/packages/portal/.vscode/qwik.code-snippets @@ -56,24 +56,13 @@ "scope": "javascriptreact,typescriptreact", "prefix": "q:useTask", "description": "useTask$() function hook", - "body": [ - "useTask$(({ track }) => {", - " track(() => $1);", - " $0", - "});", - "" - ] + "body": ["useTask$(({ track }) => {", " track(() => $1);", " $0", "});", ""] }, "useResource": { "scope": "javascriptreact,typescriptreact", "prefix": "q:useResource", "description": "useResource$() declaration", - "body": [ - "const $1 = useResource$(({ track, cleanup }) => {", - " $0", - "});", - "" - ] + "body": ["const $1 = useResource$(({ track, cleanup }) => {", " $0", "});", ""] }, "useServerMount": { "scope": "javascriptreact,typescriptreact", diff --git a/packages/portal/portal.http.js b/packages/portal/portal.http.js index 3066c12..122f2de 100644 --- a/packages/portal/portal.http.js +++ b/packages/portal/portal.http.js @@ -5,14 +5,9 @@ const polka = require('polka') const HTTP_PORT = process.env.PORT || 3000 const QR_FILE = process.env.QR_FILE ?? 'bot' -const PUBLIC_URL = - process.env.PUBLIC_URL ?? - process.env.RAILWAY_STATIC_URL ?? - 'http://localhost' +const PUBLIC_URL = process.env.PUBLIC_URL ?? process.env.RAILWAY_STATIC_URL ?? 'http://localhost' -const dir = [join(__dirname, 'dist'), join(__dirname, '..', 'dist')].find((i) => - existsSync(i) -) +const dir = [join(__dirname, 'dist'), join(__dirname, '..', 'dist')].find((i) => existsSync(i)) const serve = require('serve-static')(dir) /** @@ -32,14 +27,8 @@ const start = (args) => { console.log(``) console.log(bgYellow(`🚩 ESCANEAR QR 🚩`)) console.log(cyan(`Existen varias maneras de escanear el QR code`)) - console.log( - cyan(`- Tambien puedes visitar `), - yellow(`${publicSite}:${port}`) - ) - console.log( - cyan(`- Se ha creado un archivo que finaliza `), - yellow('qr.png') - ) + console.log(cyan(`- Tambien puedes visitar `), yellow(`${publicSite}:${port}`)) + console.log(cyan(`- Se ha creado un archivo que finaliza `), yellow('qr.png')) console.log(``) } diff --git a/packages/portal/src/components/header/header.tsx b/packages/portal/src/components/header/header.tsx index f1c7fa7..ebaa11b 100644 --- a/packages/portal/src/components/header/header.tsx +++ b/packages/portal/src/components/header/header.tsx @@ -8,28 +8,18 @@ export default component$(() => { return (
    • - + Docs
    • - + Examples
    • diff --git a/packages/portal/src/components/icons/qwik.tsx b/packages/portal/src/components/icons/qwik.tsx index 3bd8d91..fc113f6 100644 --- a/packages/portal/src/components/icons/qwik.tsx +++ b/packages/portal/src/components/icons/qwik.tsx @@ -1,11 +1,5 @@ export const QwikLogo = () => ( - + { @@ -20,12 +15,7 @@ export const QR = component$(() => { return (
      - QR + QR
      ) }) diff --git a/packages/portal/src/components/router-head/router-head.tsx b/packages/portal/src/components/router-head/router-head.tsx index c0811e4..dee9459 100644 --- a/packages/portal/src/components/router-head/router-head.tsx +++ b/packages/portal/src/components/router-head/router-head.tsx @@ -10,10 +10,7 @@ export const RouterHead = component$(() => { {head.title} - + {head.meta.map((m) => ( diff --git a/packages/portal/src/global.css b/packages/portal/src/global.css index cc17b32..6b1eeb6 100644 --- a/packages/portal/src/global.css +++ b/packages/portal/src/global.css @@ -15,8 +15,7 @@ body { background-color: #fafafa; - font-family: 'Inter', sans-serif, ui-sans-serif, system-ui, -apple-system, - BlinkMacSystemFont, sans-serif; + font-family: 'Inter', sans-serif, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif; padding: 20px 20px 40px 20px; } diff --git a/packages/portal/src/routes/index.css b/packages/portal/src/routes/index.css index f5ff37b..cf07671 100644 --- a/packages/portal/src/routes/index.css +++ b/packages/portal/src/routes/index.css @@ -12,8 +12,7 @@ .page .btn-link { background: white; - box-shadow: rgb(0 0 0 / 16%) 0px 10px 36px 0px, - rgb(0 0 0 / 6%) 0px 0px 0px 1px; + box-shadow: rgb(0 0 0 / 16%) 0px 10px 36px 0px, rgb(0 0 0 / 6%) 0px 0px 0px 1px; padding: 10px; border-radius: 5px; font-weight: 600; diff --git a/packages/portal/src/routes/index.tsx b/packages/portal/src/routes/index.tsx index 44c8117..2a26307 100644 --- a/packages/portal/src/routes/index.tsx +++ b/packages/portal/src/routes/index.tsx @@ -15,19 +15,13 @@ export default component$(() => {

      Whatsapp QR

      - Con esta libreria, puedes configurar respuestas - automatizadas para preguntas frecuentes, recibir y responder - mensajes de manera automatizada, y hacer un seguimiento de - las interacciones con los clientes.
      Además, nuestro - Chatbot se integra fácilmente con otros sistemas y - herramientas que ya esté utilizando en su negocio. + Con esta libreria, puedes configurar respuestas automatizadas para preguntas frecuentes, recibir y + responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los + clientes.
      Además, nuestro Chatbot se integra fácilmente con otros sistemas y herramientas que + ya esté utilizando en su negocio.

      diff --git a/packages/provider/src/meta/index.js b/packages/provider/src/meta/index.js index b3a106b..2b2e0e0 100644 --- a/packages/provider/src/meta/index.js +++ b/packages/provider/src/meta/index.js @@ -56,15 +56,11 @@ class MetaProvider extends ProviderClass { sendMessageMeta = async (body) => { try { - const response = await axios.post( - `${URL}/${this.numberId}/messages`, - body, - { - headers: { - Authorization: `Bearer ${this.jwtToken}`, - }, - } - ) + const response = await axios.post(`${URL}/${this.numberId}/messages`, body, { + headers: { + Authorization: `Bearer ${this.jwtToken}`, + }, + }) return response.data } catch (error) { return Promise.resolve(error) @@ -106,8 +102,7 @@ class MetaProvider extends ProviderClass { */ sendMessage = async (number, message, { options }) => { if (options?.buttons?.length) return console.log('Envio de botones') - if (options?.media) - return this.sendMedia(number, message, options.media) + if (options?.media) return this.sendMedia(number, message, options.media) this.sendtext(number, message) } diff --git a/packages/provider/src/meta/server.js b/packages/provider/src/meta/server.js index 3d6ef61..cbd59b0 100644 --- a/packages/provider/src/meta/server.js +++ b/packages/provider/src/meta/server.js @@ -81,9 +81,7 @@ class MetaWebHookServer extends EventEmitter { * @returns */ buildHTTPServer = () => { - this.metaServer - .use(urlencoded({ extended: true })) - .get('/webhook', this.verifyToken) + this.metaServer.use(urlencoded({ extended: true })).get('/webhook', this.verifyToken) this.metaServer .use(urlencoded({ extended: true })) @@ -99,9 +97,7 @@ class MetaWebHookServer extends EventEmitter { this.metaServer.listen(this.metaPort, () => { console.log(``) console.log(`[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"`) - console.log( - `[meta]: POST http://localhost:${this.metaPort}/webhook` - ) + console.log(`[meta]: POST http://localhost:${this.metaPort}/webhook`) console.log(`[meta]: Más información en la documentacion`) console.log(``) }) diff --git a/packages/provider/src/twilio/index.js b/packages/provider/src/twilio/index.js index 7c25bb9..e1a50dc 100644 --- a/packages/provider/src/twilio/index.js +++ b/packages/provider/src/twilio/index.js @@ -86,12 +86,8 @@ class TwilioProvider extends ProviderClass { */ sendButtons = async () => { console.log(``) - console.log( - `[NOTA]: Actualmente enviar botons con Twilio esta en desarrollo` - ) - console.log( - `[NOTA]: https://www.twilio.com/es-mx/docs/whatsapp/buttons` - ) + console.log(`[NOTA]: Actualmente enviar botons con Twilio esta en desarrollo`) + console.log(`[NOTA]: https://www.twilio.com/es-mx/docs/whatsapp/buttons`) console.log(``) } @@ -104,10 +100,8 @@ class TwilioProvider extends ProviderClass { */ sendMessage = async (number, message, { options }) => { number = parseNumber(number) - if (options?.buttons?.length) - this.sendButtons(number, message, options.buttons) - if (options?.media) - return this.sendMedia(number, message, options.media) + if (options?.buttons?.length) this.sendButtons(number, message, options.buttons) + if (options?.media) return this.sendMedia(number, message, options.media) return this.vendor.messages.create({ body: message, from: `whatsapp:+${this.vendorNumber}`, diff --git a/packages/provider/src/twilio/server.js b/packages/provider/src/twilio/server.js index ae09da7..aaf49c2 100644 --- a/packages/provider/src/twilio/server.js +++ b/packages/provider/src/twilio/server.js @@ -51,9 +51,7 @@ class TwilioWebHookServer extends EventEmitter { this.twilioServer.listen(this.twilioPort, () => { console.log(``) console.log(`[Twilio]: Agregar esta url "WHEN A MESSAGE COMES IN"`) - console.log( - `[Twilio]: POST http://localhost:${this.twilioPort}/twilio-hook` - ) + console.log(`[Twilio]: POST http://localhost:${this.twilioPort}/twilio-hook`) console.log(`[Twilio]: Más información en la documentacion`) console.log(``) }) diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 3e1b630..1369af2 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -4,11 +4,7 @@ const { createWriteStream } = require('fs') const { Console } = require('console') const mime = require('mime-types') -const { - venomCleanNumber, - venomGenerateImage, - venomisValidNumber, -} = require('./utils') +const { venomCleanNumber, venomGenerateImage, venomisValidNumber } = require('./utils') const logger = new Console({ stdout: createWriteStream(`${process.cwd()}/venom.log`), @@ -108,8 +104,7 @@ class VenomProvider extends ProviderClass { const listEvents = this.busEvents() for (const { event, func } of listEvents) { - if (this.vendor[event]) - this.vendor[event]((payload) => func(payload)) + if (this.vendor[event]) this.vendor[event]((payload) => func(payload)) } } @@ -122,16 +117,13 @@ class VenomProvider extends ProviderClass { * @returns */ sendButtons = async (number, message, buttons = []) => { - const NOTE_VENOM_BUTTON = [ - `Actualmente VENOM tiene problemas con la API`, - `para el envio de Botones`, - ].join('\n') + const NOTE_VENOM_BUTTON = [`Actualmente VENOM tiene problemas con la API`, `para el envio de Botones`].join( + '\n' + ) console.log(`[NOTA]: ${NOTE_VENOM_BUTTON}`) - const buttonToStr = [message] - .concat(buttons.map((btn) => `${btn.body}`)) - .join(`\n`) + const buttonToStr = [message].concat(buttons.map((btn) => `${btn.body}`)).join(`\n`) return this.vendor.sendText(number, buttonToStr) // return this.vendor.sendButtons(number, "Title", buttons1, "Description"); } @@ -194,12 +186,9 @@ class VenomProvider extends ProviderClass { const fileDownloaded = await generalDownload(mediaUrl) const mimeType = mime.lookup(fileDownloaded) - if (mimeType.includes('image')) - return this.sendImage(number, fileDownloaded, text) - if (mimeType.includes('video')) - return this.sendVideo(number, fileDownloaded, text) - if (mimeType.includes('audio')) - return this.sendAudio(number, fileDownloaded) + if (mimeType.includes('image')) return this.sendImage(number, fileDownloaded, text) + if (mimeType.includes('video')) return this.sendVideo(number, fileDownloaded, text) + if (mimeType.includes('audio')) return this.sendAudio(number, fileDownloaded) return this.sendFile(number, fileDownloaded, text) } @@ -213,10 +202,8 @@ class VenomProvider extends ProviderClass { */ sendMessage = async (userId, message, { options }) => { const number = venomCleanNumber(userId) - if (options?.buttons?.length) - return this.sendButtons(number, message, options.buttons) - if (options?.media) - return this.sendMedia(number, options.media, message) + if (options?.buttons?.length) return this.sendButtons(number, message, options.buttons) + if (options?.media) return this.sendMedia(number, options.media, message) return this.vendor.sendText(number, message) } } From 76ba717927a75b3d6299206aa0b8aee2bc25b726 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Feb 2023 18:31:51 +0100 Subject: [PATCH 42/53] feat(provider): :zap: possible get class provider --- __test__/01-case.test.js | 7 +----- __test__/09-case.test.js | 41 +++++++++++++++++++++++++++++++++ packages/bot/core/core.class.js | 3 +++ 3 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 __test__/09-case.test.js diff --git a/__test__/01-case.test.js b/__test__/01-case.test.js index bce4a42..57ae08c 100644 --- a/__test__/01-case.test.js +++ b/__test__/01-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') test(`[Caso - 01] Flow Basico`, async () => { const [VALUE_A, VALUE_B] = ['hola', 'buenas'] diff --git a/__test__/09-case.test.js b/__test__/09-case.test.js new file mode 100644 index 0000000..417ce31 --- /dev/null +++ b/__test__/09-case.test.js @@ -0,0 +1,41 @@ +const { test } = require('uvu') +const assert = require('uvu/assert') +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_MOCK = require('../packages/provider/src/mock') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') + +let PROVIDER = undefined + +test(`[Caso - 09] Check provider WS`, async () => { + const [VALUE_A, VALUE_B] = ['hola', 'buenas'] + + const flow = addKeyword(VALUE_A).addAnswer(VALUE_B, null, async (_, { provider }) => { + PROVIDER = provider + }) + const provider = createProvider(PROVIDER_MOCK) + const database = new MOCK_DB() + + createBot({ + database, + flow: createFlow([flow]), + provider, + }) + + provider.delaySendMessage(100, 'message', { + from: '000', + body: VALUE_A, + }) + + await delay(100) + + const prevMsg = database.getPrevByNumber('000') + + assert.is(prevMsg.answer, VALUE_B) + assert.is(typeof PROVIDER.sendMessage, 'function') +}) + +test.run() + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index a4a0cd0..29cf5d1 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -196,8 +196,11 @@ class CoreClass { // 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo const cbEveryCtx = async (inRef) => { + const provider = this.providerClass + if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve() return this.flowClass.allCallbacks[inRef](messageCtxInComming, { + provider, fallBack, flowDynamic, endFlow, From 276fc0cf88d6a3ed2c0a2f0b4da61482c0e946b5 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sun, 5 Feb 2023 15:01:32 +0100 Subject: [PATCH 43/53] chore(release): 0.1.20 --- CHANGELOG.md | 21 +++++++++++++++++++++ package.json | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0bdbfa..01adb7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.1.20](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.19...v0.1.20) (2023-02-05) + + +### Features + +* **cli:** :fire: add regex expression in addKeyworkd ([e34560c](https://github.com/leifermendez/bot-whatsapp/commit/e34560c77d4852d2e90930f0858e51aa67d4eeab)) +* **provider:** :zap: possible get class provider ([76ba717](https://github.com/leifermendez/bot-whatsapp/commit/76ba717927a75b3d6299206aa0b8aee2bc25b726)) + + +### Bug Fixes + +* **cli:** :zap: working flowDynamic test ([c0113ca](https://github.com/leifermendez/bot-whatsapp/commit/c0113ca49295aff220d8defcb53f2ba7f2872d75)) +* **cli:** :zap: working flowDynamic test ([aef52d2](https://github.com/leifermendez/bot-whatsapp/commit/aef52d2694fa6616d614338643db198b4f7f1fe8)) +* **cli:** :zap: working flowDynamic test ([f769320](https://github.com/leifermendez/bot-whatsapp/commit/f76932021ce968d93241b55cfcdb8ae0e0e6c934)) +* **cli:** :zap: working flowDynamic test ([23e09ef](https://github.com/leifermendez/bot-whatsapp/commit/23e09efaeccaf51018c55da492edff45b625f0a9)) +* **database:** add support emoji in mysql ([9311aa0](https://github.com/leifermendez/bot-whatsapp/commit/9311aa0a65623a1bf40e96207a281625154dae90)) +* **database:** fix naming ([cd082f2](https://github.com/leifermendez/bot-whatsapp/commit/cd082f235012cd5f5844c6437f51711beee0c865)) +* **database:** fix naming ([1afc3ba](https://github.com/leifermendez/bot-whatsapp/commit/1afc3ba182070713b5bec40eaab0fa1f680830cd)) +* **database:** fix naming ([c9831d2](https://github.com/leifermendez/bot-whatsapp/commit/c9831d202ab2c85f15a0247cd2a2426bc435270c)) +* **provider:** :zap: baily wa.link ([96c2bff](https://github.com/leifermendez/bot-whatsapp/commit/96c2bffd093269be8e39474a84c156938504a6cb)) + ### [0.1.19](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.18...v0.1.19) (2023-01-29) diff --git a/package.json b/package.json index 30e3cf4..cc0b21a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/root", - "version": "0.1.19", + "version": "0.1.20", "description": "Bot de wahtsapp open source para MVP o pequeños negocios", "main": "app.js", "private": true, From 2d44a002ff226fb0eb7362ad49936f1e00b84242 Mon Sep 17 00:00:00 2001 From: aurik3 <37228512+aurik3@users.noreply.github.com> Date: Wed, 8 Feb 2023 13:21:55 -0500 Subject: [PATCH 44/53] feat(provider): :rocket: provider raw --- packages/provider/src/baileys/index.js | 12 +- packages/provider/src/venom/index.js | 9 + packages/provider/src/web-whatsapp/index.js | 8 + yarn.lock | 2408 ++++++++++--------- 4 files changed, 1274 insertions(+), 1163 deletions(-) diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 9361731..6f33e53 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -163,6 +163,13 @@ class BaileysProvider extends ProviderClass { } } + /** + * Funcion SendRaw envia opciones directamente del proveedor + * @example await sendMessage('+XXXXXXXXXXX', 'Hello World') + */ + + sendRaw = () => this.vendor.sendMessage + /** * @alpha * @param {string} number @@ -222,10 +229,10 @@ class BaileysProvider extends ProviderClass { * @example await sendMessage('+XXXXXXXXXXX', 'audio.mp3') */ - sendAudio = async (number, audioUrl, voiceNote = false) => { + sendAudio = async (number, audioUrl) => { return this.vendor.sendMessage(number, { audio: { url: audioUrl }, - ptt: voiceNote, + ptt: true, }) } @@ -291,6 +298,7 @@ class BaileysProvider extends ProviderClass { * @param {string} message * @example await sendMessage('+XXXXXXXXXXX', 'Hello World') */ + sendMessage = async (numberIn, message, { options }) => { const number = baileyCleanNumber(numberIn) diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 3e1b630..edb8dcc 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -204,6 +204,15 @@ class VenomProvider extends ProviderClass { return this.sendFile(number, fileDownloaded, text) } + /** + * Funcion SendRaw envia opciones directamente del proveedor + * @param {string} number + * @param {string} message + * @example await sendMessage('+XXXXXXXXXXX', 'Hello World') + */ + + sendRaw = () => this.vendor.sendMessage + /** * Enviar mensaje al usuario * @param {*} userId diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 693d1b9..caa95a2 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -240,6 +240,14 @@ class WebWhatsappProvider extends ProviderClass { return this.sendFile(number, fileDownloaded) } + /** + * Funcion SendRaw envia opciones directamente del proveedor + * @param {string} number + * @param {string} message + * @example await sendMessage('+XXXXXXXXXXX', 'Hello World') + */ + + sendRaw = () => this.vendor.sendMessage /** * * @param {*} userId diff --git a/yarn.lock b/yarn.lock index c99a8c7..7140699 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,429 +12,415 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/ie11-detection@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/ie11-detection@npm:2.0.2" +"@aws-crypto/ie11-detection@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/ie11-detection@npm:3.0.0" dependencies: tslib: ^1.11.1 - checksum: 713293deea8eefd3ab43dc05e62228571d27754e7293f8ec2fd8a0c693fbbfc55213e6599387776e3cdbc951965dc62e24e92b9c4a853e4a50d00ae6a9f6b2bd + checksum: 299b2ddd46eddac1f2d54d91386ceb37af81aef8a800669281c73d634ed17fd855dcfb8b3157f2879344b93a2666a6d602550eb84b71e4d7868100ad6da8f803 languageName: node linkType: hard -"@aws-crypto/sha256-browser@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-browser@npm:2.0.0" +"@aws-crypto/sha256-browser@npm:3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/sha256-browser@npm:3.0.0" dependencies: - "@aws-crypto/ie11-detection": ^2.0.0 - "@aws-crypto/sha256-js": ^2.0.0 - "@aws-crypto/supports-web-crypto": ^2.0.0 - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 + "@aws-crypto/ie11-detection": ^3.0.0 + "@aws-crypto/sha256-js": ^3.0.0 + "@aws-crypto/supports-web-crypto": ^3.0.0 + "@aws-crypto/util": ^3.0.0 + "@aws-sdk/types": ^3.222.0 "@aws-sdk/util-locate-window": ^3.0.0 "@aws-sdk/util-utf8-browser": ^3.0.0 tslib: ^1.11.1 - checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e + checksum: ca89456bf508db2e08060a7f656460db97ac9a15b11e39d6fa7665e2b156508a1758695bff8e82d0a00178d6ac5c36f35eb4bcfac2e48621265224ca14a19bd2 languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-js@npm:2.0.0" +"@aws-crypto/sha256-js@npm:3.0.0, @aws-crypto/sha256-js@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/sha256-js@npm:3.0.0" dependencies: - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 + "@aws-crypto/util": ^3.0.0 + "@aws-sdk/types": ^3.222.0 tslib: ^1.11.1 - checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 + checksum: 644ded32ea310237811afae873d3c7320739cb6f6cc39dced9c94801379e68e5ee2cca0c34f0384793fa9e750a7e0a5e2468f95754bd08e6fd72ab833c8fe23c languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/sha256-js@npm:2.0.2" - dependencies: - "@aws-crypto/util": ^2.0.2 - "@aws-sdk/types": ^3.110.0 - tslib: ^1.11.1 - checksum: 9125ec65a2b05fce908ac2289ba97b995a299f2d717684804211df8e8bcffd8cd9b8861582240655b88f2255c46fcee34026f75c057ffb22f44b6a76cd43f65a - languageName: node - linkType: hard - -"@aws-crypto/supports-web-crypto@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/supports-web-crypto@npm:2.0.2" +"@aws-crypto/supports-web-crypto@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/supports-web-crypto@npm:3.0.0" dependencies: tslib: ^1.11.1 - checksum: 03d04d29292dc1b76db9bc6becd05f52fa79adee0ec084f971b0767f7e73250dd0422bea57636015f8c27f38aefcd1d9c58800a4749cf35339296c8d670f3ccb + checksum: 35479a1558db9e9a521df6877a99f95670e972c602f2a0349303477e5d638a5baf569fb037c853710e382086e6fd77e8ed58d3fb9b49f6e1186a9d26ce7be006 languageName: node linkType: hard -"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.2": - version: 2.0.2 - resolution: "@aws-crypto/util@npm:2.0.2" +"@aws-crypto/util@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/util@npm:3.0.0" dependencies: - "@aws-sdk/types": ^3.110.0 + "@aws-sdk/types": ^3.222.0 "@aws-sdk/util-utf8-browser": ^3.0.0 tslib: ^1.11.1 - checksum: 13cb33a39005b09c062398d361043c2224bc8ba42b1432bad52e15bc4bf9ffad4facdddc394b3cc71b3fb8d86a7ec325fd1afa107b5fde0dab84a7e32d311d7f + checksum: d29d5545048721aae3d60b236708535059733019a105f8a64b4e4a8eab7cf8dde1546dc56bff7de20d36140a4d1f0f4693e639c5732a7059273a7b1e56354776 languageName: node linkType: hard -"@aws-sdk/abort-controller@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/abort-controller@npm:3.226.0" +"@aws-sdk/abort-controller@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/abort-controller@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 44045b60c7697ed76bcbfbe3f7f4bb019f139d2337e77d8ce79d98bca17c1245e2d33934bba04fe8e2d462b729124ba4414a589ed9275c07f2bfefd3a0850184 + checksum: fca54be92f6cbfe8f0675aba19a50960376506a4c9aaa9c44220e8c29a7b3c8c74198537f831c1d4818ec686df97af86d055d8f3265c3a6fde56bbf593241c47 languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.245.0" +"@aws-sdk/client-cognito-identity@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.264.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.245.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.264.0 + "@aws-sdk/config-resolver": 3.259.0 + "@aws-sdk/credential-provider-node": 3.264.0 + "@aws-sdk/fetch-http-handler": 3.257.0 + "@aws-sdk/hash-node": 3.257.0 + "@aws-sdk/invalid-dependency": 3.257.0 + "@aws-sdk/middleware-content-length": 3.257.0 + "@aws-sdk/middleware-endpoint": 3.264.0 + "@aws-sdk/middleware-host-header": 3.257.0 + "@aws-sdk/middleware-logger": 3.257.0 + "@aws-sdk/middleware-recursion-detection": 3.257.0 + "@aws-sdk/middleware-retry": 3.259.0 + "@aws-sdk/middleware-serde": 3.257.0 + "@aws-sdk/middleware-signing": 3.257.0 + "@aws-sdk/middleware-stack": 3.257.0 + "@aws-sdk/middleware-user-agent": 3.257.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/node-http-handler": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/smithy-client": 3.261.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.261.0 + "@aws-sdk/util-defaults-mode-node": 3.261.0 + "@aws-sdk/util-endpoints": 3.257.0 + "@aws-sdk/util-retry": 3.257.0 + "@aws-sdk/util-user-agent-browser": 3.257.0 + "@aws-sdk/util-user-agent-node": 3.259.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 4142ba1b7a3c11f785d5da527a743d6a9352f6f97ae983e6f3ee0abf5a1cd755c2196981cbc2f6052686bf820a68f062117c682a5126e55acaacebc5cab862e6 + checksum: c99523da5911e3a94d9c835748e223cfbdd0f988f3fade40c848de5a7c7c03ae7731169358db0847ebf38166205b23124a6bdbdde9ea59e5623323d7b1f24f3c languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.245.0" +"@aws-sdk/client-sso-oidc@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.264.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.259.0 + "@aws-sdk/fetch-http-handler": 3.257.0 + "@aws-sdk/hash-node": 3.257.0 + "@aws-sdk/invalid-dependency": 3.257.0 + "@aws-sdk/middleware-content-length": 3.257.0 + "@aws-sdk/middleware-endpoint": 3.264.0 + "@aws-sdk/middleware-host-header": 3.257.0 + "@aws-sdk/middleware-logger": 3.257.0 + "@aws-sdk/middleware-recursion-detection": 3.257.0 + "@aws-sdk/middleware-retry": 3.259.0 + "@aws-sdk/middleware-serde": 3.257.0 + "@aws-sdk/middleware-stack": 3.257.0 + "@aws-sdk/middleware-user-agent": 3.257.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/node-http-handler": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/smithy-client": 3.261.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.261.0 + "@aws-sdk/util-defaults-mode-node": 3.261.0 + "@aws-sdk/util-endpoints": 3.257.0 + "@aws-sdk/util-retry": 3.257.0 + "@aws-sdk/util-user-agent-browser": 3.257.0 + "@aws-sdk/util-user-agent-node": 3.259.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 6f72ee0df276f8c4019be4d9b3fa1b2cbab7744b13f434f07c9314303290334296be1148276266715ef3cfb37e83ced448fd9d6bb34d09bd21ed41d0a83598dc + checksum: 48132545b420ef47e0c547a462571a821efe764754812ed9792e2190e3173ffa73262473be50743e423dacb2ccdc0d51acc6d1ac57cb30020964f14c5840261a languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sso@npm:3.245.0" +"@aws-sdk/client-sso@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/client-sso@npm:3.264.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.259.0 + "@aws-sdk/fetch-http-handler": 3.257.0 + "@aws-sdk/hash-node": 3.257.0 + "@aws-sdk/invalid-dependency": 3.257.0 + "@aws-sdk/middleware-content-length": 3.257.0 + "@aws-sdk/middleware-endpoint": 3.264.0 + "@aws-sdk/middleware-host-header": 3.257.0 + "@aws-sdk/middleware-logger": 3.257.0 + "@aws-sdk/middleware-recursion-detection": 3.257.0 + "@aws-sdk/middleware-retry": 3.259.0 + "@aws-sdk/middleware-serde": 3.257.0 + "@aws-sdk/middleware-stack": 3.257.0 + "@aws-sdk/middleware-user-agent": 3.257.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/node-http-handler": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/smithy-client": 3.261.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.261.0 + "@aws-sdk/util-defaults-mode-node": 3.261.0 + "@aws-sdk/util-endpoints": 3.257.0 + "@aws-sdk/util-retry": 3.257.0 + "@aws-sdk/util-user-agent-browser": 3.257.0 + "@aws-sdk/util-user-agent-node": 3.259.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: e7dd235ee13465438a181c5de2f5bfc1acdaa12a07db74a3255dbb580004c33544d6773252b164dda2e2357ea83f3985afd060dfe42d6064732d36750764eda1 + checksum: e02f0829b02974c824ee698932944b8f9ab2940951ce4b1689749bce22e66e03d8e9f36591343c5bea79c250e68566e471a38562b9cebc96a7d2a91e7e64e1d8 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sts@npm:3.245.0" +"@aws-sdk/client-sts@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/client-sts@npm:3.264.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-sdk-sts": 3.226.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.259.0 + "@aws-sdk/credential-provider-node": 3.264.0 + "@aws-sdk/fetch-http-handler": 3.257.0 + "@aws-sdk/hash-node": 3.257.0 + "@aws-sdk/invalid-dependency": 3.257.0 + "@aws-sdk/middleware-content-length": 3.257.0 + "@aws-sdk/middleware-endpoint": 3.264.0 + "@aws-sdk/middleware-host-header": 3.257.0 + "@aws-sdk/middleware-logger": 3.257.0 + "@aws-sdk/middleware-recursion-detection": 3.257.0 + "@aws-sdk/middleware-retry": 3.259.0 + "@aws-sdk/middleware-sdk-sts": 3.257.0 + "@aws-sdk/middleware-serde": 3.257.0 + "@aws-sdk/middleware-signing": 3.257.0 + "@aws-sdk/middleware-stack": 3.257.0 + "@aws-sdk/middleware-user-agent": 3.257.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/node-http-handler": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/smithy-client": 3.261.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.261.0 + "@aws-sdk/util-defaults-mode-node": 3.261.0 + "@aws-sdk/util-endpoints": 3.257.0 + "@aws-sdk/util-retry": 3.257.0 + "@aws-sdk/util-user-agent-browser": 3.257.0 + "@aws-sdk/util-user-agent-node": 3.259.0 + "@aws-sdk/util-utf8": 3.254.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 3b052be86063978b47b2f4459062ea23a6d94c81951a97428a5445ff062d642a3460114cbf1b20d3925db0667d893db40cbe30b1b8b58a4d749c75d117aab460 + checksum: 806988abffe493b52f801ed1f70943e3195d7d71964e9ed25bb4a24c3f086e399c29b064b07c1fe61b6270fd8017d666c1b47d33d319efea4791d24cd7248ba3 languageName: node linkType: hard -"@aws-sdk/config-resolver@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/config-resolver@npm:3.234.0" +"@aws-sdk/config-resolver@npm:3.259.0": + version: 3.259.0 + resolution: "@aws-sdk/config-resolver@npm:3.259.0" dependencies: - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/signature-v4": 3.257.0 + "@aws-sdk/types": 3.257.0 "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.257.0 tslib: ^2.3.1 - checksum: a72bdb1748d7f04c95436ab1e8650b51c1bfd2745114e52f7d05339c61bb6a859306be0c6cc0034ecf4f3b29a2d68b48fe362762a58c90ec55a3444b93b5700d + checksum: c461dfd62291c8dbc3394d586aa44a14326c0a9f02e4cc84dfa6569c6003890d21343aaa28a067337949837f7e2c2e3533465e3e2e5f2ee3e42bb30cc69de0d4 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.245.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.264.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-cognito-identity": 3.264.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: af9ce2a19426056139c380fa2a016d5abb42117e262dc5c3f4741eb1f2d15b394e9b178d6efb2e32f59cd723c6090da769975505368fbbe79b8eb9258c6961a8 + checksum: 22255c44f8aa2ce9c51ee20d723c35e9d32ef714f00819e67ccb3552573da0f86efc0c8db1712c4e615e0bf69265f4d2251ca54918a27524728c385e2ba6bdea languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.226.0" +"@aws-sdk/credential-provider-env@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.257.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 4f764d8d07ba1f65503ed2440ebfbccf98c141b11a087a582ea606d06bc764c91641b4ec505ab0d4750025a01128b041d9514a3ec868c385f038b5373b513293 + checksum: e268c46ff374eddb5cd5bef62a8b969a5bfd5202e15122ecbd2baa7882c99f75c2e2b6dfc0c294fcfc331e9e2028620c827278f1eec6f7158c30f079ae67dc5f languageName: node linkType: hard -"@aws-sdk/credential-provider-imds@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-imds@npm:3.226.0" +"@aws-sdk/credential-provider-imds@npm:3.259.0": + version: 3.259.0 + resolution: "@aws-sdk/credential-provider-imds@npm:3.259.0" dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 tslib: ^2.3.1 - checksum: c0480ca127e6715ebf98ff41a8ea47d139166b8632582782df46fc9e568ff579cfc0768af80082ae6eea3eb6750edb41c4a4c39281b777c578fdb7f8ef8b641c + checksum: 7149bb155e9f169f6d9a4e17d16c683b5eed6f71871230f1c786b884f22fe438b3f29e6179a5538ad540f025d2eb3cfa1a4d9a1bd1e1ec495a539f8d164903da languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.245.0" +"@aws-sdk/credential-provider-ini@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.264.0" dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/credential-provider-env": 3.257.0 + "@aws-sdk/credential-provider-imds": 3.259.0 + "@aws-sdk/credential-provider-process": 3.257.0 + "@aws-sdk/credential-provider-sso": 3.264.0 + "@aws-sdk/credential-provider-web-identity": 3.257.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 35fcdb231efb573c60c25e67a27f64ca892ebab7931e715406826a4d3f87caecd525945f45ecaf7fb7e09a87a744678aba60249c74681160c9fb9d66c0490bf5 + checksum: e890aeca3f215d8358cf0821abbcde5e26d6abbb421cf17dec71af57fb5d49dfc6793f257ba7810b4bc6091d9c36926009cd521d4cc116eeb71ee9614e654f39 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.245.0" +"@aws-sdk/credential-provider-node@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.264.0" dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.245.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/credential-provider-env": 3.257.0 + "@aws-sdk/credential-provider-imds": 3.259.0 + "@aws-sdk/credential-provider-ini": 3.264.0 + "@aws-sdk/credential-provider-process": 3.257.0 + "@aws-sdk/credential-provider-sso": 3.264.0 + "@aws-sdk/credential-provider-web-identity": 3.257.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: a9bd115016fc7ce7f2cb50c5cafcd759f861362bb9dd9629e4ea0056519d5b26ad256f6d1d84ef3327c75bef442de8c0e4b54b215870512b43c92866ed0f1403 + checksum: 4c7f4283c942c11389b0e2d06ac2099a2168b8b8e322da8f97d755e4867ae3af10881f2d05840015e6c09be42e28893b1c71132e6368ec42ab64cabe4ba43232 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.226.0" +"@aws-sdk/credential-provider-process@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.257.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 3ad24e2784ae7929f8932a187e0a5a06fc62d31ccb393fd2d9fa86d75c1109809c96b69edb17c3d7bd7d087b97662818d5320742a4cd70add06999a3b2ec3a53 + checksum: cb34261ae87463245e4cc3ddab306201c52a8fbcfedc122ae9782bdf9263ab8fabc33cde028def52d069452a842338033829aaecfec2d0fc00547513a76c9b6f languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.245.0" +"@aws-sdk/credential-provider-sso@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.264.0" dependencies: - "@aws-sdk/client-sso": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.245.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-sso": 3.264.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/token-providers": 3.264.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 95358504631d5451520d5090e7fb337b40dfc12ab30dd84d979165d881f2762798828003b13adcb35921223bf3a498b0e70b7a94ebc14e8b16a4f0adacded8f1 + checksum: 1513a9bc4dd3b1f7dcfca512c8b18d91b8a8fc741ef7b324a8a14b1d93b96c46056c319778659d10e8a523624adceb9929a81fb5dfbf48ba9cb224bc6e4db18f languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.226.0" +"@aws-sdk/credential-provider-web-identity@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.257.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: f536d9af3d900eee31b6e7966ff827713fd5f661ae477f0911eebdac3e544eb5a732df0be0c9162058943e0aeb89333c97a1758236e8f9760c5e87280fd926fa + checksum: 2d3ee4975af680337cd6a9f25b6eb874201f4787ddc0217f80cb7ebb36c70424108fa8c04e5a9f0f8c2130d06685a3de3938c41b8c78e238b9faeb348c0cd361 languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.186.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-providers@npm:3.245.0" + version: 3.264.0 + resolution: "@aws-sdk/credential-providers@npm:3.264.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.245.0 - "@aws-sdk/client-sso": 3.245.0 - "@aws-sdk/client-sts": 3.245.0 - "@aws-sdk/credential-provider-cognito-identity": 3.245.0 - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.245.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-cognito-identity": 3.264.0 + "@aws-sdk/client-sso": 3.264.0 + "@aws-sdk/client-sts": 3.264.0 + "@aws-sdk/credential-provider-cognito-identity": 3.264.0 + "@aws-sdk/credential-provider-env": 3.257.0 + "@aws-sdk/credential-provider-imds": 3.259.0 + "@aws-sdk/credential-provider-ini": 3.264.0 + "@aws-sdk/credential-provider-node": 3.264.0 + "@aws-sdk/credential-provider-process": 3.257.0 + "@aws-sdk/credential-provider-sso": 3.264.0 + "@aws-sdk/credential-provider-web-identity": 3.257.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: a6923907ce97232cf87565e5fc0dac872061d2f065f530f7c91d1693472dd26667a91a662283994b3886a84b557f45e8627d0c847a88ffa0fdf2458a0180bd43 + checksum: f337f54ec51f10c15be66771dc37b5f71ac525d1b5bba82ba75f22c40825df6befbbdece88b1d847d3f6f2391977ff03666bbb920ad2257b49cd49757eac237e languageName: node linkType: hard -"@aws-sdk/fetch-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/fetch-http-handler@npm:3.226.0" +"@aws-sdk/fetch-http-handler@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/fetch-http-handler@npm:3.257.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/querystring-builder": 3.257.0 + "@aws-sdk/types": 3.257.0 "@aws-sdk/util-base64": 3.208.0 tslib: ^2.3.1 - checksum: f12ed12088aee05e4c6a742356017f55f26fec740c12c4d89c4eb283203171d032d99c9fa45fb28cc7798b35410cc55736df1c78d8eea014667e489f1b276f3a + checksum: de25f542db072225c23403254be7ff4e642f12e348eb703cdb30a5e9b0ac5e4f18930947490f6bb27a31b8f8a462abfdd7b9344b16e41b6b52e1fe969ac95396 languageName: node linkType: hard -"@aws-sdk/hash-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/hash-node@npm:3.226.0" +"@aws-sdk/hash-node@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/hash-node@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 "@aws-sdk/util-buffer-from": 3.208.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: cbe466e2e3efdbb3aefe7772da734f6d00e0d1572c60e497b09460e055093b155c5e94bd3718135238bc05e58cb49abcdcd0fe5e34458bd3563b89d3d4a42251 + checksum: 26f8f2fca7ad13a1dc64753ee1ef85014eb89adfef9f500f5003e479807c5f2ec6ee185ae8e88d6bcb68e26512702fd6886fe211486531e4388e40fd003678a5 languageName: node linkType: hard -"@aws-sdk/invalid-dependency@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/invalid-dependency@npm:3.226.0" +"@aws-sdk/invalid-dependency@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/invalid-dependency@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 4a6168b50675881442c9bc87e8f27e8317ece9251fbfd3d812d32edcd83f687328e6de518fa9f11b1bc984ad3a3454cd43b59c0362f04c03687ce5250ac5d720 + checksum: fe99f546cc041a9ccc8b29654fd3e8e466aef41697d4c69f4afc1aab1f1f83f2e7f0b9e0e20b3fe23843a01008902f00aeeb24cf26b7df0594c75a4ebf3bb3f3 languageName: node linkType: hard @@ -447,276 +433,277 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-content-length@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-content-length@npm:3.226.0" +"@aws-sdk/middleware-content-length@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-content-length@npm:3.257.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 538b0222e2c8be61dc3090dfefe4b9ec1f0cbee155125edf5b654dbe36ab0b2d6befe3da6008194dc26bbf94d53b7e01edca683720061c4b43c6beb9dc278002 + checksum: 4f6129653b98185624c66bf2114417d492ec3cf91063da4cbce0e07ad3b1831766ff684491f0c14f92c8b9b39599a9781ca883f2d5ee42c3d38b273b6664f361 languageName: node linkType: hard -"@aws-sdk/middleware-endpoint@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-endpoint@npm:3.226.0" +"@aws-sdk/middleware-endpoint@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/middleware-endpoint@npm:3.264.0" dependencies: - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/middleware-serde": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/signature-v4": 3.257.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/url-parser": 3.257.0 "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.257.0 tslib: ^2.3.1 - checksum: 22df6fd90e3b7d3edd58f427ebfbb229181ef190b2d795e0b400f70f95a573dc59666a08b26613db6bb1b764b13ba7ddec15fced2641e9678fad5500fca289be + checksum: acc16091000c5b6fec37d3376c24768aa5a52a27b1cfcc7f2348735227e5e53c4d2c4aba27b9ec80b450d51e6c70358cc72c3104716c7e1a02df00c97bcdf896 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.226.0" +"@aws-sdk/middleware-host-header@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.257.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 35eb7d9f5eb2e45c58bb5887a12dc80f22e8fc630d53d356064c62ce3354c9054717697168ab3818f14c7baae3246480aa7251e6fcaf5c7104498df5dca9bbd6 + checksum: 426f6a6a9964ef993d4e7d8401162b62f758a7247872c6b58163d40ec8320738a84dbd2dbaccd008b24801642f6fd2d24b6af11331f00a204ed48e814f1e6e3c languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-logger@npm:3.226.0" +"@aws-sdk/middleware-logger@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-logger@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 7b7c2eb336f376f6e8c50ebd0fd9b6e9a749e21d6f5c433683a4e98edb311bb76fafc0bb0abfd75f61001466879be7d68aefb3958a332e540160a93ee9371b44 + checksum: 3b4ac39d4be50dde9b806500a50a6d2c4ab267f6e02e780fe70adf0d07f4026c09131e3f787d86833f4295987cbad6858839884d1c5f1ea56df729fc4a8d7d49 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.226.0" +"@aws-sdk/middleware-recursion-detection@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.257.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 194161d76a815df623c6699f7a7016268b4a01276baa3527682504001a4e2e948e2dd389d2065f62fe57509f20b9680ea907bfa52b861122335d276c9ab4ed61 + checksum: ce972140735fb040d00e1356409beac6dc5d9c477f975c73776de8294a91f81ac2a87e11c02581ff6c8b8c6f84e455e77a081291bbc536d22c9e128b07928fcd languageName: node linkType: hard -"@aws-sdk/middleware-retry@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/middleware-retry@npm:3.235.0" +"@aws-sdk/middleware-retry@npm:3.259.0": + version: 3.259.0 + resolution: "@aws-sdk/middleware-retry@npm:3.259.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/service-error-classification": 3.229.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/service-error-classification": 3.257.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/util-middleware": 3.257.0 + "@aws-sdk/util-retry": 3.257.0 tslib: ^2.3.1 uuid: ^8.3.2 - checksum: 397226fd10d8b0587a35ccab92160223f10740beb01ccac75dda0e30336b83c091c9aa51b9132a56ff6cccd6353b9e3c6ecf21ae18f20f8127e7e9e209e59a2a + checksum: 22ae9d575cafbc9c3806a10871e2b6749d12b8109bc15e8eabe82e24613dc60196c2ab48df62fcf39e3dae33319146a58d3983c51a68c6c1da89e941ac2d4efa languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sts@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.226.0" +"@aws-sdk/middleware-sdk-sts@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.257.0" dependencies: - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/middleware-signing": 3.257.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/signature-v4": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 0b6e11889c9f1b5264eb38288dea5bd2987fa28338651939d005eaa0524f9cd41c570c545b34b08d25d858397b3f14a2b6a21238a8c88fc08719ed50b835cb15 + checksum: 9171f0fc8a9518b8344c58f26446c9b39a19d00b747f2ae02b92b022d8fdcdb65528f05e753999676b3c04bffa38d008a599d86c2e0fa65b2196cd9633ab4308 languageName: node linkType: hard -"@aws-sdk/middleware-serde@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-serde@npm:3.226.0" +"@aws-sdk/middleware-serde@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-serde@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: e8315079cc3ed4527d1434eb28becfaf951338d2ced21116753b52d3330eabbfd13f24382b3378bcc2c09ee0653a65e0d8353e9e32f512b69929908272b83fa2 + checksum: ceda3cb7bb7ceced0d5b69363dca51fa92b4f6defcd8299910eee0fe65d557871aa7777dade4abc64aa91347d038727fa65ff7ff0cc3d9716d0065dfd939c724 languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-signing@npm:3.226.0" +"@aws-sdk/middleware-signing@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-signing@npm:3.257.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/signature-v4": 3.257.0 + "@aws-sdk/types": 3.257.0 + "@aws-sdk/util-middleware": 3.257.0 tslib: ^2.3.1 - checksum: 4f66483d359e21d1f7e56a1900f7271a561801e1ee4380deaa006ce750ce73245a5fe554d4c1ab60cf9ca127c41f35c53c0817c375df6f8f068c9ed7f9572444 + checksum: dfa31f59675427f7aff83852f24e2393bd7d1295421d68c2bb060faca001ce385d7a1d7231c92c48e841e58581ceeffef0209c7c91b51b19361af29120342a50 languageName: node linkType: hard -"@aws-sdk/middleware-stack@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-stack@npm:3.226.0" +"@aws-sdk/middleware-stack@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-stack@npm:3.257.0" dependencies: tslib: ^2.3.1 - checksum: fd284bc28ee6ee576e3fe9dd3c2c9d64b8c95fa1bb213b5e41e23a57bbc2693652ee51028414eb278918235e591ef729db572b160bff963c6f74e7d6c15d33d0 + checksum: f7520d3e53d026f46c6504bcebef2a5732b724ab79079ccd2db0c052f6d4fd3cc4f06b951ff02723ef9ba46c6a0a0deca3282f152172ae7b1c3b2f493d35d584 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.226.0" +"@aws-sdk/middleware-user-agent@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.257.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 8d3724aecd7b7f9f1a5b081263cb85864c969144105819f371a9675ee4f680c11e3b5ecbe181f57d2bfdde9c98b90267bd4afe0fc0822863041e0df52671f043 + checksum: b2fc45a734845d40d1e69bf7f0890613aad8357d4830f704c7ee6c1339ab51cbb0cef51920dc22718d29eb258fc1024f8c23cbc53a4f93b9b857f8bcacc442a1 languageName: node linkType: hard -"@aws-sdk/node-config-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-config-provider@npm:3.226.0" +"@aws-sdk/node-config-provider@npm:3.259.0": + version: 3.259.0 + resolution: "@aws-sdk/node-config-provider@npm:3.259.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 0e7c4c7ea20c5361c71f1ab0b99c19964f76c187659714cd6e87e1cc264d0ab29965d33618d9d47d373e3b108558cd6628fb36a00cdac614849e5044c6776213 + checksum: 72e4818b1ab641d1aa3b85c7901f7d64ad0399eb384cda1c875b41a37021c2be9e68021e6b0aa3f7298d2d46017259ee10356f07c314b4bc40146a44f355135a languageName: node linkType: hard -"@aws-sdk/node-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-http-handler@npm:3.226.0" +"@aws-sdk/node-http-handler@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/node-http-handler@npm:3.257.0" dependencies: - "@aws-sdk/abort-controller": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/abort-controller": 3.257.0 + "@aws-sdk/protocol-http": 3.257.0 + "@aws-sdk/querystring-builder": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: e4080ec9f859be4b191416084fef8d2687f24d973169b8fef592a867c23c14fad74f4bea20f451b98fedfee6a265f2c89b0bee4fe7aabdb1fd05a7475bf12b91 + checksum: 37531827bc9e0b590c67ce57b87315fab8639a5feff1cb6cda8effdf6ac2d2fbc8a645765f004b52b03ff39c896da88a090b0dbcf5cfcf5d3d65d0b995f628fb languageName: node linkType: hard -"@aws-sdk/property-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/property-provider@npm:3.226.0" +"@aws-sdk/property-provider@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/property-provider@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: d63c53313bb2797ab2ecfa2cff827b63417c0cc31abe8c666cd018a1d70da877b61ef1fb21e504d6408e72b20544756089938b44869b003ba3c313b39bca6d45 + checksum: 066290e9b88bcbc7d6bace37482ce955c782386a6cd75dc789efeb368bc87d0c410d01fd6b25bf66918e3328c6ffe1942aa643f4fdd4fa604feee36af9114894 languageName: node linkType: hard -"@aws-sdk/protocol-http@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/protocol-http@npm:3.226.0" +"@aws-sdk/protocol-http@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/protocol-http@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 92cf35e1026a812c6c7ce8309fd685162ab7796237fc063e71dd9b292abf25902d6c0e02e93219101e1f506ef68a98f02eed6a61b18b8acd450ecb4bf8c1b467 + checksum: c51539e2f617d5d84e51ad9feeb93d51a310d808da18ceb53317aaf35af99bb8bea52eca532ab68d546b0ff5156b92cef5c3e98245f0b425795bd7910b608dad languageName: node linkType: hard -"@aws-sdk/querystring-builder@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-builder@npm:3.226.0" +"@aws-sdk/querystring-builder@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/querystring-builder@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 "@aws-sdk/util-uri-escape": 3.201.0 tslib: ^2.3.1 - checksum: 0014b8876d402787c56f606f66e79eb48ff100b01d7a657bb0766a7723ca184da0dd2aed405837e7e6c5781fd868d7a903eef25884b2d1881d30e2454f5c2bfc + checksum: a66b07cd1c4af544c7c6f903a735d1e8359f7d3b5c74803fc63b16b854eafec21f4b1c8874761edeebc4c2341f1f0b72190f03e0a005e8fff7b619e30cd59896 languageName: node linkType: hard -"@aws-sdk/querystring-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-parser@npm:3.226.0" +"@aws-sdk/querystring-parser@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/querystring-parser@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 13b23b4dff859d778a05f6874e318d95d6fbd79c62a06bb6f6dff8496ac2eaf86f60b17460c3595af854c2e316482c9fcc098655d475926039f7dff4a6f1ecf1 + checksum: cd391b7993a8e2397e3f0abd25e9b0b43747fe1b1415e9c5af6a3895567bb8dc9267d97e7d494c504f721b0b868bf9e0b93ec3677a5a7bc4ef2ff7252a402985 languageName: node linkType: hard -"@aws-sdk/service-error-classification@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/service-error-classification@npm:3.229.0" - checksum: 7877963d62f4d43ce5116f0ddfd1b27cffab2b0e74a4ceb4006b1f85b17dd50eb9ae2f227cabf935261e42b7615d0a9de190dd684380c30e03dee6e9f7e12587 +"@aws-sdk/service-error-classification@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/service-error-classification@npm:3.257.0" + checksum: 231440f52a1c6c6d5ab62c13491736273fda49bb68bc278954dfaa3b7fa874946576c87a529504d6268472e646b3235cacb5c0fe5acc9af2398d87a56fabda3d languageName: node linkType: hard -"@aws-sdk/shared-ini-file-loader@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/shared-ini-file-loader@npm:3.226.0" +"@aws-sdk/shared-ini-file-loader@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/shared-ini-file-loader@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 7b43e4d70f33b1098c9582a20dd5cf11c0e2efe5e7f4f854ee1fdfe2f804a7171deeb76f167c46ef7365bb584e29c816d58b6d8f6c9ac9debb124cccf59ebf59 + checksum: 27738db81e2b9c8e0bd248e1c0ed7f21b65b52204b247cb8119b3b48b55844c2450e5fe20bb1193311177a8a18e8bb99594d3bfde71dacd1ee9ed8bbad9a915b languageName: node linkType: hard -"@aws-sdk/signature-v4@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/signature-v4@npm:3.226.0" +"@aws-sdk/signature-v4@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/signature-v4@npm:3.257.0" dependencies: "@aws-sdk/is-array-buffer": 3.201.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 "@aws-sdk/util-hex-encoding": 3.201.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.257.0 "@aws-sdk/util-uri-escape": 3.201.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 8bc6ea1ad467d59f1ff6c5b814277e16d0d5b2d1455f21969b4575f572fdc013284e356e0f24436c89c8b99a51d0e384b01daa2bace1c3d69e28f35a23ef9802 + checksum: 6faf6a3d8f51603240f6375b76bfd031223aa5cf1f0385cfa97833e6b188fb9b746caab53a45d0e7a311ca9735c82b56c67aed68b1fbcdf4bbcbf93e288fd09f languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/smithy-client@npm:3.234.0" +"@aws-sdk/smithy-client@npm:3.261.0": + version: 3.261.0 + resolution: "@aws-sdk/smithy-client@npm:3.261.0" dependencies: - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/middleware-stack": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 7b8299f81fde410b8f597662d4174a29740cb2791a2377e5009a73c0e7531fb440712ab25c837a0351dbceac4763cc8fadc6d4362727cf3ae749b25515da4ea1 + checksum: 1394ce351d52bc3bd17b484acbfb9171a57203b64741a21d1f8c9d89443f165186539194d463ccdd2dfad18a981ff9561088d2d2c52e0467d8225400312b5486 languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/token-providers@npm:3.245.0" +"@aws-sdk/token-providers@npm:3.264.0": + version: 3.264.0 + resolution: "@aws-sdk/token-providers@npm:3.264.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-sso-oidc": 3.264.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/shared-ini-file-loader": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 900a73b999c50eb35b3eda594210448329f5068b57a2d8d57ee8e4f3d960116ece36952ca1fbe43b5e8e9119927de916033f73ff969bae3a8394d4ef98f1d0c7 + checksum: 394d495dbd2561c88ee8a9abbe0e2a44a558f876dddb345f660a37ece01e04e321e616d3973475dd2efd972e382bb89ea7ac8a60e8be6c20a855daf5981ad5c9 languageName: node linkType: hard -"@aws-sdk/types@npm:3.226.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.110.0": - version: 3.226.0 - resolution: "@aws-sdk/types@npm:3.226.0" +"@aws-sdk/types@npm:3.257.0, @aws-sdk/types@npm:^3.222.0": + version: 3.257.0 + resolution: "@aws-sdk/types@npm:3.257.0" dependencies: tslib: ^2.3.1 - checksum: 0041a8c0924ec7ba4ff787ae329a80b3edb9ace43e38fe3656a1862ae5324427fb09836275c0962cbc80e3c34a6ee512a108a5c4e7997f29664e3e8930cffd80 + checksum: eab2154f7d27d0bec29df41374481652525e1658ad987c64ed02cbe7b7388c563e6a8d317c8fc564ac6fbd97c98be700a29352c9acebc3903cf3305431bf0a86 languageName: node linkType: hard -"@aws-sdk/url-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/url-parser@npm:3.226.0" +"@aws-sdk/url-parser@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/url-parser@npm:3.257.0" dependencies: - "@aws-sdk/querystring-parser": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/querystring-parser": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: cb8d4b13c0de7336728a7a60a246108c0ecd46e5e493cb1006f5ab58c5dbae0ac36a791536786b1facc90f58a8d6decca9f4fda2cba19667ba5a9f5f4fcadb63 + checksum: 3b781c7fe94572e673e0651a47806cf023f60fb1268d2abbad9364c70112b1ad37d2261f631e0d7ce5c5ec543faa7e316d987e519091db68bf121384ad557043 languageName: node linkType: hard @@ -767,39 +754,39 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.234.0" +"@aws-sdk/util-defaults-mode-browser@npm:3.261.0": + version: 3.261.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.261.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: 79a381a632f867477dc7f948243c8ba82932d3f10325c76a5f2cf96412560648d149ba43ee31794bc45d81158a8c361d890b291880fc0c05f9bafc99cded5ef4 + checksum: 218c97dc362549796a318048d496f8e105d023dd040ecf811c1cab8bc807c80afb43b8cae8bb6ac3c87f5bdfe07f9248fccd825554287cb5c39f84dddcb521b1 languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-node@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.234.0" +"@aws-sdk/util-defaults-mode-node@npm:3.261.0": + version: 3.261.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.261.0" dependencies: - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/config-resolver": 3.259.0 + "@aws-sdk/credential-provider-imds": 3.259.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/property-provider": 3.257.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: b70becd9e561c1622c75a452ed8c7a8b14b84eba35988159f29476db8c2b47ec72f0b7c19d1a252c725756af1fff1df4201e5e92b6136d1df9170e806dca5219 + checksum: d784ae1aaf51640b0b591028b91522c8c6dc58558245c6dfcd253adbfcc42e2496d4f8139df47b8b9932edd5eccbcdf8829a5d0adcf91b634ff8a506934d4399 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/util-endpoints@npm:3.245.0" +"@aws-sdk/util-endpoints@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/util-endpoints@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 - checksum: 22783fb178e8901385b20b0d19b944ad41297cc19f0561ac1722e86757ca6910fd3766626a0493372f718a0726bef920a5b39cc41fdceb1012f14e833541041b + checksum: ba1aec13c8ceb9519400f2c77db1743b34dec4380b27598a8862e94c9df43e3e8b4e183f230fb6bdaaeb89653d232e6a13dcc2016c6a9d12246f58b630fd3ec0 languageName: node linkType: hard @@ -821,22 +808,22 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-middleware@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-middleware@npm:3.226.0" +"@aws-sdk/util-middleware@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/util-middleware@npm:3.257.0" dependencies: tslib: ^2.3.1 - checksum: 51a4ba9a784943b723a2c57bbb889a4bc743f0f1219000ef73512e259069d63c3baa805aa375277c9d904da23301d0389bc0bd525b0b55274d7658fb62173e55 + checksum: 77ac007288fa98ec55c10af5a097f7f829d7ec53b6eecc43bc00a18b9ea011194aec42fb69e58421f87363490cef89b811330eaf174739fdf6b810b40cd46768 languageName: node linkType: hard -"@aws-sdk/util-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/util-retry@npm:3.229.0" +"@aws-sdk/util-retry@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/util-retry@npm:3.257.0" dependencies: - "@aws-sdk/service-error-classification": 3.229.0 + "@aws-sdk/service-error-classification": 3.257.0 tslib: ^2.3.1 - checksum: e4ab435000abfa1dc21153682ce684302bd6e69d48b7d2c876ff8dfa66793a43223961a3755d05abb1f94f82765eac2b9d48e55c688a957a7f6b5d032bbc46ee + checksum: 7d7054c5a73f3acaf59b620386ad0a6226ec6b2761e5c59f304694f8a7f5cb8ab0eb7d51be102e81d6e2a5ec97b20bd8814cf245ff44fcc5587d4e5b80a3b892 languageName: node linkType: hard @@ -849,49 +836,49 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.226.0" +"@aws-sdk/util-user-agent-browser@npm:3.257.0": + version: 3.257.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.257.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.257.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: b89b63e03636b98ccb811e713776c8ee5ce92a280edfd429e418dc69bb55b770b47d6118419be76207afe137f293fdb2e87605922714189df8ddbd4573185717 + checksum: f475d6096ff92ba2292de6cc78e2e1512df96c7fff3d8ef39148884533c14cc341a84ce3c4969f78cca2d8d4098c4cefefd72edf7cb480c33f8597f5828245c3 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.226.0" +"@aws-sdk/util-user-agent-node@npm:3.259.0": + version: 3.259.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.259.0" dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/node-config-provider": 3.259.0 + "@aws-sdk/types": 3.257.0 tslib: ^2.3.1 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: a3b620fa13e5e61bc874d777d451ec522f659f933b7d7f7642c10fbb12ce13dd068c2b5370fd6132cca5ddcd22243fb04b4e926a4dd8aedeb08270a9bb49ee74 + checksum: ed2ae75ef0ccd5f58f16887c8cfd521006e8efaa8431420d1b55c3f885c501bbb06e6a4f262c0239a88fbec9100923cd277b4539838df9fe9f391c411c5767ee languageName: node linkType: hard -"@aws-sdk/util-utf8-browser@npm:3.188.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.188.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.188.0" +"@aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.259.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0" dependencies: tslib: ^2.3.1 - checksum: dacd27164aa0835888434e080b67f04510e2281560540ff73496f2d0aa73b0b7f830ec08491b35c3a51bf6214615579182aff8727e151e54a74a97a197a2ac31 + checksum: b6a1e580da1c9b62c749814182a7649a748ca4253edb4063aa521df97d25b76eae3359eb1680b86f71aac668e05cc05c514379bca39ebf4ba998ae4348412da8 languageName: node linkType: hard -"@aws-sdk/util-utf8-node@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-utf8-node@npm:3.208.0" +"@aws-sdk/util-utf8@npm:3.254.0": + version: 3.254.0 + resolution: "@aws-sdk/util-utf8@npm:3.254.0" dependencies: "@aws-sdk/util-buffer-from": 3.208.0 tslib: ^2.3.1 - checksum: 0f4c1d0d3f6eb40d92bc7163c6dcf97f90b3a8be05df46ba4f9bb7723a3e6acabf2cb0f2486411b03d22e8fcccae9e757ed02afad384ff5f44a3a659a78c5752 + checksum: e5dfe7565f2de32245a544d1d715d803025bc5522538c0206fa61377f747804d95fc2e5e25976144bb63a6857e360b4286d101e730ab5d39866c60383a47e7d5 languageName: node linkType: hard @@ -939,20 +926,20 @@ __metadata: linkType: hard "@babel/parser@npm:^7.0.0": - version: 7.20.7 - resolution: "@babel/parser@npm:7.20.7" + version: 7.20.15 + resolution: "@babel/parser@npm:7.20.15" bin: parser: ./bin/babel-parser.js - checksum: 25b5266e3bd4be837092685f6b7ef886f1308ff72659a24342eb646ae5014f61ed1771ce8fc20636c890fcae19304fc72c069564ca6075207b7fbf3f75367275 + checksum: 1d0f47ca67ff2652f1c0ff1570bed8deccbc4b53509e7cd73476af9cc7ed23480c99f1179bd6d0be01612368b92b39e206d330ad6054009d699934848a89298b languageName: node linkType: hard "@babel/runtime@npm:^7.3.4": - version: 7.20.7 - resolution: "@babel/runtime@npm:7.20.7" + version: 7.20.13 + resolution: "@babel/runtime@npm:7.20.13" dependencies: regenerator-runtime: ^0.13.11 - checksum: 4629ce5c46f06cca9cfb9b7fc00d48003335a809888e2b91ec2069a2dcfbfef738480cff32ba81e0b7c290f8918e5c22ddcf2b710001464ee84ba62c7e32a3a3 + checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb languageName: node linkType: hard @@ -975,11 +962,11 @@ __metadata: linkType: hard "@bot-whatsapp/bot@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/bot@npm:0.1.5" + version: 0.1.20 + resolution: "@bot-whatsapp/bot@npm:0.1.20" dependencies: dotenv: ^16.0.3 - checksum: 5131587aba502cd1feaf61ff2f0778aa32b1b267f1e01646c6a9b43a4948e50b770ff8dddd434977d1603e46aeddaffc577b440e4848d899863a026b92ca57eb + checksum: ae60019b03a59cce075bb348ae620d6452ee7cc143a512e2f471fb9b28f46bc1e51c01ae694d37d6a1e5164833ea16010127651b7d104944fddcba3d93dd3780 languageName: node linkType: hard @@ -996,11 +983,11 @@ __metadata: linkType: soft "@bot-whatsapp/cli@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/cli@npm:0.1.5" + version: 0.1.20 + resolution: "@bot-whatsapp/cli@npm:0.1.20" bin: bot: bin/cli.js - checksum: 2ff67f9c6f8402b25e0b2cc72c17fb1b163e61d8baa897b564d4b388bc0dfadf0f42c2dee42d55c3f63feff1de9b65c8e46c547a3c6dd0d74e5d95bd3d18613a + checksum: 1453df4eb9e8707fd906e5b841e71948c40362efbe7a9f2a98419fdd21c5ac114efc7dd441cd2fba28892f601482100af44f8aae98122af1dcbea31fd8680330 languageName: node linkType: hard @@ -1026,13 +1013,13 @@ __metadata: linkType: soft "@bot-whatsapp/database@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/database@npm:0.1.5" + version: 0.1.20 + resolution: "@bot-whatsapp/database@npm:0.1.20" dependencies: dotenv: ^16.0.3 mongodb: ^4.11.0 mysql2: ^2.3.3 - checksum: 4ddc5282c4b15d45126729fd1cf4adbd36328d71c82812f3f7c187ee6af4e8ee8c98cf7ead3bbf7fbb6631f22cdb608dad4a08b271a312b71a699bb35687da34 + checksum: 179a4af011fa8920041a35484f518021b7b1fc8f1ddd2e32c7ca62e0a8b8d5ad98f0946cceb95fc1ebeae3b07227691d145311e9dad9613af0f7e2ee4fa38de7 languageName: node linkType: hard @@ -1072,14 +1059,14 @@ __metadata: linkType: soft "@bot-whatsapp/provider@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/provider@npm:0.1.5" + version: 0.1.20 + resolution: "@bot-whatsapp/provider@npm:0.1.20" dependencies: "@bot-whatsapp/bot": "*" combine-image: ^1.0.3 qr-image: ^3.2.0 rimraf: ^3.0.2 - checksum: 87ab0ba27a4566ea882810fad1fe4be391d3a264646675e432b3dea860514bfa538f39d77e5dfa33b0daa3ed6f8540054c75f51a50c733155a9b86bbc13ac5e1 + checksum: abe92dc0e2043aad576dd95c449af73f0c02ac3c66d2cb977a473bd7a9a60347ad7d2452afa989c41bc8d0d0183bbbf0e67d087ded26e97e5ec9fa55a79d7575 languageName: node linkType: hard @@ -1129,56 +1116,56 @@ __metadata: languageName: unknown linkType: soft -"@bugsnag/browser@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/browser@npm:7.18.0" +"@bugsnag/browser@npm:^7.20.0": + version: 7.20.0 + resolution: "@bugsnag/browser@npm:7.20.0" dependencies: - "@bugsnag/core": ^7.18.0 - checksum: 131f9bc8ac6d780574fa70ba8be5051efc9c75d4fbf8a32d1be7733cf07b85f81404e749776c5a76bf48526f4629b27faac0bae2b36318dfc157423e361b297a + "@bugsnag/core": ^7.19.0 + checksum: a8f1bbdde06e7b98ec918bbd1c1b4431df6d35ec15044164f8b439b55d8fb93957928a4d03f760b2c68a71eedc2a49e5b6506f5a1f994540b2bdbdbe5e68500e languageName: node linkType: hard -"@bugsnag/core@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/core@npm:7.18.0" +"@bugsnag/core@npm:^7.19.0": + version: 7.19.0 + resolution: "@bugsnag/core@npm:7.19.0" dependencies: "@bugsnag/cuid": ^3.0.0 "@bugsnag/safe-json-stringify": ^6.0.0 error-stack-parser: ^2.0.3 iserror: 0.0.2 stack-generator: ^2.0.3 - checksum: bce23771159546b481a655decb0d58406dc68ffe6249a0f41c598b00a8adc9fb26c234913aafb2872f87628a015bd2c6b78555af5c21a68901d2e83b20d4593a + checksum: 324e1aa7bd62bd478c4e8459b2f54c71b4fb20d26075363a07be039f0cc65702b5996cee2e7955d0763b6535358376d45ef385cb9e24717441e1925de6aa5753 languageName: node linkType: hard "@bugsnag/cuid@npm:^3.0.0": - version: 3.0.1 - resolution: "@bugsnag/cuid@npm:3.0.1" - checksum: ead5632c883ec0dbd5b9303c2cce34d0ed72f32d3e4ecd243274790ce36193163d79477bb52746d2557ed7681715ad3f56f2fb359c53bb60e02c35a5bddfb5af + version: 3.0.2 + resolution: "@bugsnag/cuid@npm:3.0.2" + checksum: cf85d78f0107b25bcfc4396e5c2cf7eb58a28777f07b9c6e976d529417a8284bb69ec715f13917c2b6ad3803e7bb563621b0374c31e09d4c6b3156aba9939955 languageName: node linkType: hard "@bugsnag/js@npm:^7.0.0": - version: 7.18.0 - resolution: "@bugsnag/js@npm:7.18.0" + version: 7.20.0 + resolution: "@bugsnag/js@npm:7.20.0" dependencies: - "@bugsnag/browser": ^7.18.0 - "@bugsnag/node": ^7.18.0 - checksum: 6b011dc36001cdd4c2b33e793053d323d358e9bc1ef6ba7ee866634114e1a088b5704c3d18cb35cfa2e1f613ddaa9d94f7f3b2225698feffce2dcf622dd8f14f + "@bugsnag/browser": ^7.20.0 + "@bugsnag/node": ^7.19.0 + checksum: 503e00b315b7b21d4cbc5b3b7c6faa7e3180601106a7e5773304892f368d625f4682cd137b00dfed5ecb7941e5a2dc3115b08afcc7190db03bc557de286d2890 languageName: node linkType: hard -"@bugsnag/node@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/node@npm:7.18.0" +"@bugsnag/node@npm:^7.19.0": + version: 7.19.0 + resolution: "@bugsnag/node@npm:7.19.0" dependencies: - "@bugsnag/core": ^7.18.0 + "@bugsnag/core": ^7.19.0 byline: ^5.0.0 error-stack-parser: ^2.0.2 iserror: ^0.0.2 pump: ^3.0.0 stack-generator: ^2.0.3 - checksum: 678cf3dff4639a1b1ea863968ca9ed46e0af661cb53275c21d0ae9c16fb45c63455e5f9210a61f978575609aa437f80861671c43f62ba8c39167f0c11ebc7d41 + checksum: f7dc9c1cfaa35c96a428ad2cdfe4d289298329275bc3930bfc923a0e1eac3bf62f8919581a68f001d992256fa2c55321232bddcaea9a9e5482f88f19632c2ea2 languageName: node linkType: hard @@ -1231,13 +1218,13 @@ __metadata: linkType: hard "@commitlint/cli@npm:^17.3.0": - version: 17.4.1 - resolution: "@commitlint/cli@npm:17.4.1" + version: 17.4.2 + resolution: "@commitlint/cli@npm:17.4.2" dependencies: "@commitlint/format": ^17.4.0 - "@commitlint/lint": ^17.4.0 - "@commitlint/load": ^17.4.1 - "@commitlint/read": ^17.4.0 + "@commitlint/lint": ^17.4.2 + "@commitlint/load": ^17.4.2 + "@commitlint/read": ^17.4.2 "@commitlint/types": ^17.4.0 execa: ^5.0.0 lodash.isfunction: ^3.0.9 @@ -1246,16 +1233,16 @@ __metadata: yargs: ^17.0.0 bin: commitlint: cli.js - checksum: a0f3d26f06fa751be6009f76b76fee83e2394f6b528b38f375b3119be41a39c851a053e9dd93385a5274feff471bd0984e626bb23624d72e231f66125e222fd5 + checksum: a2d0ecd2c5a770b3d3be1214020ed4298f3d7685f5c065ed2f1565b02b9a1608abd00d114c8b9b17e84741cde0d977bb2c2afc1074176565b6b63e9cde0d2e25 languageName: node linkType: hard "@commitlint/config-conventional@npm:^17.3.0": - version: 17.4.0 - resolution: "@commitlint/config-conventional@npm:17.4.0" + version: 17.4.2 + resolution: "@commitlint/config-conventional@npm:17.4.2" dependencies: conventional-changelog-conventionalcommits: ^5.0.0 - checksum: bc161a330c3cc9168798a58321b86ac05f8c28c5f6b521f4f1c43ede04ff75fbc31881700691685a308a327a05ad66397f9b41463403056fc5183eae18a0e9a2 + checksum: 517dd3b3395774084503606b5c5f9acb0e92db6cd5dd237716993b9858eb9e7e10da981e2a68f99aa2f48afb4d3597b04449c9e2bfde8af2690a0b40ea40115e languageName: node linkType: hard @@ -1300,31 +1287,31 @@ __metadata: languageName: node linkType: hard -"@commitlint/is-ignored@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/is-ignored@npm:17.4.0" +"@commitlint/is-ignored@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/is-ignored@npm:17.4.2" dependencies: "@commitlint/types": ^17.4.0 semver: 7.3.8 - checksum: 94643c63c7ff8dd01ef50f6593bc553411aa8c1d3372ca38e3b0086fcac96c168f4a81db1d77d153e4a9b083788c81754a311627f6260141306fa0b6a5fabaac + checksum: 4b210d6ce0f9dd66f27d925d151c88845a2f1128b10865f5808e113f31be6ab359c58c1259664c888961e7bc1b71d3e8a2125eda8b8e4be1d32618a7772603c6 languageName: node linkType: hard -"@commitlint/lint@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/lint@npm:17.4.0" +"@commitlint/lint@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/lint@npm:17.4.2" dependencies: - "@commitlint/is-ignored": ^17.4.0 - "@commitlint/parse": ^17.4.0 - "@commitlint/rules": ^17.4.0 + "@commitlint/is-ignored": ^17.4.2 + "@commitlint/parse": ^17.4.2 + "@commitlint/rules": ^17.4.2 "@commitlint/types": ^17.4.0 - checksum: 95e256ca880457e34b710292df9fa16a8c4849a43fbc0821ddd4a1a10c6f376a12cc1e24a6b5c35c899b15e2b002d2ff845e93a722b0848257941664af1052e2 + checksum: efcb5fbee6f8cad5b619deabde598f1f1ac253cf1162eeda4de01e41ae13b7caa651d6fe5eea75d32a20fa7975bb27d13d9e0c9a422ebd158485311e6fb8c8a9 languageName: node linkType: hard -"@commitlint/load@npm:^17.4.1": - version: 17.4.1 - resolution: "@commitlint/load@npm:17.4.1" +"@commitlint/load@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/load@npm:17.4.2" dependencies: "@commitlint/config-validator": ^17.4.0 "@commitlint/execute-rule": ^17.4.0 @@ -1340,38 +1327,38 @@ __metadata: resolve-from: ^5.0.0 ts-node: ^10.8.1 typescript: ^4.6.4 - checksum: 17bc9f2e339da480740138bb1f56d6a5c36ec6d70844a605f09b5ffcbe0bb18fd3ab0ad09d40ba3cfd095f26b0b3cf78a02d7b73d5980d9e58dbdcdfaeb252a2 + checksum: 7c0498040611abbc2c9f2af03bc6360ca44ff85943dd49012b90b5a5d9308997d782b75e164ad2c39c5d522e94c93214e5cc4fd3b4122c5788c3c869ee91eae0 languageName: node linkType: hard -"@commitlint/message@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/message@npm:17.4.0" - checksum: 7fe8672f149cf276084f16d66fe38139b188aa94b664397aae8268f9f6060368b801fe8456076c076cb9e55ba469367256f7671aebeabb281e2b5ca275266ff8 +"@commitlint/message@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/message@npm:17.4.2" + checksum: 55b6cfeb57f7c9f913e18821aa4d972a6b6faa78c62741390996151f99554396f6df68ccfee86c163d24d8c27a4dbbcb50ef03c2972ab0a7a21d89daa2f9a519 languageName: node linkType: hard -"@commitlint/parse@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/parse@npm:17.4.0" +"@commitlint/parse@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/parse@npm:17.4.2" dependencies: "@commitlint/types": ^17.4.0 conventional-changelog-angular: ^5.0.11 conventional-commits-parser: ^3.2.2 - checksum: 5807d44b6f9f3dad93d6af898e989f0b557f08b8f0509b2f72bdafbdbd4c0ffa4abfa01e04225dca19a7479500c5b39560d2bd747335d8f7ba1f25feff129173 + checksum: d6808cc9c9ffcf8b06f938392a7428bb017c5e43d13510edad2c5885468bf0eae23e02c4d9611c200c498adb33eaf8abee797f32d437557101ddee02922f3572 languageName: node linkType: hard -"@commitlint/read@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/read@npm:17.4.0" +"@commitlint/read@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/read@npm:17.4.2" dependencies: "@commitlint/top-level": ^17.4.0 "@commitlint/types": ^17.4.0 fs-extra: ^11.0.0 git-raw-commits: ^2.0.0 minimist: ^1.2.6 - checksum: 66cb387857d377bdc0c64f8ba3a3f4d000421d5866267c94652bfbcfb7962d0079fc2d5333eab5f09e0f8c6f195bc09a1e5b6c3d0b9f1a23c30ae84d498d5fec + checksum: ed509f913bd9790bb3abfde0886abdc4e2569eb7651e666d2d70705954f98f14e2c621ffe8ee17bb8a9bee36e65e4d4d01d5cd2792c8e08e69248d31808830fa languageName: node linkType: hard @@ -1389,16 +1376,16 @@ __metadata: languageName: node linkType: hard -"@commitlint/rules@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/rules@npm:17.4.0" +"@commitlint/rules@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/rules@npm:17.4.2" dependencies: "@commitlint/ensure": ^17.4.0 - "@commitlint/message": ^17.4.0 + "@commitlint/message": ^17.4.2 "@commitlint/to-lines": ^17.4.0 "@commitlint/types": ^17.4.0 execa: ^5.0.0 - checksum: 9f1fc405a41c55212b8c04a67966b36585b852057ebf4e4fa6ee091d55e6479a88fff333be484cff47dbdd24132c06f89d278af5084ee20eaf1156001c8c64d8 + checksum: 2d53f470b511c41359b66886db054cb43fff748281a236a860bf21c3ba666b9d0b346932e8f0ac90e0dfc5ccdea10abda855ea9faa0f3fe3ef0f3fbc6992c141 languageName: node linkType: hard @@ -1454,9 +1441,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-arm64@npm:0.16.16" +"@esbuild/android-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm64@npm:0.16.17" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1468,65 +1455,65 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-arm@npm:0.16.16" +"@esbuild/android-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm@npm:0.16.17" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-x64@npm:0.16.16" +"@esbuild/android-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-x64@npm:0.16.17" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/darwin-arm64@npm:0.16.16" +"@esbuild/darwin-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-arm64@npm:0.16.17" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/darwin-x64@npm:0.16.16" +"@esbuild/darwin-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-x64@npm:0.16.17" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/freebsd-arm64@npm:0.16.16" +"@esbuild/freebsd-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-arm64@npm:0.16.17" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/freebsd-x64@npm:0.16.16" +"@esbuild/freebsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-x64@npm:0.16.17" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-arm64@npm:0.16.16" +"@esbuild/linux-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm64@npm:0.16.17" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-arm@npm:0.16.16" +"@esbuild/linux-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm@npm:0.16.17" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-ia32@npm:0.16.16" +"@esbuild/linux-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ia32@npm:0.16.17" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -1538,86 +1525,86 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-loong64@npm:0.16.16" +"@esbuild/linux-loong64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-loong64@npm:0.16.17" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-mips64el@npm:0.16.16" +"@esbuild/linux-mips64el@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-mips64el@npm:0.16.17" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-ppc64@npm:0.16.16" +"@esbuild/linux-ppc64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ppc64@npm:0.16.17" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-riscv64@npm:0.16.16" +"@esbuild/linux-riscv64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-riscv64@npm:0.16.17" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-s390x@npm:0.16.16" +"@esbuild/linux-s390x@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-s390x@npm:0.16.17" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-x64@npm:0.16.16" +"@esbuild/linux-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-x64@npm:0.16.17" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/netbsd-x64@npm:0.16.16" +"@esbuild/netbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/netbsd-x64@npm:0.16.17" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/openbsd-x64@npm:0.16.16" +"@esbuild/openbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/openbsd-x64@npm:0.16.17" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/sunos-x64@npm:0.16.16" +"@esbuild/sunos-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/sunos-x64@npm:0.16.17" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-arm64@npm:0.16.16" +"@esbuild/win32-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-arm64@npm:0.16.17" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-ia32@npm:0.16.16" +"@esbuild/win32-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-ia32@npm:0.16.17" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-x64@npm:0.16.16" +"@esbuild/win32-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-x64@npm:0.16.17" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1680,25 +1667,38 @@ __metadata: languageName: node linkType: hard +"@fastify/send@npm:^2.0.0": + version: 2.0.1 + resolution: "@fastify/send@npm:2.0.1" + dependencies: + "@lukeed/ms": ^2.0.1 + escape-html: ~1.0.3 + fast-decode-uri-component: ^1.0.1 + http-errors: 2.0.0 + mime: ^3.0.0 + checksum: 184a21b5cd00a3756f5b9e853b0d110074a438e9112f8a27211aa6c3e2c27b4baf0cc9ca157561914b2181f1dab752ec3dd278bd8419f94972e56d5fdfb4c79c + languageName: node + linkType: hard + "@fastify/static@npm:^6.6.0": - version: 6.6.0 - resolution: "@fastify/static@npm:6.6.0" + version: 6.8.0 + resolution: "@fastify/static@npm:6.8.0" dependencies: "@fastify/accept-negotiator": ^1.0.0 + "@fastify/send": ^2.0.0 content-disposition: ^0.5.3 fastify-plugin: ^4.0.0 glob: ^8.0.1 p-limit: ^3.1.0 readable-stream: ^4.0.0 - send: ^0.18.0 - checksum: 4abefd47f404ead444742905c0596f55ee0dc264f694aeb34debcd10212e2cee8b2694159febe354454667999f397d73b06a52df6fe6150525f8c2a6af3078a8 + checksum: a38738e812a55bcb3042b06be90b703a343b6b13dd28a244b464dc03a63255419e1565279e5fd5d05315b0a4447d102e2387112682d8392700b2142f1f1a1e3e languageName: node linkType: hard "@fontsource/inter@npm:^4.5.14": - version: 4.5.14 - resolution: "@fontsource/inter@npm:4.5.14" - checksum: 4e2eb9e54f8de0025bca7ad8e0822549f1873c5d9a634b8f99630d7bba750b1c86263229bae99375fc82489daa38df41e0304c77c3efda2d9a2f78d0eba3ec56 + version: 4.5.15 + resolution: "@fontsource/inter@npm:4.5.15" + checksum: d4330957c0a23a6c6a47f6f628b89c5603deec6305f28458fd3277bb652913dc77b31ac454bba96beeaecddef87eaf4b60befa2aad040ebb8c22c39ee33a2cf1 languageName: node linkType: hard @@ -1805,11 +1805,11 @@ __metadata: linkType: hard "@iconify-json/tabler@npm:^1.1.49": - version: 1.1.54 - resolution: "@iconify-json/tabler@npm:1.1.54" + version: 1.1.57 + resolution: "@iconify-json/tabler@npm:1.1.57" dependencies: "@iconify/types": "*" - checksum: 4e3234db68858a1d12f37f3c59e6ecdfd6c6a34f916e35837821b74ef54e89f08e16a0078c915d201bfc9ec56a631c102c083d7304a078f33110ea52f0bc82af + checksum: 63d837bd77889df99b8aa6684efb105da86049e4e0093a4fc699b21703675f8faab529f64a88b680e422f46ef0a4175d8a72c69d2b4d65676b4a8e205dbbdec1 languageName: node linkType: hard @@ -1893,6 +1893,13 @@ __metadata: languageName: node linkType: hard +"@lukeed/ms@npm:^2.0.1": + version: 2.0.1 + resolution: "@lukeed/ms@npm:2.0.1" + checksum: c7b46933bf7bad3e024dcbbe2ad6201392b4ed2a05a717c0ef7e96a03fb885d44f08b4b749c392cc51c2736a6a45a08c77f1863ace1c072928fbfd9908a13db3 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^1.0.5": version: 1.0.10 resolution: "@mapbox/node-pre-gyp@npm:1.0.10" @@ -1954,19 +1961,19 @@ __metadata: languageName: node linkType: hard -"@netlify/build@npm:^29.4.0": - version: 29.4.1 - resolution: "@netlify/build@npm:29.4.1" +"@netlify/build@npm:^29.5.2": + version: 29.5.4 + resolution: "@netlify/build@npm:29.5.4" dependencies: "@bugsnag/js": ^7.0.0 - "@netlify/cache-utils": ^5.1.0 - "@netlify/config": ^20.3.0 - "@netlify/edge-bundler": 8.0.0 - "@netlify/functions-utils": ^5.1.1 + "@netlify/cache-utils": ^5.1.1 + "@netlify/config": ^20.3.2 + "@netlify/edge-bundler": 8.4.0 + "@netlify/functions-utils": ^5.1.6 "@netlify/git-utils": ^5.1.0 "@netlify/plugins-list": ^6.61.0 "@netlify/run-utils": ^5.1.0 - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.5.0 "@sindresorhus/slugify": ^2.0.0 ansi-escapes: ^5.0.0 chalk: ^5.0.0 @@ -1974,7 +1981,8 @@ __metadata: execa: ^6.0.0 figures: ^4.0.0 filter-obj: ^3.0.0 - got: ^10.0.0 + got: ^12.0.0 + hot-shots: 9.3.0 indent-string: ^5.0.0 is-plain-obj: ^4.0.0 js-yaml: ^4.0.0 @@ -2000,7 +2008,6 @@ __metadata: rfdc: ^1.3.0 safe-json-stringify: ^1.2.0 semver: ^7.0.0 - statsd-client: 0.4.7 string-width: ^5.0.0 strip-ansi: ^7.0.0 supports-color: ^9.0.0 @@ -2013,13 +2020,13 @@ __metadata: yargs: ^17.6.0 bin: netlify-build: bin.js - checksum: 1756c96a5ef99a377cce8f63303f12210d77570c1914204718d2762d1f0ebdb42f9e70d77219ab0b6813cf525c8e48d0f418bd5efb9741d2d0d4d657978bd1b1 + checksum: 2be04f50038086d71609b8d72cde66b7c2ca0c512ff7d0dcabfd55fb16641ba97ce40040c452f7cc17ee9e6a23ad133d9646e64311eb8bc3d19f16883079a470 languageName: node linkType: hard -"@netlify/cache-utils@npm:^5.1.0": - version: 5.1.0 - resolution: "@netlify/cache-utils@npm:5.1.0" +"@netlify/cache-utils@npm:^5.1.1": + version: 5.1.1 + resolution: "@netlify/cache-utils@npm:5.1.1" dependencies: cpy: ^8.1.0 del: ^6.0.0 @@ -2030,13 +2037,13 @@ __metadata: move-file: ^3.0.0 path-exists: ^5.0.0 readdirp: ^3.4.0 - checksum: 2e3cee0955c240150d855c01619c1c74fbffcd7d28f11b395d64bfcaf11d0e6d2ac883ca93c8f386f6fc3daf23547ed98a2a54ee811d3d1cf0e0d95e22329277 + checksum: d490da07f7f0ffcf372b3f48543efa776576f16d9c67b18532f9ab853d7eb41276a1b1ddfe4fc189f1fef91318ce4c0cfe7a1b0fc1b50fab7be5c3ebd30941cb languageName: node linkType: hard -"@netlify/config@npm:^20.3.0": - version: 20.3.0 - resolution: "@netlify/config@npm:20.3.0" +"@netlify/config@npm:^20.3.2": + version: 20.3.2 + resolution: "@netlify/config@npm:20.3.2" dependencies: chalk: ^5.0.0 cron-parser: ^4.1.0 @@ -2051,9 +2058,9 @@ __metadata: is-plain-obj: ^4.0.0 js-yaml: ^4.0.0 map-obj: ^5.0.0 - netlify: ^13.1.0 - netlify-headers-parser: ^7.1.0 - netlify-redirect-parser: ^14.1.0 + netlify: ^13.1.2 + netlify-headers-parser: ^7.1.1 + netlify-redirect-parser: ^14.1.1 omit.js: ^2.0.2 p-locate: ^6.0.0 path-exists: ^5.0.0 @@ -2064,13 +2071,13 @@ __metadata: yargs: ^17.6.0 bin: netlify-config: bin.js - checksum: 1ccafcf7dd7e3ffe241f809968c9e8f73fbeb56e078836eed15da8d8da1054945150aa57fdfc87981eebfd065908812071eda745322f9302c8d1226e668ca4a8 + checksum: 0e01523879e71f784b196a13ead8a6665a649ac1390a4b167a5bab0f48f2f9cd0a70a5f075974fbf5e7e18fbd92a92b360b82920cf908aac657b4d1c0238daf3 languageName: node linkType: hard -"@netlify/edge-bundler@npm:8.0.0": - version: 8.0.0 - resolution: "@netlify/edge-bundler@npm:8.0.0" +"@netlify/edge-bundler@npm:8.4.0, @netlify/edge-bundler@npm:^8.4.0": + version: 8.4.0 + resolution: "@netlify/edge-bundler@npm:8.4.0" dependencies: "@import-maps/resolve": ^1.0.1 ajv: ^8.11.2 @@ -2092,35 +2099,7 @@ __metadata: semver: ^7.3.5 tmp-promise: ^3.0.3 uuid: ^9.0.0 - checksum: b6e387fc46469179b3e53a82895740da02f98011e224827d26009254f671916393c3e4e8a7d4696e12d9220dbe7307f9abc8e479d4d5e833e00178a8bf276cd0 - languageName: node - linkType: hard - -"@netlify/edge-bundler@npm:^8.0.0": - version: 8.1.1 - resolution: "@netlify/edge-bundler@npm:8.1.1" - dependencies: - "@import-maps/resolve": ^1.0.1 - ajv: ^8.11.2 - ajv-errors: ^3.0.0 - better-ajv-errors: ^1.2.0 - common-path-prefix: ^3.0.0 - del: ^7.0.0 - env-paths: ^3.0.0 - execa: ^6.0.0 - find-up: ^6.3.0 - get-port: ^6.1.2 - glob-to-regexp: ^0.4.1 - jsonc-parser: ^3.2.0 - node-fetch: ^3.1.1 - node-stream-zip: ^1.15.0 - p-retry: ^5.1.1 - p-wait-for: ^4.1.0 - path-key: ^4.0.0 - semver: ^7.3.5 - tmp-promise: ^3.0.3 - uuid: ^9.0.0 - checksum: 0c7b07bcfa137a651f9ce58cf4cdd7c3ddaaf559844f0eb297afbc1aac7c27879e7f48ae4dc61259ff3e913e1fe40c4bc0be36c614019f9a95399d6993839a2d + checksum: ea53c2ed8a15fb6b7eee796771755ee4b0295a659996a04d50a9e39c46e3ca493dc179b4477094be2fdd838da6d298226e01ddf1bd40448840df527b6205fa2b languageName: node linkType: hard @@ -2335,9 +2314,9 @@ __metadata: languageName: node linkType: hard -"@netlify/framework-info@npm:^9.5.3": - version: 9.5.3 - resolution: "@netlify/framework-info@npm:9.5.3" +"@netlify/framework-info@npm:^9.7.1": + version: 9.7.2 + resolution: "@netlify/framework-info@npm:9.7.2" dependencies: ajv: ^8.0.0 filter-obj: ^3.0.0 @@ -2351,18 +2330,18 @@ __metadata: read-pkg-up: ^9.0.0 semver: ^7.3.4 url: ^0.11.0 - checksum: ba3f8c55f1563e3e60611838cf1aaffa04633aee86a7bc20ef760c8dda6565f160f85dc19970e6fcd5403f3de210a22d0f9e06d6d24808f9e1a7017243a3a0c2 + checksum: 90e1b1ed48e0882cc7467c74e32a18a1a7c15859f27b97b4b169ee65bae999878bddcf225d6d5a8aca6eb6f605f519a78bfa79e301530b12d4f320d8c5a425c9 languageName: node linkType: hard -"@netlify/functions-utils@npm:^5.1.1": - version: 5.1.1 - resolution: "@netlify/functions-utils@npm:5.1.1" +"@netlify/functions-utils@npm:^5.1.6": + version: 5.1.6 + resolution: "@netlify/functions-utils@npm:5.1.6" dependencies: - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.5.0 cpy: ^8.1.0 path-exists: ^5.0.0 - checksum: 526c5f3ff25d8f687a30ab3c6003f97f183f1365468f6716e7f6bcf28022a2163dad8a613a48077c69b8944294e58e325e1ccf130dc4e2b4ffb425b446035879 + checksum: ffcae5d625677268de2b21d1be3bdd8253e4b94ff4cf4df03d01d94a448edf6107ecdb2e06d5550a0c2427d186f1a8350990b294958dfb6d5063c55b061721fb languageName: node linkType: hard @@ -2532,17 +2511,17 @@ __metadata: languageName: node linkType: hard -"@netlify/open-api@npm:^2.12.0": - version: 2.12.2 - resolution: "@netlify/open-api@npm:2.12.2" - checksum: 85b5fb20e80cc581e21924f770536a5797d8efedbade9086b0703f6c87a741c1005b140e7848dda1724f4a7ce945371d74a21e6c624c428c75a88d86f5b1f2e6 +"@netlify/open-api@npm:^2.13.0": + version: 2.14.0 + resolution: "@netlify/open-api@npm:2.14.0" + checksum: 569ab242fd2f9b40287ae80e2474d6c4729cd6323d175a7c2151495940ac174de1776b1ddf8cc392162dda0031e6f647db44cdd43bf35e4feb63609e1c8767ba languageName: node linkType: hard "@netlify/plugins-list@npm:^6.61.0": - version: 6.61.0 - resolution: "@netlify/plugins-list@npm:6.61.0" - checksum: c1a62683f2c0d413e5787241bd2d3b0e6e1d05d4651d8bc9ed06647fdd50f5ab7f2aa2d9041559c5be3029a7064fd6ecf6b9ae0f46f844624bb81f8e7059ddd1 + version: 6.65.0 + resolution: "@netlify/plugins-list@npm:6.65.0" + checksum: 738c86fcb57faa170c64596fde8e2b193decaa16b98842385af615f71b2a31caff1025d4cb5fc09354f96f8a9920e0200906cb5521c29daa928ed02f95b15930 languageName: node linkType: hard @@ -2555,9 +2534,9 @@ __metadata: languageName: node linkType: hard -"@netlify/zip-it-and-ship-it@npm:^8.2.0": - version: 8.2.0 - resolution: "@netlify/zip-it-and-ship-it@npm:8.2.0" +"@netlify/zip-it-and-ship-it@npm:^8.4.1, @netlify/zip-it-and-ship-it@npm:^8.5.0": + version: 8.5.0 + resolution: "@netlify/zip-it-and-ship-it@npm:8.5.0" dependencies: "@babel/parser": 7.16.8 "@netlify/binary-info": ^1.0.0 @@ -2578,7 +2557,7 @@ __metadata: junk: ^4.0.0 locate-path: ^7.0.0 merge-options: ^3.0.4 - minimatch: ^5.0.0 + minimatch: ^6.0.0 normalize-path: ^3.0.0 p-map: ^5.0.0 path-exists: ^5.0.0 @@ -2592,7 +2571,7 @@ __metadata: yargs: ^17.0.0 bin: zip-it-and-ship-it: dist/bin.js - checksum: 1963aeea05598e26c67c420813e5b765510cfe788118eda87eda88583c574f930b2d070dd9f5f368ac0e96752cbca7af9bdb18f52bb6b1c941415df85416a234 + checksum: 75f8fa9516f0dd911790dbcec769891d3241418e6779341a2730fcdef659e4f7ded95e61a89ef51c25353a95e64791fcd681976fc370d2a135f5cbf6ab5d92b5 languageName: node linkType: hard @@ -2651,66 +2630,66 @@ __metadata: linkType: hard "@octokit/auth-token@npm:^3.0.0": - version: 3.0.2 - resolution: "@octokit/auth-token@npm:3.0.2" + version: 3.0.3 + resolution: "@octokit/auth-token@npm:3.0.3" dependencies: - "@octokit/types": ^8.0.0 - checksum: c7204770a6cb1661379c31b5a26779b509324446e61a4902893a69fd471738c817afc470f8ac8d86ad827738cc953046d27fbb87fc81782ff10e366b70241f4e + "@octokit/types": ^9.0.0 + checksum: 9b3f569cec1b7e0aa88ab6da68aed4b49b6652261bd957257541fabaf6a4d4ed99f908153cc3dd2fe15b8b0ccaff8caaafaa50bb1a4de3925b0954a47cca1900 languageName: node linkType: hard "@octokit/core@npm:^4.1.0": - version: 4.1.0 - resolution: "@octokit/core@npm:4.1.0" + version: 4.2.0 + resolution: "@octokit/core@npm:4.2.0" dependencies: "@octokit/auth-token": ^3.0.0 "@octokit/graphql": ^5.0.0 "@octokit/request": ^6.0.0 "@octokit/request-error": ^3.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 before-after-hook: ^2.2.0 universal-user-agent: ^6.0.0 - checksum: 4e53e02ff3ebe808b74385be0055cc1cce4b548060b20e3f2d5dd1bf7877ff7b6556f11278edc070842bf24aa869f9f59a02638f1b14083eb290b9e297447a2d + checksum: 5ac56e7f14b42a5da8d3075a2ae41483521a78bee061a01f4a81d8c0ecd6a684b2e945d66baba0cd1fdf264639deedc3a96d0f32c4d2fc39b49ca10f52f4de39 languageName: node linkType: hard "@octokit/endpoint@npm:^7.0.0": - version: 7.0.3 - resolution: "@octokit/endpoint@npm:7.0.3" + version: 7.0.5 + resolution: "@octokit/endpoint@npm:7.0.5" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 is-plain-object: ^5.0.0 universal-user-agent: ^6.0.0 - checksum: c36b1577062e51d1683779a59c75d046d59f9a5c3a0f046d465e6c4c39f64bfc3a3052b42fa91a4552c7903ec382c604b4a2e1aadebdf7458191849ede5d4978 + checksum: 81c9e9eabf50e48940cceff7c4d7fbc9327190296507cfe8a199ea00cd492caf8f18a841caf4e3619828924b481996eb16091826db6b5a649bee44c8718ecaa9 languageName: node linkType: hard "@octokit/graphql@npm:^5.0.0": - version: 5.0.4 - resolution: "@octokit/graphql@npm:5.0.4" + version: 5.0.5 + resolution: "@octokit/graphql@npm:5.0.5" dependencies: "@octokit/request": ^6.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 universal-user-agent: ^6.0.0 - checksum: 8cf65cf7e6608cf3cbc96a2fa902172b4d5dc30e88ee0bae3711bf467a25b828b10cce1aaabb7f82a7580bfbcf7028b91d1dd1a894940945e38ca2deb6509754 + checksum: eb2d1a6305a3d1f55ff0ce92fb88b677f0bb789757152d58a79ef61171fb65ecf6fe18d6c27e236c0cee6a0c2600c2cb8370f5ac7184f8e9361c085aa4555bb1 languageName: node linkType: hard -"@octokit/openapi-types@npm:^14.0.0": - version: 14.0.0 - resolution: "@octokit/openapi-types@npm:14.0.0" - checksum: 0a1f8f3be998cd82c5a640e9166d43fd183b33d5d36f5e1a9b81608e94d0da87c01ec46c9988f69cd26585d4e2ffc4d3ec99ee4f75e5fe997fc86dad0aa8293c +"@octokit/openapi-types@npm:^16.0.0": + version: 16.0.0 + resolution: "@octokit/openapi-types@npm:16.0.0" + checksum: 844f30a545da380d63c712e0eb733366bc567d1aab34529c79fdfbec3d73810e81d83f06fdab13058a5cbc7dae786db1a9b90b5b61b1e606854ee45d5ec5f194 languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/plugin-paginate-rest@npm:5.0.1" +"@octokit/plugin-paginate-rest@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/plugin-paginate-rest@npm:6.0.0" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 peerDependencies: "@octokit/core": ">=4" - checksum: cfded297d9f66c7607bd34075eb0c5f7278a1617d6be86115997c0757151c9be2fcf7a8849c2a5cebab56931a263b5cc35742b6227935afe77f5ed61b0627a3d + checksum: 4ad89568d883373898b733837cada7d849d51eef32157c11d4a81cef5ce8e509720d79b46918cada3c132f9b29847e383f17b7cd5c39ede7c93cdcd2f850b47f languageName: node linkType: hard @@ -2723,61 +2702,61 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^6.7.0": - version: 6.7.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:6.7.0" +"@octokit/plugin-rest-endpoint-methods@npm:^7.0.0": + version: 7.0.1 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.0.1" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 deprecation: ^2.3.1 peerDependencies: "@octokit/core": ">=3" - checksum: 513c6c0717d08f3e85848029bd700412b7d9787750f78cc79a3dede356e94b238bf8a518b108f556a7efe626871720dd0466de9f31091578ea4e0f5a016f0ae7 + checksum: cdb8734ec960f75acc2405284920c58efac9a71b1c3b2a71662b9100ffbc22dac597150acff017a93459c57e9a492d9e1c27872b068387dbb90597de75065fcf languageName: node linkType: hard "@octokit/request-error@npm:^3.0.0": - version: 3.0.2 - resolution: "@octokit/request-error@npm:3.0.2" + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 deprecation: ^2.0.0 once: ^1.4.0 - checksum: 41549554ce780de13d3421f8036635014c8dcbdf867c288526ef7b17e9d92470f33341ddadacf2868dc0181440842803484104efbe11ebfaecdaeec58871a13e + checksum: 5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 languageName: node linkType: hard "@octokit/request@npm:^6.0.0": - version: 6.2.2 - resolution: "@octokit/request@npm:6.2.2" + version: 6.2.3 + resolution: "@octokit/request@npm:6.2.3" dependencies: "@octokit/endpoint": ^7.0.0 "@octokit/request-error": ^3.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 is-plain-object: ^5.0.0 node-fetch: ^2.6.7 universal-user-agent: ^6.0.0 - checksum: adbeb38807c60b53d32d9b69be0c1f861c26698bc6f5f3f7e05d26972290dc4867827dd333bdd801818c347e5723efd049a2b9848c6c8bf74a2032968dede0ff + checksum: fef4097be8375d20bb0b3276d8a3adf866ec628f2b0664d334f3c29b92157da847899497abdc7a5be540053819b55564990543175ad48f04e9e6f25f0395d4d3 languageName: node linkType: hard "@octokit/rest@npm:^19.0.0": - version: 19.0.5 - resolution: "@octokit/rest@npm:19.0.5" + version: 19.0.7 + resolution: "@octokit/rest@npm:19.0.7" dependencies: "@octokit/core": ^4.1.0 - "@octokit/plugin-paginate-rest": ^5.0.0 + "@octokit/plugin-paginate-rest": ^6.0.0 "@octokit/plugin-request-log": ^1.0.4 - "@octokit/plugin-rest-endpoint-methods": ^6.7.0 - checksum: ed4c36859aafb64e23f7f708086fe7e2ecda17ffd8c1594817d539f766f5855af79f17f5d225d96d34cd9b97cbfea988dac3df39a7cc928b2d2b7b75ed981056 + "@octokit/plugin-rest-endpoint-methods": ^7.0.0 + checksum: 1f970c4de2cf3d1691d3cf5dd4bfa5ac205629e76417b5c51561e1beb5b4a7e6c65ba647f368727e67e5243418e06ca9cdafd9e733173e1529385d4f4d053d3d languageName: node linkType: hard -"@octokit/types@npm:^8.0.0": - version: 8.0.0 - resolution: "@octokit/types@npm:8.0.0" +"@octokit/types@npm:^9.0.0": + version: 9.0.0 + resolution: "@octokit/types@npm:9.0.0" dependencies: - "@octokit/openapi-types": ^14.0.0 - checksum: 1a0197b2c4c522ac90f145e02b3f8cb048a47f71c2c6bdbf021a03db7dd30ca92a899c0186acb401337f218efe44e60d33cc1cc68715b622bb75bc1a4e79515d + "@octokit/openapi-types": ^16.0.0 + checksum: 5c7f5cca8f00f7c4daa0d00f4fe991c1598ec47cd6ced50b1c5fbe9721bb9dee0adc2acdee265a3a715bb984e53ef3dc7f1cfb7326f712c6d809d59fc5c6648d languageName: node linkType: hard @@ -2950,12 +2929,12 @@ __metadata: linkType: hard "@sindresorhus/slugify@npm:^2.0.0": - version: 2.1.1 - resolution: "@sindresorhus/slugify@npm:2.1.1" + version: 2.2.0 + resolution: "@sindresorhus/slugify@npm:2.2.0" dependencies: "@sindresorhus/transliterate": ^1.0.0 escape-string-regexp: ^5.0.0 - checksum: 0c60c8ce0ec2e1ca0b7aaa0babe36bb537b13ffdaac938ac5c0cbeb39a23a6c76cb50cfa65e9e172e4e5058ae5b0bf35c9aeae52fd09dc60033d59ffdd91507c + checksum: 13c5cff81b94ec9130b74692b12acefa406be6ab20bc842cb2a751d850719f709ca2acfeb8b66dde7fd96d989360d97e620d783292ad963bab9df999cd1d3102 languageName: node linkType: hard @@ -3034,8 +3013,8 @@ __metadata: linkType: hard "@tailwindcss/typography@npm:^0.5.0": - version: 0.5.8 - resolution: "@tailwindcss/typography@npm:0.5.8" + version: 0.5.9 + resolution: "@tailwindcss/typography@npm:0.5.9" dependencies: lodash.castarray: ^4.4.0 lodash.isplainobject: ^4.0.6 @@ -3043,7 +3022,7 @@ __metadata: postcss-selector-parser: 6.0.10 peerDependencies: tailwindcss: "*" - checksum: afe172c75ddf086f840b10f95e562bb210dde5612fccfcfd3c4cee688c57ca5b79569b3c2cb75687b34b1b7f9ad194b14e9fbb09a741cd69198bb92b5ac3838f + checksum: b98e21bdd1798d7e4683499893c5c20ad43fcc8955d5d6eefbe1d30e98e9b6c28949ae8f276d39be9a66fafe843597717196bc5a0a2ac0f87ef86aa051ab9611 languageName: node linkType: hard @@ -3201,25 +3180,25 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:^4.17.31": - version: 4.17.32 - resolution: "@types/express-serve-static-core@npm:4.17.32" + version: 4.17.33 + resolution: "@types/express-serve-static-core@npm:4.17.33" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" - checksum: 70ec1b8f386628850b315a7b9fd4240a5a70297b41ef1c39af65c8b9661d2c775cfff4686b491fd90e5b6eef43088af203700c5541aec0d063db0c6cbeff254c + checksum: dce580d16b85f207445af9d4053d66942b27d0c72e86153089fa00feee3e96ae336b7bedb31ed4eea9e553c99d6dd356ed6e0928f135375d9f862a1a8015adf2 languageName: node linkType: hard "@types/express@npm:*": - version: 4.17.15 - resolution: "@types/express@npm:4.17.15" + version: 4.17.16 + resolution: "@types/express@npm:4.17.16" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.31 "@types/qs": "*" "@types/serve-static": "*" - checksum: b4acd8a836d4f6409cdf79b12d6e660485249b62500cccd61e7997d2f520093edf77d7f8498ca79d64a112c6434b6de5ca48039b8fde2c881679eced7e96979b + checksum: 43f3ed2cea6e5e83c7c1098c5152f644e975fd764443717ff9c812a1518416a9e7e9f824ffe852c118888cbfb994ed023cad08331f49b19ced469bb185cdd5cd languageName: node linkType: hard @@ -3380,7 +3359,7 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.1.6, @types/node-fetch@npm:latest": +"@types/node-fetch@latest, @types/node-fetch@npm:^2.1.6": version: 2.6.2 resolution: "@types/node-fetch@npm:2.6.2" dependencies: @@ -3390,7 +3369,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^18.11.18, @types/node@npm:latest": +"@types/node@latest, @types/node@npm:*, @types/node@npm:^18.11.18": version: 18.11.18 resolution: "@types/node@npm:18.11.18" checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d @@ -3671,6 +3650,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/types@npm:5.50.0" + checksum: 1189c63d35abeec685dd519fd923926b884e63d5e10e4a9fe995aebfde59b8a2e10773090ec3ba32a0ec408746b18f6a454d9bedb0b6c7ce8b6066547144fb4d + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.45.0": version: 5.45.0 resolution: "@typescript-eslint/typescript-estree@npm:5.45.0" @@ -3689,7 +3675,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.48.0, @typescript-eslint/typescript-estree@npm:^5.13.0": +"@typescript-eslint/typescript-estree@npm:5.48.0": version: 5.48.0 resolution: "@typescript-eslint/typescript-estree@npm:5.48.0" dependencies: @@ -3707,6 +3693,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:^5.13.0": + version: 5.50.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.50.0" + dependencies: + "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/visitor-keys": 5.50.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: cb1ac8d39647da6d52750c713d9635750ed41245ec82f937a159a71ad3bf490ebabfad3b43eeca07bca39d60df30d3a2f31f8bed0061381731d92a62e284b867 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:5.45.0": version: 5.45.0 resolution: "@typescript-eslint/utils@npm:5.45.0" @@ -3763,6 +3767,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.50.0" + dependencies: + "@typescript-eslint/types": 5.50.0 + eslint-visitor-keys: ^3.3.0 + checksum: 55319cb7ee7b78d07d9dc67a388d69fe0b7f11cbc79190e17e7f87a39c9992d08dab3b5872d5a7f01094dda28ad6ac61d3573e59015ef70bf138d4c4f8c45b88 + languageName: node + linkType: hard + "@vercel/nft@npm:^0.22.0": version: 0.22.6 resolution: "@vercel/nft@npm:0.22.6" @@ -3890,11 +3904,11 @@ __metadata: linkType: hard "acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.6.0, acorn@npm:^8.8.0": - version: 8.8.1 - resolution: "acorn@npm:8.8.1" + version: 8.8.2 + resolution: "acorn@npm:8.8.2" bin: acorn: bin/acorn - checksum: 4079b67283b94935157698831967642f24a075c52ce3feaaaafe095776dfbe15d86a1b33b1e53860fc0d062ed6c83f4284a5c87c85b9ad51853a01173da6097f + checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 languageName: node linkType: hard @@ -4664,7 +4678,7 @@ __metadata: languageName: node linkType: hard -"bindings@npm:^1.4.0": +"bindings@npm:^1.4.0, bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" dependencies: @@ -4867,25 +4881,25 @@ __metadata: linkType: hard "browserslist@npm:^4.0.0, browserslist@npm:^4.13.0, browserslist@npm:^4.16.6, browserslist@npm:^4.21.4": - version: 4.21.4 - resolution: "browserslist@npm:4.21.4" + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" dependencies: - caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 + caniuse-lite: ^1.0.30001449 + electron-to-chromium: ^1.4.284 + node-releases: ^2.0.8 + update-browserslist-db: ^1.0.10 bin: browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 + checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 languageName: node linkType: hard "bson@npm:^4.7.0": - version: 4.7.1 - resolution: "bson@npm:4.7.1" + version: 4.7.2 + resolution: "bson@npm:4.7.2" dependencies: buffer: ^5.6.0 - checksum: 546aaf322e42514e0c48c875ad6ffafc66458c83fea0fb89e9e3002ba040b7d95ab40e63eca7f997d1f9d4e92cd02af259ba761799bf04aafc3a857e12d147c4 + checksum: f357d12c5679c8eb029a62e410ad40fb862b7b91f0fc12a3399fb3668e14aecaa63205ffeeee48735a01d393171743607dcd527eb8c058b6f2bd294079ee4125 languageName: node linkType: hard @@ -5097,8 +5111,8 @@ __metadata: linkType: hard "cacheable-request@npm:^10.2.1": - version: 10.2.5 - resolution: "cacheable-request@npm:10.2.5" + version: 10.2.6 + resolution: "cacheable-request@npm:10.2.6" dependencies: "@types/http-cache-semantics": ^4.0.1 get-stream: ^6.0.1 @@ -5107,7 +5121,7 @@ __metadata: mimic-response: ^4.0.0 normalize-url: ^8.0.0 responselike: ^3.0.0 - checksum: 9bf7443792072a50b5c5e17bd8e080e11d91b72a45ec7f287ffe47c96e9d64a4e60b7d7835114ef75b9667db45a85be1b16fa692cf31cf9a9c9fabae0ab3f098 + checksum: 273d6cbcec025d2922a641c72eeb7e566963cc68da99248ff83053c9b140fe46ae1a856e7e8855378112d8d342ff2ec9398d1552a3a8ce4af8fbc21c606bda1f languageName: node linkType: hard @@ -5255,10 +5269,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001400, caniuse-lite@npm:^1.0.30001426": - version: 1.0.30001442 - resolution: "caniuse-lite@npm:1.0.30001442" - checksum: c1bff65bd4f53da2d288e7f55be40706ee0119b983eae5a9dcc884046990476891630aef72d708f7989f8f1964200c44e4c37ea40deecaa2fb4a480df23e6317 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001426, caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001450 + resolution: "caniuse-lite@npm:1.0.30001450" + checksum: 511b360bfc907b2e437699364cf96b83507bc45043926450056642332bcd6f65a1e72540c828534ae15e0ac906e3e9af46cb2bb84458dd580bc31478e9dce282 languageName: node linkType: hard @@ -5958,9 +5972,9 @@ __metadata: linkType: hard "content-type@npm:^1.0.4, content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 languageName: node linkType: hard @@ -6373,11 +6387,11 @@ __metadata: linkType: hard "cron-parser@npm:^4.1.0, cron-parser@npm:^4.2.1": - version: 4.7.0 - resolution: "cron-parser@npm:4.7.0" + version: 4.7.1 + resolution: "cron-parser@npm:4.7.1" dependencies: - luxon: ^3.1.0 - checksum: 25489f2cd41ada61bc35a09bdb7147e5f1d25179c740725d859e18076dabdf2551bfdd6d62fe339227d58840b068bb5a330fb6f867e695e998fd32359d6e0022 + luxon: ^3.2.1 + checksum: 60642d4710c6ba202b781be6c905d68a47ac69fe1b9eaba06a3f7e9950ba58adbb21ae260452b2801d80b2a1f04f142bb847157c5a707fa4b01a5d2c8842828e languageName: node linkType: hard @@ -6620,9 +6634,9 @@ __metadata: linkType: hard "data-uri-to-buffer@npm:^4.0.0": - version: 4.0.0 - resolution: "data-uri-to-buffer@npm:4.0.0" - checksum: a010653869abe8bb51259432894ac62c52bf79ad761d418d94396f48c346f2ae739c46b254e8bb5987bded8a653d467db1968db3a69bab1d33aa5567baa5cfc7 + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c languageName: node linkType: hard @@ -6871,9 +6885,9 @@ __metadata: linkType: hard "deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + version: 4.3.0 + resolution: "deepmerge@npm:4.3.0" + checksum: c7980eb5c5be040b371f1df0d566473875cfabed9f672ccc177b81ba8eee5686ce2478de2f1d0076391621cbe729e5eacda397179a59ef0f68901849647db126 languageName: node linkType: hard @@ -7422,7 +7436,7 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.251": +"electron-to-chromium@npm:^1.4.284": version: 1.4.284 resolution: "electron-to-chromium@npm:1.4.284" checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a @@ -7538,11 +7552,12 @@ __metadata: linkType: hard "es-abstract@npm:^1.17.5, es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.0 - resolution: "es-abstract@npm:1.21.0" + version: 1.21.1 + resolution: "es-abstract@npm:1.21.1" dependencies: + available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 - es-set-tostringtag: ^2.0.0 + es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 function.prototype.name: ^1.1.5 @@ -7555,7 +7570,7 @@ __metadata: has-proto: ^1.0.1 has-symbols: ^1.0.3 internal-slot: ^1.0.4 - is-array-buffer: ^3.0.0 + is-array-buffer: ^3.0.1 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 @@ -7573,23 +7588,24 @@ __metadata: typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 which-typed-array: ^1.1.9 - checksum: 52305b52aff6505c9d8cebfa727835dd8871af76de151868d1db7baf6d21f13a81586316ac513601eec9b46e2947cab044fc2a131db68bfa05daf37aa153dbd9 + checksum: 23ff60d42d17a55d150e7bcedbdb065d4077a8b98c436e0e2e1ef4dd532a6d78a56028673de0bd8ed464a43c46ba781c50d9af429b6a17e44dbd14c7d7fb7926 languageName: node linkType: hard "es-get-iterator@npm:^1.1.2": - version: 1.1.2 - resolution: "es-get-iterator@npm:1.1.2" + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.0 - has-symbols: ^1.0.1 - is-arguments: ^1.1.0 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 is-map: ^2.0.2 is-set: ^2.0.2 - is-string: ^1.0.5 + is-string: ^1.0.7 isarray: ^2.0.5 - checksum: f75e66acb6a45686fa08b3ade9c9421a70d36a0c43ed4363e67f4d7aab2226cb73dd977cb48abbaf75721b946d3cd810682fcf310c7ad0867802fbf929b17dcf + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d languageName: node linkType: hard @@ -7600,7 +7616,7 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.0": +"es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" dependencies: @@ -7864,31 +7880,31 @@ __metadata: linkType: hard "esbuild@npm:^0.16.3": - version: 0.16.16 - resolution: "esbuild@npm:0.16.16" + version: 0.16.17 + resolution: "esbuild@npm:0.16.17" dependencies: - "@esbuild/android-arm": 0.16.16 - "@esbuild/android-arm64": 0.16.16 - "@esbuild/android-x64": 0.16.16 - "@esbuild/darwin-arm64": 0.16.16 - "@esbuild/darwin-x64": 0.16.16 - "@esbuild/freebsd-arm64": 0.16.16 - "@esbuild/freebsd-x64": 0.16.16 - "@esbuild/linux-arm": 0.16.16 - "@esbuild/linux-arm64": 0.16.16 - "@esbuild/linux-ia32": 0.16.16 - "@esbuild/linux-loong64": 0.16.16 - "@esbuild/linux-mips64el": 0.16.16 - "@esbuild/linux-ppc64": 0.16.16 - "@esbuild/linux-riscv64": 0.16.16 - "@esbuild/linux-s390x": 0.16.16 - "@esbuild/linux-x64": 0.16.16 - "@esbuild/netbsd-x64": 0.16.16 - "@esbuild/openbsd-x64": 0.16.16 - "@esbuild/sunos-x64": 0.16.16 - "@esbuild/win32-arm64": 0.16.16 - "@esbuild/win32-ia32": 0.16.16 - "@esbuild/win32-x64": 0.16.16 + "@esbuild/android-arm": 0.16.17 + "@esbuild/android-arm64": 0.16.17 + "@esbuild/android-x64": 0.16.17 + "@esbuild/darwin-arm64": 0.16.17 + "@esbuild/darwin-x64": 0.16.17 + "@esbuild/freebsd-arm64": 0.16.17 + "@esbuild/freebsd-x64": 0.16.17 + "@esbuild/linux-arm": 0.16.17 + "@esbuild/linux-arm64": 0.16.17 + "@esbuild/linux-ia32": 0.16.17 + "@esbuild/linux-loong64": 0.16.17 + "@esbuild/linux-mips64el": 0.16.17 + "@esbuild/linux-ppc64": 0.16.17 + "@esbuild/linux-riscv64": 0.16.17 + "@esbuild/linux-s390x": 0.16.17 + "@esbuild/linux-x64": 0.16.17 + "@esbuild/netbsd-x64": 0.16.17 + "@esbuild/openbsd-x64": 0.16.17 + "@esbuild/sunos-x64": 0.16.17 + "@esbuild/win32-arm64": 0.16.17 + "@esbuild/win32-ia32": 0.16.17 + "@esbuild/win32-x64": 0.16.17 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -7936,7 +7952,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: d3163ec01e017776df6b68e1825caa2323918f0d03eb92250bdcdff80410a2c0eb5b3807955db84d83b1b91cf24af9815a1d19efc2343c490be3e5d7b27a834f + checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c languageName: node linkType: hard @@ -8150,7 +8166,7 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.31.0, eslint@npm:^8.26.0": +"eslint@npm:8.31.0": version: 8.31.0 resolution: "eslint@npm:8.31.0" dependencies: @@ -8199,6 +8215,55 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.26.0": + version: 8.33.0 + resolution: "eslint@npm:8.33.0" + dependencies: + "@eslint/eslintrc": ^1.4.1 + "@humanwhocodes/config-array": ^0.11.8 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.1.1 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.3.0 + espree: ^9.4.0 + esquery: ^1.4.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-sdsl: ^4.1.4 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + regexpp: ^3.2.0 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 727e63ab8b7acf281442323c5971f6afdd5b656fbcebc4476cf54e35af51b2f180617433fc5e1952f0449ca3f43a905527f9407ea4b8a7ea7562fc9c3f278d4c + languageName: node + linkType: hard + "espree@npm:^9.4.0": version: 9.4.1 resolution: "espree@npm:9.4.1" @@ -8269,11 +8334,11 @@ __metadata: linkType: hard "estree-util-attach-comments@npm:^2.0.0": - version: 2.1.0 - resolution: "estree-util-attach-comments@npm:2.1.0" + version: 2.1.1 + resolution: "estree-util-attach-comments@npm:2.1.1" dependencies: "@types/estree": ^1.0.0 - checksum: 8489b977dc420e4af59b03528487b2963d7bfe2d6d265819231dce5a1a5c389109230be102d4b7b85a86ec64f75a7e70b0f306542d56ec557c83f92ec326738a + checksum: c5c2c41c9a55a169fb4fba9627057843f0d2e21e47a2e3e24318a11ffcf6bc704c0f96f405a529bddac7969b7c44f6cf86711505faaf0c5862c2024419b19704 languageName: node linkType: hard @@ -8289,30 +8354,30 @@ __metadata: linkType: hard "estree-util-is-identifier-name@npm:^2.0.0": - version: 2.0.1 - resolution: "estree-util-is-identifier-name@npm:2.0.1" - checksum: d91693dc1c8e7f9860e5c73d3f2e0ad4fc484dc9df432086e0432c27c89f1690fe3c63f0d608d11bce77bb026a4edef434c28da5cbad0761d0292741a96b1481 + version: 2.1.0 + resolution: "estree-util-is-identifier-name@npm:2.1.0" + checksum: cab317a071fafb99cf83b57df7924bccd2e6ab4e252688739e49f00b16cefd168e279c171442b0557c80a1c80ffaa927d670dadea65bb3c9b151efb8e772e89d languageName: node linkType: hard "estree-util-to-js@npm:^1.1.0": - version: 1.1.0 - resolution: "estree-util-to-js@npm:1.1.0" + version: 1.1.1 + resolution: "estree-util-to-js@npm:1.1.1" dependencies: "@types/estree-jsx": ^1.0.0 astring: ^1.8.0 source-map: ^0.7.0 - checksum: 3ce2ef2fd78497fa7a0e5250be0f217af9060c819f7ed4f4739285e4ade4ed244536cb88e8ba1e38986af98d3a9064165122bb1622f2c6d57fe7b241b884fc47 + checksum: 67a1dd8757057bb835f7a094e3028804002b8ce6e5951b09542d4e28fab805c71b50b302f6deb0c47bff0eae3135b3815b4656f07a1e5014dbdc222acf31a762 languageName: node linkType: hard "estree-util-visit@npm:^1.0.0": - version: 1.2.0 - resolution: "estree-util-visit@npm:1.2.0" + version: 1.2.1 + resolution: "estree-util-visit@npm:1.2.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/unist": ^2.0.0 - checksum: d36a36aed82d6cb00d24615889052e22308ff008191b3760f65f93e9d0b06d3bc448af9f99a685947f1c69fba36d9a412da243b0b026096c66ecd74054c3b090 + checksum: 6feea4fdc43b0ba0f79faf1d57cf32373007e146d4810c7c09c13f5a9c1b8600c1ac57a8d949967cedd2a9a91dddd246e19b59bacfc01e417168b4ebf220f691 languageName: node linkType: hard @@ -8331,9 +8396,11 @@ __metadata: linkType: hard "estree-walker@npm:^3.0.0": - version: 3.0.2 - resolution: "estree-walker@npm:3.0.2" - checksum: ecf457e8d4750cefb10b3e003df3bfceabe1e360695d0d71efdf00b45a4d625cb117e9a03d06331e989d5f1df2b4963b5c80df7f5d88c7ea3fe5586b5c783900 + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af languageName: node linkType: hard @@ -8572,7 +8639,7 @@ __metadata: languageName: node linkType: hard -"extract-zip@npm:^2.0.0": +"extract-zip@npm:^2.0.0, extract-zip@npm:^2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" dependencies: @@ -8603,6 +8670,13 @@ __metadata: languageName: node linkType: hard +"fast-content-type-parse@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-content-type-parse@npm:1.0.0" + checksum: 9e9187be17bea18a2ee715c5737b983181cbe84f286a291db0595e421e04b578da10ca10845639be08664a4db6a793f7709822935cf38cfdf9ecba38d84ead9e + languageName: node + linkType: hard + "fast-decode-uri-component@npm:^1.0.1": version: 1.0.1 resolution: "fast-decode-uri-component@npm:1.0.1" @@ -8728,22 +8802,22 @@ __metadata: linkType: hard "fastify-plugin@npm:^4.0.0": - version: 4.4.0 - resolution: "fastify-plugin@npm:4.4.0" - checksum: f61d6620a24e8c3c9e67305fffe5570d4c0580477fc0f11fd9397b3e11e2b28ea0873e80d2774fee3ad9d70a81a07a83cb0da61e92afc70f6c50bbb3fb91335d + version: 4.5.0 + resolution: "fastify-plugin@npm:4.5.0" + checksum: 3cc36a43ec72ee9974d3cd1989027e77b277b0994e4fc02ed4e6492aabd83a0be66f14fdec56e60d9a41911ea1ff1ea70c9d957a87e46bcdb8fedd859f4988fe languageName: node linkType: hard "fastify@npm:^4.10.2": - version: 4.11.0 - resolution: "fastify@npm:4.11.0" + version: 4.12.0 + resolution: "fastify@npm:4.12.0" dependencies: "@fastify/ajv-compiler": ^3.3.1 "@fastify/error": ^3.0.0 "@fastify/fast-json-stringify-compiler": ^4.1.0 abstract-logging: ^2.0.1 avvio: ^8.2.0 - content-type: ^1.0.4 + fast-content-type-parse: ^1.0.0 find-my-way: ^7.3.0 light-my-request: ^5.6.1 pino: ^8.5.0 @@ -8753,7 +8827,7 @@ __metadata: secure-json-parse: ^2.5.0 semver: ^7.3.7 tiny-lru: ^10.0.0 - checksum: 814803b1015ae47cce4d7877a16788abee3ba6bba23e7e1b08a6cc62b43828aa6c38624de835c5b422da902fa93b316d1222d191b8373bebd8acbd68c8843584 + checksum: 7f5ec6aad14cd57acf11899c3c64186c7b0a1716c068ad7174375fdcc21248e5cd1c54ac71d496504b0255f5eefdb6858446d859286c70472742ea75a4eb4cad languageName: node linkType: hard @@ -9469,14 +9543,14 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": - version: 1.1.3 - resolution: "get-intrinsic@npm:1.1.3" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": + version: 1.2.0 + resolution: "get-intrinsic@npm:1.2.0" dependencies: function-bind: ^1.1.1 has: ^1.0.3 has-symbols: ^1.0.3 - checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a + checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d languageName: node linkType: hard @@ -9761,15 +9835,15 @@ __metadata: linkType: hard "glob@npm:^8.0.1, glob@npm:^8.0.3": - version: 8.0.3 - resolution: "glob@npm:8.0.3" + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 minimatch: ^5.0.1 once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard @@ -9812,11 +9886,11 @@ __metadata: linkType: hard "globals@npm:^13.15.0, globals@npm:^13.19.0": - version: 13.19.0 - resolution: "globals@npm:13.19.0" + version: 13.20.0 + resolution: "globals@npm:13.20.0" dependencies: type-fest: ^0.20.2 - checksum: a000dbd00bcf28f0941d8a29c3522b1c3b8e4bfe4e60e262c477a550c3cbbe8dbe2925a6905f037acd40f9a93c039242e1f7079c76b0fd184bc41dcc3b5c8e2e + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a languageName: node linkType: hard @@ -9934,7 +10008,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^10.0.0, got@npm:^10.7.0": +"got@npm:^10.7.0": version: 10.7.0 resolution: "got@npm:10.7.0" dependencies: @@ -9957,7 +10031,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^12.1.0": +"got@npm:^12.0.0, got@npm:^12.1.0": version: 12.5.3 resolution: "got@npm:12.5.3" dependencies: @@ -10152,7 +10226,7 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 @@ -10292,8 +10366,8 @@ __metadata: linkType: hard "hast-util-to-estree@npm:^2.0.0": - version: 2.1.0 - resolution: "hast-util-to-estree@npm:2.1.0" + version: 2.2.1 + resolution: "hast-util-to-estree@npm:2.2.1" dependencies: "@types/estree": ^1.0.0 "@types/estree-jsx": ^1.0.0 @@ -10307,10 +10381,10 @@ __metadata: mdast-util-mdxjs-esm: ^1.0.0 property-information: ^6.0.0 space-separated-tokens: ^2.0.0 - style-to-object: ^0.3.0 + style-to-object: ^0.4.1 unist-util-position: ^4.0.0 zwitch: ^2.0.0 - checksum: 1e14cfbfd57ff00ffda48cfef23bcebb6ebbea0385bb03d748a9432591c60f0a69428baaba82375a8cdbc924217ba9e75d30820b3641fdbe12ae62aa6c3f90a7 + checksum: 999107a387cac66c56ac4b214dc73918b6618a3f10dfb1ed40bf10c325595127835cfec5d71a1be925250d5d96f22b6d04af90cb7616b8f01ba7d4f5e2df33ed languageName: node linkType: hard @@ -10346,6 +10420,18 @@ __metadata: languageName: node linkType: hard +"hot-shots@npm:9.3.0": + version: 9.3.0 + resolution: "hot-shots@npm:9.3.0" + dependencies: + unix-dgram: 2.x + dependenciesMeta: + unix-dgram: + optional: true + checksum: bfc874abcb6da71afe0fc3b63c5872e5b7183c1bbea83e9c6e4a4d3fe399567420057a8a3e090fa0c6689b0cfb24d15d917e6f627ad8e022c45240f2d2b17f28 + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^2.0.1": version: 2.0.1 resolution: "html-encoding-sniffer@npm:2.0.1" @@ -10387,9 +10473,9 @@ __metadata: linkType: hard "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard @@ -10623,12 +10709,12 @@ __metadata: languageName: node linkType: hard -"imagetools-core@npm:^3.2.3, imagetools-core@npm:^3.3.0": - version: 3.3.0 - resolution: "imagetools-core@npm:3.3.0" +"imagetools-core@npm:^3.2.3, imagetools-core@npm:^3.3.1": + version: 3.3.1 + resolution: "imagetools-core@npm:3.3.1" dependencies: - sharp: ^0.31.0 - checksum: b9c96e4fec86edfe36c1142cc8ea5058048c05a476933e9cf90ed35e292d1f7873e8d5c86ccf7dc58d4e6bb918e6774f5344aa038725d0640fb37cfc37a11b44 + sharp: ^0.31.3 + checksum: ee14995214a52c931884a28c5233d427f22c25115ad20a05717ce72b9e95ab65b91814a0ad068a74b73cd320f937ebfdd0812d04680cc863ec9fd1e22d952891 languageName: node linkType: hard @@ -10842,7 +10928,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.0, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -10852,7 +10938,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.0, is-array-buffer@npm:^3.0.1": +"is-array-buffer@npm:^3.0.1": version: 3.0.1 resolution: "is-array-buffer@npm:3.0.1" dependencies: @@ -10920,11 +11006,11 @@ __metadata: linkType: hard "is-builtin-module@npm:^3.1.0, is-builtin-module@npm:^3.2.0": - version: 3.2.0 - resolution: "is-builtin-module@npm:3.2.0" + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" dependencies: builtin-modules: ^3.3.0 - checksum: 0315751b898feff0646511c896e88b608a755c5025d0ce9a3ad25783de50be870e47dafb838cebbb06fbb2a948b209ea55348eee267836c9dd40d3a11ec717d3 + checksum: e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 languageName: node linkType: hard @@ -11720,9 +11806,9 @@ __metadata: linkType: hard "js-sdsl@npm:^4.1.4": - version: 4.2.0 - resolution: "js-sdsl@npm:4.2.0" - checksum: 2cd0885f7212afb355929d72ca105cb37de7e95ad6031e6a32619eaefa46735a7d0fb682641a0ba666e1519cb138fe76abc1eea8a34e224140c9d94c995171f1 + version: 4.3.0 + resolution: "js-sdsl@npm:4.3.0" + checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e languageName: node linkType: hard @@ -11916,21 +12002,15 @@ __metadata: languageName: node linkType: hard -"jsonwebtoken@npm:^8.5.1": - version: 8.5.1 - resolution: "jsonwebtoken@npm:8.5.1" +"jsonwebtoken@npm:^9.0.0": + version: 9.0.0 + resolution: "jsonwebtoken@npm:9.0.0" dependencies: jws: ^3.2.2 - lodash.includes: ^4.3.0 - lodash.isboolean: ^3.0.3 - lodash.isinteger: ^4.0.4 - lodash.isnumber: ^3.0.3 - lodash.isplainobject: ^4.0.6 - lodash.isstring: ^4.0.1 - lodash.once: ^4.0.0 + lodash: ^4.17.21 ms: ^2.1.1 - semver: ^5.6.0 - checksum: 93c9e3f23c59b758ac88ba15f4e4753b3749dfce7a6f7c40fb86663128a1e282db085eec852d4e0cbca4cefdcd3a8275ee255dbd08fcad0df26ad9f6e4cc853a + semver: ^7.3.8 + checksum: b9181cecf9df99f1dc0253f91ba000a1aa4d91f5816d1608c0dba61a5623726a0bfe200b51df25de18c1a6000825d231ad7ce2788aa54fd48dcb760ad9eb9514 languageName: node linkType: hard @@ -12361,20 +12441,6 @@ __metadata: languageName: node linkType: hard -"lodash.includes@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.includes@npm:4.3.0" - checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 - languageName: node - linkType: hard - -"lodash.isboolean@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isboolean@npm:3.0.3" - checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 - languageName: node - linkType: hard - "lodash.isempty@npm:^4.4.0": version: 4.4.0 resolution: "lodash.isempty@npm:4.4.0" @@ -12389,13 +12455,6 @@ __metadata: languageName: node linkType: hard -"lodash.isinteger@npm:^4.0.4": - version: 4.0.4 - resolution: "lodash.isinteger@npm:4.0.4" - checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 - languageName: node - linkType: hard - "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -12403,13 +12462,6 @@ __metadata: languageName: node linkType: hard -"lodash.isnumber@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isnumber@npm:3.0.3" - checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 - languageName: node - linkType: hard - "lodash.isplainobject@npm:^4.0.6": version: 4.0.6 resolution: "lodash.isplainobject@npm:4.0.6" @@ -12417,13 +12469,6 @@ __metadata: languageName: node linkType: hard -"lodash.isstring@npm:^4.0.1": - version: 4.0.1 - resolution: "lodash.isstring@npm:4.0.1" - checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 - languageName: node - linkType: hard - "lodash.kebabcase@npm:^4.1.1": version: 4.1.1 resolution: "lodash.kebabcase@npm:4.1.1" @@ -12459,13 +12504,6 @@ __metadata: languageName: node linkType: hard -"lodash.once@npm:^4.0.0": - version: 4.1.1 - resolution: "lodash.once@npm:4.1.1" - checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 - languageName: node - linkType: hard - "lodash.snakecase@npm:^4.1.1": version: 4.1.1 resolution: "lodash.snakecase@npm:4.1.1" @@ -12668,16 +12706,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^4.1.3": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: ^1.0.2 - yallist: ^2.1.2 - checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a - languageName: node - linkType: hard - "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -12687,14 +12715,14 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": version: 7.14.1 resolution: "lru-cache@npm:7.14.1" checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 languageName: node linkType: hard -"luxon@npm:^3.1.0": +"luxon@npm:^3.2.1": version: 3.2.1 resolution: "luxon@npm:3.2.1" checksum: 3fa3def2c5f5d3032b4c46220c4da8aeb467ac979888fc9d2557adcd22195f93516b4ad5909a75862bec8dc6ddc0953b0f38e6d2f4a8ab8450ddc531a83cf20d @@ -12867,19 +12895,19 @@ __metadata: linkType: hard "mdast-util-definitions@npm:^5.0.0": - version: 5.1.1 - resolution: "mdast-util-definitions@npm:5.1.1" + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" dependencies: "@types/mdast": ^3.0.0 "@types/unist": ^2.0.0 unist-util-visit: ^4.0.0 - checksum: f8025e2c35f6f8641528037abe18f492ef100e00a48c92cf78b7a313f9ccdb0e30c6aed0b40539767a3f425be09e78cb0f2f9bc4131fff41ea4664a1a7314a14 + checksum: 2544daccab744ea1ede76045c2577ae4f1cc1b9eb1ea51ab273fe1dca8db5a8d6f50f87759c0ce6484975914b144b7f40316f805cb9c86223a78db8de0b77bae languageName: node linkType: hard -"mdast-util-from-markdown@npm:^1.0.0": - version: 1.2.0 - resolution: "mdast-util-from-markdown@npm:1.2.0" +"mdast-util-from-markdown@npm:^1.0.0, mdast-util-from-markdown@npm:^1.1.0": + version: 1.3.0 + resolution: "mdast-util-from-markdown@npm:1.3.0" dependencies: "@types/mdast": ^3.0.0 "@types/unist": ^2.0.0 @@ -12893,38 +12921,39 @@ __metadata: micromark-util-types: ^1.0.0 unist-util-stringify-position: ^3.0.0 uvu: ^0.5.0 - checksum: fadc3521a3d95f4adbadad462ca27c28b3bfe08740ae158dc0c4a22329bf5593254d98b8fd4024ecad8c47c77ec275454dfacfb907ff1b98ff8f5de25c716d40 + checksum: cc971d1ad381150f6504fd753fbcffcc64c0abb527540ce343625c2bba76104505262122ef63d14ab66eb47203f323267017c6d09abfa8535ee6a8e14069595f languageName: node linkType: hard "mdast-util-mdx-expression@npm:^1.0.0": - version: 1.3.1 - resolution: "mdast-util-mdx-expression@npm:1.3.1" + version: 1.3.2 + resolution: "mdast-util-mdx-expression@npm:1.3.2" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 mdast-util-from-markdown: ^1.0.0 mdast-util-to-markdown: ^1.0.0 - checksum: 456d59a616a274416f5b02bce64bf5245c4b7247927b4539f4db35bec5674352580fb91f51ed11f1a769d17330c44eec7ca481faf81ee839c2efe71309195225 + checksum: e4c90f26deaa5eb6217b0a9af559a80de41da02ab3bcd864c56bed3304b056ae703896e9876bc6ded500f4aff59f4de5cbf6a4b109a5ba408f2342805fe6dc05 languageName: node linkType: hard "mdast-util-mdx-jsx@npm:^2.0.0": - version: 2.1.0 - resolution: "mdast-util-mdx-jsx@npm:2.1.0" + version: 2.1.1 + resolution: "mdast-util-mdx-jsx@npm:2.1.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 ccount: ^2.0.0 + mdast-util-from-markdown: ^1.1.0 mdast-util-to-markdown: ^1.3.0 parse-entities: ^4.0.0 stringify-entities: ^4.0.0 unist-util-remove-position: ^4.0.0 unist-util-stringify-position: ^3.0.0 vfile-message: ^3.0.0 - checksum: 40520a299449e4074ff1097789c7372220c9751e0de151566dcc133118d748c2231e29bafcbbf2c3beb3a917a85cfbbaa9195dadfb4122603bad479f93a61dbe + checksum: c2b576bb1a91cbc578ae4900a2556e949dd447ad8a791f43d16df7aa2ff26b2bf981f18ba642d1c9b6bb96fb6a43afc6c0ffebf4a80ad55e2263db56f9e109d8 languageName: node linkType: hard @@ -12940,31 +12969,31 @@ __metadata: linkType: hard "mdast-util-mdxjs-esm@npm:^1.0.0": - version: 1.3.0 - resolution: "mdast-util-mdxjs-esm@npm:1.3.0" + version: 1.3.1 + resolution: "mdast-util-mdxjs-esm@npm:1.3.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 mdast-util-from-markdown: ^1.0.0 mdast-util-to-markdown: ^1.0.0 - checksum: df3902eb884b4f83cebbfe33647f51938b36db54d4539afd884dc83ff43052676cd48df4c382dc986335290f5c691576d1a848da8ffb671b69ade29fe1c317e0 + checksum: ee78a4f58adfec38723cbc920f05481201ebb001eff3982f2d0e5f5ce5c75685e732e9d361ad4a1be8b936b4e5de0f2599cb96b92ad4bd92698ac0c4a09bbec3 languageName: node linkType: hard "mdast-util-phrasing@npm:^3.0.0": - version: 3.0.0 - resolution: "mdast-util-phrasing@npm:3.0.0" + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" dependencies: "@types/mdast": ^3.0.0 unist-util-is: ^5.0.0 - checksum: 3cf0812c7f1a2a7f58d30df42b6172c3e79e3dacda34db216ee6e12e3caa7abfb9801626274e41627321cd0fcfc8e526c999fd96e1c0c086055a83ca7e9dddf7 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 languageName: node linkType: hard "mdast-util-to-hast@npm:^12.1.0": - version: 12.2.5 - resolution: "mdast-util-to-hast@npm:12.2.5" + version: 12.2.6 + resolution: "mdast-util-to-hast@npm:12.2.6" dependencies: "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 @@ -12975,7 +13004,7 @@ __metadata: unist-util-generated: ^2.0.0 unist-util-position: ^4.0.0 unist-util-visit: ^4.0.0 - checksum: 06337d66b369d9bf16f484cb31943c4e3c0ea9c20138589c256ad3400122fc9d64baf4d087349c042d37074408a24a4856e9ac45cb3356647bbe24d6dcdd42e1 + checksum: abc3ab03ed00715df58f87b3b5abaeb5ed01d1bf92940a9856c35a022ef6a41a220b3543a8c1238804a63b602057817de16666aaae177efa07e4d65d8ca6e13d languageName: node linkType: hard @@ -12996,9 +13025,11 @@ __metadata: linkType: hard "mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": - version: 3.1.0 - resolution: "mdast-util-to-string@npm:3.1.0" - checksum: f42ddd4e22f2215a75715b92ea6e3149c4ba356e7781d7b94fc86ded1c79cec3f986afeecef3a4a80068c9b224a6520099783a12146b957de24f020a3e47dd29 + version: 3.1.1 + resolution: "mdast-util-to-string@npm:3.1.1" + dependencies: + "@types/mdast": ^3.0.0 + checksum: 5e9375e1757ebf2950e122ef3538e4257ed2b6f43ab1d3e9c45db5dd5d5b5d14fd041490afcde00934f1cdb4b99877597ae04eb810d313ec7b38c6009058dddd languageName: node linkType: hard @@ -13134,8 +13165,8 @@ __metadata: linkType: hard "micromark-extension-mdx-expression@npm:^1.0.0": - version: 1.0.3 - resolution: "micromark-extension-mdx-expression@npm:1.0.3" + version: 1.0.4 + resolution: "micromark-extension-mdx-expression@npm:1.0.4" dependencies: micromark-factory-mdx-expression: ^1.0.0 micromark-factory-space: ^1.0.0 @@ -13144,7 +13175,7 @@ __metadata: micromark-util-symbol: ^1.0.0 micromark-util-types: ^1.0.0 uvu: ^0.5.0 - checksum: ef4b4137894624a6754b951d3cb7abb20951ca7b37f9ad8a50d2e2b95d0cf880258d71296bfac6be4ff83a8d137b6b657ae852bb6f11f4ca11e5e6d62f1b025d + checksum: d19a31f9813dd5d4ad96b99e35b7c48067e69d75f92ec670dad5242857fb7688ba8b7c6a15616797b5df25dd89fd3b54916f93cb60ce2cfe97aca84739b45954 languageName: node linkType: hard @@ -13230,8 +13261,8 @@ __metadata: linkType: hard "micromark-factory-mdx-expression@npm:^1.0.0": - version: 1.0.6 - resolution: "micromark-factory-mdx-expression@npm:1.0.6" + version: 1.0.7 + resolution: "micromark-factory-mdx-expression@npm:1.0.7" dependencies: micromark-factory-space: ^1.0.0 micromark-util-character: ^1.0.0 @@ -13241,7 +13272,7 @@ __metadata: unist-util-position-from-estree: ^1.0.0 uvu: ^0.5.0 vfile-message: ^3.0.0 - checksum: 7b69f0e77664e9820639cf23c4f01d43aa0e7abd88021c3db428435e3a5a1f9446f8dc5c2a6ed4ac16c6495ca51937609a5c98ff59a62c54be382c2725500b39 + checksum: e7893f21576bcb7755d341e45d3ff202ba466fa2278c6f31ae4db4002a28d6d13a4efad331ef46223372ec2010d9bc2ff27e2cd57a4580be6491e59ca21ba59d languageName: node linkType: hard @@ -13349,8 +13380,8 @@ __metadata: linkType: hard "micromark-util-events-to-acorn@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-events-to-acorn@npm:1.2.0" + version: 1.2.1 + resolution: "micromark-util-events-to-acorn@npm:1.2.1" dependencies: "@types/acorn": ^4.0.0 "@types/estree": ^1.0.0 @@ -13359,7 +13390,7 @@ __metadata: uvu: ^0.5.0 vfile-location: ^4.0.0 vfile-message: ^3.0.0 - checksum: 422285d68c8e8a57042bf31eefa55a136eec5c1fb021278a7c25d60a000c4e3ddaf140c94065a270499281f79ff59999468b850a461f22b5731fc47eccb2c4c2 + checksum: baf1cad66d860980cf20963f641c48c434e5be5802beabefdda21be136ae037845dd236b5e9ce5cf9409bf1b9ba8b4131a396d3a5bfa12098dae13e4a9724f2b languageName: node linkType: hard @@ -13506,6 +13537,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 + languageName: node + linkType: hard + "mimic-fn@npm:^1.0.0": version: 1.2.0 resolution: "mimic-fn@npm:1.2.0" @@ -13589,12 +13629,21 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": - version: 5.1.2 - resolution: "minimatch@npm:5.1.2" +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" dependencies: brace-expansion: ^2.0.1 - checksum: 32ffda25b9fb8270a1c1beafdb7489dc0e411af553495136509a945691f63c9b6b000eeeaaf8bffe3efa609c1d6d3bc0f5a106f6c3443b5c05da649100ded964 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimatch@npm:^6.0.0": + version: 6.1.6 + resolution: "minimatch@npm:6.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 707b026e0adc610be6c02f24173d84811e5b8cc2e434881e47ef00a72be5fbea9323b7158d7bf065782b1e1d5c50d7d80cd72f2602255f2fddfb1d2f02e9092c languageName: node linkType: hard @@ -13677,11 +13726,9 @@ __metadata: linkType: hard "minipass@npm:^4.0.0": - version: 4.0.0 - resolution: "minipass@npm:4.0.0" - dependencies: - yallist: ^4.0.0 - checksum: 7a609afbf394abfcf9c48e6c90226f471676c8f2a67f07f6838871afb03215ede431d1433feffe1b855455bcb13ef0eb89162841b9796109d6fed8d89790f381 + version: 4.0.1 + resolution: "minipass@npm:4.0.1" + checksum: 48eb3141cc247b44f738944cbd789aedeed9288ebdb64c7de9b3bf23e9e71d611381bfecf643d877d25f7ca9f3d5ab7b6757ef6f46282086812ac5372b7cd291 languageName: node linkType: hard @@ -13885,11 +13932,20 @@ __metadata: linkType: hard "named-placeholders@npm:^1.1.2": - version: 1.1.2 - resolution: "named-placeholders@npm:1.1.2" + version: 1.1.3 + resolution: "named-placeholders@npm:1.1.3" dependencies: - lru-cache: ^4.1.3 - checksum: c9317d1b479d6733b3baedfde209c6c866cf387c2d625837f93355fdb6a9055b1e8180b883fe00bcb20edb3ba4dd21128ec2f1ed8cb884385cef7698cbcadcc4 + lru-cache: ^7.14.1 + checksum: 7834adc91e92ae1b9c4413384e3ccd297de5168bb44017ff0536705ddc4db421723bd964607849265feb3f6ded390f84cf138e5925f22f7c13324f87a803dc73 + languageName: node + linkType: hard + +"nan@npm:^2.16.0": + version: 2.17.0 + resolution: "nan@npm:2.17.0" + dependencies: + node-gyp: latest + checksum: ec609aeaf7e68b76592a3ba96b372aa7f5df5b056c1e37410b0f1deefbab5a57a922061e2c5b369bae9c7c6b5e6eecf4ad2dac8833a1a7d3a751e0a7c7f849ed languageName: node linkType: hard @@ -13964,16 +14020,16 @@ __metadata: linkType: hard "netlify-cli@npm:^12.0.11": - version: 12.6.0 - resolution: "netlify-cli@npm:12.6.0" + version: 12.10.0 + resolution: "netlify-cli@npm:12.10.0" dependencies: "@fastify/static": ^6.6.0 - "@netlify/build": ^29.4.0 - "@netlify/config": ^20.3.0 - "@netlify/edge-bundler": ^8.0.0 - "@netlify/framework-info": ^9.5.3 + "@netlify/build": ^29.5.2 + "@netlify/config": ^20.3.2 + "@netlify/edge-bundler": ^8.4.0 + "@netlify/framework-info": ^9.7.1 "@netlify/local-functions-proxy": ^1.1.1 - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.4.1 "@octokit/rest": ^19.0.0 ansi-escapes: ^5.0.0 ansi-styles: ^5.0.0 @@ -14003,6 +14059,7 @@ __metadata: execa: ^5.0.0 express: ^4.17.1 express-logging: ^1.1.1 + extract-zip: ^2.0.1 fastify: ^4.10.2 find-up: ^5.0.0 flush-write-stream: ^2.0.0 @@ -14024,7 +14081,7 @@ __metadata: is-plain-obj: ^3.0.0 is-wsl: ^2.2.0 isexe: ^2.0.0 - jsonwebtoken: ^8.5.1 + jsonwebtoken: ^9.0.0 jwt-decode: ^3.0.0 lambda-local: ^2.0.1 listr: ^0.14.3 @@ -14034,11 +14091,11 @@ __metadata: log-update: ^5.0.0 minimist: ^1.2.5 multiparty: ^4.2.1 - netlify: ^13.1.0 - netlify-headers-parser: ^7.1.0 + netlify: ^13.1.2 + netlify-headers-parser: ^7.1.1 netlify-onegraph-internal: 0.10.1 - netlify-redirect-parser: ^14.1.0 - netlify-redirector: ^0.3.1 + netlify-redirect-parser: ^14.1.1 + netlify-redirector: ^0.4.0 node-fetch: ^2.6.0 node-version-alias: ^1.0.1 ora: ^5.0.0 @@ -14073,13 +14130,13 @@ __metadata: bin: netlify: bin/run.mjs ntl: bin/run.mjs - checksum: a555e4ca56f681f2c974f148f0164547c5c233531baa38ee7c9f7b173f7b92c163e75551626c5b736b2d744015dc4f79fcbc9231435e96d97a0d4923ad16af40 + checksum: 4410476f0b9bacd748f27e271262b12550112afeb68787d9ff54fc5a051baaa6c5cac67d06dae26d8a93256b30f599454983e00e7e1cec2fcfd22abfa392f64e languageName: node linkType: hard -"netlify-headers-parser@npm:^7.1.0": - version: 7.1.0 - resolution: "netlify-headers-parser@npm:7.1.0" +"netlify-headers-parser@npm:^7.1.1": + version: 7.1.1 + resolution: "netlify-headers-parser@npm:7.1.1" dependencies: escape-string-regexp: ^5.0.0 fast-safe-stringify: ^2.0.7 @@ -14087,7 +14144,7 @@ __metadata: map-obj: ^5.0.0 path-exists: ^5.0.0 toml: ^3.0.0 - checksum: aee5eee2490e081b8a7ab3ff8bafd19041361574e71a80ad37e92d35b346df6d713dffe7bde85475dda888930817de05538b644f52db0345e69cbdba4b975004 + checksum: 675ca0429400042f9786a402927cb49d26540cd644ae9f7910dd1d8d6980938a2404c4c83186808dad4c4fffc878386e5e373391d3b225f080825053df9a426b languageName: node linkType: hard @@ -14103,38 +14160,38 @@ __metadata: languageName: node linkType: hard -"netlify-redirect-parser@npm:^14.1.0": - version: 14.1.0 - resolution: "netlify-redirect-parser@npm:14.1.0" +"netlify-redirect-parser@npm:^14.1.1": + version: 14.1.1 + resolution: "netlify-redirect-parser@npm:14.1.1" dependencies: fast-safe-stringify: ^2.1.1 filter-obj: ^3.0.0 is-plain-obj: ^4.0.0 path-exists: ^5.0.0 toml: ^3.0.0 - checksum: 8a5f9a501d18e674726f5dfdd30d6c6cf171499a05ce3a7773869a72e5b1811e552f5a7c7258e83fdde60ddd2a36e7b183c9827ca240dd2fa91ece9a28aa7b58 + checksum: adc9eff7fd022843a4c877c8f8c43040cee2490299ec2ef2eb884746e142dc4ee7122734e5f45c4d5d14be46b188dc31f9f10e1b838d6ca72d27a11612758f46 languageName: node linkType: hard -"netlify-redirector@npm:^0.3.1": - version: 0.3.1 - resolution: "netlify-redirector@npm:0.3.1" - checksum: 057322f8ab369f6e4a579da40ce741f0e434f1db155c75aaf5a9314265e1886c51f2fcfee12719c170e2c86c13eab2edfd3d8ffa6e1132199240c9ea7e689c89 +"netlify-redirector@npm:^0.4.0": + version: 0.4.0 + resolution: "netlify-redirector@npm:0.4.0" + checksum: d249bad5e2a5bf1825a131ae7b1179b89968830f711112b7da7f86270c30789fd9221d20acc34b79a966148d37489a6168e6d38099429fb60b01100e22ce6d66 languageName: node linkType: hard -"netlify@npm:^13.1.0": - version: 13.1.0 - resolution: "netlify@npm:13.1.0" +"netlify@npm:^13.1.2": + version: 13.1.2 + resolution: "netlify@npm:13.1.2" dependencies: - "@netlify/open-api": ^2.12.0 + "@netlify/open-api": ^2.13.0 lodash-es: ^4.17.21 micro-api-client: ^3.3.0 node-fetch: ^3.0.0 omit.js: ^2.0.2 p-wait-for: ^4.0.0 qs: ^6.9.6 - checksum: ad03da793b1c73d83984917ba68570b0da123133a94848363dfa07500fd9dba385b2b1fb12184937d1686b529af5f4b0cf2f6811b40bc747693d7e1221cf8eda + checksum: 70511ff1845bbffc2d9944e86f2d519160181a35f751ebe8a952bb3dced80f84b0089f11e351c2ea9f642545a40071c6262d006b5bfe353cb8de5e47eb212830 languageName: node linkType: hard @@ -14148,20 +14205,20 @@ __metadata: linkType: hard "node-abi@npm:^3.3.0": - version: 3.30.0 - resolution: "node-abi@npm:3.30.0" + version: 3.31.0 + resolution: "node-abi@npm:3.31.0" dependencies: semver: ^7.3.5 - checksum: f285efcea312e52d8763cfad7d434b31c11586e5efdf9f239c214a582557777453a8358d338442f02490d6c5289b0fc0eeed3056a740a3ebe6c79334af3b1739 + checksum: 38fa63c689ef50b4b8f576d5f843107e2d25bd7e7d4ed56dc0adb9db7eda945fc433a7a432beca4b9decf62ff05395f0e84f46e7ab7f275f85e5fde213353950 languageName: node linkType: hard "node-addon-api@npm:^5.0.0": - version: 5.0.0 - resolution: "node-addon-api@npm:5.0.0" + version: 5.1.0 + resolution: "node-addon-api@npm:5.1.0" dependencies: node-gyp: latest - checksum: 7c5e2043ac37f6108784d94ed73a44ae6d3e68eb968de60680922fc6bc3d17fa69448c0feb4e0c9d3f4c74a0324822e566a8340a56916d9d6f23cb3e85620334 + checksum: 2508bd2d2981945406243a7bd31362fc7af8b70b8b4d65f869c61731800058fb818cc2fd36c8eac714ddd0e568cc85becf5e165cebbdf7b5024d5151bbc75ea1 languageName: node linkType: hard @@ -14184,8 +14241,8 @@ __metadata: linkType: hard "node-fetch@npm:^2.3.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" + version: 2.6.9 + resolution: "node-fetch@npm:2.6.9" dependencies: whatwg-url: ^5.0.0 peerDependencies: @@ -14193,7 +14250,7 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 languageName: node linkType: hard @@ -14228,10 +14285,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.6": - version: 2.0.8 - resolution: "node-releases@npm:2.0.8" - checksum: b1ab02c0d5d8e081bf9537232777a7a787dc8fef07f70feabe70a344599b220fe16462f746ac30f3eed5a58549445ad69368964d12a1f8b3b764f6caab7ba34a +"node-releases@npm:^2.0.8": + version: 2.0.9 + resolution: "node-releases@npm:2.0.9" + checksum: 3ae6b1b300dc72c1a628861093d339a01aa017d3ad9017b0478384be29d6f9c93b9e26c91fce79728cecaadc04d0f16834b7ae1a018730e3e54962ec8c6aa86f languageName: node linkType: hard @@ -14499,9 +14556,9 @@ __metadata: linkType: hard "object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db languageName: node linkType: hard @@ -15321,12 +15378,13 @@ __metadata: linkType: hard "periscopic@npm:^3.0.0": - version: 3.0.4 - resolution: "periscopic@npm:3.0.4" + version: 3.1.0 + resolution: "periscopic@npm:3.1.0" dependencies: + "@types/estree": ^1.0.0 estree-walker: ^3.0.0 is-reference: ^3.0.0 - checksum: 0920ea1b0294c2463b7df858d7f895d0a69f15ec5c7b93d63749e7a8f6d9c065853ebea701305f1756f70310633832cf5c90e43e9363cce51abec44cc2f5c188 + checksum: 2153244352e58a0d76e7e8d9263e66fe74509495f809af388da20045fb30aa3e93f2f94468dc0b9166ecf206fcfc0d73d2c7641c6fbedc07b1de858b710142cb languageName: node linkType: hard @@ -16002,11 +16060,11 @@ __metadata: linkType: hard "prettier@npm:^2.8.0": - version: 2.8.2 - resolution: "prettier@npm:2.8.2" + version: 2.8.3 + resolution: "prettier@npm:2.8.3" bin: prettier: bin-prettier.js - checksum: 740c56c2128d587d656ea1dde9bc9c3503dfc94db4f3ac387259215eeb2e216680bdad9d18a0c9feecc6b42cfa188d6fa777df4c36c1d00cedd4199074fbfbd2 + checksum: 92f2ceb522d454370e02082aa74ad27388672f7cee8975028b59517c069fe643bdc73e322675c8faf2ff173d7a626d1a6389f26b474000308e793aa25fff46e5 languageName: node linkType: hard @@ -16172,13 +16230,6 @@ __metadata: languageName: node linkType: hard -"pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 - languageName: node - linkType: hard - "psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -16214,9 +16265,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 languageName: node linkType: hard @@ -17120,8 +17171,8 @@ __metadata: linkType: hard "rollup@npm:^3.2.3, rollup@npm:^3.7.0": - version: 3.9.1 - resolution: "rollup@npm:3.9.1" + version: 3.12.1 + resolution: "rollup@npm:3.12.1" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -17129,7 +17180,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 929cfab6b8bb2e20c28d7a4c3909b53729f4a63d8cc14f3b1a217d5f8e550737ee0903124ba58a1f2e7efd45c596e044a968aa379411731d0e76c910621d7d3f + checksum: b6b3aa4bcc13b1f15c1945201f3837be07b249854ed8a73bd67411ffe56f691b808d5b563246b78ecea4110afdb9e9e6cc7d5a3f82965a5592187dbb10d3671f languageName: node linkType: hard @@ -17273,9 +17324,9 @@ __metadata: linkType: hard "secure-json-parse@npm:^2.5.0": - version: 2.6.0 - resolution: "secure-json-parse@npm:2.6.0" - checksum: 6a10529b095cd2d4b7f3ae0a7f9877b67f6a206ffda01ba6fd29012c94b77197d6be3aea21f950120d3ac69b98b1251870554a504d47ab0e32f45531ebe92a2c + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: d9d7d5a01fc6db6115744ba23cf9e67ecfe8c524d771537c062ee05ad5c11b64c730bc58c7f33f60bd6877f96b86f0ceb9ea29644e4040cb757f6912d4dd6737 languageName: node linkType: hard @@ -17338,7 +17389,7 @@ __metadata: languageName: node linkType: hard -"send@npm:0.18.0, send@npm:^0.18.0": +"send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" dependencies: @@ -17411,7 +17462,7 @@ __metadata: languageName: node linkType: hard -"sharp@npm:^0.31.0": +"sharp@npm:^0.31.3": version: 0.31.3 resolution: "sharp@npm:0.31.3" dependencies: @@ -17926,13 +17977,6 @@ __metadata: languageName: node linkType: hard -"statsd-client@npm:0.4.7": - version: 0.4.7 - resolution: "statsd-client@npm:0.4.7" - checksum: 05d2956513b91a9ccc0d00b01e8eda708fad0bd0a044a55beeb813c65df7fd5ede6b4a33c0d6526b6afb8873de2ab9c62303e1e9282f08dac7b5c72e9ac7fc32 - languageName: node - linkType: hard - "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -17947,6 +17991,15 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + "stream-to-buffer@npm:^0.1.0": version: 0.1.0 resolution: "stream-to-buffer@npm:0.1.0" @@ -18236,12 +18289,12 @@ __metadata: languageName: node linkType: hard -"style-to-object@npm:^0.3.0": - version: 0.3.0 - resolution: "style-to-object@npm:0.3.0" +"style-to-object@npm:^0.4.1": + version: 0.4.1 + resolution: "style-to-object@npm:0.4.1" dependencies: inline-style-parser: 0.1.1 - checksum: 4d7084015207f2a606dfc10c29cb5ba569f2fe8005551df7396110dd694d6ff650f2debafa95bd5d147dfb4ca50f57868e2a7f91bf5d11ef734fe7ccbd7abf59 + checksum: 2ea213e98eed21764ae1d1dc9359231a9f2d480d6ba55344c4c15eb275f0809f1845786e66d4caf62414a5cc8f112ce9425a58d251c77224060373e0db48f8c2 languageName: node linkType: hard @@ -18635,11 +18688,11 @@ __metadata: linkType: hard "thread-stream@npm:^2.0.0": - version: 2.2.0 - resolution: "thread-stream@npm:2.2.0" + version: 2.3.0 + resolution: "thread-stream@npm:2.3.0" dependencies: real-require: ^0.2.0 - checksum: b7f0ee166ed17ac54700a0b6fc291967c97785b458ff54efe5431a7281bb52d1163e6ec550a614f2a47f0f02de5b35a342bd5acd215af23030938c64859152b2 + checksum: e9ea58f9f36320165b41c2aae5c439bf68bd3575eb533c458483d8b290e31d519979e351408c7d6e248711611434332c2a3aae2165650b028cc3eb9b1052ac16 languageName: node linkType: hard @@ -19006,9 +19059,9 @@ __metadata: linkType: hard "tslib@npm:^2.3.1, tslib@npm:^2.4.0": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca + version: 2.5.0 + resolution: "tslib@npm:2.5.0" + checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 languageName: node linkType: hard @@ -19174,7 +19227,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:4.9.4, typescript@npm:^4.5.5, typescript@npm:^4.6.4, typescript@npm:^4.8.4": +"typescript@npm:4.9.4": version: 4.9.4 resolution: "typescript@npm:4.9.4" bin: @@ -19184,6 +19237,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^4.5.5, typescript@npm:^4.6.4, typescript@npm:^4.8.4": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + languageName: node + linkType: hard + "typescript@patch:typescript@4.8.4#~builtin": version: 4.8.4 resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=0102e9" @@ -19194,7 +19257,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@4.9.4#~builtin, typescript@patch:typescript@^4.5.5#~builtin, typescript@patch:typescript@^4.6.4#~builtin, typescript@patch:typescript@^4.8.4#~builtin": +"typescript@patch:typescript@4.9.4#~builtin": version: 4.9.4 resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=d73830" bin: @@ -19204,6 +19267,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^4.5.5#~builtin, typescript@patch:typescript@^4.6.4#~builtin, typescript@patch:typescript@^4.8.4#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=d73830" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 2eee5c37cad4390385db5db5a8e81470e42e8f1401b0358d7390095d6f681b410f2c4a0c496c6ff9ebd775423c7785cdace7bcdad76c7bee283df3d9718c0f20 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4, uglify-js@npm:^3.5.1": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -19251,7 +19324,7 @@ __metadata: languageName: node linkType: hard -"undici@npm:5.14.0, undici@npm:^5.14.0": +"undici@npm:5.14.0": version: 5.14.0 resolution: "undici@npm:5.14.0" dependencies: @@ -19260,6 +19333,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.14.0": + version: 5.16.0 + resolution: "undici@npm:5.16.0" + dependencies: + busboy: ^1.6.0 + checksum: bc22e797cbf469351713c88af33e65e21952a75f431b78b0e75fb2411426ab38b888ec0761d4b81eadf8f6e8872ed23fb75641cc7319c6a7f08bd083899fa1cc + languageName: node + linkType: hard + "unicode-properties@npm:^1.3.1": version: 1.4.1 resolution: "unicode-properties@npm:1.4.1" @@ -19344,83 +19426,83 @@ __metadata: linkType: hard "unist-builder@npm:^3.0.0": - version: 3.0.0 - resolution: "unist-builder@npm:3.0.0" + version: 3.0.1 + resolution: "unist-builder@npm:3.0.1" dependencies: "@types/unist": ^2.0.0 - checksum: 80459ee3c2ece90bbc4f4b4faeed524d144c1a09ee07ff3e9004648d9b71a652e80a3b3ef60311a1e92f6ab915caf27c6f08062b5f8c84fa725bc0d7c5759e84 + checksum: d8c42fe69aa55a3e9aed3c581007ec5371349bf9885bfa8b0b787634f8d12fa5081f066b205ded379b6d0aeaa884039bae9ebb65a3e71784005fb110aef30d0f languageName: node linkType: hard "unist-util-generated@npm:^2.0.0": - version: 2.0.0 - resolution: "unist-util-generated@npm:2.0.0" - checksum: 3a806793fa24a75190c217740ce706340d6cb0d51eff677134253d628f8e4355ebd8a243fe8045c583463f6bebfd50f902d653161da87c1359fcd1a14b99c8e0 + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 6221ad0571dcc9c8964d6b054f39ef6571ed59cc0ce3e88ae97ea1c70afe76b46412a5ffaa91f96814644ac8477e23fb1b477d71f8d70e625728c5258f5c0d99 languageName: node linkType: hard "unist-util-is@npm:^5.0.0": - version: 5.1.1 - resolution: "unist-util-is@npm:5.1.1" - checksum: e8743a19a304d8a8f5684f3e5ddb5546f2655847b42123687277d76566a2aba89beb7b4a8a9e9ebc4d904cd1cecc285356d7923d973a43cfc19a1e10ff6bdee4 + version: 5.2.0 + resolution: "unist-util-is@npm:5.2.0" + checksum: b80debe1ce5d40a8d685c510f597e5c8b8f7089540e9e268bda1b05bcce735c10bf36d5b0e4ecded50c63fa43b8a11b0e4b784beecf1559f153a2f2855e8526c languageName: node linkType: hard "unist-util-position-from-estree@npm:^1.0.0, unist-util-position-from-estree@npm:^1.1.0": - version: 1.1.1 - resolution: "unist-util-position-from-estree@npm:1.1.1" + version: 1.1.2 + resolution: "unist-util-position-from-estree@npm:1.1.2" dependencies: "@types/unist": ^2.0.0 - checksum: 63808bdcb8b49afa5231712d95b586fe877859ee03d23adb47485c30222007a5af55e95d103d4af51d1d16376aaa5a58fa985a08d63727c38b1515873df8b79b + checksum: e3f4060e2a9e894c6ed63489c5a7cb58ff282e5dae9497cbc2073033ca74d6e412af4d4d342c97aea08d997c908b8bce2fe43a2062aafc2bb3f266533016588b languageName: node linkType: hard "unist-util-position@npm:^4.0.0": - version: 4.0.3 - resolution: "unist-util-position@npm:4.0.3" + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" dependencies: "@types/unist": ^2.0.0 - checksum: 0d89973628d40f19345cbcc50008f7f56d411afa54434bbe6c224b22d26aaf9d4500da2de363f1f01945acab1f1c31920c514253149eb546ff9b8bbc1ea94209 + checksum: e7487b6cec9365299695e3379ded270a1717074fa11fd2407c9b934fb08db6fe1d9077ddeaf877ecf1813665f8ccded5171693d3d9a7a01a125ec5cdd5e88691 languageName: node linkType: hard "unist-util-remove-position@npm:^4.0.0": - version: 4.0.1 - resolution: "unist-util-remove-position@npm:4.0.1" + version: 4.0.2 + resolution: "unist-util-remove-position@npm:4.0.2" dependencies: "@types/unist": ^2.0.0 unist-util-visit: ^4.0.0 - checksum: 7d2808662ac65f2b2f615822b78060419f738fb3b074b10cec77c596ea966b8f5c47553d2d322822a5975c49d2b21cdd64c198ae9fb02a9d54d1afa6342cdd6a + checksum: 989831da913d09a82a99ed9b47b78471b6409bde95942cde47e09da54b7736516f17e3c7e026af468684c1efcec5fb52df363381b2f9dc7fd96ce791c5a2fa4a languageName: node linkType: hard "unist-util-stringify-position@npm:^3.0.0": - version: 3.0.2 - resolution: "unist-util-stringify-position@npm:3.0.2" + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" dependencies: "@types/unist": ^2.0.0 - checksum: 2dfd7a0fb2a55e99cc319c3bf7f9f1f73ed652978fa70d19117faa7245d20f21738ec926ecc47f341705ca1bb157e87ced0b6bb5ecaa666bd2ae6b2510d6a671 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 languageName: node linkType: hard "unist-util-visit-parents@npm:^5.1.1": - version: 5.1.1 - resolution: "unist-util-visit-parents@npm:5.1.1" + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" dependencies: "@types/unist": ^2.0.0 unist-util-is: ^5.0.0 - checksum: c699d18f5b26461dee37612b84c243fd5457c98f4c0540d9ba8bee05062aece5f3b4fb1af6b07423ce6750d8926e8c01fc2b1a4de1e54925ef6795c177ed8e18 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa languageName: node linkType: hard "unist-util-visit@npm:^4.0.0": - version: 4.1.1 - resolution: "unist-util-visit@npm:4.1.1" + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" dependencies: "@types/unist": ^2.0.0 unist-util-is: ^5.0.0 unist-util-visit-parents: ^5.1.1 - checksum: c4a63734b0a5b439c62d20901bb472bdafdbbcd80c383e254aedeb98b23d0bae815a331e776ce7d63ea3c8018a54318abb8709d07cdf7dd094f79b2f07bb39f0 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee languageName: node linkType: hard @@ -19452,6 +19534,17 @@ __metadata: languageName: node linkType: hard +"unix-dgram@npm:2.x": + version: 2.0.6 + resolution: "unix-dgram@npm:2.0.6" + dependencies: + bindings: ^1.5.0 + nan: ^2.16.0 + node-gyp: latest + checksum: 0ab238726fd69e0a0174664225117b4575b40bd5df546c50a01de2fadf9da602c385ec8ff2f159607a127a6e7bf67628931903d43d286db27460b5abbe8cf8ac + languageName: node + linkType: hard + "unixify@npm:^1.0.0": version: 1.0.0 resolution: "unixify@npm:1.0.0" @@ -19485,7 +19578,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.9": +"update-browserslist-db@npm:^1.0.10": version: 1.0.10 resolution: "update-browserslist-db@npm:1.0.10" dependencies: @@ -19779,12 +19872,12 @@ __metadata: linkType: hard "vite-imagetools@npm:^4.0.11": - version: 4.0.14 - resolution: "vite-imagetools@npm:4.0.14" + version: 4.0.18 + resolution: "vite-imagetools@npm:4.0.18" dependencies: "@rollup/pluginutils": ^5.0.0 - imagetools-core: ^3.3.0 - checksum: c1c163359a4eff2ce704eb66292a762458a0b8ca87acec4a678138790908a4a63678c083d01c72cde1f27b776925243662caefaaca9eff6303d44b87182a7c13 + imagetools-core: ^3.3.1 + checksum: f2e9b0713bda0488808ea8ad467e08c6752461c9bbd0ce73a82cbcb845292d1104fa68e0f8db4ee28cf22e9e4cc2327bfcc6171c02e073808e9fc39a7b3f220a languageName: node linkType: hard @@ -20143,11 +20236,11 @@ __metadata: linkType: hard "windows-release@npm:^5.0.1": - version: 5.0.1 - resolution: "windows-release@npm:5.0.1" + version: 5.1.0 + resolution: "windows-release@npm:5.1.0" dependencies: execa: ^5.1.1 - checksum: b6b403333b7b3ea31a805c287f210962d8f3191865d81d2fd3955e603ab4d6893abc746d87b7da5b2a7a044b7b18df97c948e7d5392baed1d2bc5687fbf7431d + checksum: b1256ef336e86b230cf940305d058cb2d49f076833df77a96e7bbf958ea5cd3bb1f1af6b1408fad14ee37df190d77b97b1dad6bbf3ed6eac1ba99a4d28dbfb68 languageName: node linkType: hard @@ -20393,13 +20486,13 @@ __metadata: linkType: hard "wrap-ansi@npm:^8.0.1": - version: 8.0.1 - resolution: "wrap-ansi@npm:8.0.1" + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" dependencies: ansi-styles: ^6.1.0 string-width: ^5.0.1 strip-ansi: ^7.0.1 - checksum: 5d7816e64f75544e466d58a736cb96ca47abad4ad57f48765b9735ba5601221013a37f436662340ca159208b011121e4e030de5a17180c76202e35157195a71e + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 languageName: node linkType: hard @@ -20539,13 +20632,6 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb - languageName: node - linkType: hard - "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" From c0ece6feb2b0325476880a604c32de341eb60544 Mon Sep 17 00:00:00 2001 From: Zamphi <40876040+mistertito86@users.noreply.github.com> Date: Wed, 8 Feb 2023 17:50:21 -0300 Subject: [PATCH 45/53] feat(provider): :zap: add location provider --- __test__/02-case.test.js | 7 +- __test__/03-case.test.js | 11 +- __test__/04-case.test.js | 7 +- __test__/06-case.test.js | 38 +- changelog.config.js | 31 +- packages/provider/src/baileys/index.js | 9 + packages/provider/src/venom/index.js | 8 +- packages/provider/src/web-whatsapp/index.js | 5 + scripts/checker.js | 54 +- scripts/github.js | 3 +- scripts/move.js | 9 +- scripts/release.js | 41 +- starters/apps/base-baileys-json/app.js | 23 +- starters/apps/base-baileys-memory/app.js | 23 +- starters/apps/base-baileys-mongo/app.js | 23 +- starters/apps/base-baileys-mysql/app.js | 23 +- starters/apps/base-meta-json/app.js | 23 +- starters/apps/base-meta-memory/app.js | 23 +- starters/apps/base-meta-mongo/app.js | 23 +- starters/apps/base-meta-mysql/app.js | 23 +- starters/apps/base-twilio-json/app.js | 23 +- starters/apps/base-twilio-memory/app.js | 23 +- starters/apps/base-twilio-mongo/app.js | 23 +- starters/apps/base-twilio-mysql/app.js | 23 +- starters/apps/base-venom-json/app.js | 23 +- starters/apps/base-venom-memory/app.js | 23 +- starters/apps/base-venom-mongo/app.js | 23 +- starters/apps/base-venom-mysql/app.js | 23 +- starters/apps/base-wweb-json/app.js | 23 +- starters/apps/base-wweb-memory/app.js | 23 +- starters/apps/base-wweb-mongo/app.js | 23 +- starters/apps/base-wweb-mysql/app.js | 23 +- yarn.lock | 2476 ++++++++++--------- 33 files changed, 1422 insertions(+), 1737 deletions(-) diff --git a/__test__/02-case.test.js b/__test__/02-case.test.js index a2a93ec..855a566 100644 --- a/__test__/02-case.test.js +++ b/__test__/02-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') /** * Falsear peticion async diff --git a/__test__/03-case.test.js b/__test__/03-case.test.js index 45c399a..646b5d5 100644 --- a/__test__/03-case.test.js +++ b/__test__/03-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') test(`[Caso - 03] Flow puro`, async () => { const MOCK_VALUES = ['Bienvenido a mi tienda', 'Como estas?'] @@ -15,9 +10,7 @@ test(`[Caso - 03] Flow puro`, async () => { const provider = createProvider(PROVIDER_DB) const database = new MOCK_DB() - const flujoPrincipal = addKeyword(['hola']) - .addAnswer(MOCK_VALUES[0]) - .addAnswer(MOCK_VALUES[1]) + const flujoPrincipal = addKeyword(['hola']).addAnswer(MOCK_VALUES[0]).addAnswer(MOCK_VALUES[1]) createBot({ database, diff --git a/__test__/04-case.test.js b/__test__/04-case.test.js index 2291a0c..8fcaeda 100644 --- a/__test__/04-case.test.js +++ b/__test__/04-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') /** * Falsear peticion async diff --git a/__test__/06-case.test.js b/__test__/06-case.test.js index c68679e..355cbd4 100644 --- a/__test__/06-case.test.js +++ b/__test__/06-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') /** * Falsear peticion async @@ -21,11 +16,7 @@ const fakeHTTP = async (fakeData = []) => { } test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { - const MOCK_VALUES = [ - '¿CUal es tu email?', - 'Continuamos....', - '¿Cual es tu edad?', - ] + const MOCK_VALUES = ['¿CUal es tu email?', 'Continuamos....', '¿Cual es tu edad?'] const provider = createProvider(PROVIDER_DB) const database = new MOCK_DB() @@ -39,9 +30,7 @@ test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { const validation = ctx.body.includes('@') if (validation) { - const getDataFromApi = await fakeHTTP([ - 'Gracias por tu email se ha validado de manera correcta', - ]) + const getDataFromApi = await fakeHTTP(['Gracias por tu email se ha validado de manera correcta']) return flowDynamic(getDataFromApi) } return fallBack(validation) @@ -50,17 +39,13 @@ test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { .addAnswer(MOCK_VALUES[1], null, async (_, { endFlow }) => { return endFlow() }) - .addAnswer( - MOCK_VALUES[2], - { capture: true }, - async (ctx, { flowDynamic, fallBack }) => { - if (ctx.body !== '18') { - await delay(50) - return fallBack(false, 'Ups creo que no eres mayor de edad') - } - return flowDynamic('Bien tu edad es correcta!') + .addAnswer(MOCK_VALUES[2], { capture: true }, async (ctx, { flowDynamic, fallBack }) => { + if (ctx.body !== '18') { + await delay(50) + return fallBack(false, 'Ups creo que no eres mayor de edad') } - ) + return flowDynamic('Bien tu edad es correcta!') + }) .addAnswer('Puedes pasar') createBot({ @@ -95,10 +80,7 @@ test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { assert.is('this is not email value', getHistory[1]) assert.is(MOCK_VALUES[0], getHistory[2]) assert.is('test@test.com', getHistory[3]) - assert.is( - '1 Gracias por tu email se ha validado de manera correcta', - getHistory[4] - ) + assert.is('1 Gracias por tu email se ha validado de manera correcta', getHistory[4]) assert.is(MOCK_VALUES[1], getHistory[5]) assert.is('20', getHistory[6]) assert.is(undefined, getHistory[7]) diff --git a/changelog.config.js b/changelog.config.js index 70a500d..38c6f74 100644 --- a/changelog.config.js +++ b/changelog.config.js @@ -1,28 +1,10 @@ module.exports = { disableEmoji: false, format: '{type}{scope}: {emoji}{subject}', - list: [ - 'test', - 'feat', - 'fix', - 'chore', - 'docs', - 'refactor', - 'style', - 'ci', - 'perf', - ], + list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf'], maxMessageLength: 64, minMessageLength: 3, - questions: [ - 'type', - 'scope', - 'subject', - 'body', - 'breaking', - 'issues', - 'lerna', - ], + questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'], scopes: [], types: { chore: { @@ -56,8 +38,7 @@ module.exports = { value: 'perf', }, refactor: { - description: - 'A code change that neither fixes a bug or adds a feature', + description: 'A code change that neither fixes a bug or adds a feature', emoji: '(💡)', value: 'refactor', }, @@ -67,8 +48,7 @@ module.exports = { value: 'release', }, style: { - description: - 'Markup, white-space, formatting, missing semi-colons...', + description: 'Markup, white-space, formatting, missing semi-colons...', emoji: '(💄)', value: 'style', }, @@ -80,8 +60,7 @@ module.exports = { messages: { type: "Select the type of change that you're committing:", customScope: 'Select the scope this component affects:', - subject: - 'Write a short, imperative mood description of the change:\n', + subject: 'Write a short, imperative mood description of the change:\n', body: 'Provide a longer description of the change:\n ', breaking: 'List any breaking changes:\n', footer: 'Issues this commit closes, e.g #123:', diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 7a5de23..d98bd27 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -115,12 +115,21 @@ class BaileysProvider extends ProviderClass { func: ({ messages, type }) => { if (type !== 'notify') return const [messageCtx] = messages + console.log(messageCtx) let payload = { ...messageCtx, body: messageCtx?.message?.extendedTextMessage?.text ?? messageCtx?.message?.conversation, + from: messageCtx?.key?.remoteJid, } + if (messageCtx.message.locationMessage) { + const { degreesLatitude, degreesLongitude } = messageCtx.message.locationMessage + if (typeof degreesLatitude === 'number' && typeof degreesLongitude === 'number') { + payload = { ...payload, body: `${degreesLatitude},${degreesLongitude}` } + } + } + if (payload.from === 'status@broadcast') return if (payload?.key?.fromMe) return diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 1369af2..02918de 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -85,11 +85,17 @@ class VenomProvider extends ProviderClass { if (payload.from === 'status@broadcast') { return } - if (!venomisValidNumber(payload.from)) { return } payload.from = venomCleanNumber(payload.from, true) + if (payload.hasOwnProperty('lat') && payload.hasOwnProperty('lng')) { + const lat = payload.lat + const lng = payload.lng + if (lat !== '' && lng !== '') { + payload = { ...payload, body: `${lat},${lng}` } + } + } this.emit('message', payload) }, }, diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 9fef93c..6e822e5 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -90,6 +90,11 @@ class WebWhatsappProvider extends ProviderClass { return } payload.from = wwebCleanNumber(payload.from, true) + if (payload._data.lat && payload._data.lng) { + let lat = payload._data.lat + let lng = payload._data.lng + payload = { ...payload, body: `${lat},${lng}` } + } this.emit('message', payload) }, }, diff --git a/scripts/checker.js b/scripts/checker.js index b68cd57..3cb4329 100644 --- a/scripts/checker.js +++ b/scripts/checker.js @@ -18,13 +18,9 @@ const [PKG_NAME, PKG_STABLE] = process.argv.slice(2) || [null, null] * @param {*} pkgName */ const checkPkg = async (pkgName = '') => { - const { stdout } = await cmd( - NPM_COMMAND, - ['show', `${pkgName}`, 'version'], - { - stdio: 'inherit', - } - ) + const { stdout } = await cmd(NPM_COMMAND, ['show', `${pkgName}`, 'version'], { + stdio: 'inherit', + }) return stdout.trim().replace('\n', '') } @@ -36,12 +32,7 @@ const checkPkg = async (pkgName = '') => { const checkPkgStable = async (pkgName = '', version = '') => { const { stdout } = await cmd( NPM_COMMAND, - [ - 'show', - `${pkgName}@${version.split('.').shift()}.*`, - 'version', - '--json', - ], + ['show', `${pkgName}@${version.split('.').shift()}.*`, 'version', '--json'], { stdio: 'inherit', } @@ -65,17 +56,14 @@ const checkPkgStable = async (pkgName = '', version = '') => { * @returns */ const checkEveryProvider = async (provider = '', stable = true) => { - const pkgDependencies = readFileSync( - join(PATH_PACKAGES, 'provider', 'src', provider, 'package.json') - ) + const pkgDependencies = readFileSync(join(PATH_PACKAGES, 'provider', 'src', provider, 'package.json')) try { const { dependencies } = JSON.parse(pkgDependencies) const devParse = Object.entries(dependencies) const newDevParse = {} for (const [pkgName, pkgVersion] of devParse) { if (!stable) newDevParse[pkgName] = await checkPkg(pkgName) - if (stable) - newDevParse[pkgName] = await checkPkgStable(pkgName, pkgVersion) + if (stable) newDevParse[pkgName] = await checkPkgStable(pkgName, pkgVersion) console.log(newDevParse) } @@ -93,25 +81,12 @@ const checkEveryProvider = async (provider = '', stable = true) => { * @returns */ const updateDependencies = async (provider = '', list = {}) => { - const pathProvider = join( - PATH_PACKAGES, - 'provider', - 'src', - provider, - 'package.json' - ) + const pathProvider = join(PATH_PACKAGES, 'provider', 'src', provider, 'package.json') try { const pkgDependencies = readFileSync(pathProvider) const { dependencies } = JSON.parse(pkgDependencies) - writeFileSync( - pathProvider, - JSON.stringify( - { dependencies: { ...dependencies, ...list } }, - null, - 2 - ) - ) + writeFileSync(pathProvider, JSON.stringify({ dependencies: { ...dependencies, ...list } }, null, 2)) } catch (e) { console.log(e) return {} @@ -125,15 +100,11 @@ const updateDependencies = async (provider = '', list = {}) => { */ const updateStarters = async (provider = '', updateDev = {}) => { provider = provider === 'web-whatsapp' ? 'wweb' : provider - const allStarters = readdirSync(PATH_STARTERS).filter((n) => - n.includes(provider) - ) + const allStarters = readdirSync(PATH_STARTERS).filter((n) => n.includes(provider)) try { for (const base of allStarters) { - const pkgDependenciesBase = readFileSync( - join(PATH_STARTERS, base, 'package.json') - ) + const pkgDependenciesBase = readFileSync(join(PATH_STARTERS, base, 'package.json')) const pkgBase = JSON.parse(pkgDependenciesBase) writeFileSync( join(PATH_STARTERS, base, 'package.json'), @@ -157,10 +128,7 @@ const main = async () => { if (PKG_NAME) { const providerName = PKG_NAME ? PKG_NAME.split('=').at(1) : null const providerStable = PKG_STABLE ? PKG_STABLE.split('=').at(1) : null - const list = await checkEveryProvider( - providerName, - providerStable === 'true' - ) + const list = await checkEveryProvider(providerName, providerStable === 'true') await updateDependencies(providerName, list) await updateStarters(providerName, list) } diff --git a/scripts/github.js b/scripts/github.js index 9277d83..71e8eac 100644 --- a/scripts/github.js +++ b/scripts/github.js @@ -39,8 +39,7 @@ const main = async () => { const githubToken = GITHUB_TOKEN ? GITHUB_TOKEN.split('=').at(1) : null const pkgNumber = PKG_ARG ? PKG_ARG.split('=').at(1) : null - if (pkgNumber) - await githubGithubRelease(`v${pkgNumber}`, pkgNumber, githubToken) + if (pkgNumber) await githubGithubRelease(`v${pkgNumber}`, pkgNumber, githubToken) } } diff --git a/scripts/move.js b/scripts/move.js index e59897b..f77fb38 100644 --- a/scripts/move.js +++ b/scripts/move.js @@ -10,14 +10,7 @@ const copyLibPkg = async (pkgName, to) => { await fs.copy(FROM, TO) } -const listLib = [ - 'create-bot-whatsapp', - 'bot', - 'database', - 'provider', - 'contexts', - 'portal', -] +const listLib = ['create-bot-whatsapp', 'bot', 'database', 'provider', 'contexts', 'portal'] const main = async () => { for (const iterator of listLib) { diff --git a/scripts/release.js b/scripts/release.js index 9dfcc62..5353e81 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -18,14 +18,10 @@ const cmd = util.promisify(execFile) */ const npmToken = (token = null) => new Promise((resolve, reject) => { - writeFile( - `${process.cwd()}/.npmrc`, - `//registry.npmjs.org/:_authToken=${token}`, - (error) => { - if (error) reject(error) - resolve() - } - ) + writeFile(`${process.cwd()}/.npmrc`, `//registry.npmjs.org/:_authToken=${token}`, (error) => { + if (error) reject(error) + resolve() + }) }) /** @@ -66,18 +62,11 @@ const updateVersion = async (packageName = null, number = null) => { const pkgJsonObject = readPackage(packageName) const { version } = pkgJsonObject - const newVersion = !number - ? semver.inc(version, 'prepatch', 'alpha') - : `${number}` + const newVersion = !number ? semver.inc(version, 'prepatch', 'alpha') : `${number}` - if (!semver.valid(newVersion)) - throw new Error(`VERSION_ERROR: ${newVersion}`) + if (!semver.valid(newVersion)) throw new Error(`VERSION_ERROR: ${newVersion}`) - const newPkgJson = JSON.stringify( - { ...pkgJsonObject, version: newVersion }, - null, - 2 - ) + const newPkgJson = JSON.stringify({ ...pkgJsonObject, version: newVersion }, null, 2) await updatePackage(packageName, newPkgJson) return { version: newVersion } } @@ -92,14 +81,10 @@ const checkExistVersion = async (packageName = null, version = null) => { try { const pkgJson = join(PATH_PACKAGES, packageName) const pkgJsonObject = readPackage(packageName) - const { stdout } = await cmd( - NPM_COMMAND, - ['view', `${pkgJsonObject.name}@${version}`], - { - stdio: 'inherit', - cwd: pkgJson, - } - ) + const { stdout } = await cmd(NPM_COMMAND, ['view', `${pkgJsonObject.name}@${version}`], { + stdio: 'inherit', + cwd: pkgJson, + }) return true } catch (e) { return false @@ -149,9 +134,7 @@ const main = async () => { let EXIST_VERSION = true const tokenNpm = NPM_TOKEN ? NPM_TOKEN.split('=').at(1) : null const pkgName = PKG_ARG ? PKG_ARG.split('=').at(1) : null - const pkgNumber = PKG_ARG_VERSION - ? PKG_ARG_VERSION.split('=').at(1) - : null + const pkgNumber = PKG_ARG_VERSION ? PKG_ARG_VERSION.split('=').at(1) : null if (tokenNpm) await npmToken(tokenNpm) while (EXIST_VERSION) { diff --git a/starters/apps/base-baileys-json/app.js b/starters/apps/base-baileys-json/app.js index b06887c..5fc0ba1 100644 --- a/starters/apps/base-baileys-json/app.js +++ b/starters/apps/base-baileys-json/app.js @@ -1,23 +1,12 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const BaileysProvider = require('@bot-whatsapp/provider/baileys') const JsonFileAdapter = require('@bot-whatsapp/database/json') -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -53,11 +42,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-baileys-memory/app.js b/starters/apps/base-baileys-memory/app.js index 3d05e79..7b07e11 100644 --- a/starters/apps/base-baileys-memory/app.js +++ b/starters/apps/base-baileys-memory/app.js @@ -1,23 +1,12 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const BaileysProvider = require('@bot-whatsapp/provider/baileys') const MockAdapter = require('@bot-whatsapp/database/mock') -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -53,11 +42,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-baileys-mongo/app.js b/starters/apps/base-baileys-mongo/app.js index 2de3ad6..048fa5c 100644 --- a/starters/apps/base-baileys-mongo/app.js +++ b/starters/apps/base-baileys-mongo/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const BaileysProvider = require('@bot-whatsapp/provider/baileys') @@ -28,15 +23,9 @@ const MONGO_DB_NAME = 'db_bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -72,11 +61,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-baileys-mysql/app.js b/starters/apps/base-baileys-mysql/app.js index d3dbbe5..2b3a2fe 100644 --- a/starters/apps/base-baileys-mysql/app.js +++ b/starters/apps/base-baileys-mysql/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const BaileysProvider = require('@bot-whatsapp/provider/baileys') @@ -29,15 +24,9 @@ const MYSQL_DB_NAME = 'bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -73,11 +62,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-meta-json/app.js b/starters/apps/base-meta-json/app.js index cc4c7ac..4bc73e1 100644 --- a/starters/apps/base-meta-json/app.js +++ b/starters/apps/base-meta-json/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const MetaProvider = require('@bot-whatsapp/provider/meta') const JsonFileAdapter = require('@bot-whatsapp/database/json') @@ -20,15 +15,9 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -64,11 +53,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-meta-memory/app.js b/starters/apps/base-meta-memory/app.js index c8201e8..94c5e43 100644 --- a/starters/apps/base-meta-memory/app.js +++ b/starters/apps/base-meta-memory/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const MetaProvider = require('@bot-whatsapp/provider/meta') const MockAdapter = require('@bot-whatsapp/database/mock') @@ -20,15 +15,9 @@ const MockAdapter = require('@bot-whatsapp/database/mock') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -64,11 +53,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-meta-mongo/app.js b/starters/apps/base-meta-mongo/app.js index 18cd9ac..c287df4 100644 --- a/starters/apps/base-meta-mongo/app.js +++ b/starters/apps/base-meta-mongo/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const MetaProvider = require('@bot-whatsapp/provider/meta') const MongoAdapter = require('@bot-whatsapp/database/mongo') @@ -27,15 +22,9 @@ const MONGO_DB_NAME = 'db_bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -71,11 +60,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-meta-mysql/app.js b/starters/apps/base-meta-mysql/app.js index 102f977..1c2ff53 100644 --- a/starters/apps/base-meta-mysql/app.js +++ b/starters/apps/base-meta-mysql/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const MetaProvider = require('@bot-whatsapp/provider/meta') const MySQLAdapter = require('@bot-whatsapp/database/mysql') @@ -28,15 +23,9 @@ const MYSQL_DB_NAME = 'bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -72,11 +61,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-twilio-json/app.js b/starters/apps/base-twilio-json/app.js index 047a126..28cbbbe 100644 --- a/starters/apps/base-twilio-json/app.js +++ b/starters/apps/base-twilio-json/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const TwilioProvider = require('@bot-whatsapp/provider/twilio') const JsonFileAdapter = require('@bot-whatsapp/database/json') @@ -20,15 +15,9 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -64,11 +53,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-twilio-memory/app.js b/starters/apps/base-twilio-memory/app.js index cc1d16b..db712e8 100644 --- a/starters/apps/base-twilio-memory/app.js +++ b/starters/apps/base-twilio-memory/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const TwilioProvider = require('@bot-whatsapp/provider/twilio') const MockAdapter = require('@bot-whatsapp/database/mock') @@ -20,15 +15,9 @@ const MockAdapter = require('@bot-whatsapp/database/mock') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -64,11 +53,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-twilio-mongo/app.js b/starters/apps/base-twilio-mongo/app.js index dcabb99..41f22cb 100644 --- a/starters/apps/base-twilio-mongo/app.js +++ b/starters/apps/base-twilio-mongo/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const TwilioProvider = require('@bot-whatsapp/provider/twilio') const MongoAdapter = require('@bot-whatsapp/database/mongo') @@ -27,15 +22,9 @@ const MONGO_DB_NAME = 'db_bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -71,11 +60,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js index 4725cd3..2a9eaa3 100644 --- a/starters/apps/base-twilio-mysql/app.js +++ b/starters/apps/base-twilio-mysql/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const TwilioProvider = require('@bot-whatsapp/provider/twilio') const MySQLAdapter = require('@bot-whatsapp/database/mysql') @@ -29,15 +24,9 @@ const MYSQL_DB_NAME = 'bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -73,11 +62,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-venom-json/app.js b/starters/apps/base-venom-json/app.js index 120deee..1b07b6b 100644 --- a/starters/apps/base-venom-json/app.js +++ b/starters/apps/base-venom-json/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const VenomProvider = require('@bot-whatsapp/provider/venom') @@ -21,15 +16,9 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -65,11 +54,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js index 8402cf9..fc68953 100644 --- a/starters/apps/base-venom-memory/app.js +++ b/starters/apps/base-venom-memory/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const VenomProvider = require('@bot-whatsapp/provider/venom') @@ -21,15 +16,9 @@ const MockAdapter = require('@bot-whatsapp/database/mock') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -65,11 +54,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js index 2f4f16a..7bec798 100644 --- a/starters/apps/base-venom-mongo/app.js +++ b/starters/apps/base-venom-mongo/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const VenomProvider = require('@bot-whatsapp/provider/venom') @@ -28,15 +23,9 @@ const MONGO_DB_NAME = 'db_bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -72,11 +61,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js index 8c5c2db..48a47c8 100644 --- a/starters/apps/base-venom-mysql/app.js +++ b/starters/apps/base-venom-mysql/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const VenomProvider = require('@bot-whatsapp/provider/venom') @@ -30,15 +25,9 @@ const MYSQL_DB_NAME = 'bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -74,11 +63,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-wweb-json/app.js b/starters/apps/base-wweb-json/app.js index 729ac2a..77ca714 100644 --- a/starters/apps/base-wweb-json/app.js +++ b/starters/apps/base-wweb-json/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') @@ -21,15 +16,9 @@ const JsonFileAdapter = require('@bot-whatsapp/database/json') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -65,11 +54,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-wweb-memory/app.js b/starters/apps/base-wweb-memory/app.js index d6a567a..bdec9f9 100644 --- a/starters/apps/base-wweb-memory/app.js +++ b/starters/apps/base-wweb-memory/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') @@ -21,15 +16,9 @@ const MockAdapter = require('@bot-whatsapp/database/mock') * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -65,11 +54,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js index a8e8aad..361cbe8 100644 --- a/starters/apps/base-wweb-mongo/app.js +++ b/starters/apps/base-wweb-mongo/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') @@ -28,15 +23,9 @@ const MONGO_DB_NAME = 'db_bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -72,11 +61,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js index 68f7f37..97ceadc 100644 --- a/starters/apps/base-wweb-mysql/app.js +++ b/starters/apps/base-wweb-mysql/app.js @@ -1,9 +1,4 @@ -const { - createBot, - createProvider, - createFlow, - addKeyword, -} = require('@bot-whatsapp/bot') +const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot') const QRPortalWeb = require('@bot-whatsapp/portal') const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') @@ -30,15 +25,9 @@ const MYSQL_DB_NAME = 'bot' * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. */ -const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer([ - '📄 Aquí tenemos el flujo secundario', -]) +const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario']) -const flowDocs = addKeyword([ - 'doc', - 'documentacion', - 'documentación', -]).addAnswer( +const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer( [ '📄 Aquí encontras las documentación recuerda que puedes mejorarla', 'https://bot-whatsapp.netlify.app/', @@ -74,11 +63,7 @@ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer( ) const flowDiscord = addKeyword(['discord']).addAnswer( - [ - '🤪 Únete al discord', - 'https://link.codigoencasa.com/DISCORD', - '\n*2* Para siguiente paso.', - ], + ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'], null, null, [flowSecundario] diff --git a/yarn.lock b/yarn.lock index 9ab59a0..fb2e259 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,429 +12,415 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/ie11-detection@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/ie11-detection@npm:2.0.2" +"@aws-crypto/ie11-detection@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/ie11-detection@npm:3.0.0" dependencies: tslib: ^1.11.1 - checksum: 713293deea8eefd3ab43dc05e62228571d27754e7293f8ec2fd8a0c693fbbfc55213e6599387776e3cdbc951965dc62e24e92b9c4a853e4a50d00ae6a9f6b2bd + checksum: 299b2ddd46eddac1f2d54d91386ceb37af81aef8a800669281c73d634ed17fd855dcfb8b3157f2879344b93a2666a6d602550eb84b71e4d7868100ad6da8f803 languageName: node linkType: hard -"@aws-crypto/sha256-browser@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-browser@npm:2.0.0" +"@aws-crypto/sha256-browser@npm:3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/sha256-browser@npm:3.0.0" dependencies: - "@aws-crypto/ie11-detection": ^2.0.0 - "@aws-crypto/sha256-js": ^2.0.0 - "@aws-crypto/supports-web-crypto": ^2.0.0 - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 + "@aws-crypto/ie11-detection": ^3.0.0 + "@aws-crypto/sha256-js": ^3.0.0 + "@aws-crypto/supports-web-crypto": ^3.0.0 + "@aws-crypto/util": ^3.0.0 + "@aws-sdk/types": ^3.222.0 "@aws-sdk/util-locate-window": ^3.0.0 "@aws-sdk/util-utf8-browser": ^3.0.0 tslib: ^1.11.1 - checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e + checksum: ca89456bf508db2e08060a7f656460db97ac9a15b11e39d6fa7665e2b156508a1758695bff8e82d0a00178d6ac5c36f35eb4bcfac2e48621265224ca14a19bd2 languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-js@npm:2.0.0" +"@aws-crypto/sha256-js@npm:3.0.0, @aws-crypto/sha256-js@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/sha256-js@npm:3.0.0" dependencies: - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 + "@aws-crypto/util": ^3.0.0 + "@aws-sdk/types": ^3.222.0 tslib: ^1.11.1 - checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 + checksum: 644ded32ea310237811afae873d3c7320739cb6f6cc39dced9c94801379e68e5ee2cca0c34f0384793fa9e750a7e0a5e2468f95754bd08e6fd72ab833c8fe23c languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/sha256-js@npm:2.0.2" - dependencies: - "@aws-crypto/util": ^2.0.2 - "@aws-sdk/types": ^3.110.0 - tslib: ^1.11.1 - checksum: 9125ec65a2b05fce908ac2289ba97b995a299f2d717684804211df8e8bcffd8cd9b8861582240655b88f2255c46fcee34026f75c057ffb22f44b6a76cd43f65a - languageName: node - linkType: hard - -"@aws-crypto/supports-web-crypto@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/supports-web-crypto@npm:2.0.2" +"@aws-crypto/supports-web-crypto@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/supports-web-crypto@npm:3.0.0" dependencies: tslib: ^1.11.1 - checksum: 03d04d29292dc1b76db9bc6becd05f52fa79adee0ec084f971b0767f7e73250dd0422bea57636015f8c27f38aefcd1d9c58800a4749cf35339296c8d670f3ccb + checksum: 35479a1558db9e9a521df6877a99f95670e972c602f2a0349303477e5d638a5baf569fb037c853710e382086e6fd77e8ed58d3fb9b49f6e1186a9d26ce7be006 languageName: node linkType: hard -"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.2": - version: 2.0.2 - resolution: "@aws-crypto/util@npm:2.0.2" +"@aws-crypto/util@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/util@npm:3.0.0" dependencies: - "@aws-sdk/types": ^3.110.0 + "@aws-sdk/types": ^3.222.0 "@aws-sdk/util-utf8-browser": ^3.0.0 tslib: ^1.11.1 - checksum: 13cb33a39005b09c062398d361043c2224bc8ba42b1432bad52e15bc4bf9ffad4facdddc394b3cc71b3fb8d86a7ec325fd1afa107b5fde0dab84a7e32d311d7f + checksum: d29d5545048721aae3d60b236708535059733019a105f8a64b4e4a8eab7cf8dde1546dc56bff7de20d36140a4d1f0f4693e639c5732a7059273a7b1e56354776 languageName: node linkType: hard -"@aws-sdk/abort-controller@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/abort-controller@npm:3.226.0" +"@aws-sdk/abort-controller@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/abort-controller@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 44045b60c7697ed76bcbfbe3f7f4bb019f139d2337e77d8ce79d98bca17c1245e2d33934bba04fe8e2d462b729124ba4414a589ed9275c07f2bfefd3a0850184 + checksum: d14202fdeb372c9b7308d601a6d5b7efc5ad5524e9b14545c556c9c0aae1a0917fb3c3ae86e7f2a968c6d1ff796be24a9338492b73ea64708277436ce4165982 languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.245.0" +"@aws-sdk/client-cognito-identity@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.266.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.245.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.266.0 + "@aws-sdk/config-resolver": 3.266.0 + "@aws-sdk/credential-provider-node": 3.266.0 + "@aws-sdk/fetch-http-handler": 3.266.0 + "@aws-sdk/hash-node": 3.266.0 + "@aws-sdk/invalid-dependency": 3.266.0 + "@aws-sdk/middleware-content-length": 3.266.0 + "@aws-sdk/middleware-endpoint": 3.266.0 + "@aws-sdk/middleware-host-header": 3.266.0 + "@aws-sdk/middleware-logger": 3.266.0 + "@aws-sdk/middleware-recursion-detection": 3.266.0 + "@aws-sdk/middleware-retry": 3.266.0 + "@aws-sdk/middleware-serde": 3.266.0 + "@aws-sdk/middleware-signing": 3.266.0 + "@aws-sdk/middleware-stack": 3.266.0 + "@aws-sdk/middleware-user-agent": 3.266.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/node-http-handler": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/smithy-client": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.266.0 + "@aws-sdk/util-defaults-mode-node": 3.266.0 + "@aws-sdk/util-endpoints": 3.266.0 + "@aws-sdk/util-retry": 3.266.0 + "@aws-sdk/util-user-agent-browser": 3.266.0 + "@aws-sdk/util-user-agent-node": 3.266.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 4142ba1b7a3c11f785d5da527a743d6a9352f6f97ae983e6f3ee0abf5a1cd755c2196981cbc2f6052686bf820a68f062117c682a5126e55acaacebc5cab862e6 + checksum: 69caa7eebc2107aa16fcb1aaa1de7767b31901f07f2cf7b875b9a8b80612d29ccd04d05b58af194d1e405ac917b0f7280e43f10c3fb497119b2315043958706d languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.245.0" +"@aws-sdk/client-sso-oidc@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.266.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.266.0 + "@aws-sdk/fetch-http-handler": 3.266.0 + "@aws-sdk/hash-node": 3.266.0 + "@aws-sdk/invalid-dependency": 3.266.0 + "@aws-sdk/middleware-content-length": 3.266.0 + "@aws-sdk/middleware-endpoint": 3.266.0 + "@aws-sdk/middleware-host-header": 3.266.0 + "@aws-sdk/middleware-logger": 3.266.0 + "@aws-sdk/middleware-recursion-detection": 3.266.0 + "@aws-sdk/middleware-retry": 3.266.0 + "@aws-sdk/middleware-serde": 3.266.0 + "@aws-sdk/middleware-stack": 3.266.0 + "@aws-sdk/middleware-user-agent": 3.266.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/node-http-handler": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/smithy-client": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.266.0 + "@aws-sdk/util-defaults-mode-node": 3.266.0 + "@aws-sdk/util-endpoints": 3.266.0 + "@aws-sdk/util-retry": 3.266.0 + "@aws-sdk/util-user-agent-browser": 3.266.0 + "@aws-sdk/util-user-agent-node": 3.266.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 6f72ee0df276f8c4019be4d9b3fa1b2cbab7744b13f434f07c9314303290334296be1148276266715ef3cfb37e83ced448fd9d6bb34d09bd21ed41d0a83598dc + checksum: c2eaf96bed90b9f4dc04dbb02ecdbe1133dc0a4362db39f06fa4b3cb2281dfbeb1e70064e0ce8a3736425d35f4db9dec92d87ca0e39421c6c8bca3b166bc8e40 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sso@npm:3.245.0" +"@aws-sdk/client-sso@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/client-sso@npm:3.266.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.266.0 + "@aws-sdk/fetch-http-handler": 3.266.0 + "@aws-sdk/hash-node": 3.266.0 + "@aws-sdk/invalid-dependency": 3.266.0 + "@aws-sdk/middleware-content-length": 3.266.0 + "@aws-sdk/middleware-endpoint": 3.266.0 + "@aws-sdk/middleware-host-header": 3.266.0 + "@aws-sdk/middleware-logger": 3.266.0 + "@aws-sdk/middleware-recursion-detection": 3.266.0 + "@aws-sdk/middleware-retry": 3.266.0 + "@aws-sdk/middleware-serde": 3.266.0 + "@aws-sdk/middleware-stack": 3.266.0 + "@aws-sdk/middleware-user-agent": 3.266.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/node-http-handler": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/smithy-client": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.266.0 + "@aws-sdk/util-defaults-mode-node": 3.266.0 + "@aws-sdk/util-endpoints": 3.266.0 + "@aws-sdk/util-retry": 3.266.0 + "@aws-sdk/util-user-agent-browser": 3.266.0 + "@aws-sdk/util-user-agent-node": 3.266.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: e7dd235ee13465438a181c5de2f5bfc1acdaa12a07db74a3255dbb580004c33544d6773252b164dda2e2357ea83f3985afd060dfe42d6064732d36750764eda1 + checksum: 94cdfbcaaa55782fc430c2488e8d31da0cd0dcf38ac2dbedf44910cba8b8f0beb3651764d62c4eea248c07acf70d5aa6118493743b87cd9a426c147756704ad7 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/client-sts@npm:3.245.0" +"@aws-sdk/client-sts@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/client-sts@npm:3.266.0" dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.235.0 - "@aws-sdk/middleware-sdk-sts": 3.226.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.234.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.266.0 + "@aws-sdk/credential-provider-node": 3.266.0 + "@aws-sdk/fetch-http-handler": 3.266.0 + "@aws-sdk/hash-node": 3.266.0 + "@aws-sdk/invalid-dependency": 3.266.0 + "@aws-sdk/middleware-content-length": 3.266.0 + "@aws-sdk/middleware-endpoint": 3.266.0 + "@aws-sdk/middleware-host-header": 3.266.0 + "@aws-sdk/middleware-logger": 3.266.0 + "@aws-sdk/middleware-recursion-detection": 3.266.0 + "@aws-sdk/middleware-retry": 3.266.0 + "@aws-sdk/middleware-sdk-sts": 3.266.0 + "@aws-sdk/middleware-serde": 3.266.0 + "@aws-sdk/middleware-signing": 3.266.0 + "@aws-sdk/middleware-stack": 3.266.0 + "@aws-sdk/middleware-user-agent": 3.266.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/node-http-handler": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/smithy-client": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 "@aws-sdk/util-base64": 3.208.0 "@aws-sdk/util-body-length-browser": 3.188.0 "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.234.0 - "@aws-sdk/util-defaults-mode-node": 3.234.0 - "@aws-sdk/util-endpoints": 3.245.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.266.0 + "@aws-sdk/util-defaults-mode-node": 3.266.0 + "@aws-sdk/util-endpoints": 3.266.0 + "@aws-sdk/util-retry": 3.266.0 + "@aws-sdk/util-user-agent-browser": 3.266.0 + "@aws-sdk/util-user-agent-node": 3.266.0 + "@aws-sdk/util-utf8": 3.254.0 fast-xml-parser: 4.0.11 tslib: ^2.3.1 - checksum: 3b052be86063978b47b2f4459062ea23a6d94c81951a97428a5445ff062d642a3460114cbf1b20d3925db0667d893db40cbe30b1b8b58a4d749c75d117aab460 + checksum: 029e037f8b90b05a6559e0e2a6315c049fce81eaad32a2b277550761e6021a5bcc121f86ce4f06f1ff1fea9570dfc6adbc5331f52e4e5a6759a814d89a1b3156 languageName: node linkType: hard -"@aws-sdk/config-resolver@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/config-resolver@npm:3.234.0" +"@aws-sdk/config-resolver@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/config-resolver@npm:3.266.0" dependencies: - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/signature-v4": 3.266.0 + "@aws-sdk/types": 3.266.0 "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.266.0 tslib: ^2.3.1 - checksum: a72bdb1748d7f04c95436ab1e8650b51c1bfd2745114e52f7d05339c61bb6a859306be0c6cc0034ecf4f3b29a2d68b48fe362762a58c90ec55a3444b93b5700d + checksum: 7b726573ca7a24e8bab29fb02308f22b4c2492756417ef8ab5bf818576b25d0e19c2d8dc243542ddbac606d37d7d9aeaa17725fb95b4c78e68df4f4aab899dc3 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.245.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.266.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-cognito-identity": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: af9ce2a19426056139c380fa2a016d5abb42117e262dc5c3f4741eb1f2d15b394e9b178d6efb2e32f59cd723c6090da769975505368fbbe79b8eb9258c6961a8 + checksum: 38f16e2cf2b3802c6863ee128870182d0d08268d8d0371b437c93dd231086e76ada47d1b4190946460d60b76cc7f288fec393c7b1bf91830e0cd91cbd4f893c4 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.226.0" +"@aws-sdk/credential-provider-env@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 4f764d8d07ba1f65503ed2440ebfbccf98c141b11a087a582ea606d06bc764c91641b4ec505ab0d4750025a01128b041d9514a3ec868c385f038b5373b513293 + checksum: 2bc63db989b4c95098998b7a609ab2bd335aaa72b8b2a527c8a842c3ae2f2f3cbd50e043692adc96fbb3057688d9dc509ea0785afd7707d0863f4797d8e4b148 languageName: node linkType: hard -"@aws-sdk/credential-provider-imds@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-imds@npm:3.226.0" +"@aws-sdk/credential-provider-imds@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-imds@npm:3.266.0" dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 tslib: ^2.3.1 - checksum: c0480ca127e6715ebf98ff41a8ea47d139166b8632582782df46fc9e568ff579cfc0768af80082ae6eea3eb6750edb41c4a4c39281b777c578fdb7f8ef8b641c + checksum: eb155398aecdf3a48ff6e84867d488b492822113c05e43f86e3cea2cb1dd01f5fa605325ff2810712b5b6a98ee5c21589ee7412a154deceea89a31e6601c2e36 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.245.0" +"@aws-sdk/credential-provider-ini@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.266.0" dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/credential-provider-env": 3.266.0 + "@aws-sdk/credential-provider-imds": 3.266.0 + "@aws-sdk/credential-provider-process": 3.266.0 + "@aws-sdk/credential-provider-sso": 3.266.0 + "@aws-sdk/credential-provider-web-identity": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 35fcdb231efb573c60c25e67a27f64ca892ebab7931e715406826a4d3f87caecd525945f45ecaf7fb7e09a87a744678aba60249c74681160c9fb9d66c0490bf5 + checksum: 0ee2652b47b2ae8621d38dd1d6afff3b8771591682777b85f7e1d7ac7b3c8f600e23ee4d27bec83b7ec2159abe9203604993acbabb27c29d8b539264de8ecde9 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.245.0" +"@aws-sdk/credential-provider-node@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.266.0" dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.245.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/credential-provider-env": 3.266.0 + "@aws-sdk/credential-provider-imds": 3.266.0 + "@aws-sdk/credential-provider-ini": 3.266.0 + "@aws-sdk/credential-provider-process": 3.266.0 + "@aws-sdk/credential-provider-sso": 3.266.0 + "@aws-sdk/credential-provider-web-identity": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: a9bd115016fc7ce7f2cb50c5cafcd759f861362bb9dd9629e4ea0056519d5b26ad256f6d1d84ef3327c75bef442de8c0e4b54b215870512b43c92866ed0f1403 + checksum: 73e4b639bec60cc08dba0bc00f5cae9b86229a3e8c919d85043478518ab820a12852235c8e18e6852f68c8bd3c47a20ef76d90332500d76852e7cac5fcfb4daa languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.226.0" +"@aws-sdk/credential-provider-process@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 3ad24e2784ae7929f8932a187e0a5a06fc62d31ccb393fd2d9fa86d75c1109809c96b69edb17c3d7bd7d087b97662818d5320742a4cd70add06999a3b2ec3a53 + checksum: 742c75d7b019364ec17d787094e4b3a4acde4ce3d0136c75c7e002a19f9c73ea80f844dc4b1ee2305048d2d08795715dd02e7c6afb42b9679ce2802bd1e708cf languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.245.0" +"@aws-sdk/credential-provider-sso@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.266.0" dependencies: - "@aws-sdk/client-sso": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.245.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-sso": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/token-providers": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 95358504631d5451520d5090e7fb337b40dfc12ab30dd84d979165d881f2762798828003b13adcb35921223bf3a498b0e70b7a94ebc14e8b16a4f0adacded8f1 + checksum: a125237b513e84d8d0419d9552801a1aa561b6e3ad7748561e937bf8bf10c5d4ce5b37bab5e453198a503dafdc5fcef49bfa600cb10ff37f227ed8856e41a812 languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.226.0" +"@aws-sdk/credential-provider-web-identity@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: f536d9af3d900eee31b6e7966ff827713fd5f661ae477f0911eebdac3e544eb5a732df0be0c9162058943e0aeb89333c97a1758236e8f9760c5e87280fd926fa + checksum: ff1ef92aa5d2d641132079787479e445aaf16b99231067b5a39c8bd7fb2a95c7ab5004b7199749508750e0ac8626d8ffc99454c44130800f266787a9d053e730 languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.186.0": - version: 3.245.0 - resolution: "@aws-sdk/credential-providers@npm:3.245.0" + version: 3.266.0 + resolution: "@aws-sdk/credential-providers@npm:3.266.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.245.0 - "@aws-sdk/client-sso": 3.245.0 - "@aws-sdk/client-sts": 3.245.0 - "@aws-sdk/credential-provider-cognito-identity": 3.245.0 - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.245.0 - "@aws-sdk/credential-provider-node": 3.245.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.245.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-cognito-identity": 3.266.0 + "@aws-sdk/client-sso": 3.266.0 + "@aws-sdk/client-sts": 3.266.0 + "@aws-sdk/credential-provider-cognito-identity": 3.266.0 + "@aws-sdk/credential-provider-env": 3.266.0 + "@aws-sdk/credential-provider-imds": 3.266.0 + "@aws-sdk/credential-provider-ini": 3.266.0 + "@aws-sdk/credential-provider-node": 3.266.0 + "@aws-sdk/credential-provider-process": 3.266.0 + "@aws-sdk/credential-provider-sso": 3.266.0 + "@aws-sdk/credential-provider-web-identity": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: a6923907ce97232cf87565e5fc0dac872061d2f065f530f7c91d1693472dd26667a91a662283994b3886a84b557f45e8627d0c847a88ffa0fdf2458a0180bd43 + checksum: bc5142a992ed14371fc630fb89bd53033fe4648e4eaedf14100b6da5536988943cf5120185533019a23178681d0f6e9dd7ae4288e77442d3031de232c45fca49 languageName: node linkType: hard -"@aws-sdk/fetch-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/fetch-http-handler@npm:3.226.0" +"@aws-sdk/fetch-http-handler@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/fetch-http-handler@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/querystring-builder": 3.266.0 + "@aws-sdk/types": 3.266.0 "@aws-sdk/util-base64": 3.208.0 tslib: ^2.3.1 - checksum: f12ed12088aee05e4c6a742356017f55f26fec740c12c4d89c4eb283203171d032d99c9fa45fb28cc7798b35410cc55736df1c78d8eea014667e489f1b276f3a + checksum: cf4ce1ed565890101e4bef15a380c185887e04d16ba34c60dde53fcd98d70f7c8102045a4ab0ca11cb6dfb841425dd9765737e2c11181fa3664e21cab44933bc languageName: node linkType: hard -"@aws-sdk/hash-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/hash-node@npm:3.226.0" +"@aws-sdk/hash-node@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/hash-node@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 "@aws-sdk/util-buffer-from": 3.208.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: cbe466e2e3efdbb3aefe7772da734f6d00e0d1572c60e497b09460e055093b155c5e94bd3718135238bc05e58cb49abcdcd0fe5e34458bd3563b89d3d4a42251 + checksum: ef9387bef50767e4e9ff2641d332c68d2f70ab439eb5225363b0753b6c11fed7ce04de52bbc4e40a9d34319904212fd0444722ada1ad5f304b9c1f5c41b0c049 languageName: node linkType: hard -"@aws-sdk/invalid-dependency@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/invalid-dependency@npm:3.226.0" +"@aws-sdk/invalid-dependency@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/invalid-dependency@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 4a6168b50675881442c9bc87e8f27e8317ece9251fbfd3d812d32edcd83f687328e6de518fa9f11b1bc984ad3a3454cd43b59c0362f04c03687ce5250ac5d720 + checksum: b898eaf0bd8c87a9a32032dedd714d5892dc252aefd0ae65598842745db6c176a55f66e819c7686b101da9a78901b4e3275ebecaf464d849a03db50361e59399 languageName: node linkType: hard @@ -447,276 +433,277 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-content-length@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-content-length@npm:3.226.0" +"@aws-sdk/middleware-content-length@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-content-length@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 538b0222e2c8be61dc3090dfefe4b9ec1f0cbee155125edf5b654dbe36ab0b2d6befe3da6008194dc26bbf94d53b7e01edca683720061c4b43c6beb9dc278002 + checksum: b8881f3fd2964304380aae1e737e2f80ec0f0bf7ab20ebe081817cd5bbedde60d0aefd95c7112f0d36b3eeb46d6b8b15e091bc0aab66dd77a19a9dd0cfb29c8c languageName: node linkType: hard -"@aws-sdk/middleware-endpoint@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-endpoint@npm:3.226.0" +"@aws-sdk/middleware-endpoint@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-endpoint@npm:3.266.0" dependencies: - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/middleware-serde": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/signature-v4": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/url-parser": 3.266.0 "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.266.0 tslib: ^2.3.1 - checksum: 22df6fd90e3b7d3edd58f427ebfbb229181ef190b2d795e0b400f70f95a573dc59666a08b26613db6bb1b764b13ba7ddec15fced2641e9678fad5500fca289be + checksum: c3a0e68c2f985fc6a91621e3c1eb9c2d7682ad3fb0e00ed28ea9b45d6698d3e5a5fd2ebbff47a1cb32c720a8708bb2f64f28ae20a2ca73c1b79f8e0f3d38b6a7 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.226.0" +"@aws-sdk/middleware-host-header@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 35eb7d9f5eb2e45c58bb5887a12dc80f22e8fc630d53d356064c62ce3354c9054717697168ab3818f14c7baae3246480aa7251e6fcaf5c7104498df5dca9bbd6 + checksum: eec69d03e4495fd706650176d93615548cff4b34a52eb47efb1cbdd5905efb4fccced4301640cc3352268fe2129713a49449a075a50d76e9d2b128482f37c304 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-logger@npm:3.226.0" +"@aws-sdk/middleware-logger@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-logger@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 7b7c2eb336f376f6e8c50ebd0fd9b6e9a749e21d6f5c433683a4e98edb311bb76fafc0bb0abfd75f61001466879be7d68aefb3958a332e540160a93ee9371b44 + checksum: b5e9ead43cef932157675b7cfbfdf78699ad4f59ce6cd3e5879f1cdf3cbd6b87530261b262c45a54d7aedf602ea821adc0a70b377de2b4c13caf439741f387d0 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.226.0" +"@aws-sdk/middleware-recursion-detection@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 194161d76a815df623c6699f7a7016268b4a01276baa3527682504001a4e2e948e2dd389d2065f62fe57509f20b9680ea907bfa52b861122335d276c9ab4ed61 + checksum: f7d1ac8bb97aa284e84606e262957cff994e4a38771353368dc35284378bcf516e9e313d679a5f648508c465e9f6766e691361d553000f3b46aae05edc330722 languageName: node linkType: hard -"@aws-sdk/middleware-retry@npm:3.235.0": - version: 3.235.0 - resolution: "@aws-sdk/middleware-retry@npm:3.235.0" +"@aws-sdk/middleware-retry@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-retry@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/service-error-classification": 3.229.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/service-error-classification": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/util-middleware": 3.266.0 + "@aws-sdk/util-retry": 3.266.0 tslib: ^2.3.1 uuid: ^8.3.2 - checksum: 397226fd10d8b0587a35ccab92160223f10740beb01ccac75dda0e30336b83c091c9aa51b9132a56ff6cccd6353b9e3c6ecf21ae18f20f8127e7e9e209e59a2a + checksum: 47b2d6d070a5e61fc64985194f594ee402c0158ea92e24313c852aed137fc40e212eb2f082a8cee75f614f0621a4fbb41bcbd1ccb9e786962e33dd23fede5dc7 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sts@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.226.0" +"@aws-sdk/middleware-sdk-sts@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.266.0" dependencies: - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/middleware-signing": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/signature-v4": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 0b6e11889c9f1b5264eb38288dea5bd2987fa28338651939d005eaa0524f9cd41c570c545b34b08d25d858397b3f14a2b6a21238a8c88fc08719ed50b835cb15 + checksum: bca44114e0a67f47a3cd0d21c316b9846cfbe9d7c6728733a73963829d008d53d1a71cc57665b8adc7ae01e0dc710c601d0cc45b6197a46643036be83ecc3abc languageName: node linkType: hard -"@aws-sdk/middleware-serde@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-serde@npm:3.226.0" +"@aws-sdk/middleware-serde@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-serde@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: e8315079cc3ed4527d1434eb28becfaf951338d2ced21116753b52d3330eabbfd13f24382b3378bcc2c09ee0653a65e0d8353e9e32f512b69929908272b83fa2 + checksum: 2cf05d20361e38983ad4e2d2de775b8e56532e7ca7a2632b1a450a4d635a8ec5a92245c9c8abc09d34cc6556501338cd5d4155370c9ba02ea55cc5d105153117 languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-signing@npm:3.226.0" +"@aws-sdk/middleware-signing@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-signing@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/signature-v4": 3.266.0 + "@aws-sdk/types": 3.266.0 + "@aws-sdk/util-middleware": 3.266.0 tslib: ^2.3.1 - checksum: 4f66483d359e21d1f7e56a1900f7271a561801e1ee4380deaa006ce750ce73245a5fe554d4c1ab60cf9ca127c41f35c53c0817c375df6f8f068c9ed7f9572444 + checksum: 92395792c9304c472bea24194aa989a1db641308ee13c819f6ca343b75338d5498821c2e16037258bba8374fe3dfdc5273a584d07c7071e31d52a4d16d2c1e52 languageName: node linkType: hard -"@aws-sdk/middleware-stack@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-stack@npm:3.226.0" +"@aws-sdk/middleware-stack@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-stack@npm:3.266.0" dependencies: tslib: ^2.3.1 - checksum: fd284bc28ee6ee576e3fe9dd3c2c9d64b8c95fa1bb213b5e41e23a57bbc2693652ee51028414eb278918235e591ef729db572b160bff963c6f74e7d6c15d33d0 + checksum: f386f220abea8a80756c19562912b555a6223f8e96fc97aebce851e920c05055cae77778272a88638fdd93ceab2680f9ab47c556e9480a3a538a33c8abcc4e66 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.226.0" +"@aws-sdk/middleware-user-agent@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.266.0" dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 8d3724aecd7b7f9f1a5b081263cb85864c969144105819f371a9675ee4f680c11e3b5ecbe181f57d2bfdde9c98b90267bd4afe0fc0822863041e0df52671f043 + checksum: aae2e178ee5bd881b9f6dbe0830fec94b43ce0f1c94251f8f4b99a64a85e7feeaace9b0f26e4c7616f4ecfd6dee0452d9168ee4af5c3a61fa87b60110fc521df languageName: node linkType: hard -"@aws-sdk/node-config-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-config-provider@npm:3.226.0" +"@aws-sdk/node-config-provider@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/node-config-provider@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 0e7c4c7ea20c5361c71f1ab0b99c19964f76c187659714cd6e87e1cc264d0ab29965d33618d9d47d373e3b108558cd6628fb36a00cdac614849e5044c6776213 + checksum: 370e76590ec70471c90cb0b2f2cf44f189a2c5515de0ff1952b8c54f8a17f2fc9899f38ff7016bf02310bad4b5aa695920426792d83e900df8fc637ff617bae2 languageName: node linkType: hard -"@aws-sdk/node-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-http-handler@npm:3.226.0" +"@aws-sdk/node-http-handler@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/node-http-handler@npm:3.266.0" dependencies: - "@aws-sdk/abort-controller": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/abort-controller": 3.266.0 + "@aws-sdk/protocol-http": 3.266.0 + "@aws-sdk/querystring-builder": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: e4080ec9f859be4b191416084fef8d2687f24d973169b8fef592a867c23c14fad74f4bea20f451b98fedfee6a265f2c89b0bee4fe7aabdb1fd05a7475bf12b91 + checksum: 40efb57b6e9ecd7d098a8ea48d5b1bc8dab8f0696c18b6477743ed3e48ac0ec5ae4266d2928955b20ed0ffe08f7d5b1f952de3373cf31e8585a6c440a6715810 languageName: node linkType: hard -"@aws-sdk/property-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/property-provider@npm:3.226.0" +"@aws-sdk/property-provider@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/property-provider@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: d63c53313bb2797ab2ecfa2cff827b63417c0cc31abe8c666cd018a1d70da877b61ef1fb21e504d6408e72b20544756089938b44869b003ba3c313b39bca6d45 + checksum: 6e709d928867aecb067c959ba62ce87074e54d330806280705f8e8ff226508974d999845934e67c45b62535b212acf038fb05b9ddac2d0beb70a2aa2f35138a3 languageName: node linkType: hard -"@aws-sdk/protocol-http@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/protocol-http@npm:3.226.0" +"@aws-sdk/protocol-http@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/protocol-http@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 92cf35e1026a812c6c7ce8309fd685162ab7796237fc063e71dd9b292abf25902d6c0e02e93219101e1f506ef68a98f02eed6a61b18b8acd450ecb4bf8c1b467 + checksum: 538bf9f57c67b6677262c14ee3768585436e2421c73d241bff53ebc86a22680320f77f7916c3e02fb9c95844f83b787a749529fbd2cf44ada2f1d3edfeda7a17 languageName: node linkType: hard -"@aws-sdk/querystring-builder@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-builder@npm:3.226.0" +"@aws-sdk/querystring-builder@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/querystring-builder@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 "@aws-sdk/util-uri-escape": 3.201.0 tslib: ^2.3.1 - checksum: 0014b8876d402787c56f606f66e79eb48ff100b01d7a657bb0766a7723ca184da0dd2aed405837e7e6c5781fd868d7a903eef25884b2d1881d30e2454f5c2bfc + checksum: 596c3329707d866a8191b953aea1f91fd70229dfd88bb2cc2c56b1f86a7a571fbf2aadad1267e3a7de05183cda98d73114320b6cfdb199b41c895f91ad12c02e languageName: node linkType: hard -"@aws-sdk/querystring-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-parser@npm:3.226.0" +"@aws-sdk/querystring-parser@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/querystring-parser@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 13b23b4dff859d778a05f6874e318d95d6fbd79c62a06bb6f6dff8496ac2eaf86f60b17460c3595af854c2e316482c9fcc098655d475926039f7dff4a6f1ecf1 + checksum: 638ec186aa4722d91be08f8219c2dbf2b2a2257dfc16f64ca9cb1f29c366538b90914179e77c06f49d56bc89f2bd6aab3d4bb077a22b2c1ca387e57ae5183bee languageName: node linkType: hard -"@aws-sdk/service-error-classification@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/service-error-classification@npm:3.229.0" - checksum: 7877963d62f4d43ce5116f0ddfd1b27cffab2b0e74a4ceb4006b1f85b17dd50eb9ae2f227cabf935261e42b7615d0a9de190dd684380c30e03dee6e9f7e12587 +"@aws-sdk/service-error-classification@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/service-error-classification@npm:3.266.0" + checksum: c6f94acbfbe675749a79bb0537a0ab4333fbe19ea2833c174d6c7feef121b131d900f8158e94c59d3d12184de1b624ff5df9f6b4f785dcf851e30010ce7d987f languageName: node linkType: hard -"@aws-sdk/shared-ini-file-loader@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/shared-ini-file-loader@npm:3.226.0" +"@aws-sdk/shared-ini-file-loader@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/shared-ini-file-loader@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 7b43e4d70f33b1098c9582a20dd5cf11c0e2efe5e7f4f854ee1fdfe2f804a7171deeb76f167c46ef7365bb584e29c816d58b6d8f6c9ac9debb124cccf59ebf59 + checksum: ac294f5b9f8ec55938f233e626e8c5adf7fa7e331d744a0c2c1267b669e7f6d3abeb22f59b4e3456ce32bdecee0b3a53983730de718750eec1fb4e589fdb1535 languageName: node linkType: hard -"@aws-sdk/signature-v4@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/signature-v4@npm:3.226.0" +"@aws-sdk/signature-v4@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/signature-v4@npm:3.266.0" dependencies: "@aws-sdk/is-array-buffer": 3.201.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 "@aws-sdk/util-hex-encoding": 3.201.0 - "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-middleware": 3.266.0 "@aws-sdk/util-uri-escape": 3.201.0 + "@aws-sdk/util-utf8": 3.254.0 tslib: ^2.3.1 - checksum: 8bc6ea1ad467d59f1ff6c5b814277e16d0d5b2d1455f21969b4575f572fdc013284e356e0f24436c89c8b99a51d0e384b01daa2bace1c3d69e28f35a23ef9802 + checksum: 9a7384c0dcaa72f7281813ac16bacdda3cd6a78ce0f5e0dfbe024f8c94f3a81157ec76566755323de341374e2c50dac252aec86c631021db7ca5e7a6e64036ed languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/smithy-client@npm:3.234.0" +"@aws-sdk/smithy-client@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/smithy-client@npm:3.266.0" dependencies: - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/middleware-stack": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 7b8299f81fde410b8f597662d4174a29740cb2791a2377e5009a73c0e7531fb440712ab25c837a0351dbceac4763cc8fadc6d4362727cf3ae749b25515da4ea1 + checksum: 6a5a8a180642d9d3ecef53f315cd6f6cd6f9bd765765c546d53e3372125fa8b6083265669e8aa0981be7a8c8889bfad8d00bda6d01d2a1d5a0a9227739912b0a languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/token-providers@npm:3.245.0" +"@aws-sdk/token-providers@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/token-providers@npm:3.266.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.245.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/client-sso-oidc": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/shared-ini-file-loader": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 900a73b999c50eb35b3eda594210448329f5068b57a2d8d57ee8e4f3d960116ece36952ca1fbe43b5e8e9119927de916033f73ff969bae3a8394d4ef98f1d0c7 + checksum: c679205b604049b0a6be5ff72e8b4308bd94294811aef12b653254daf9ab7890f2c1afbffb9399b977463733f1bf9c695d014c88b060a384f37f707f03be6f09 languageName: node linkType: hard -"@aws-sdk/types@npm:3.226.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.110.0": - version: 3.226.0 - resolution: "@aws-sdk/types@npm:3.226.0" +"@aws-sdk/types@npm:3.266.0, @aws-sdk/types@npm:^3.222.0": + version: 3.266.0 + resolution: "@aws-sdk/types@npm:3.266.0" dependencies: tslib: ^2.3.1 - checksum: 0041a8c0924ec7ba4ff787ae329a80b3edb9ace43e38fe3656a1862ae5324427fb09836275c0962cbc80e3c34a6ee512a108a5c4e7997f29664e3e8930cffd80 + checksum: 811196d787abb277333d3e56ebff08871452152d1e3fed0b827105bb6c0739edb6b09d80ffb023008c7215f335daecd2f89f570f190e7d17c50a8abf417c81bf languageName: node linkType: hard -"@aws-sdk/url-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/url-parser@npm:3.226.0" +"@aws-sdk/url-parser@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/url-parser@npm:3.266.0" dependencies: - "@aws-sdk/querystring-parser": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/querystring-parser": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: cb8d4b13c0de7336728a7a60a246108c0ecd46e5e493cb1006f5ab58c5dbae0ac36a791536786b1facc90f58a8d6decca9f4fda2cba19667ba5a9f5f4fcadb63 + checksum: 6c1dbf62ae21c6836561a9ba34707e2b6817d264c6e7e645fb84b5ff8af7f85c7f7c0005bc4d20cbc3c32561d2c52f04fb15d04058a72c49870298fd7cd8a48c languageName: node linkType: hard @@ -767,39 +754,39 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.234.0" +"@aws-sdk/util-defaults-mode-browser@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.266.0" dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: 79a381a632f867477dc7f948243c8ba82932d3f10325c76a5f2cf96412560648d149ba43ee31794bc45d81158a8c361d890b291880fc0c05f9bafc99cded5ef4 + checksum: d12ee57fef9303aedd7347c91fac93ba6ff34c98979c1f7a557a14a4b20a9cb2e7e3b318072f67053080c21b70b72fb6a0e7c60fd54464803bf31af597ce6c97 languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-node@npm:3.234.0": - version: 3.234.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.234.0" +"@aws-sdk/util-defaults-mode-node@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.266.0" dependencies: - "@aws-sdk/config-resolver": 3.234.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/config-resolver": 3.266.0 + "@aws-sdk/credential-provider-imds": 3.266.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/property-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: b70becd9e561c1622c75a452ed8c7a8b14b84eba35988159f29476db8c2b47ec72f0b7c19d1a252c725756af1fff1df4201e5e92b6136d1df9170e806dca5219 + checksum: 35e5029f7a210f85516a1ffa1d0826e360dd4a85cfb90740229b2a3ce367da434c50a0d5fdb56079a803d29edd9230e28a2d1493270cb23de63610f2c65c25bd languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.245.0": - version: 3.245.0 - resolution: "@aws-sdk/util-endpoints@npm:3.245.0" +"@aws-sdk/util-endpoints@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-endpoints@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 - checksum: 22783fb178e8901385b20b0d19b944ad41297cc19f0561ac1722e86757ca6910fd3766626a0493372f718a0726bef920a5b39cc41fdceb1012f14e833541041b + checksum: 1dae5c120c99b0fe724cdf2adb70dba51ff73044f0cea14d7fb0ca23629860be4f12ebfc85efe94576339c8c4fbcaf57ccfa14878ddebcdb9ab40db8a9fe41ab languageName: node linkType: hard @@ -821,22 +808,22 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-middleware@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-middleware@npm:3.226.0" +"@aws-sdk/util-middleware@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-middleware@npm:3.266.0" dependencies: tslib: ^2.3.1 - checksum: 51a4ba9a784943b723a2c57bbb889a4bc743f0f1219000ef73512e259069d63c3baa805aa375277c9d904da23301d0389bc0bd525b0b55274d7658fb62173e55 + checksum: 7a89ea290225d9c503be6b7fc8eafd66452080855ff0f21a82c6db4ec58de93fed48ba0fea786ecd05acac75d968acb49aaef53e1917ad40c6a29335e88b4ac9 languageName: node linkType: hard -"@aws-sdk/util-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/util-retry@npm:3.229.0" +"@aws-sdk/util-retry@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-retry@npm:3.266.0" dependencies: - "@aws-sdk/service-error-classification": 3.229.0 + "@aws-sdk/service-error-classification": 3.266.0 tslib: ^2.3.1 - checksum: e4ab435000abfa1dc21153682ce684302bd6e69d48b7d2c876ff8dfa66793a43223961a3755d05abb1f94f82765eac2b9d48e55c688a957a7f6b5d032bbc46ee + checksum: 7c7379830093a76eaea311db281bf64f44852a3824abd02c896bd57edb00d7e5bdd90cad37554c84bf1b8d44b2ed9cff35bd98f07f508b0b6ac1a83756b812ba languageName: node linkType: hard @@ -849,49 +836,49 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.226.0" +"@aws-sdk/util-user-agent-browser@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.266.0" dependencies: - "@aws-sdk/types": 3.226.0 + "@aws-sdk/types": 3.266.0 bowser: ^2.11.0 tslib: ^2.3.1 - checksum: b89b63e03636b98ccb811e713776c8ee5ce92a280edfd429e418dc69bb55b770b47d6118419be76207afe137f293fdb2e87605922714189df8ddbd4573185717 + checksum: ec845b66a6e6d072e803d3ab604e8245b744d92594f6cc3adb4120ecca06335c9f2ce77de6442189ec3f29c4b5f19f2c210888d20e435a49dab326568c997006 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.226.0" +"@aws-sdk/util-user-agent-node@npm:3.266.0": + version: 3.266.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.266.0" dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 + "@aws-sdk/node-config-provider": 3.266.0 + "@aws-sdk/types": 3.266.0 tslib: ^2.3.1 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: a3b620fa13e5e61bc874d777d451ec522f659f933b7d7f7642c10fbb12ce13dd068c2b5370fd6132cca5ddcd22243fb04b4e926a4dd8aedeb08270a9bb49ee74 + checksum: 31d206c5ccf4c345434f1535681b026c6cf8dd11cd0a91208cc3cb8532284748a52b727a2ed767f2c410486b1fd4c1402e1c47995a7b35687ce427765297fdda languageName: node linkType: hard -"@aws-sdk/util-utf8-browser@npm:3.188.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.188.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.188.0" +"@aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.259.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0" dependencies: tslib: ^2.3.1 - checksum: dacd27164aa0835888434e080b67f04510e2281560540ff73496f2d0aa73b0b7f830ec08491b35c3a51bf6214615579182aff8727e151e54a74a97a197a2ac31 + checksum: b6a1e580da1c9b62c749814182a7649a748ca4253edb4063aa521df97d25b76eae3359eb1680b86f71aac668e05cc05c514379bca39ebf4ba998ae4348412da8 languageName: node linkType: hard -"@aws-sdk/util-utf8-node@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-utf8-node@npm:3.208.0" +"@aws-sdk/util-utf8@npm:3.254.0": + version: 3.254.0 + resolution: "@aws-sdk/util-utf8@npm:3.254.0" dependencies: "@aws-sdk/util-buffer-from": 3.208.0 tslib: ^2.3.1 - checksum: 0f4c1d0d3f6eb40d92bc7163c6dcf97f90b3a8be05df46ba4f9bb7723a3e6acabf2cb0f2486411b03d22e8fcccae9e757ed02afad384ff5f44a3a659a78c5752 + checksum: e5dfe7565f2de32245a544d1d715d803025bc5522538c0206fa61377f747804d95fc2e5e25976144bb63a6857e360b4286d101e730ab5d39866c60383a47e7d5 languageName: node linkType: hard @@ -939,20 +926,20 @@ __metadata: linkType: hard "@babel/parser@npm:^7.0.0": - version: 7.20.7 - resolution: "@babel/parser@npm:7.20.7" + version: 7.20.15 + resolution: "@babel/parser@npm:7.20.15" bin: parser: ./bin/babel-parser.js - checksum: 25b5266e3bd4be837092685f6b7ef886f1308ff72659a24342eb646ae5014f61ed1771ce8fc20636c890fcae19304fc72c069564ca6075207b7fbf3f75367275 + checksum: 1d0f47ca67ff2652f1c0ff1570bed8deccbc4b53509e7cd73476af9cc7ed23480c99f1179bd6d0be01612368b92b39e206d330ad6054009d699934848a89298b languageName: node linkType: hard "@babel/runtime@npm:^7.3.4": - version: 7.20.7 - resolution: "@babel/runtime@npm:7.20.7" + version: 7.20.13 + resolution: "@babel/runtime@npm:7.20.13" dependencies: regenerator-runtime: ^0.13.11 - checksum: 4629ce5c46f06cca9cfb9b7fc00d48003335a809888e2b91ec2069a2dcfbfef738480cff32ba81e0b7c290f8918e5c22ddcf2b710001464ee84ba62c7e32a3a3 + checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb languageName: node linkType: hard @@ -975,11 +962,11 @@ __metadata: linkType: hard "@bot-whatsapp/bot@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/bot@npm:0.1.5" + version: 0.1.21 + resolution: "@bot-whatsapp/bot@npm:0.1.21" dependencies: dotenv: ^16.0.3 - checksum: 5131587aba502cd1feaf61ff2f0778aa32b1b267f1e01646c6a9b43a4948e50b770ff8dddd434977d1603e46aeddaffc577b440e4848d899863a026b92ca57eb + checksum: 36ea185ea7d60653373a6ef8f594257bcb7f14f66f07f9ceec4483c9ca2126aa4e6d4b6c28df7c558a59200b63a2b1d7c251686073e6d4d0e7d4ee66c3504381 languageName: node linkType: hard @@ -996,11 +983,11 @@ __metadata: linkType: soft "@bot-whatsapp/cli@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/cli@npm:0.1.5" + version: 0.1.21 + resolution: "@bot-whatsapp/cli@npm:0.1.21" bin: bot: bin/cli.js - checksum: 2ff67f9c6f8402b25e0b2cc72c17fb1b163e61d8baa897b564d4b388bc0dfadf0f42c2dee42d55c3f63feff1de9b65c8e46c547a3c6dd0d74e5d95bd3d18613a + checksum: 495da00960837b0581a23335ed0193e3a725599b9ed95ae66922c78106559f46fc6e047d9d2ff8abbc76a072f335ef7bd744d5a402e52c80321674b9b323e1f1 languageName: node linkType: hard @@ -1026,13 +1013,13 @@ __metadata: linkType: soft "@bot-whatsapp/database@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/database@npm:0.1.5" + version: 0.1.21 + resolution: "@bot-whatsapp/database@npm:0.1.21" dependencies: dotenv: ^16.0.3 mongodb: ^4.11.0 mysql2: ^2.3.3 - checksum: 4ddc5282c4b15d45126729fd1cf4adbd36328d71c82812f3f7c187ee6af4e8ee8c98cf7ead3bbf7fbb6631f22cdb608dad4a08b271a312b71a699bb35687da34 + checksum: 8be2e79b4d5344432d28c6cc088c36a46aa86aa2609b2c279280a45f4a2c34c53460f3752fc1abca1667b1eb979819ef29d7d9def3dd38e09b929bd828c097f2 languageName: node linkType: hard @@ -1072,14 +1059,14 @@ __metadata: linkType: soft "@bot-whatsapp/provider@npm:*": - version: 0.1.5 - resolution: "@bot-whatsapp/provider@npm:0.1.5" + version: 0.1.21 + resolution: "@bot-whatsapp/provider@npm:0.1.21" dependencies: "@bot-whatsapp/bot": "*" combine-image: ^1.0.3 qr-image: ^3.2.0 rimraf: ^3.0.2 - checksum: 87ab0ba27a4566ea882810fad1fe4be391d3a264646675e432b3dea860514bfa538f39d77e5dfa33b0daa3ed6f8540054c75f51a50c733155a9b86bbc13ac5e1 + checksum: 0e45faa755ab973820d95be964d4079d8cb9b98599e8d30c5bb774c2dc348d90820bcf03f23f92f16f34cee2e0c884c69376ac55019a805fc9b230be3e2b1b44 languageName: node linkType: hard @@ -1128,56 +1115,56 @@ __metadata: languageName: unknown linkType: soft -"@bugsnag/browser@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/browser@npm:7.18.0" +"@bugsnag/browser@npm:^7.20.0": + version: 7.20.0 + resolution: "@bugsnag/browser@npm:7.20.0" dependencies: - "@bugsnag/core": ^7.18.0 - checksum: 131f9bc8ac6d780574fa70ba8be5051efc9c75d4fbf8a32d1be7733cf07b85f81404e749776c5a76bf48526f4629b27faac0bae2b36318dfc157423e361b297a + "@bugsnag/core": ^7.19.0 + checksum: a8f1bbdde06e7b98ec918bbd1c1b4431df6d35ec15044164f8b439b55d8fb93957928a4d03f760b2c68a71eedc2a49e5b6506f5a1f994540b2bdbdbe5e68500e languageName: node linkType: hard -"@bugsnag/core@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/core@npm:7.18.0" +"@bugsnag/core@npm:^7.19.0": + version: 7.19.0 + resolution: "@bugsnag/core@npm:7.19.0" dependencies: "@bugsnag/cuid": ^3.0.0 "@bugsnag/safe-json-stringify": ^6.0.0 error-stack-parser: ^2.0.3 iserror: 0.0.2 stack-generator: ^2.0.3 - checksum: bce23771159546b481a655decb0d58406dc68ffe6249a0f41c598b00a8adc9fb26c234913aafb2872f87628a015bd2c6b78555af5c21a68901d2e83b20d4593a + checksum: 324e1aa7bd62bd478c4e8459b2f54c71b4fb20d26075363a07be039f0cc65702b5996cee2e7955d0763b6535358376d45ef385cb9e24717441e1925de6aa5753 languageName: node linkType: hard "@bugsnag/cuid@npm:^3.0.0": - version: 3.0.1 - resolution: "@bugsnag/cuid@npm:3.0.1" - checksum: ead5632c883ec0dbd5b9303c2cce34d0ed72f32d3e4ecd243274790ce36193163d79477bb52746d2557ed7681715ad3f56f2fb359c53bb60e02c35a5bddfb5af + version: 3.0.2 + resolution: "@bugsnag/cuid@npm:3.0.2" + checksum: cf85d78f0107b25bcfc4396e5c2cf7eb58a28777f07b9c6e976d529417a8284bb69ec715f13917c2b6ad3803e7bb563621b0374c31e09d4c6b3156aba9939955 languageName: node linkType: hard "@bugsnag/js@npm:^7.0.0": - version: 7.18.0 - resolution: "@bugsnag/js@npm:7.18.0" + version: 7.20.0 + resolution: "@bugsnag/js@npm:7.20.0" dependencies: - "@bugsnag/browser": ^7.18.0 - "@bugsnag/node": ^7.18.0 - checksum: 6b011dc36001cdd4c2b33e793053d323d358e9bc1ef6ba7ee866634114e1a088b5704c3d18cb35cfa2e1f613ddaa9d94f7f3b2225698feffce2dcf622dd8f14f + "@bugsnag/browser": ^7.20.0 + "@bugsnag/node": ^7.19.0 + checksum: 503e00b315b7b21d4cbc5b3b7c6faa7e3180601106a7e5773304892f368d625f4682cd137b00dfed5ecb7941e5a2dc3115b08afcc7190db03bc557de286d2890 languageName: node linkType: hard -"@bugsnag/node@npm:^7.18.0": - version: 7.18.0 - resolution: "@bugsnag/node@npm:7.18.0" +"@bugsnag/node@npm:^7.19.0": + version: 7.19.0 + resolution: "@bugsnag/node@npm:7.19.0" dependencies: - "@bugsnag/core": ^7.18.0 + "@bugsnag/core": ^7.19.0 byline: ^5.0.0 error-stack-parser: ^2.0.2 iserror: ^0.0.2 pump: ^3.0.0 stack-generator: ^2.0.3 - checksum: 678cf3dff4639a1b1ea863968ca9ed46e0af661cb53275c21d0ae9c16fb45c63455e5f9210a61f978575609aa437f80861671c43f62ba8c39167f0c11ebc7d41 + checksum: f7dc9c1cfaa35c96a428ad2cdfe4d289298329275bc3930bfc923a0e1eac3bf62f8919581a68f001d992256fa2c55321232bddcaea9a9e5482f88f19632c2ea2 languageName: node linkType: hard @@ -1230,13 +1217,13 @@ __metadata: linkType: hard "@commitlint/cli@npm:^17.3.0": - version: 17.4.1 - resolution: "@commitlint/cli@npm:17.4.1" + version: 17.4.2 + resolution: "@commitlint/cli@npm:17.4.2" dependencies: "@commitlint/format": ^17.4.0 - "@commitlint/lint": ^17.4.0 - "@commitlint/load": ^17.4.1 - "@commitlint/read": ^17.4.0 + "@commitlint/lint": ^17.4.2 + "@commitlint/load": ^17.4.2 + "@commitlint/read": ^17.4.2 "@commitlint/types": ^17.4.0 execa: ^5.0.0 lodash.isfunction: ^3.0.9 @@ -1245,16 +1232,16 @@ __metadata: yargs: ^17.0.0 bin: commitlint: cli.js - checksum: a0f3d26f06fa751be6009f76b76fee83e2394f6b528b38f375b3119be41a39c851a053e9dd93385a5274feff471bd0984e626bb23624d72e231f66125e222fd5 + checksum: a2d0ecd2c5a770b3d3be1214020ed4298f3d7685f5c065ed2f1565b02b9a1608abd00d114c8b9b17e84741cde0d977bb2c2afc1074176565b6b63e9cde0d2e25 languageName: node linkType: hard "@commitlint/config-conventional@npm:^17.3.0": - version: 17.4.0 - resolution: "@commitlint/config-conventional@npm:17.4.0" + version: 17.4.2 + resolution: "@commitlint/config-conventional@npm:17.4.2" dependencies: conventional-changelog-conventionalcommits: ^5.0.0 - checksum: bc161a330c3cc9168798a58321b86ac05f8c28c5f6b521f4f1c43ede04ff75fbc31881700691685a308a327a05ad66397f9b41463403056fc5183eae18a0e9a2 + checksum: 517dd3b3395774084503606b5c5f9acb0e92db6cd5dd237716993b9858eb9e7e10da981e2a68f99aa2f48afb4d3597b04449c9e2bfde8af2690a0b40ea40115e languageName: node linkType: hard @@ -1299,31 +1286,31 @@ __metadata: languageName: node linkType: hard -"@commitlint/is-ignored@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/is-ignored@npm:17.4.0" +"@commitlint/is-ignored@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/is-ignored@npm:17.4.2" dependencies: "@commitlint/types": ^17.4.0 semver: 7.3.8 - checksum: 94643c63c7ff8dd01ef50f6593bc553411aa8c1d3372ca38e3b0086fcac96c168f4a81db1d77d153e4a9b083788c81754a311627f6260141306fa0b6a5fabaac + checksum: 4b210d6ce0f9dd66f27d925d151c88845a2f1128b10865f5808e113f31be6ab359c58c1259664c888961e7bc1b71d3e8a2125eda8b8e4be1d32618a7772603c6 languageName: node linkType: hard -"@commitlint/lint@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/lint@npm:17.4.0" +"@commitlint/lint@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/lint@npm:17.4.2" dependencies: - "@commitlint/is-ignored": ^17.4.0 - "@commitlint/parse": ^17.4.0 - "@commitlint/rules": ^17.4.0 + "@commitlint/is-ignored": ^17.4.2 + "@commitlint/parse": ^17.4.2 + "@commitlint/rules": ^17.4.2 "@commitlint/types": ^17.4.0 - checksum: 95e256ca880457e34b710292df9fa16a8c4849a43fbc0821ddd4a1a10c6f376a12cc1e24a6b5c35c899b15e2b002d2ff845e93a722b0848257941664af1052e2 + checksum: efcb5fbee6f8cad5b619deabde598f1f1ac253cf1162eeda4de01e41ae13b7caa651d6fe5eea75d32a20fa7975bb27d13d9e0c9a422ebd158485311e6fb8c8a9 languageName: node linkType: hard -"@commitlint/load@npm:^17.4.1": - version: 17.4.1 - resolution: "@commitlint/load@npm:17.4.1" +"@commitlint/load@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/load@npm:17.4.2" dependencies: "@commitlint/config-validator": ^17.4.0 "@commitlint/execute-rule": ^17.4.0 @@ -1339,38 +1326,38 @@ __metadata: resolve-from: ^5.0.0 ts-node: ^10.8.1 typescript: ^4.6.4 - checksum: 17bc9f2e339da480740138bb1f56d6a5c36ec6d70844a605f09b5ffcbe0bb18fd3ab0ad09d40ba3cfd095f26b0b3cf78a02d7b73d5980d9e58dbdcdfaeb252a2 + checksum: 7c0498040611abbc2c9f2af03bc6360ca44ff85943dd49012b90b5a5d9308997d782b75e164ad2c39c5d522e94c93214e5cc4fd3b4122c5788c3c869ee91eae0 languageName: node linkType: hard -"@commitlint/message@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/message@npm:17.4.0" - checksum: 7fe8672f149cf276084f16d66fe38139b188aa94b664397aae8268f9f6060368b801fe8456076c076cb9e55ba469367256f7671aebeabb281e2b5ca275266ff8 +"@commitlint/message@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/message@npm:17.4.2" + checksum: 55b6cfeb57f7c9f913e18821aa4d972a6b6faa78c62741390996151f99554396f6df68ccfee86c163d24d8c27a4dbbcb50ef03c2972ab0a7a21d89daa2f9a519 languageName: node linkType: hard -"@commitlint/parse@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/parse@npm:17.4.0" +"@commitlint/parse@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/parse@npm:17.4.2" dependencies: "@commitlint/types": ^17.4.0 conventional-changelog-angular: ^5.0.11 conventional-commits-parser: ^3.2.2 - checksum: 5807d44b6f9f3dad93d6af898e989f0b557f08b8f0509b2f72bdafbdbd4c0ffa4abfa01e04225dca19a7479500c5b39560d2bd747335d8f7ba1f25feff129173 + checksum: d6808cc9c9ffcf8b06f938392a7428bb017c5e43d13510edad2c5885468bf0eae23e02c4d9611c200c498adb33eaf8abee797f32d437557101ddee02922f3572 languageName: node linkType: hard -"@commitlint/read@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/read@npm:17.4.0" +"@commitlint/read@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/read@npm:17.4.2" dependencies: "@commitlint/top-level": ^17.4.0 "@commitlint/types": ^17.4.0 fs-extra: ^11.0.0 git-raw-commits: ^2.0.0 minimist: ^1.2.6 - checksum: 66cb387857d377bdc0c64f8ba3a3f4d000421d5866267c94652bfbcfb7962d0079fc2d5333eab5f09e0f8c6f195bc09a1e5b6c3d0b9f1a23c30ae84d498d5fec + checksum: ed509f913bd9790bb3abfde0886abdc4e2569eb7651e666d2d70705954f98f14e2c621ffe8ee17bb8a9bee36e65e4d4d01d5cd2792c8e08e69248d31808830fa languageName: node linkType: hard @@ -1388,16 +1375,16 @@ __metadata: languageName: node linkType: hard -"@commitlint/rules@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/rules@npm:17.4.0" +"@commitlint/rules@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/rules@npm:17.4.2" dependencies: "@commitlint/ensure": ^17.4.0 - "@commitlint/message": ^17.4.0 + "@commitlint/message": ^17.4.2 "@commitlint/to-lines": ^17.4.0 "@commitlint/types": ^17.4.0 execa: ^5.0.0 - checksum: 9f1fc405a41c55212b8c04a67966b36585b852057ebf4e4fa6ee091d55e6479a88fff333be484cff47dbdd24132c06f89d278af5084ee20eaf1156001c8c64d8 + checksum: 2d53f470b511c41359b66886db054cb43fff748281a236a860bf21c3ba666b9d0b346932e8f0ac90e0dfc5ccdea10abda855ea9faa0f3fe3ef0f3fbc6992c141 languageName: node linkType: hard @@ -1453,9 +1440,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-arm64@npm:0.16.16" +"@esbuild/android-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm64@npm:0.16.17" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1467,65 +1454,65 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-arm@npm:0.16.16" +"@esbuild/android-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm@npm:0.16.17" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/android-x64@npm:0.16.16" +"@esbuild/android-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-x64@npm:0.16.17" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/darwin-arm64@npm:0.16.16" +"@esbuild/darwin-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-arm64@npm:0.16.17" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/darwin-x64@npm:0.16.16" +"@esbuild/darwin-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-x64@npm:0.16.17" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/freebsd-arm64@npm:0.16.16" +"@esbuild/freebsd-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-arm64@npm:0.16.17" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/freebsd-x64@npm:0.16.16" +"@esbuild/freebsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-x64@npm:0.16.17" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-arm64@npm:0.16.16" +"@esbuild/linux-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm64@npm:0.16.17" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-arm@npm:0.16.16" +"@esbuild/linux-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm@npm:0.16.17" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-ia32@npm:0.16.16" +"@esbuild/linux-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ia32@npm:0.16.17" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -1537,86 +1524,86 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-loong64@npm:0.16.16" +"@esbuild/linux-loong64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-loong64@npm:0.16.17" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-mips64el@npm:0.16.16" +"@esbuild/linux-mips64el@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-mips64el@npm:0.16.17" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-ppc64@npm:0.16.16" +"@esbuild/linux-ppc64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ppc64@npm:0.16.17" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-riscv64@npm:0.16.16" +"@esbuild/linux-riscv64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-riscv64@npm:0.16.17" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-s390x@npm:0.16.16" +"@esbuild/linux-s390x@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-s390x@npm:0.16.17" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/linux-x64@npm:0.16.16" +"@esbuild/linux-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-x64@npm:0.16.17" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/netbsd-x64@npm:0.16.16" +"@esbuild/netbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/netbsd-x64@npm:0.16.17" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/openbsd-x64@npm:0.16.16" +"@esbuild/openbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/openbsd-x64@npm:0.16.17" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/sunos-x64@npm:0.16.16" +"@esbuild/sunos-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/sunos-x64@npm:0.16.17" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-arm64@npm:0.16.16" +"@esbuild/win32-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-arm64@npm:0.16.17" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-ia32@npm:0.16.16" +"@esbuild/win32-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-ia32@npm:0.16.17" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.16": - version: 0.16.16 - resolution: "@esbuild/win32-x64@npm:0.16.16" +"@esbuild/win32-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-x64@npm:0.16.17" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1679,25 +1666,38 @@ __metadata: languageName: node linkType: hard +"@fastify/send@npm:^2.0.0": + version: 2.0.1 + resolution: "@fastify/send@npm:2.0.1" + dependencies: + "@lukeed/ms": ^2.0.1 + escape-html: ~1.0.3 + fast-decode-uri-component: ^1.0.1 + http-errors: 2.0.0 + mime: ^3.0.0 + checksum: 184a21b5cd00a3756f5b9e853b0d110074a438e9112f8a27211aa6c3e2c27b4baf0cc9ca157561914b2181f1dab752ec3dd278bd8419f94972e56d5fdfb4c79c + languageName: node + linkType: hard + "@fastify/static@npm:^6.6.0": - version: 6.6.0 - resolution: "@fastify/static@npm:6.6.0" + version: 6.8.0 + resolution: "@fastify/static@npm:6.8.0" dependencies: "@fastify/accept-negotiator": ^1.0.0 + "@fastify/send": ^2.0.0 content-disposition: ^0.5.3 fastify-plugin: ^4.0.0 glob: ^8.0.1 p-limit: ^3.1.0 readable-stream: ^4.0.0 - send: ^0.18.0 - checksum: 4abefd47f404ead444742905c0596f55ee0dc264f694aeb34debcd10212e2cee8b2694159febe354454667999f397d73b06a52df6fe6150525f8c2a6af3078a8 + checksum: a38738e812a55bcb3042b06be90b703a343b6b13dd28a244b464dc03a63255419e1565279e5fd5d05315b0a4447d102e2387112682d8392700b2142f1f1a1e3e languageName: node linkType: hard "@fontsource/inter@npm:^4.5.14": - version: 4.5.14 - resolution: "@fontsource/inter@npm:4.5.14" - checksum: 4e2eb9e54f8de0025bca7ad8e0822549f1873c5d9a634b8f99630d7bba750b1c86263229bae99375fc82489daa38df41e0304c77c3efda2d9a2f78d0eba3ec56 + version: 4.5.15 + resolution: "@fontsource/inter@npm:4.5.15" + checksum: d4330957c0a23a6c6a47f6f628b89c5603deec6305f28458fd3277bb652913dc77b31ac454bba96beeaecddef87eaf4b60befa2aad040ebb8c22c39ee33a2cf1 languageName: node linkType: hard @@ -1804,11 +1804,11 @@ __metadata: linkType: hard "@iconify-json/tabler@npm:^1.1.49": - version: 1.1.54 - resolution: "@iconify-json/tabler@npm:1.1.54" + version: 1.1.58 + resolution: "@iconify-json/tabler@npm:1.1.58" dependencies: "@iconify/types": "*" - checksum: 4e3234db68858a1d12f37f3c59e6ecdfd6c6a34f916e35837821b74ef54e89f08e16a0078c915d201bfc9ec56a631c102c083d7304a078f33110ea52f0bc82af + checksum: 4ffa89fcf9ca4b45be4ebebc3b7a2c576bbf5575566077dc5502ec73599fd22e2e1153f3fdd8748fe557489b4bdec32d929aa95f4fd583b65b6a4a395b40abb5 languageName: node linkType: hard @@ -1892,6 +1892,13 @@ __metadata: languageName: node linkType: hard +"@lukeed/ms@npm:^2.0.1": + version: 2.0.1 + resolution: "@lukeed/ms@npm:2.0.1" + checksum: c7b46933bf7bad3e024dcbbe2ad6201392b4ed2a05a717c0ef7e96a03fb885d44f08b4b749c392cc51c2736a6a45a08c77f1863ace1c072928fbfd9908a13db3 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^1.0.5": version: 1.0.10 resolution: "@mapbox/node-pre-gyp@npm:1.0.10" @@ -1953,19 +1960,19 @@ __metadata: languageName: node linkType: hard -"@netlify/build@npm:^29.4.0": - version: 29.4.1 - resolution: "@netlify/build@npm:29.4.1" +"@netlify/build@npm:^29.5.2": + version: 29.5.4 + resolution: "@netlify/build@npm:29.5.4" dependencies: "@bugsnag/js": ^7.0.0 - "@netlify/cache-utils": ^5.1.0 - "@netlify/config": ^20.3.0 - "@netlify/edge-bundler": 8.0.0 - "@netlify/functions-utils": ^5.1.1 + "@netlify/cache-utils": ^5.1.1 + "@netlify/config": ^20.3.2 + "@netlify/edge-bundler": 8.4.0 + "@netlify/functions-utils": ^5.1.6 "@netlify/git-utils": ^5.1.0 "@netlify/plugins-list": ^6.61.0 "@netlify/run-utils": ^5.1.0 - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.5.0 "@sindresorhus/slugify": ^2.0.0 ansi-escapes: ^5.0.0 chalk: ^5.0.0 @@ -1973,7 +1980,8 @@ __metadata: execa: ^6.0.0 figures: ^4.0.0 filter-obj: ^3.0.0 - got: ^10.0.0 + got: ^12.0.0 + hot-shots: 9.3.0 indent-string: ^5.0.0 is-plain-obj: ^4.0.0 js-yaml: ^4.0.0 @@ -1999,7 +2007,6 @@ __metadata: rfdc: ^1.3.0 safe-json-stringify: ^1.2.0 semver: ^7.0.0 - statsd-client: 0.4.7 string-width: ^5.0.0 strip-ansi: ^7.0.0 supports-color: ^9.0.0 @@ -2012,13 +2019,13 @@ __metadata: yargs: ^17.6.0 bin: netlify-build: bin.js - checksum: 1756c96a5ef99a377cce8f63303f12210d77570c1914204718d2762d1f0ebdb42f9e70d77219ab0b6813cf525c8e48d0f418bd5efb9741d2d0d4d657978bd1b1 + checksum: 2be04f50038086d71609b8d72cde66b7c2ca0c512ff7d0dcabfd55fb16641ba97ce40040c452f7cc17ee9e6a23ad133d9646e64311eb8bc3d19f16883079a470 languageName: node linkType: hard -"@netlify/cache-utils@npm:^5.1.0": - version: 5.1.0 - resolution: "@netlify/cache-utils@npm:5.1.0" +"@netlify/cache-utils@npm:^5.1.1": + version: 5.1.1 + resolution: "@netlify/cache-utils@npm:5.1.1" dependencies: cpy: ^8.1.0 del: ^6.0.0 @@ -2029,13 +2036,13 @@ __metadata: move-file: ^3.0.0 path-exists: ^5.0.0 readdirp: ^3.4.0 - checksum: 2e3cee0955c240150d855c01619c1c74fbffcd7d28f11b395d64bfcaf11d0e6d2ac883ca93c8f386f6fc3daf23547ed98a2a54ee811d3d1cf0e0d95e22329277 + checksum: d490da07f7f0ffcf372b3f48543efa776576f16d9c67b18532f9ab853d7eb41276a1b1ddfe4fc189f1fef91318ce4c0cfe7a1b0fc1b50fab7be5c3ebd30941cb languageName: node linkType: hard -"@netlify/config@npm:^20.3.0": - version: 20.3.0 - resolution: "@netlify/config@npm:20.3.0" +"@netlify/config@npm:^20.3.2": + version: 20.3.2 + resolution: "@netlify/config@npm:20.3.2" dependencies: chalk: ^5.0.0 cron-parser: ^4.1.0 @@ -2050,9 +2057,9 @@ __metadata: is-plain-obj: ^4.0.0 js-yaml: ^4.0.0 map-obj: ^5.0.0 - netlify: ^13.1.0 - netlify-headers-parser: ^7.1.0 - netlify-redirect-parser: ^14.1.0 + netlify: ^13.1.2 + netlify-headers-parser: ^7.1.1 + netlify-redirect-parser: ^14.1.1 omit.js: ^2.0.2 p-locate: ^6.0.0 path-exists: ^5.0.0 @@ -2063,13 +2070,13 @@ __metadata: yargs: ^17.6.0 bin: netlify-config: bin.js - checksum: 1ccafcf7dd7e3ffe241f809968c9e8f73fbeb56e078836eed15da8d8da1054945150aa57fdfc87981eebfd065908812071eda745322f9302c8d1226e668ca4a8 + checksum: 0e01523879e71f784b196a13ead8a6665a649ac1390a4b167a5bab0f48f2f9cd0a70a5f075974fbf5e7e18fbd92a92b360b82920cf908aac657b4d1c0238daf3 languageName: node linkType: hard -"@netlify/edge-bundler@npm:8.0.0": - version: 8.0.0 - resolution: "@netlify/edge-bundler@npm:8.0.0" +"@netlify/edge-bundler@npm:8.4.0, @netlify/edge-bundler@npm:^8.4.0": + version: 8.4.0 + resolution: "@netlify/edge-bundler@npm:8.4.0" dependencies: "@import-maps/resolve": ^1.0.1 ajv: ^8.11.2 @@ -2091,35 +2098,7 @@ __metadata: semver: ^7.3.5 tmp-promise: ^3.0.3 uuid: ^9.0.0 - checksum: b6e387fc46469179b3e53a82895740da02f98011e224827d26009254f671916393c3e4e8a7d4696e12d9220dbe7307f9abc8e479d4d5e833e00178a8bf276cd0 - languageName: node - linkType: hard - -"@netlify/edge-bundler@npm:^8.0.0": - version: 8.1.1 - resolution: "@netlify/edge-bundler@npm:8.1.1" - dependencies: - "@import-maps/resolve": ^1.0.1 - ajv: ^8.11.2 - ajv-errors: ^3.0.0 - better-ajv-errors: ^1.2.0 - common-path-prefix: ^3.0.0 - del: ^7.0.0 - env-paths: ^3.0.0 - execa: ^6.0.0 - find-up: ^6.3.0 - get-port: ^6.1.2 - glob-to-regexp: ^0.4.1 - jsonc-parser: ^3.2.0 - node-fetch: ^3.1.1 - node-stream-zip: ^1.15.0 - p-retry: ^5.1.1 - p-wait-for: ^4.1.0 - path-key: ^4.0.0 - semver: ^7.3.5 - tmp-promise: ^3.0.3 - uuid: ^9.0.0 - checksum: 0c7b07bcfa137a651f9ce58cf4cdd7c3ddaaf559844f0eb297afbc1aac7c27879e7f48ae4dc61259ff3e913e1fe40c4bc0be36c614019f9a95399d6993839a2d + checksum: ea53c2ed8a15fb6b7eee796771755ee4b0295a659996a04d50a9e39c46e3ca493dc179b4477094be2fdd838da6d298226e01ddf1bd40448840df527b6205fa2b languageName: node linkType: hard @@ -2334,9 +2313,9 @@ __metadata: languageName: node linkType: hard -"@netlify/framework-info@npm:^9.5.3": - version: 9.5.3 - resolution: "@netlify/framework-info@npm:9.5.3" +"@netlify/framework-info@npm:^9.7.1": + version: 9.7.2 + resolution: "@netlify/framework-info@npm:9.7.2" dependencies: ajv: ^8.0.0 filter-obj: ^3.0.0 @@ -2350,18 +2329,18 @@ __metadata: read-pkg-up: ^9.0.0 semver: ^7.3.4 url: ^0.11.0 - checksum: ba3f8c55f1563e3e60611838cf1aaffa04633aee86a7bc20ef760c8dda6565f160f85dc19970e6fcd5403f3de210a22d0f9e06d6d24808f9e1a7017243a3a0c2 + checksum: 90e1b1ed48e0882cc7467c74e32a18a1a7c15859f27b97b4b169ee65bae999878bddcf225d6d5a8aca6eb6f605f519a78bfa79e301530b12d4f320d8c5a425c9 languageName: node linkType: hard -"@netlify/functions-utils@npm:^5.1.1": - version: 5.1.1 - resolution: "@netlify/functions-utils@npm:5.1.1" +"@netlify/functions-utils@npm:^5.1.6": + version: 5.1.6 + resolution: "@netlify/functions-utils@npm:5.1.6" dependencies: - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.5.0 cpy: ^8.1.0 path-exists: ^5.0.0 - checksum: 526c5f3ff25d8f687a30ab3c6003f97f183f1365468f6716e7f6bcf28022a2163dad8a613a48077c69b8944294e58e325e1ccf130dc4e2b4ffb425b446035879 + checksum: ffcae5d625677268de2b21d1be3bdd8253e4b94ff4cf4df03d01d94a448edf6107ecdb2e06d5550a0c2427d186f1a8350990b294958dfb6d5063c55b061721fb languageName: node linkType: hard @@ -2531,17 +2510,17 @@ __metadata: languageName: node linkType: hard -"@netlify/open-api@npm:^2.12.0": - version: 2.12.2 - resolution: "@netlify/open-api@npm:2.12.2" - checksum: 85b5fb20e80cc581e21924f770536a5797d8efedbade9086b0703f6c87a741c1005b140e7848dda1724f4a7ce945371d74a21e6c624c428c75a88d86f5b1f2e6 +"@netlify/open-api@npm:^2.13.0": + version: 2.14.0 + resolution: "@netlify/open-api@npm:2.14.0" + checksum: 569ab242fd2f9b40287ae80e2474d6c4729cd6323d175a7c2151495940ac174de1776b1ddf8cc392162dda0031e6f647db44cdd43bf35e4feb63609e1c8767ba languageName: node linkType: hard "@netlify/plugins-list@npm:^6.61.0": - version: 6.61.0 - resolution: "@netlify/plugins-list@npm:6.61.0" - checksum: c1a62683f2c0d413e5787241bd2d3b0e6e1d05d4651d8bc9ed06647fdd50f5ab7f2aa2d9041559c5be3029a7064fd6ecf6b9ae0f46f844624bb81f8e7059ddd1 + version: 6.65.0 + resolution: "@netlify/plugins-list@npm:6.65.0" + checksum: 738c86fcb57faa170c64596fde8e2b193decaa16b98842385af615f71b2a31caff1025d4cb5fc09354f96f8a9920e0200906cb5521c29daa928ed02f95b15930 languageName: node linkType: hard @@ -2554,9 +2533,9 @@ __metadata: languageName: node linkType: hard -"@netlify/zip-it-and-ship-it@npm:^8.2.0": - version: 8.2.0 - resolution: "@netlify/zip-it-and-ship-it@npm:8.2.0" +"@netlify/zip-it-and-ship-it@npm:^8.4.1, @netlify/zip-it-and-ship-it@npm:^8.5.0": + version: 8.5.0 + resolution: "@netlify/zip-it-and-ship-it@npm:8.5.0" dependencies: "@babel/parser": 7.16.8 "@netlify/binary-info": ^1.0.0 @@ -2577,7 +2556,7 @@ __metadata: junk: ^4.0.0 locate-path: ^7.0.0 merge-options: ^3.0.4 - minimatch: ^5.0.0 + minimatch: ^6.0.0 normalize-path: ^3.0.0 p-map: ^5.0.0 path-exists: ^5.0.0 @@ -2591,7 +2570,7 @@ __metadata: yargs: ^17.0.0 bin: zip-it-and-ship-it: dist/bin.js - checksum: 1963aeea05598e26c67c420813e5b765510cfe788118eda87eda88583c574f930b2d070dd9f5f368ac0e96752cbca7af9bdb18f52bb6b1c941415df85416a234 + checksum: 75f8fa9516f0dd911790dbcec769891d3241418e6779341a2730fcdef659e4f7ded95e61a89ef51c25353a95e64791fcd681976fc370d2a135f5cbf6ab5d92b5 languageName: node linkType: hard @@ -2650,66 +2629,66 @@ __metadata: linkType: hard "@octokit/auth-token@npm:^3.0.0": - version: 3.0.2 - resolution: "@octokit/auth-token@npm:3.0.2" + version: 3.0.3 + resolution: "@octokit/auth-token@npm:3.0.3" dependencies: - "@octokit/types": ^8.0.0 - checksum: c7204770a6cb1661379c31b5a26779b509324446e61a4902893a69fd471738c817afc470f8ac8d86ad827738cc953046d27fbb87fc81782ff10e366b70241f4e + "@octokit/types": ^9.0.0 + checksum: 9b3f569cec1b7e0aa88ab6da68aed4b49b6652261bd957257541fabaf6a4d4ed99f908153cc3dd2fe15b8b0ccaff8caaafaa50bb1a4de3925b0954a47cca1900 languageName: node linkType: hard "@octokit/core@npm:^4.1.0": - version: 4.1.0 - resolution: "@octokit/core@npm:4.1.0" + version: 4.2.0 + resolution: "@octokit/core@npm:4.2.0" dependencies: "@octokit/auth-token": ^3.0.0 "@octokit/graphql": ^5.0.0 "@octokit/request": ^6.0.0 "@octokit/request-error": ^3.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 before-after-hook: ^2.2.0 universal-user-agent: ^6.0.0 - checksum: 4e53e02ff3ebe808b74385be0055cc1cce4b548060b20e3f2d5dd1bf7877ff7b6556f11278edc070842bf24aa869f9f59a02638f1b14083eb290b9e297447a2d + checksum: 5ac56e7f14b42a5da8d3075a2ae41483521a78bee061a01f4a81d8c0ecd6a684b2e945d66baba0cd1fdf264639deedc3a96d0f32c4d2fc39b49ca10f52f4de39 languageName: node linkType: hard "@octokit/endpoint@npm:^7.0.0": - version: 7.0.3 - resolution: "@octokit/endpoint@npm:7.0.3" + version: 7.0.5 + resolution: "@octokit/endpoint@npm:7.0.5" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 is-plain-object: ^5.0.0 universal-user-agent: ^6.0.0 - checksum: c36b1577062e51d1683779a59c75d046d59f9a5c3a0f046d465e6c4c39f64bfc3a3052b42fa91a4552c7903ec382c604b4a2e1aadebdf7458191849ede5d4978 + checksum: 81c9e9eabf50e48940cceff7c4d7fbc9327190296507cfe8a199ea00cd492caf8f18a841caf4e3619828924b481996eb16091826db6b5a649bee44c8718ecaa9 languageName: node linkType: hard "@octokit/graphql@npm:^5.0.0": - version: 5.0.4 - resolution: "@octokit/graphql@npm:5.0.4" + version: 5.0.5 + resolution: "@octokit/graphql@npm:5.0.5" dependencies: "@octokit/request": ^6.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 universal-user-agent: ^6.0.0 - checksum: 8cf65cf7e6608cf3cbc96a2fa902172b4d5dc30e88ee0bae3711bf467a25b828b10cce1aaabb7f82a7580bfbcf7028b91d1dd1a894940945e38ca2deb6509754 + checksum: eb2d1a6305a3d1f55ff0ce92fb88b677f0bb789757152d58a79ef61171fb65ecf6fe18d6c27e236c0cee6a0c2600c2cb8370f5ac7184f8e9361c085aa4555bb1 languageName: node linkType: hard -"@octokit/openapi-types@npm:^14.0.0": - version: 14.0.0 - resolution: "@octokit/openapi-types@npm:14.0.0" - checksum: 0a1f8f3be998cd82c5a640e9166d43fd183b33d5d36f5e1a9b81608e94d0da87c01ec46c9988f69cd26585d4e2ffc4d3ec99ee4f75e5fe997fc86dad0aa8293c +"@octokit/openapi-types@npm:^16.0.0": + version: 16.0.0 + resolution: "@octokit/openapi-types@npm:16.0.0" + checksum: 844f30a545da380d63c712e0eb733366bc567d1aab34529c79fdfbec3d73810e81d83f06fdab13058a5cbc7dae786db1a9b90b5b61b1e606854ee45d5ec5f194 languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/plugin-paginate-rest@npm:5.0.1" +"@octokit/plugin-paginate-rest@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/plugin-paginate-rest@npm:6.0.0" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 peerDependencies: "@octokit/core": ">=4" - checksum: cfded297d9f66c7607bd34075eb0c5f7278a1617d6be86115997c0757151c9be2fcf7a8849c2a5cebab56931a263b5cc35742b6227935afe77f5ed61b0627a3d + checksum: 4ad89568d883373898b733837cada7d849d51eef32157c11d4a81cef5ce8e509720d79b46918cada3c132f9b29847e383f17b7cd5c39ede7c93cdcd2f850b47f languageName: node linkType: hard @@ -2722,61 +2701,61 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^6.7.0": - version: 6.7.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:6.7.0" +"@octokit/plugin-rest-endpoint-methods@npm:^7.0.0": + version: 7.0.1 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.0.1" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 deprecation: ^2.3.1 peerDependencies: "@octokit/core": ">=3" - checksum: 513c6c0717d08f3e85848029bd700412b7d9787750f78cc79a3dede356e94b238bf8a518b108f556a7efe626871720dd0466de9f31091578ea4e0f5a016f0ae7 + checksum: cdb8734ec960f75acc2405284920c58efac9a71b1c3b2a71662b9100ffbc22dac597150acff017a93459c57e9a492d9e1c27872b068387dbb90597de75065fcf languageName: node linkType: hard "@octokit/request-error@npm:^3.0.0": - version: 3.0.2 - resolution: "@octokit/request-error@npm:3.0.2" + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" dependencies: - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 deprecation: ^2.0.0 once: ^1.4.0 - checksum: 41549554ce780de13d3421f8036635014c8dcbdf867c288526ef7b17e9d92470f33341ddadacf2868dc0181440842803484104efbe11ebfaecdaeec58871a13e + checksum: 5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 languageName: node linkType: hard "@octokit/request@npm:^6.0.0": - version: 6.2.2 - resolution: "@octokit/request@npm:6.2.2" + version: 6.2.3 + resolution: "@octokit/request@npm:6.2.3" dependencies: "@octokit/endpoint": ^7.0.0 "@octokit/request-error": ^3.0.0 - "@octokit/types": ^8.0.0 + "@octokit/types": ^9.0.0 is-plain-object: ^5.0.0 node-fetch: ^2.6.7 universal-user-agent: ^6.0.0 - checksum: adbeb38807c60b53d32d9b69be0c1f861c26698bc6f5f3f7e05d26972290dc4867827dd333bdd801818c347e5723efd049a2b9848c6c8bf74a2032968dede0ff + checksum: fef4097be8375d20bb0b3276d8a3adf866ec628f2b0664d334f3c29b92157da847899497abdc7a5be540053819b55564990543175ad48f04e9e6f25f0395d4d3 languageName: node linkType: hard "@octokit/rest@npm:^19.0.0": - version: 19.0.5 - resolution: "@octokit/rest@npm:19.0.5" + version: 19.0.7 + resolution: "@octokit/rest@npm:19.0.7" dependencies: "@octokit/core": ^4.1.0 - "@octokit/plugin-paginate-rest": ^5.0.0 + "@octokit/plugin-paginate-rest": ^6.0.0 "@octokit/plugin-request-log": ^1.0.4 - "@octokit/plugin-rest-endpoint-methods": ^6.7.0 - checksum: ed4c36859aafb64e23f7f708086fe7e2ecda17ffd8c1594817d539f766f5855af79f17f5d225d96d34cd9b97cbfea988dac3df39a7cc928b2d2b7b75ed981056 + "@octokit/plugin-rest-endpoint-methods": ^7.0.0 + checksum: 1f970c4de2cf3d1691d3cf5dd4bfa5ac205629e76417b5c51561e1beb5b4a7e6c65ba647f368727e67e5243418e06ca9cdafd9e733173e1529385d4f4d053d3d languageName: node linkType: hard -"@octokit/types@npm:^8.0.0": - version: 8.0.0 - resolution: "@octokit/types@npm:8.0.0" +"@octokit/types@npm:^9.0.0": + version: 9.0.0 + resolution: "@octokit/types@npm:9.0.0" dependencies: - "@octokit/openapi-types": ^14.0.0 - checksum: 1a0197b2c4c522ac90f145e02b3f8cb048a47f71c2c6bdbf021a03db7dd30ca92a899c0186acb401337f218efe44e60d33cc1cc68715b622bb75bc1a4e79515d + "@octokit/openapi-types": ^16.0.0 + checksum: 5c7f5cca8f00f7c4daa0d00f4fe991c1598ec47cd6ced50b1c5fbe9721bb9dee0adc2acdee265a3a715bb984e53ef3dc7f1cfb7326f712c6d809d59fc5c6648d languageName: node linkType: hard @@ -2942,12 +2921,12 @@ __metadata: linkType: hard "@sindresorhus/slugify@npm:^2.0.0": - version: 2.1.1 - resolution: "@sindresorhus/slugify@npm:2.1.1" + version: 2.2.0 + resolution: "@sindresorhus/slugify@npm:2.2.0" dependencies: "@sindresorhus/transliterate": ^1.0.0 escape-string-regexp: ^5.0.0 - checksum: 0c60c8ce0ec2e1ca0b7aaa0babe36bb537b13ffdaac938ac5c0cbeb39a23a6c76cb50cfa65e9e172e4e5058ae5b0bf35c9aeae52fd09dc60033d59ffdd91507c + checksum: 13c5cff81b94ec9130b74692b12acefa406be6ab20bc842cb2a751d850719f709ca2acfeb8b66dde7fd96d989360d97e620d783292ad963bab9df999cd1d3102 languageName: node linkType: hard @@ -3026,8 +3005,8 @@ __metadata: linkType: hard "@tailwindcss/typography@npm:^0.5.0": - version: 0.5.8 - resolution: "@tailwindcss/typography@npm:0.5.8" + version: 0.5.9 + resolution: "@tailwindcss/typography@npm:0.5.9" dependencies: lodash.castarray: ^4.4.0 lodash.isplainobject: ^4.0.6 @@ -3035,7 +3014,7 @@ __metadata: postcss-selector-parser: 6.0.10 peerDependencies: tailwindcss: "*" - checksum: afe172c75ddf086f840b10f95e562bb210dde5612fccfcfd3c4cee688c57ca5b79569b3c2cb75687b34b1b7f9ad194b14e9fbb09a741cd69198bb92b5ac3838f + checksum: b98e21bdd1798d7e4683499893c5c20ad43fcc8955d5d6eefbe1d30e98e9b6c28949ae8f276d39be9a66fafe843597717196bc5a0a2ac0f87ef86aa051ab9611 languageName: node linkType: hard @@ -3192,26 +3171,26 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.31": - version: 4.17.32 - resolution: "@types/express-serve-static-core@npm:4.17.32" +"@types/express-serve-static-core@npm:^4.17.33": + version: 4.17.33 + resolution: "@types/express-serve-static-core@npm:4.17.33" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" - checksum: 70ec1b8f386628850b315a7b9fd4240a5a70297b41ef1c39af65c8b9661d2c775cfff4686b491fd90e5b6eef43088af203700c5541aec0d063db0c6cbeff254c + checksum: dce580d16b85f207445af9d4053d66942b27d0c72e86153089fa00feee3e96ae336b7bedb31ed4eea9e553c99d6dd356ed6e0928f135375d9f862a1a8015adf2 languageName: node linkType: hard "@types/express@npm:*": - version: 4.17.15 - resolution: "@types/express@npm:4.17.15" + version: 4.17.17 + resolution: "@types/express@npm:4.17.17" dependencies: "@types/body-parser": "*" - "@types/express-serve-static-core": ^4.17.31 + "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: b4acd8a836d4f6409cdf79b12d6e660485249b62500cccd61e7997d2f520093edf77d7f8498ca79d64a112c6434b6de5ca48039b8fde2c881679eced7e96979b + checksum: 0196dacc275ac3ce89d7364885cb08e7fb61f53ca101f65886dbf1daf9b7eb05c0943e2e4bbd01b0cc5e50f37e0eea7e4cbe97d0304094411ac73e1b7998f4da languageName: node linkType: hard @@ -3372,7 +3351,7 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.1.6, @types/node-fetch@npm:latest": +"@types/node-fetch@latest, @types/node-fetch@npm:^2.1.6": version: 2.6.2 resolution: "@types/node-fetch@npm:2.6.2" dependencies: @@ -3382,10 +3361,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^18.11.18, @types/node@npm:latest": - version: 18.11.18 - resolution: "@types/node@npm:18.11.18" - checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d +"@types/node@latest, @types/node@npm:*, @types/node@npm:^18.11.18": + version: 18.13.0 + resolution: "@types/node@npm:18.13.0" + checksum: 4ea10f8802848b01672bce938f678b6774ca2cee0c9774f12275ab064ae07818419c3e2e41d6257ce7ba846d1ea26c63214aa1dfa4166fa3746291752b8c6416 languageName: node linkType: hard @@ -3663,6 +3642,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.51.0": + version: 5.51.0 + resolution: "@typescript-eslint/types@npm:5.51.0" + checksum: b31021a0866f41ba5d71b6c4c7e20cc9b99d49c93bb7db63b55b2e51542fb75b4e27662ee86350da3c1318029e278a5a807facaf4cb5aeea724be8b0e021e836 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.45.0": version: 5.45.0 resolution: "@typescript-eslint/typescript-estree@npm:5.45.0" @@ -3681,7 +3667,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.48.0, @typescript-eslint/typescript-estree@npm:^5.13.0": +"@typescript-eslint/typescript-estree@npm:5.48.0": version: 5.48.0 resolution: "@typescript-eslint/typescript-estree@npm:5.48.0" dependencies: @@ -3699,6 +3685,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:^5.13.0": + version: 5.51.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.51.0" + dependencies: + "@typescript-eslint/types": 5.51.0 + "@typescript-eslint/visitor-keys": 5.51.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: aec23e5cab48ee72fefa6d1ac266639ebabf6cebec1e0207ad47011d3a48186ac9a632c8e34c3bac896155f54895a497230c11d789fd81263b08eb267d7113ce + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:5.45.0": version: 5.45.0 resolution: "@typescript-eslint/utils@npm:5.45.0" @@ -3755,6 +3759,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.51.0": + version: 5.51.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.51.0" + dependencies: + "@typescript-eslint/types": 5.51.0 + eslint-visitor-keys: ^3.3.0 + checksum: b49710f3c6b3b62a846a163afffd81be5eb2b1f44e25bec51ff3c9f4c3b579d74aa4cbd3753b4fc09ea3dbc64a7062f9c658c08d22bb2740a599cb703d876220 + languageName: node + linkType: hard + "@vercel/nft@npm:^0.22.0": version: 0.22.6 resolution: "@vercel/nft@npm:0.22.6" @@ -3882,11 +3896,11 @@ __metadata: linkType: hard "acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.6.0, acorn@npm:^8.8.0": - version: 8.8.1 - resolution: "acorn@npm:8.8.1" + version: 8.8.2 + resolution: "acorn@npm:8.8.2" bin: acorn: bin/acorn - checksum: 4079b67283b94935157698831967642f24a075c52ce3feaaaafe095776dfbe15d86a1b33b1e53860fc0d062ed6c83f4284a5c87c85b9ad51853a01173da6097f + checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 languageName: node linkType: hard @@ -4656,7 +4670,7 @@ __metadata: languageName: node linkType: hard -"bindings@npm:^1.4.0": +"bindings@npm:^1.4.0, bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" dependencies: @@ -4859,25 +4873,25 @@ __metadata: linkType: hard "browserslist@npm:^4.0.0, browserslist@npm:^4.13.0, browserslist@npm:^4.16.6, browserslist@npm:^4.21.4": - version: 4.21.4 - resolution: "browserslist@npm:4.21.4" + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" dependencies: - caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 + caniuse-lite: ^1.0.30001449 + electron-to-chromium: ^1.4.284 + node-releases: ^2.0.8 + update-browserslist-db: ^1.0.10 bin: browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 + checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 languageName: node linkType: hard "bson@npm:^4.7.0": - version: 4.7.1 - resolution: "bson@npm:4.7.1" + version: 4.7.2 + resolution: "bson@npm:4.7.2" dependencies: buffer: ^5.6.0 - checksum: 546aaf322e42514e0c48c875ad6ffafc66458c83fea0fb89e9e3002ba040b7d95ab40e63eca7f997d1f9d4e92cd02af259ba761799bf04aafc3a857e12d147c4 + checksum: f357d12c5679c8eb029a62e410ad40fb862b7b91f0fc12a3399fb3668e14aecaa63205ffeeee48735a01d393171743607dcd527eb8c058b6f2bd294079ee4125 languageName: node linkType: hard @@ -5082,17 +5096,17 @@ __metadata: linkType: hard "cacheable-request@npm:^10.2.1": - version: 10.2.5 - resolution: "cacheable-request@npm:10.2.5" + version: 10.2.7 + resolution: "cacheable-request@npm:10.2.7" dependencies: "@types/http-cache-semantics": ^4.0.1 get-stream: ^6.0.1 - http-cache-semantics: ^4.1.0 + http-cache-semantics: ^4.1.1 keyv: ^4.5.2 mimic-response: ^4.0.0 normalize-url: ^8.0.0 responselike: ^3.0.0 - checksum: 9bf7443792072a50b5c5e17bd8e080e11d91b72a45ec7f287ffe47c96e9d64a4e60b7d7835114ef75b9667db45a85be1b16fa692cf31cf9a9c9fabae0ab3f098 + checksum: 25cfbe0cab755bcee3bf6610b0253414e583289f795a28035616bf3186ecb303e8caf1943cbf42d92410b3f24124a1cdd663dd8ff52ac2c997a5129de5e9557a languageName: node linkType: hard @@ -5240,10 +5254,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001400, caniuse-lite@npm:^1.0.30001426": - version: 1.0.30001442 - resolution: "caniuse-lite@npm:1.0.30001442" - checksum: c1bff65bd4f53da2d288e7f55be40706ee0119b983eae5a9dcc884046990476891630aef72d708f7989f8f1964200c44e4c37ea40deecaa2fb4a480df23e6317 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001426, caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001450 + resolution: "caniuse-lite@npm:1.0.30001450" + checksum: 511b360bfc907b2e437699364cf96b83507bc45043926450056642332bcd6f65a1e72540c828534ae15e0ac906e3e9af46cb2bb84458dd580bc31478e9dce282 languageName: node linkType: hard @@ -5943,9 +5957,9 @@ __metadata: linkType: hard "content-type@npm:^1.0.4, content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 languageName: node linkType: hard @@ -6358,11 +6372,11 @@ __metadata: linkType: hard "cron-parser@npm:^4.1.0, cron-parser@npm:^4.2.1": - version: 4.7.0 - resolution: "cron-parser@npm:4.7.0" + version: 4.7.1 + resolution: "cron-parser@npm:4.7.1" dependencies: - luxon: ^3.1.0 - checksum: 25489f2cd41ada61bc35a09bdb7147e5f1d25179c740725d859e18076dabdf2551bfdd6d62fe339227d58840b068bb5a330fb6f867e695e998fd32359d6e0022 + luxon: ^3.2.1 + checksum: 60642d4710c6ba202b781be6c905d68a47ac69fe1b9eaba06a3f7e9950ba58adbb21ae260452b2801d80b2a1f04f142bb847157c5a707fa4b01a5d2c8842828e languageName: node linkType: hard @@ -6605,9 +6619,9 @@ __metadata: linkType: hard "data-uri-to-buffer@npm:^4.0.0": - version: 4.0.0 - resolution: "data-uri-to-buffer@npm:4.0.0" - checksum: a010653869abe8bb51259432894ac62c52bf79ad761d418d94396f48c346f2ae739c46b254e8bb5987bded8a653d467db1968db3a69bab1d33aa5567baa5cfc7 + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c languageName: node linkType: hard @@ -6856,9 +6870,9 @@ __metadata: linkType: hard "deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + version: 4.3.0 + resolution: "deepmerge@npm:4.3.0" + checksum: c7980eb5c5be040b371f1df0d566473875cfabed9f672ccc177b81ba8eee5686ce2478de2f1d0076391621cbe729e5eacda397179a59ef0f68901849647db126 languageName: node linkType: hard @@ -7407,10 +7421,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.251": - version: 1.4.284 - resolution: "electron-to-chromium@npm:1.4.284" - checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a +"electron-to-chromium@npm:^1.4.284": + version: 1.4.288 + resolution: "electron-to-chromium@npm:1.4.288" + checksum: 312e1210f62c6bb593d1f57a15a1c64729e6a5edeacecc5d28dfb21f1a78ed3fac11805a0749a4e68f1fe1536229bf9d7bca36e1f34303369248a749a78aec1f languageName: node linkType: hard @@ -7523,11 +7537,12 @@ __metadata: linkType: hard "es-abstract@npm:^1.17.5, es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.0 - resolution: "es-abstract@npm:1.21.0" + version: 1.21.1 + resolution: "es-abstract@npm:1.21.1" dependencies: + available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 - es-set-tostringtag: ^2.0.0 + es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 function.prototype.name: ^1.1.5 @@ -7540,7 +7555,7 @@ __metadata: has-proto: ^1.0.1 has-symbols: ^1.0.3 internal-slot: ^1.0.4 - is-array-buffer: ^3.0.0 + is-array-buffer: ^3.0.1 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 @@ -7558,34 +7573,35 @@ __metadata: typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 which-typed-array: ^1.1.9 - checksum: 52305b52aff6505c9d8cebfa727835dd8871af76de151868d1db7baf6d21f13a81586316ac513601eec9b46e2947cab044fc2a131db68bfa05daf37aa153dbd9 + checksum: 23ff60d42d17a55d150e7bcedbdb065d4077a8b98c436e0e2e1ef4dd532a6d78a56028673de0bd8ed464a43c46ba781c50d9af429b6a17e44dbd14c7d7fb7926 languageName: node linkType: hard "es-get-iterator@npm:^1.1.2": - version: 1.1.2 - resolution: "es-get-iterator@npm:1.1.2" + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.0 - has-symbols: ^1.0.1 - is-arguments: ^1.1.0 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 is-map: ^2.0.2 is-set: ^2.0.2 - is-string: ^1.0.5 + is-string: ^1.0.7 isarray: ^2.0.5 - checksum: f75e66acb6a45686fa08b3ade9c9421a70d36a0c43ed4363e67f4d7aab2226cb73dd977cb48abbaf75721b946d3cd810682fcf310c7ad0867802fbf929b17dcf + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d languageName: node linkType: hard "es-module-lexer@npm:^1.0.0": - version: 1.1.0 - resolution: "es-module-lexer@npm:1.1.0" - checksum: 3e9f5019b69c6b2f04eb8478c4fdb4ed72cb8b4c97511b5dd39c1f498386ed8f5083c32067c15efcfabc7e8460cb65ed4627dd32405475715a898009922f41fa + version: 1.1.1 + resolution: "es-module-lexer@npm:1.1.1" + checksum: 1eba6029faa74b8bf6ab0619f8e5a407ded87be6df3ea3831325166ecf9323d69e389b2a4403339e79c94f43e9dd9823580d5bbc5dfad7c6920ed4830575dc75 languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.0": +"es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" dependencies: @@ -7849,31 +7865,31 @@ __metadata: linkType: hard "esbuild@npm:^0.16.3": - version: 0.16.16 - resolution: "esbuild@npm:0.16.16" + version: 0.16.17 + resolution: "esbuild@npm:0.16.17" dependencies: - "@esbuild/android-arm": 0.16.16 - "@esbuild/android-arm64": 0.16.16 - "@esbuild/android-x64": 0.16.16 - "@esbuild/darwin-arm64": 0.16.16 - "@esbuild/darwin-x64": 0.16.16 - "@esbuild/freebsd-arm64": 0.16.16 - "@esbuild/freebsd-x64": 0.16.16 - "@esbuild/linux-arm": 0.16.16 - "@esbuild/linux-arm64": 0.16.16 - "@esbuild/linux-ia32": 0.16.16 - "@esbuild/linux-loong64": 0.16.16 - "@esbuild/linux-mips64el": 0.16.16 - "@esbuild/linux-ppc64": 0.16.16 - "@esbuild/linux-riscv64": 0.16.16 - "@esbuild/linux-s390x": 0.16.16 - "@esbuild/linux-x64": 0.16.16 - "@esbuild/netbsd-x64": 0.16.16 - "@esbuild/openbsd-x64": 0.16.16 - "@esbuild/sunos-x64": 0.16.16 - "@esbuild/win32-arm64": 0.16.16 - "@esbuild/win32-ia32": 0.16.16 - "@esbuild/win32-x64": 0.16.16 + "@esbuild/android-arm": 0.16.17 + "@esbuild/android-arm64": 0.16.17 + "@esbuild/android-x64": 0.16.17 + "@esbuild/darwin-arm64": 0.16.17 + "@esbuild/darwin-x64": 0.16.17 + "@esbuild/freebsd-arm64": 0.16.17 + "@esbuild/freebsd-x64": 0.16.17 + "@esbuild/linux-arm": 0.16.17 + "@esbuild/linux-arm64": 0.16.17 + "@esbuild/linux-ia32": 0.16.17 + "@esbuild/linux-loong64": 0.16.17 + "@esbuild/linux-mips64el": 0.16.17 + "@esbuild/linux-ppc64": 0.16.17 + "@esbuild/linux-riscv64": 0.16.17 + "@esbuild/linux-s390x": 0.16.17 + "@esbuild/linux-x64": 0.16.17 + "@esbuild/netbsd-x64": 0.16.17 + "@esbuild/openbsd-x64": 0.16.17 + "@esbuild/sunos-x64": 0.16.17 + "@esbuild/win32-arm64": 0.16.17 + "@esbuild/win32-ia32": 0.16.17 + "@esbuild/win32-x64": 0.16.17 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -7921,7 +7937,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: d3163ec01e017776df6b68e1825caa2323918f0d03eb92250bdcdff80410a2c0eb5b3807955db84d83b1b91cf24af9815a1d19efc2343c490be3e5d7b27a834f + checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c languageName: node linkType: hard @@ -8135,7 +8151,7 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.31.0, eslint@npm:^8.26.0": +"eslint@npm:8.31.0": version: 8.31.0 resolution: "eslint@npm:8.31.0" dependencies: @@ -8184,6 +8200,55 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.26.0": + version: 8.33.0 + resolution: "eslint@npm:8.33.0" + dependencies: + "@eslint/eslintrc": ^1.4.1 + "@humanwhocodes/config-array": ^0.11.8 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.1.1 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.3.0 + espree: ^9.4.0 + esquery: ^1.4.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-sdsl: ^4.1.4 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + regexpp: ^3.2.0 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 727e63ab8b7acf281442323c5971f6afdd5b656fbcebc4476cf54e35af51b2f180617433fc5e1952f0449ca3f43a905527f9407ea4b8a7ea7562fc9c3f278d4c + languageName: node + linkType: hard + "espree@npm:^9.4.0": version: 9.4.1 resolution: "espree@npm:9.4.1" @@ -8254,11 +8319,11 @@ __metadata: linkType: hard "estree-util-attach-comments@npm:^2.0.0": - version: 2.1.0 - resolution: "estree-util-attach-comments@npm:2.1.0" + version: 2.1.1 + resolution: "estree-util-attach-comments@npm:2.1.1" dependencies: "@types/estree": ^1.0.0 - checksum: 8489b977dc420e4af59b03528487b2963d7bfe2d6d265819231dce5a1a5c389109230be102d4b7b85a86ec64f75a7e70b0f306542d56ec557c83f92ec326738a + checksum: c5c2c41c9a55a169fb4fba9627057843f0d2e21e47a2e3e24318a11ffcf6bc704c0f96f405a529bddac7969b7c44f6cf86711505faaf0c5862c2024419b19704 languageName: node linkType: hard @@ -8274,30 +8339,30 @@ __metadata: linkType: hard "estree-util-is-identifier-name@npm:^2.0.0": - version: 2.0.1 - resolution: "estree-util-is-identifier-name@npm:2.0.1" - checksum: d91693dc1c8e7f9860e5c73d3f2e0ad4fc484dc9df432086e0432c27c89f1690fe3c63f0d608d11bce77bb026a4edef434c28da5cbad0761d0292741a96b1481 + version: 2.1.0 + resolution: "estree-util-is-identifier-name@npm:2.1.0" + checksum: cab317a071fafb99cf83b57df7924bccd2e6ab4e252688739e49f00b16cefd168e279c171442b0557c80a1c80ffaa927d670dadea65bb3c9b151efb8e772e89d languageName: node linkType: hard "estree-util-to-js@npm:^1.1.0": - version: 1.1.0 - resolution: "estree-util-to-js@npm:1.1.0" + version: 1.1.1 + resolution: "estree-util-to-js@npm:1.1.1" dependencies: "@types/estree-jsx": ^1.0.0 astring: ^1.8.0 source-map: ^0.7.0 - checksum: 3ce2ef2fd78497fa7a0e5250be0f217af9060c819f7ed4f4739285e4ade4ed244536cb88e8ba1e38986af98d3a9064165122bb1622f2c6d57fe7b241b884fc47 + checksum: 67a1dd8757057bb835f7a094e3028804002b8ce6e5951b09542d4e28fab805c71b50b302f6deb0c47bff0eae3135b3815b4656f07a1e5014dbdc222acf31a762 languageName: node linkType: hard "estree-util-visit@npm:^1.0.0": - version: 1.2.0 - resolution: "estree-util-visit@npm:1.2.0" + version: 1.2.1 + resolution: "estree-util-visit@npm:1.2.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/unist": ^2.0.0 - checksum: d36a36aed82d6cb00d24615889052e22308ff008191b3760f65f93e9d0b06d3bc448af9f99a685947f1c69fba36d9a412da243b0b026096c66ecd74054c3b090 + checksum: 6feea4fdc43b0ba0f79faf1d57cf32373007e146d4810c7c09c13f5a9c1b8600c1ac57a8d949967cedd2a9a91dddd246e19b59bacfc01e417168b4ebf220f691 languageName: node linkType: hard @@ -8316,9 +8381,11 @@ __metadata: linkType: hard "estree-walker@npm:^3.0.0": - version: 3.0.2 - resolution: "estree-walker@npm:3.0.2" - checksum: ecf457e8d4750cefb10b3e003df3bfceabe1e360695d0d71efdf00b45a4d625cb117e9a03d06331e989d5f1df2b4963b5c80df7f5d88c7ea3fe5586b5c783900 + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af languageName: node linkType: hard @@ -8557,7 +8624,7 @@ __metadata: languageName: node linkType: hard -"extract-zip@npm:^2.0.0": +"extract-zip@npm:^2.0.0, extract-zip@npm:^2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" dependencies: @@ -8588,6 +8655,13 @@ __metadata: languageName: node linkType: hard +"fast-content-type-parse@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-content-type-parse@npm:1.0.0" + checksum: 9e9187be17bea18a2ee715c5737b983181cbe84f286a291db0595e421e04b578da10ca10845639be08664a4db6a793f7709822935cf38cfdf9ecba38d84ead9e + languageName: node + linkType: hard + "fast-decode-uri-component@npm:^1.0.1": version: 1.0.1 resolution: "fast-decode-uri-component@npm:1.0.1" @@ -8672,11 +8746,11 @@ __metadata: linkType: hard "fast-querystring@npm:^1.0.0": - version: 1.1.0 - resolution: "fast-querystring@npm:1.1.0" + version: 1.1.1 + resolution: "fast-querystring@npm:1.1.1" dependencies: fast-decode-uri-component: ^1.0.1 - checksum: 912e55326733004ac15ee6c759a319ed01117c23953d93ff28f64b230e76ba22cdf14722fb01c1045d80c6d565e39a6ae18b89f05faa576862036e0a4ccff473 + checksum: 86d2b75b9b299a552353532fb1a542f09730ee2a61e657d68710971d9a2afc9a3c5c7b7e106b6534f4cc506d2ff1c08ab0fda4ae614b4e7720798c9ac2a88e02 languageName: node linkType: hard @@ -8713,22 +8787,22 @@ __metadata: linkType: hard "fastify-plugin@npm:^4.0.0": - version: 4.4.0 - resolution: "fastify-plugin@npm:4.4.0" - checksum: f61d6620a24e8c3c9e67305fffe5570d4c0580477fc0f11fd9397b3e11e2b28ea0873e80d2774fee3ad9d70a81a07a83cb0da61e92afc70f6c50bbb3fb91335d + version: 4.5.0 + resolution: "fastify-plugin@npm:4.5.0" + checksum: 3cc36a43ec72ee9974d3cd1989027e77b277b0994e4fc02ed4e6492aabd83a0be66f14fdec56e60d9a41911ea1ff1ea70c9d957a87e46bcdb8fedd859f4988fe languageName: node linkType: hard "fastify@npm:^4.10.2": - version: 4.11.0 - resolution: "fastify@npm:4.11.0" + version: 4.12.0 + resolution: "fastify@npm:4.12.0" dependencies: "@fastify/ajv-compiler": ^3.3.1 "@fastify/error": ^3.0.0 "@fastify/fast-json-stringify-compiler": ^4.1.0 abstract-logging: ^2.0.1 avvio: ^8.2.0 - content-type: ^1.0.4 + fast-content-type-parse: ^1.0.0 find-my-way: ^7.3.0 light-my-request: ^5.6.1 pino: ^8.5.0 @@ -8738,7 +8812,7 @@ __metadata: secure-json-parse: ^2.5.0 semver: ^7.3.7 tiny-lru: ^10.0.0 - checksum: 814803b1015ae47cce4d7877a16788abee3ba6bba23e7e1b08a6cc62b43828aa6c38624de835c5b422da902fa93b316d1222d191b8373bebd8acbd68c8843584 + checksum: 7f5ec6aad14cd57acf11899c3c64186c7b0a1716c068ad7174375fdcc21248e5cd1c54ac71d496504b0255f5eefdb6858446d859286c70472742ea75a4eb4cad languageName: node linkType: hard @@ -9454,14 +9528,14 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": - version: 1.1.3 - resolution: "get-intrinsic@npm:1.1.3" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": + version: 1.2.0 + resolution: "get-intrinsic@npm:1.2.0" dependencies: function-bind: ^1.1.1 has: ^1.0.3 has-symbols: ^1.0.3 - checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a + checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d languageName: node linkType: hard @@ -9746,15 +9820,15 @@ __metadata: linkType: hard "glob@npm:^8.0.1, glob@npm:^8.0.3": - version: 8.0.3 - resolution: "glob@npm:8.0.3" + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 minimatch: ^5.0.1 once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard @@ -9797,11 +9871,11 @@ __metadata: linkType: hard "globals@npm:^13.15.0, globals@npm:^13.19.0": - version: 13.19.0 - resolution: "globals@npm:13.19.0" + version: 13.20.0 + resolution: "globals@npm:13.20.0" dependencies: type-fest: ^0.20.2 - checksum: a000dbd00bcf28f0941d8a29c3522b1c3b8e4bfe4e60e262c477a550c3cbbe8dbe2925a6905f037acd40f9a93c039242e1f7079c76b0fd184bc41dcc3b5c8e2e + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a languageName: node linkType: hard @@ -9900,7 +9974,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^10.0.0, got@npm:^10.7.0": +"got@npm:^10.7.0": version: 10.7.0 resolution: "got@npm:10.7.0" dependencies: @@ -9923,7 +9997,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^12.1.0": +"got@npm:^12.0.0, got@npm:^12.1.0": version: 12.5.3 resolution: "got@npm:12.5.3" dependencies: @@ -10118,7 +10192,7 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 @@ -10258,8 +10332,8 @@ __metadata: linkType: hard "hast-util-to-estree@npm:^2.0.0": - version: 2.1.0 - resolution: "hast-util-to-estree@npm:2.1.0" + version: 2.3.0 + resolution: "hast-util-to-estree@npm:2.3.0" dependencies: "@types/estree": ^1.0.0 "@types/estree-jsx": ^1.0.0 @@ -10273,10 +10347,10 @@ __metadata: mdast-util-mdxjs-esm: ^1.0.0 property-information: ^6.0.0 space-separated-tokens: ^2.0.0 - style-to-object: ^0.3.0 + style-to-object: ^0.4.1 unist-util-position: ^4.0.0 zwitch: ^2.0.0 - checksum: 1e14cfbfd57ff00ffda48cfef23bcebb6ebbea0385bb03d748a9432591c60f0a69428baaba82375a8cdbc924217ba9e75d30820b3641fdbe12ae62aa6c3f90a7 + checksum: 22b59f9ae1dc5f8dd6dd5d187640055fa8919cc98dd55484554a7e81cc7c0fb1b16221043e168a877ce177efdd4fc98df1db877be5c5a005324bb06e6b1b85d0 languageName: node linkType: hard @@ -10312,6 +10386,18 @@ __metadata: languageName: node linkType: hard +"hot-shots@npm:9.3.0": + version: 9.3.0 + resolution: "hot-shots@npm:9.3.0" + dependencies: + unix-dgram: 2.x + dependenciesMeta: + unix-dgram: + optional: true + checksum: bfc874abcb6da71afe0fc3b63c5872e5b7183c1bbea83e9c6e4a4d3fe399567420057a8a3e090fa0c6689b0cfb24d15d917e6f627ad8e022c45240f2d2b17f28 + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^2.0.1": version: 2.0.1 resolution: "html-encoding-sniffer@npm:2.0.1" @@ -10352,10 +10438,10 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard @@ -10579,12 +10665,12 @@ __metadata: languageName: node linkType: hard -"imagetools-core@npm:^3.2.3, imagetools-core@npm:^3.3.0": - version: 3.3.0 - resolution: "imagetools-core@npm:3.3.0" +"imagetools-core@npm:^3.2.3, imagetools-core@npm:^3.3.1": + version: 3.3.1 + resolution: "imagetools-core@npm:3.3.1" dependencies: - sharp: ^0.31.0 - checksum: b9c96e4fec86edfe36c1142cc8ea5058048c05a476933e9cf90ed35e292d1f7873e8d5c86ccf7dc58d4e6bb918e6774f5344aa038725d0640fb37cfc37a11b44 + sharp: ^0.31.3 + checksum: ee14995214a52c931884a28c5233d427f22c25115ad20a05717ce72b9e95ab65b91814a0ad068a74b73cd320f937ebfdd0812d04680cc863ec9fd1e22d952891 languageName: node linkType: hard @@ -10798,7 +10884,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.0, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -10808,7 +10894,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.0, is-array-buffer@npm:^3.0.1": +"is-array-buffer@npm:^3.0.1": version: 3.0.1 resolution: "is-array-buffer@npm:3.0.1" dependencies: @@ -10876,11 +10962,11 @@ __metadata: linkType: hard "is-builtin-module@npm:^3.1.0, is-builtin-module@npm:^3.2.0": - version: 3.2.0 - resolution: "is-builtin-module@npm:3.2.0" + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" dependencies: builtin-modules: ^3.3.0 - checksum: 0315751b898feff0646511c896e88b608a755c5025d0ce9a3ad25783de50be870e47dafb838cebbb06fbb2a948b209ea55348eee267836c9dd40d3a11ec717d3 + checksum: e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 languageName: node linkType: hard @@ -11676,9 +11762,9 @@ __metadata: linkType: hard "js-sdsl@npm:^4.1.4": - version: 4.2.0 - resolution: "js-sdsl@npm:4.2.0" - checksum: 2cd0885f7212afb355929d72ca105cb37de7e95ad6031e6a32619eaefa46735a7d0fb682641a0ba666e1519cb138fe76abc1eea8a34e224140c9d94c995171f1 + version: 4.3.0 + resolution: "js-sdsl@npm:4.3.0" + checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e languageName: node linkType: hard @@ -11872,21 +11958,15 @@ __metadata: languageName: node linkType: hard -"jsonwebtoken@npm:^8.5.1": - version: 8.5.1 - resolution: "jsonwebtoken@npm:8.5.1" +"jsonwebtoken@npm:^9.0.0": + version: 9.0.0 + resolution: "jsonwebtoken@npm:9.0.0" dependencies: jws: ^3.2.2 - lodash.includes: ^4.3.0 - lodash.isboolean: ^3.0.3 - lodash.isinteger: ^4.0.4 - lodash.isnumber: ^3.0.3 - lodash.isplainobject: ^4.0.6 - lodash.isstring: ^4.0.1 - lodash.once: ^4.0.0 + lodash: ^4.17.21 ms: ^2.1.1 - semver: ^5.6.0 - checksum: 93c9e3f23c59b758ac88ba15f4e4753b3749dfce7a6f7c40fb86663128a1e282db085eec852d4e0cbca4cefdcd3a8275ee255dbd08fcad0df26ad9f6e4cc853a + semver: ^7.3.8 + checksum: b9181cecf9df99f1dc0253f91ba000a1aa4d91f5816d1608c0dba61a5623726a0bfe200b51df25de18c1a6000825d231ad7ce2788aa54fd48dcb760ad9eb9514 languageName: node linkType: hard @@ -12317,20 +12397,6 @@ __metadata: languageName: node linkType: hard -"lodash.includes@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.includes@npm:4.3.0" - checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 - languageName: node - linkType: hard - -"lodash.isboolean@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isboolean@npm:3.0.3" - checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 - languageName: node - linkType: hard - "lodash.isempty@npm:^4.4.0": version: 4.4.0 resolution: "lodash.isempty@npm:4.4.0" @@ -12345,13 +12411,6 @@ __metadata: languageName: node linkType: hard -"lodash.isinteger@npm:^4.0.4": - version: 4.0.4 - resolution: "lodash.isinteger@npm:4.0.4" - checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 - languageName: node - linkType: hard - "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -12359,13 +12418,6 @@ __metadata: languageName: node linkType: hard -"lodash.isnumber@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isnumber@npm:3.0.3" - checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 - languageName: node - linkType: hard - "lodash.isplainobject@npm:^4.0.6": version: 4.0.6 resolution: "lodash.isplainobject@npm:4.0.6" @@ -12373,13 +12425,6 @@ __metadata: languageName: node linkType: hard -"lodash.isstring@npm:^4.0.1": - version: 4.0.1 - resolution: "lodash.isstring@npm:4.0.1" - checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 - languageName: node - linkType: hard - "lodash.kebabcase@npm:^4.1.1": version: 4.1.1 resolution: "lodash.kebabcase@npm:4.1.1" @@ -12415,13 +12460,6 @@ __metadata: languageName: node linkType: hard -"lodash.once@npm:^4.0.0": - version: 4.1.1 - resolution: "lodash.once@npm:4.1.1" - checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 - languageName: node - linkType: hard - "lodash.snakecase@npm:^4.1.1": version: 4.1.1 resolution: "lodash.snakecase@npm:4.1.1" @@ -12556,15 +12594,15 @@ __metadata: linkType: hard "logform@npm:^2.3.2, logform@npm:^2.4.0": - version: 2.4.2 - resolution: "logform@npm:2.4.2" + version: 2.5.0 + resolution: "logform@npm:2.5.0" dependencies: "@colors/colors": 1.5.0 fecha: ^4.2.0 ms: ^2.1.1 safe-stable-stringify: ^2.3.1 triple-beam: ^1.3.0 - checksum: 3d00f4e1ccaf0a86886aabbf66d1f1d207441d5b408f103457da6d64d055aee76c02af4b40a31ca77a1db4cbcdecb007149f731536c39cbd89b7b6ba3dda6d7b + checksum: 6234b90b0b7ed799eb22071a4051895b4a4524009af05e382e91dabcb3e40e461769bba492015a22c643698acc4b1195b27b36228dbdda9199433e9978722ff3 languageName: node linkType: hard @@ -12624,16 +12662,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^4.1.3": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: ^1.0.2 - yallist: ^2.1.2 - checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a - languageName: node - linkType: hard - "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -12643,14 +12671,14 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": version: 7.14.1 resolution: "lru-cache@npm:7.14.1" checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 languageName: node linkType: hard -"luxon@npm:^3.1.0": +"luxon@npm:^3.2.1": version: 3.2.1 resolution: "luxon@npm:3.2.1" checksum: 3fa3def2c5f5d3032b4c46220c4da8aeb467ac979888fc9d2557adcd22195f93516b4ad5909a75862bec8dc6ddc0953b0f38e6d2f4a8ab8450ddc531a83cf20d @@ -12823,19 +12851,19 @@ __metadata: linkType: hard "mdast-util-definitions@npm:^5.0.0": - version: 5.1.1 - resolution: "mdast-util-definitions@npm:5.1.1" + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" dependencies: "@types/mdast": ^3.0.0 "@types/unist": ^2.0.0 unist-util-visit: ^4.0.0 - checksum: f8025e2c35f6f8641528037abe18f492ef100e00a48c92cf78b7a313f9ccdb0e30c6aed0b40539767a3f425be09e78cb0f2f9bc4131fff41ea4664a1a7314a14 + checksum: 2544daccab744ea1ede76045c2577ae4f1cc1b9eb1ea51ab273fe1dca8db5a8d6f50f87759c0ce6484975914b144b7f40316f805cb9c86223a78db8de0b77bae languageName: node linkType: hard -"mdast-util-from-markdown@npm:^1.0.0": - version: 1.2.0 - resolution: "mdast-util-from-markdown@npm:1.2.0" +"mdast-util-from-markdown@npm:^1.0.0, mdast-util-from-markdown@npm:^1.1.0": + version: 1.3.0 + resolution: "mdast-util-from-markdown@npm:1.3.0" dependencies: "@types/mdast": ^3.0.0 "@types/unist": ^2.0.0 @@ -12849,89 +12877,91 @@ __metadata: micromark-util-types: ^1.0.0 unist-util-stringify-position: ^3.0.0 uvu: ^0.5.0 - checksum: fadc3521a3d95f4adbadad462ca27c28b3bfe08740ae158dc0c4a22329bf5593254d98b8fd4024ecad8c47c77ec275454dfacfb907ff1b98ff8f5de25c716d40 + checksum: cc971d1ad381150f6504fd753fbcffcc64c0abb527540ce343625c2bba76104505262122ef63d14ab66eb47203f323267017c6d09abfa8535ee6a8e14069595f languageName: node linkType: hard "mdast-util-mdx-expression@npm:^1.0.0": - version: 1.3.1 - resolution: "mdast-util-mdx-expression@npm:1.3.1" + version: 1.3.2 + resolution: "mdast-util-mdx-expression@npm:1.3.2" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 mdast-util-from-markdown: ^1.0.0 mdast-util-to-markdown: ^1.0.0 - checksum: 456d59a616a274416f5b02bce64bf5245c4b7247927b4539f4db35bec5674352580fb91f51ed11f1a769d17330c44eec7ca481faf81ee839c2efe71309195225 + checksum: e4c90f26deaa5eb6217b0a9af559a80de41da02ab3bcd864c56bed3304b056ae703896e9876bc6ded500f4aff59f4de5cbf6a4b109a5ba408f2342805fe6dc05 languageName: node linkType: hard "mdast-util-mdx-jsx@npm:^2.0.0": - version: 2.1.0 - resolution: "mdast-util-mdx-jsx@npm:2.1.0" + version: 2.1.1 + resolution: "mdast-util-mdx-jsx@npm:2.1.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 ccount: ^2.0.0 + mdast-util-from-markdown: ^1.1.0 mdast-util-to-markdown: ^1.3.0 parse-entities: ^4.0.0 stringify-entities: ^4.0.0 unist-util-remove-position: ^4.0.0 unist-util-stringify-position: ^3.0.0 vfile-message: ^3.0.0 - checksum: 40520a299449e4074ff1097789c7372220c9751e0de151566dcc133118d748c2231e29bafcbbf2c3beb3a917a85cfbbaa9195dadfb4122603bad479f93a61dbe + checksum: c2b576bb1a91cbc578ae4900a2556e949dd447ad8a791f43d16df7aa2ff26b2bf981f18ba642d1c9b6bb96fb6a43afc6c0ffebf4a80ad55e2263db56f9e109d8 languageName: node linkType: hard "mdast-util-mdx@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-mdx@npm:2.0.0" + version: 2.0.1 + resolution: "mdast-util-mdx@npm:2.0.1" dependencies: + mdast-util-from-markdown: ^1.0.0 mdast-util-mdx-expression: ^1.0.0 mdast-util-mdx-jsx: ^2.0.0 mdast-util-mdxjs-esm: ^1.0.0 - checksum: 4744bfbbd337c2a99a3ef339673c549a670d6496e0d3a6d747d2451e112d6fef7d27613549b0bd62a5f92ea7919e3bacd78c731e8a3d80552a09b80896554cf6 + mdast-util-to-markdown: ^1.0.0 + checksum: 7303149230a26e524e319833b782bffca94e49cdab012996618701259bd056e014ca22a35d25ffa8880ba9064ee126a2a002f01e5c90a31ca726339ed775875e languageName: node linkType: hard "mdast-util-mdxjs-esm@npm:^1.0.0": - version: 1.3.0 - resolution: "mdast-util-mdxjs-esm@npm:1.3.0" + version: 1.3.1 + resolution: "mdast-util-mdxjs-esm@npm:1.3.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 mdast-util-from-markdown: ^1.0.0 mdast-util-to-markdown: ^1.0.0 - checksum: df3902eb884b4f83cebbfe33647f51938b36db54d4539afd884dc83ff43052676cd48df4c382dc986335290f5c691576d1a848da8ffb671b69ade29fe1c317e0 + checksum: ee78a4f58adfec38723cbc920f05481201ebb001eff3982f2d0e5f5ce5c75685e732e9d361ad4a1be8b936b4e5de0f2599cb96b92ad4bd92698ac0c4a09bbec3 languageName: node linkType: hard "mdast-util-phrasing@npm:^3.0.0": - version: 3.0.0 - resolution: "mdast-util-phrasing@npm:3.0.0" + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" dependencies: "@types/mdast": ^3.0.0 unist-util-is: ^5.0.0 - checksum: 3cf0812c7f1a2a7f58d30df42b6172c3e79e3dacda34db216ee6e12e3caa7abfb9801626274e41627321cd0fcfc8e526c999fd96e1c0c086055a83ca7e9dddf7 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 languageName: node linkType: hard "mdast-util-to-hast@npm:^12.1.0": - version: 12.2.5 - resolution: "mdast-util-to-hast@npm:12.2.5" + version: 12.3.0 + resolution: "mdast-util-to-hast@npm:12.3.0" dependencies: "@types/hast": ^2.0.0 "@types/mdast": ^3.0.0 mdast-util-definitions: ^5.0.0 micromark-util-sanitize-uri: ^1.1.0 trim-lines: ^3.0.0 - unist-builder: ^3.0.0 unist-util-generated: ^2.0.0 unist-util-position: ^4.0.0 unist-util-visit: ^4.0.0 - checksum: 06337d66b369d9bf16f484cb31943c4e3c0ea9c20138589c256ad3400122fc9d64baf4d087349c042d37074408a24a4856e9ac45cb3356647bbe24d6dcdd42e1 + checksum: ea40c9f07dd0b731754434e81c913590c611b1fd753fa02550a1492aadfc30fb3adecaf62345ebb03cea2ddd250c15ab6e578fffde69c19955c9b87b10f2a9bb languageName: node linkType: hard @@ -12952,9 +12982,11 @@ __metadata: linkType: hard "mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": - version: 3.1.0 - resolution: "mdast-util-to-string@npm:3.1.0" - checksum: f42ddd4e22f2215a75715b92ea6e3149c4ba356e7781d7b94fc86ded1c79cec3f986afeecef3a4a80068c9b224a6520099783a12146b957de24f020a3e47dd29 + version: 3.1.1 + resolution: "mdast-util-to-string@npm:3.1.1" + dependencies: + "@types/mdast": ^3.0.0 + checksum: 5e9375e1757ebf2950e122ef3538e4257ed2b6f43ab1d3e9c45db5dd5d5b5d14fd041490afcde00934f1cdb4b99877597ae04eb810d313ec7b38c6009058dddd languageName: node linkType: hard @@ -13090,8 +13122,8 @@ __metadata: linkType: hard "micromark-extension-mdx-expression@npm:^1.0.0": - version: 1.0.3 - resolution: "micromark-extension-mdx-expression@npm:1.0.3" + version: 1.0.4 + resolution: "micromark-extension-mdx-expression@npm:1.0.4" dependencies: micromark-factory-mdx-expression: ^1.0.0 micromark-factory-space: ^1.0.0 @@ -13100,7 +13132,7 @@ __metadata: micromark-util-symbol: ^1.0.0 micromark-util-types: ^1.0.0 uvu: ^0.5.0 - checksum: ef4b4137894624a6754b951d3cb7abb20951ca7b37f9ad8a50d2e2b95d0cf880258d71296bfac6be4ff83a8d137b6b657ae852bb6f11f4ca11e5e6d62f1b025d + checksum: d19a31f9813dd5d4ad96b99e35b7c48067e69d75f92ec670dad5242857fb7688ba8b7c6a15616797b5df25dd89fd3b54916f93cb60ce2cfe97aca84739b45954 languageName: node linkType: hard @@ -13186,8 +13218,8 @@ __metadata: linkType: hard "micromark-factory-mdx-expression@npm:^1.0.0": - version: 1.0.6 - resolution: "micromark-factory-mdx-expression@npm:1.0.6" + version: 1.0.7 + resolution: "micromark-factory-mdx-expression@npm:1.0.7" dependencies: micromark-factory-space: ^1.0.0 micromark-util-character: ^1.0.0 @@ -13197,7 +13229,7 @@ __metadata: unist-util-position-from-estree: ^1.0.0 uvu: ^0.5.0 vfile-message: ^3.0.0 - checksum: 7b69f0e77664e9820639cf23c4f01d43aa0e7abd88021c3db428435e3a5a1f9446f8dc5c2a6ed4ac16c6495ca51937609a5c98ff59a62c54be382c2725500b39 + checksum: e7893f21576bcb7755d341e45d3ff202ba466fa2278c6f31ae4db4002a28d6d13a4efad331ef46223372ec2010d9bc2ff27e2cd57a4580be6491e59ca21ba59d languageName: node linkType: hard @@ -13305,8 +13337,8 @@ __metadata: linkType: hard "micromark-util-events-to-acorn@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-events-to-acorn@npm:1.2.0" + version: 1.2.1 + resolution: "micromark-util-events-to-acorn@npm:1.2.1" dependencies: "@types/acorn": ^4.0.0 "@types/estree": ^1.0.0 @@ -13315,7 +13347,7 @@ __metadata: uvu: ^0.5.0 vfile-location: ^4.0.0 vfile-message: ^3.0.0 - checksum: 422285d68c8e8a57042bf31eefa55a136eec5c1fb021278a7c25d60a000c4e3ddaf140c94065a270499281f79ff59999468b850a461f22b5731fc47eccb2c4c2 + checksum: baf1cad66d860980cf20963f641c48c434e5be5802beabefdda21be136ae037845dd236b5e9ce5cf9409bf1b9ba8b4131a396d3a5bfa12098dae13e4a9724f2b languageName: node linkType: hard @@ -13462,6 +13494,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 + languageName: node + linkType: hard + "mimic-fn@npm:^1.0.0": version: 1.2.0 resolution: "mimic-fn@npm:1.2.0" @@ -13545,12 +13586,21 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": - version: 5.1.2 - resolution: "minimatch@npm:5.1.2" +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" dependencies: brace-expansion: ^2.0.1 - checksum: 32ffda25b9fb8270a1c1beafdb7489dc0e411af553495136509a945691f63c9b6b000eeeaaf8bffe3efa609c1d6d3bc0f5a106f6c3443b5c05da649100ded964 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimatch@npm:^6.0.0": + version: 6.1.6 + resolution: "minimatch@npm:6.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 707b026e0adc610be6c02f24173d84811e5b8cc2e434881e47ef00a72be5fbea9323b7158d7bf065782b1e1d5c50d7d80cd72f2602255f2fddfb1d2f02e9092c languageName: node linkType: hard @@ -13633,11 +13683,9 @@ __metadata: linkType: hard "minipass@npm:^4.0.0": - version: 4.0.0 - resolution: "minipass@npm:4.0.0" - dependencies: - yallist: ^4.0.0 - checksum: 7a609afbf394abfcf9c48e6c90226f471676c8f2a67f07f6838871afb03215ede431d1433feffe1b855455bcb13ef0eb89162841b9796109d6fed8d89790f381 + version: 4.0.2 + resolution: "minipass@npm:4.0.2" + checksum: 2e4f4caaf85a45c01c6042adc43b5111a6113f62e300acf1db3b193ac3ec6e955bc893d6d8a08635598771a55a0f60487dcac59a1ac39557eb524295d4778c9e languageName: node linkType: hard @@ -13841,11 +13889,20 @@ __metadata: linkType: hard "named-placeholders@npm:^1.1.2": - version: 1.1.2 - resolution: "named-placeholders@npm:1.1.2" + version: 1.1.3 + resolution: "named-placeholders@npm:1.1.3" dependencies: - lru-cache: ^4.1.3 - checksum: c9317d1b479d6733b3baedfde209c6c866cf387c2d625837f93355fdb6a9055b1e8180b883fe00bcb20edb3ba4dd21128ec2f1ed8cb884385cef7698cbcadcc4 + lru-cache: ^7.14.1 + checksum: 7834adc91e92ae1b9c4413384e3ccd297de5168bb44017ff0536705ddc4db421723bd964607849265feb3f6ded390f84cf138e5925f22f7c13324f87a803dc73 + languageName: node + linkType: hard + +"nan@npm:^2.16.0": + version: 2.17.0 + resolution: "nan@npm:2.17.0" + dependencies: + node-gyp: latest + checksum: ec609aeaf7e68b76592a3ba96b372aa7f5df5b056c1e37410b0f1deefbab5a57a922061e2c5b369bae9c7c6b5e6eecf4ad2dac8833a1a7d3a751e0a7c7f849ed languageName: node linkType: hard @@ -13920,16 +13977,16 @@ __metadata: linkType: hard "netlify-cli@npm:^12.0.11": - version: 12.6.0 - resolution: "netlify-cli@npm:12.6.0" + version: 12.10.0 + resolution: "netlify-cli@npm:12.10.0" dependencies: "@fastify/static": ^6.6.0 - "@netlify/build": ^29.4.0 - "@netlify/config": ^20.3.0 - "@netlify/edge-bundler": ^8.0.0 - "@netlify/framework-info": ^9.5.3 + "@netlify/build": ^29.5.2 + "@netlify/config": ^20.3.2 + "@netlify/edge-bundler": ^8.4.0 + "@netlify/framework-info": ^9.7.1 "@netlify/local-functions-proxy": ^1.1.1 - "@netlify/zip-it-and-ship-it": ^8.2.0 + "@netlify/zip-it-and-ship-it": ^8.4.1 "@octokit/rest": ^19.0.0 ansi-escapes: ^5.0.0 ansi-styles: ^5.0.0 @@ -13959,6 +14016,7 @@ __metadata: execa: ^5.0.0 express: ^4.17.1 express-logging: ^1.1.1 + extract-zip: ^2.0.1 fastify: ^4.10.2 find-up: ^5.0.0 flush-write-stream: ^2.0.0 @@ -13980,7 +14038,7 @@ __metadata: is-plain-obj: ^3.0.0 is-wsl: ^2.2.0 isexe: ^2.0.0 - jsonwebtoken: ^8.5.1 + jsonwebtoken: ^9.0.0 jwt-decode: ^3.0.0 lambda-local: ^2.0.1 listr: ^0.14.3 @@ -13990,11 +14048,11 @@ __metadata: log-update: ^5.0.0 minimist: ^1.2.5 multiparty: ^4.2.1 - netlify: ^13.1.0 - netlify-headers-parser: ^7.1.0 + netlify: ^13.1.2 + netlify-headers-parser: ^7.1.1 netlify-onegraph-internal: 0.10.1 - netlify-redirect-parser: ^14.1.0 - netlify-redirector: ^0.3.1 + netlify-redirect-parser: ^14.1.1 + netlify-redirector: ^0.4.0 node-fetch: ^2.6.0 node-version-alias: ^1.0.1 ora: ^5.0.0 @@ -14029,13 +14087,13 @@ __metadata: bin: netlify: bin/run.mjs ntl: bin/run.mjs - checksum: a555e4ca56f681f2c974f148f0164547c5c233531baa38ee7c9f7b173f7b92c163e75551626c5b736b2d744015dc4f79fcbc9231435e96d97a0d4923ad16af40 + checksum: 4410476f0b9bacd748f27e271262b12550112afeb68787d9ff54fc5a051baaa6c5cac67d06dae26d8a93256b30f599454983e00e7e1cec2fcfd22abfa392f64e languageName: node linkType: hard -"netlify-headers-parser@npm:^7.1.0": - version: 7.1.0 - resolution: "netlify-headers-parser@npm:7.1.0" +"netlify-headers-parser@npm:^7.1.1": + version: 7.1.1 + resolution: "netlify-headers-parser@npm:7.1.1" dependencies: escape-string-regexp: ^5.0.0 fast-safe-stringify: ^2.0.7 @@ -14043,7 +14101,7 @@ __metadata: map-obj: ^5.0.0 path-exists: ^5.0.0 toml: ^3.0.0 - checksum: aee5eee2490e081b8a7ab3ff8bafd19041361574e71a80ad37e92d35b346df6d713dffe7bde85475dda888930817de05538b644f52db0345e69cbdba4b975004 + checksum: 675ca0429400042f9786a402927cb49d26540cd644ae9f7910dd1d8d6980938a2404c4c83186808dad4c4fffc878386e5e373391d3b225f080825053df9a426b languageName: node linkType: hard @@ -14059,38 +14117,38 @@ __metadata: languageName: node linkType: hard -"netlify-redirect-parser@npm:^14.1.0": - version: 14.1.0 - resolution: "netlify-redirect-parser@npm:14.1.0" +"netlify-redirect-parser@npm:^14.1.1": + version: 14.1.1 + resolution: "netlify-redirect-parser@npm:14.1.1" dependencies: fast-safe-stringify: ^2.1.1 filter-obj: ^3.0.0 is-plain-obj: ^4.0.0 path-exists: ^5.0.0 toml: ^3.0.0 - checksum: 8a5f9a501d18e674726f5dfdd30d6c6cf171499a05ce3a7773869a72e5b1811e552f5a7c7258e83fdde60ddd2a36e7b183c9827ca240dd2fa91ece9a28aa7b58 + checksum: adc9eff7fd022843a4c877c8f8c43040cee2490299ec2ef2eb884746e142dc4ee7122734e5f45c4d5d14be46b188dc31f9f10e1b838d6ca72d27a11612758f46 languageName: node linkType: hard -"netlify-redirector@npm:^0.3.1": - version: 0.3.1 - resolution: "netlify-redirector@npm:0.3.1" - checksum: 057322f8ab369f6e4a579da40ce741f0e434f1db155c75aaf5a9314265e1886c51f2fcfee12719c170e2c86c13eab2edfd3d8ffa6e1132199240c9ea7e689c89 +"netlify-redirector@npm:^0.4.0": + version: 0.4.0 + resolution: "netlify-redirector@npm:0.4.0" + checksum: d249bad5e2a5bf1825a131ae7b1179b89968830f711112b7da7f86270c30789fd9221d20acc34b79a966148d37489a6168e6d38099429fb60b01100e22ce6d66 languageName: node linkType: hard -"netlify@npm:^13.1.0": - version: 13.1.0 - resolution: "netlify@npm:13.1.0" +"netlify@npm:^13.1.2": + version: 13.1.2 + resolution: "netlify@npm:13.1.2" dependencies: - "@netlify/open-api": ^2.12.0 + "@netlify/open-api": ^2.13.0 lodash-es: ^4.17.21 micro-api-client: ^3.3.0 node-fetch: ^3.0.0 omit.js: ^2.0.2 p-wait-for: ^4.0.0 qs: ^6.9.6 - checksum: ad03da793b1c73d83984917ba68570b0da123133a94848363dfa07500fd9dba385b2b1fb12184937d1686b529af5f4b0cf2f6811b40bc747693d7e1221cf8eda + checksum: 70511ff1845bbffc2d9944e86f2d519160181a35f751ebe8a952bb3dced80f84b0089f11e351c2ea9f642545a40071c6262d006b5bfe353cb8de5e47eb212830 languageName: node linkType: hard @@ -14104,20 +14162,20 @@ __metadata: linkType: hard "node-abi@npm:^3.3.0": - version: 3.30.0 - resolution: "node-abi@npm:3.30.0" + version: 3.32.0 + resolution: "node-abi@npm:3.32.0" dependencies: semver: ^7.3.5 - checksum: f285efcea312e52d8763cfad7d434b31c11586e5efdf9f239c214a582557777453a8358d338442f02490d6c5289b0fc0eeed3056a740a3ebe6c79334af3b1739 + checksum: 321fd4b174908fa2b33a411f92dd878b7752547c2bdf516cd2ee6a9dbedef4981b8227e280db5e76db946fa7321038f9996e44147f8d62b9407ed05748393615 languageName: node linkType: hard "node-addon-api@npm:^5.0.0": - version: 5.0.0 - resolution: "node-addon-api@npm:5.0.0" + version: 5.1.0 + resolution: "node-addon-api@npm:5.1.0" dependencies: node-gyp: latest - checksum: 7c5e2043ac37f6108784d94ed73a44ae6d3e68eb968de60680922fc6bc3d17fa69448c0feb4e0c9d3f4c74a0324822e566a8340a56916d9d6f23cb3e85620334 + checksum: 2508bd2d2981945406243a7bd31362fc7af8b70b8b4d65f869c61731800058fb818cc2fd36c8eac714ddd0e568cc85becf5e165cebbdf7b5024d5151bbc75ea1 languageName: node linkType: hard @@ -14140,8 +14198,8 @@ __metadata: linkType: hard "node-fetch@npm:^2.3.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" + version: 2.6.9 + resolution: "node-fetch@npm:2.6.9" dependencies: whatwg-url: ^5.0.0 peerDependencies: @@ -14149,7 +14207,7 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 languageName: node linkType: hard @@ -14184,10 +14242,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.6": - version: 2.0.8 - resolution: "node-releases@npm:2.0.8" - checksum: b1ab02c0d5d8e081bf9537232777a7a787dc8fef07f70feabe70a344599b220fe16462f746ac30f3eed5a58549445ad69368964d12a1f8b3b764f6caab7ba34a +"node-releases@npm:^2.0.8": + version: 2.0.10 + resolution: "node-releases@npm:2.0.10" + checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc languageName: node linkType: hard @@ -14455,9 +14513,9 @@ __metadata: linkType: hard "object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db languageName: node linkType: hard @@ -15277,12 +15335,13 @@ __metadata: linkType: hard "periscopic@npm:^3.0.0": - version: 3.0.4 - resolution: "periscopic@npm:3.0.4" + version: 3.1.0 + resolution: "periscopic@npm:3.1.0" dependencies: + "@types/estree": ^1.0.0 estree-walker: ^3.0.0 is-reference: ^3.0.0 - checksum: 0920ea1b0294c2463b7df858d7f895d0a69f15ec5c7b93d63749e7a8f6d9c065853ebea701305f1756f70310633832cf5c90e43e9363cce51abec44cc2f5c188 + checksum: 2153244352e58a0d76e7e8d9263e66fe74509495f809af388da20045fb30aa3e93f2f94468dc0b9166ecf206fcfc0d73d2c7641c6fbedc07b1de858b710142cb languageName: node linkType: hard @@ -15362,8 +15421,8 @@ __metadata: linkType: hard "pino@npm:^8.5.0": - version: 8.8.0 - resolution: "pino@npm:8.8.0" + version: 8.9.0 + resolution: "pino@npm:8.9.0" dependencies: atomic-sleep: ^1.0.0 fast-redact: ^3.1.1 @@ -15378,7 +15437,7 @@ __metadata: thread-stream: ^2.0.0 bin: pino: bin.js - checksum: 69256469221b332776333069d637100053eb15dc7baa3f95897d7864bf2e6fd99f15cfd9cfc94b56e7b00da2e6b349c49affcff1abaca9a3d4b7ba63ff86b4f0 + checksum: c7eb9345280383b9af4661b34ae2156c94e535eb33c8deaf525e00212fa9e4f0b9797cdeda17b80b333325d8a0aec6e7566618071506e944736822022b671fa8 languageName: node linkType: hard @@ -15958,11 +16017,11 @@ __metadata: linkType: hard "prettier@npm:^2.8.0": - version: 2.8.2 - resolution: "prettier@npm:2.8.2" + version: 2.8.3 + resolution: "prettier@npm:2.8.3" bin: prettier: bin-prettier.js - checksum: 740c56c2128d587d656ea1dde9bc9c3503dfc94db4f3ac387259215eeb2e216680bdad9d18a0c9feecc6b42cfa188d6fa777df4c36c1d00cedd4199074fbfbd2 + checksum: 92f2ceb522d454370e02082aa74ad27388672f7cee8975028b59517c069fe643bdc73e322675c8faf2ff173d7a626d1a6389f26b474000308e793aa25fff46e5 languageName: node linkType: hard @@ -16128,13 +16187,6 @@ __metadata: languageName: node linkType: hard -"pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 - languageName: node - linkType: hard - "psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -16170,9 +16222,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 languageName: node linkType: hard @@ -17076,8 +17128,8 @@ __metadata: linkType: hard "rollup@npm:^3.2.3, rollup@npm:^3.7.0": - version: 3.9.1 - resolution: "rollup@npm:3.9.1" + version: 3.14.0 + resolution: "rollup@npm:3.14.0" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -17085,7 +17137,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 929cfab6b8bb2e20c28d7a4c3909b53729f4a63d8cc14f3b1a217d5f8e550737ee0903124ba58a1f2e7efd45c596e044a968aa379411731d0e76c910621d7d3f + checksum: 48f4da224753b8022529256243b74b3f6f41d9b4358ba079ac42f2a2cf07e4bd01b5d94579338194238e3c575487974ca508e144cf6195123293e7fdf82506cb languageName: node linkType: hard @@ -17229,9 +17281,9 @@ __metadata: linkType: hard "secure-json-parse@npm:^2.5.0": - version: 2.6.0 - resolution: "secure-json-parse@npm:2.6.0" - checksum: 6a10529b095cd2d4b7f3ae0a7f9877b67f6a206ffda01ba6fd29012c94b77197d6be3aea21f950120d3ac69b98b1251870554a504d47ab0e32f45531ebe92a2c + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: d9d7d5a01fc6db6115744ba23cf9e67ecfe8c524d771537c062ee05ad5c11b64c730bc58c7f33f60bd6877f96b86f0ceb9ea29644e4040cb757f6912d4dd6737 languageName: node linkType: hard @@ -17294,7 +17346,7 @@ __metadata: languageName: node linkType: hard -"send@npm:0.18.0, send@npm:^0.18.0": +"send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" dependencies: @@ -17367,7 +17419,7 @@ __metadata: languageName: node linkType: hard -"sharp@npm:^0.31.0": +"sharp@npm:^0.31.3": version: 0.31.3 resolution: "sharp@npm:0.31.3" dependencies: @@ -17882,13 +17934,6 @@ __metadata: languageName: node linkType: hard -"statsd-client@npm:0.4.7": - version: 0.4.7 - resolution: "statsd-client@npm:0.4.7" - checksum: 05d2956513b91a9ccc0d00b01e8eda708fad0bd0a044a55beeb813c65df7fd5ede6b4a33c0d6526b6afb8873de2ab9c62303e1e9282f08dac7b5c72e9ac7fc32 - languageName: node - linkType: hard - "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -17903,6 +17948,15 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + "stream-to-buffer@npm:^0.1.0": version: 0.1.0 resolution: "stream-to-buffer@npm:0.1.0" @@ -18192,12 +18246,12 @@ __metadata: languageName: node linkType: hard -"style-to-object@npm:^0.3.0": - version: 0.3.0 - resolution: "style-to-object@npm:0.3.0" +"style-to-object@npm:^0.4.1": + version: 0.4.1 + resolution: "style-to-object@npm:0.4.1" dependencies: inline-style-parser: 0.1.1 - checksum: 4d7084015207f2a606dfc10c29cb5ba569f2fe8005551df7396110dd694d6ff650f2debafa95bd5d147dfb4ca50f57868e2a7f91bf5d11ef734fe7ccbd7abf59 + checksum: 2ea213e98eed21764ae1d1dc9359231a9f2d480d6ba55344c4c15eb275f0809f1845786e66d4caf62414a5cc8f112ce9425a58d251c77224060373e0db48f8c2 languageName: node linkType: hard @@ -18591,11 +18645,11 @@ __metadata: linkType: hard "thread-stream@npm:^2.0.0": - version: 2.2.0 - resolution: "thread-stream@npm:2.2.0" + version: 2.3.0 + resolution: "thread-stream@npm:2.3.0" dependencies: real-require: ^0.2.0 - checksum: b7f0ee166ed17ac54700a0b6fc291967c97785b458ff54efe5431a7281bb52d1163e6ec550a614f2a47f0f02de5b35a342bd5acd215af23030938c64859152b2 + checksum: e9ea58f9f36320165b41c2aae5c439bf68bd3575eb533c458483d8b290e31d519979e351408c7d6e248711611434332c2a3aae2165650b028cc3eb9b1052ac16 languageName: node linkType: hard @@ -18674,9 +18728,9 @@ __metadata: linkType: hard "tinycolor2@npm:^1.1.2": - version: 1.5.2 - resolution: "tinycolor2@npm:1.5.2" - checksum: 9df1ea9a986b03f1aebb1c1ac17fc561e358493f61b56d73ef2d7207fe7bd74eb71cf745b70487b2b5bb1ce33c9e8af7101088bb0b5fc532eaa1f9d1eda4ef31 + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 6df4d07fceeedc0a878d7bac47e2cd47c1ceeb1078340a9eb8a295bc0651e17c750f73d47b3028d829f30b85c15e0572c0fd4142083e4c21a30a597e47f47230 languageName: node linkType: hard @@ -18962,9 +19016,9 @@ __metadata: linkType: hard "tslib@npm:^2.3.1, tslib@npm:^2.4.0": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca + version: 2.5.0 + resolution: "tslib@npm:2.5.0" + checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 languageName: node linkType: hard @@ -19130,7 +19184,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:4.9.4, typescript@npm:^4.5.5, typescript@npm:^4.6.4, typescript@npm:^4.8.4": +"typescript@npm:4.9.4": version: 4.9.4 resolution: "typescript@npm:4.9.4" bin: @@ -19140,6 +19194,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^4.5.5, typescript@npm:^4.6.4, typescript@npm:^4.8.4": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + languageName: node + linkType: hard + "typescript@patch:typescript@4.8.4#~builtin": version: 4.8.4 resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=0102e9" @@ -19150,7 +19214,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@4.9.4#~builtin, typescript@patch:typescript@^4.5.5#~builtin, typescript@patch:typescript@^4.6.4#~builtin, typescript@patch:typescript@^4.8.4#~builtin": +"typescript@patch:typescript@4.9.4#~builtin": version: 4.9.4 resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=d73830" bin: @@ -19160,6 +19224,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^4.5.5#~builtin, typescript@patch:typescript@^4.6.4#~builtin, typescript@patch:typescript@^4.8.4#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=d73830" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 2eee5c37cad4390385db5db5a8e81470e42e8f1401b0358d7390095d6f681b410f2c4a0c496c6ff9ebd775423c7785cdace7bcdad76c7bee283df3d9718c0f20 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4, uglify-js@npm:^3.5.1": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -19207,7 +19281,7 @@ __metadata: languageName: node linkType: hard -"undici@npm:5.14.0, undici@npm:^5.14.0": +"undici@npm:5.14.0": version: 5.14.0 resolution: "undici@npm:5.14.0" dependencies: @@ -19216,6 +19290,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.14.0": + version: 5.18.0 + resolution: "undici@npm:5.18.0" + dependencies: + busboy: ^1.6.0 + checksum: 74e0f357c376c745fcca612481a5742866ae36086ad387e626255f4c4a15fc5357d9d0fa4355271b6a633d50f5556c3e85720844680c44861c66e23afca7245f + languageName: node + linkType: hard + "unicode-properties@npm:^1.3.1": version: 1.4.1 resolution: "unicode-properties@npm:1.4.1" @@ -19299,84 +19382,75 @@ __metadata: languageName: node linkType: hard -"unist-builder@npm:^3.0.0": - version: 3.0.0 - resolution: "unist-builder@npm:3.0.0" - dependencies: - "@types/unist": ^2.0.0 - checksum: 80459ee3c2ece90bbc4f4b4faeed524d144c1a09ee07ff3e9004648d9b71a652e80a3b3ef60311a1e92f6ab915caf27c6f08062b5f8c84fa725bc0d7c5759e84 - languageName: node - linkType: hard - "unist-util-generated@npm:^2.0.0": - version: 2.0.0 - resolution: "unist-util-generated@npm:2.0.0" - checksum: 3a806793fa24a75190c217740ce706340d6cb0d51eff677134253d628f8e4355ebd8a243fe8045c583463f6bebfd50f902d653161da87c1359fcd1a14b99c8e0 + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 6221ad0571dcc9c8964d6b054f39ef6571ed59cc0ce3e88ae97ea1c70afe76b46412a5ffaa91f96814644ac8477e23fb1b477d71f8d70e625728c5258f5c0d99 languageName: node linkType: hard "unist-util-is@npm:^5.0.0": - version: 5.1.1 - resolution: "unist-util-is@npm:5.1.1" - checksum: e8743a19a304d8a8f5684f3e5ddb5546f2655847b42123687277d76566a2aba89beb7b4a8a9e9ebc4d904cd1cecc285356d7923d973a43cfc19a1e10ff6bdee4 + version: 5.2.0 + resolution: "unist-util-is@npm:5.2.0" + checksum: b80debe1ce5d40a8d685c510f597e5c8b8f7089540e9e268bda1b05bcce735c10bf36d5b0e4ecded50c63fa43b8a11b0e4b784beecf1559f153a2f2855e8526c languageName: node linkType: hard "unist-util-position-from-estree@npm:^1.0.0, unist-util-position-from-estree@npm:^1.1.0": - version: 1.1.1 - resolution: "unist-util-position-from-estree@npm:1.1.1" + version: 1.1.2 + resolution: "unist-util-position-from-estree@npm:1.1.2" dependencies: "@types/unist": ^2.0.0 - checksum: 63808bdcb8b49afa5231712d95b586fe877859ee03d23adb47485c30222007a5af55e95d103d4af51d1d16376aaa5a58fa985a08d63727c38b1515873df8b79b + checksum: e3f4060e2a9e894c6ed63489c5a7cb58ff282e5dae9497cbc2073033ca74d6e412af4d4d342c97aea08d997c908b8bce2fe43a2062aafc2bb3f266533016588b languageName: node linkType: hard "unist-util-position@npm:^4.0.0": - version: 4.0.3 - resolution: "unist-util-position@npm:4.0.3" + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" dependencies: "@types/unist": ^2.0.0 - checksum: 0d89973628d40f19345cbcc50008f7f56d411afa54434bbe6c224b22d26aaf9d4500da2de363f1f01945acab1f1c31920c514253149eb546ff9b8bbc1ea94209 + checksum: e7487b6cec9365299695e3379ded270a1717074fa11fd2407c9b934fb08db6fe1d9077ddeaf877ecf1813665f8ccded5171693d3d9a7a01a125ec5cdd5e88691 languageName: node linkType: hard "unist-util-remove-position@npm:^4.0.0": - version: 4.0.1 - resolution: "unist-util-remove-position@npm:4.0.1" + version: 4.0.2 + resolution: "unist-util-remove-position@npm:4.0.2" dependencies: "@types/unist": ^2.0.0 unist-util-visit: ^4.0.0 - checksum: 7d2808662ac65f2b2f615822b78060419f738fb3b074b10cec77c596ea966b8f5c47553d2d322822a5975c49d2b21cdd64c198ae9fb02a9d54d1afa6342cdd6a + checksum: 989831da913d09a82a99ed9b47b78471b6409bde95942cde47e09da54b7736516f17e3c7e026af468684c1efcec5fb52df363381b2f9dc7fd96ce791c5a2fa4a languageName: node linkType: hard "unist-util-stringify-position@npm:^3.0.0": - version: 3.0.2 - resolution: "unist-util-stringify-position@npm:3.0.2" + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" dependencies: "@types/unist": ^2.0.0 - checksum: 2dfd7a0fb2a55e99cc319c3bf7f9f1f73ed652978fa70d19117faa7245d20f21738ec926ecc47f341705ca1bb157e87ced0b6bb5ecaa666bd2ae6b2510d6a671 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 languageName: node linkType: hard "unist-util-visit-parents@npm:^5.1.1": - version: 5.1.1 - resolution: "unist-util-visit-parents@npm:5.1.1" + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" dependencies: "@types/unist": ^2.0.0 unist-util-is: ^5.0.0 - checksum: c699d18f5b26461dee37612b84c243fd5457c98f4c0540d9ba8bee05062aece5f3b4fb1af6b07423ce6750d8926e8c01fc2b1a4de1e54925ef6795c177ed8e18 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa languageName: node linkType: hard "unist-util-visit@npm:^4.0.0": - version: 4.1.1 - resolution: "unist-util-visit@npm:4.1.1" + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" dependencies: "@types/unist": ^2.0.0 unist-util-is: ^5.0.0 unist-util-visit-parents: ^5.1.1 - checksum: c4a63734b0a5b439c62d20901bb472bdafdbbcd80c383e254aedeb98b23d0bae815a331e776ce7d63ea3c8018a54318abb8709d07cdf7dd094f79b2f07bb39f0 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee languageName: node linkType: hard @@ -19408,6 +19482,17 @@ __metadata: languageName: node linkType: hard +"unix-dgram@npm:2.x": + version: 2.0.6 + resolution: "unix-dgram@npm:2.0.6" + dependencies: + bindings: ^1.5.0 + nan: ^2.16.0 + node-gyp: latest + checksum: 0ab238726fd69e0a0174664225117b4575b40bd5df546c50a01de2fadf9da602c385ec8ff2f159607a127a6e7bf67628931903d43d286db27460b5abbe8cf8ac + languageName: node + linkType: hard + "unixify@npm:^1.0.0": version: 1.0.0 resolution: "unixify@npm:1.0.0" @@ -19441,7 +19526,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.9": +"update-browserslist-db@npm:^1.0.10": version: 1.0.10 resolution: "update-browserslist-db@npm:1.0.10" dependencies: @@ -19703,12 +19788,12 @@ __metadata: linkType: hard "vfile-location@npm:^4.0.0": - version: 4.0.1 - resolution: "vfile-location@npm:4.0.1" + version: 4.1.0 + resolution: "vfile-location@npm:4.1.0" dependencies: "@types/unist": ^2.0.0 vfile: ^5.0.0 - checksum: cc0df62075c741beee699e651374aeb56c4c1f4333398c0ba924281c2b51d4b7669c69c5b837ea395775626ad030d6f1bd27fd0a7eaf3f9f1bbd55393948ad6c + checksum: c894e8e5224170d1f85288f4a1d1ebcee0780823ea2b49d881648ab360ebf01b37ecb09b1c4439a75f9a51f31a9f9742cd045e987763e367c352a1ef7c50d446 languageName: node linkType: hard @@ -19735,12 +19820,12 @@ __metadata: linkType: hard "vite-imagetools@npm:^4.0.11": - version: 4.0.14 - resolution: "vite-imagetools@npm:4.0.14" + version: 4.0.18 + resolution: "vite-imagetools@npm:4.0.18" dependencies: "@rollup/pluginutils": ^5.0.0 - imagetools-core: ^3.3.0 - checksum: c1c163359a4eff2ce704eb66292a762458a0b8ca87acec4a678138790908a4a63678c083d01c72cde1f27b776925243662caefaaca9eff6303d44b87182a7c13 + imagetools-core: ^3.3.1 + checksum: f2e9b0713bda0488808ea8ad467e08c6752461c9bbd0ce73a82cbcb845292d1104fa68e0f8db4ee28cf22e9e4cc2327bfcc6171c02e073808e9fc39a7b3f220a languageName: node linkType: hard @@ -20099,11 +20184,11 @@ __metadata: linkType: hard "windows-release@npm:^5.0.1": - version: 5.0.1 - resolution: "windows-release@npm:5.0.1" + version: 5.1.0 + resolution: "windows-release@npm:5.1.0" dependencies: execa: ^5.1.1 - checksum: b6b403333b7b3ea31a805c287f210962d8f3191865d81d2fd3955e603ab4d6893abc746d87b7da5b2a7a044b7b18df97c948e7d5392baed1d2bc5687fbf7431d + checksum: b1256ef336e86b230cf940305d058cb2d49f076833df77a96e7bbf958ea5cd3bb1f1af6b1408fad14ee37df190d77b97b1dad6bbf3ed6eac1ba99a4d28dbfb68 languageName: node linkType: hard @@ -20349,13 +20434,13 @@ __metadata: linkType: hard "wrap-ansi@npm:^8.0.1": - version: 8.0.1 - resolution: "wrap-ansi@npm:8.0.1" + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" dependencies: ansi-styles: ^6.1.0 string-width: ^5.0.1 strip-ansi: ^7.0.1 - checksum: 5d7816e64f75544e466d58a736cb96ca47abad4ad57f48765b9735ba5601221013a37f436662340ca159208b011121e4e030de5a17180c76202e35157195a71e + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 languageName: node linkType: hard @@ -20495,13 +20580,6 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb - languageName: node - linkType: hard - "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" From af803415e34d14888a1e49420d3b3fa9212d594b Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Wed, 8 Feb 2023 22:10:17 +0100 Subject: [PATCH 46/53] refactor(bot): :ambulance: flowDynamic, fallBack --- __test__/05-case.test.js | 10 +-- __test__/07-case.test.js | 11 --- __test__/08-case.test.js | 71 ++++++++--------- __test__/09-case.test.js | 41 ---------- packages/bot/core/core.class.js | 134 +++++++++++++++++--------------- packages/bot/package.json | 2 +- 6 files changed, 112 insertions(+), 157 deletions(-) delete mode 100644 __test__/09-case.test.js diff --git a/__test__/05-case.test.js b/__test__/05-case.test.js index f61d114..8e821f2 100644 --- a/__test__/05-case.test.js +++ b/__test__/05-case.test.js @@ -11,7 +11,7 @@ const { addKeyword, createBot, createFlow, createProvider } = require('../packag */ const fakeHTTP = async (fakeData = []) => { await delay(5) - const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) + const data = fakeData.map((u, i) => ({ body: `${u}` })) return Promise.resolve(data) } @@ -33,14 +33,14 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { const getDataFromApi = await fakeHTTP(['Gracias por tu email se ha validado de manera correcta']) return flowDynamic(getDataFromApi) } - return fallBack(validation) + return fallBack() } ) .addAnswer(MOCK_VALUES[1]) .addAnswer(MOCK_VALUES[2], { capture: true }, async (ctx, { flowDynamic, fallBack }) => { if (ctx.body !== '18') { - await delay(50) - return fallBack(false, 'Ups creo que no eres mayor de edad') + await delay(20) + return fallBack('Ups creo que no eres mayor de edad') } return flowDynamic('Bien tu edad es correcta!') }) @@ -83,7 +83,7 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { assert.is('this is not email value', getHistory[1]) assert.is(MOCK_VALUES[0], getHistory[2]) assert.is('test@test.com', getHistory[3]) - assert.is('1 Gracias por tu email se ha validado de manera correcta', getHistory[4]) + assert.is('Gracias por tu email se ha validado de manera correcta', getHistory[4]) assert.is(MOCK_VALUES[1], getHistory[5]) assert.is(MOCK_VALUES[2], getHistory[6]) assert.is('20', getHistory[7]) diff --git a/__test__/07-case.test.js b/__test__/07-case.test.js index 6eb8e42..efe2ed5 100644 --- a/__test__/07-case.test.js +++ b/__test__/07-case.test.js @@ -4,17 +4,6 @@ const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') -/** - * Falsear peticion async - * @param {*} fakeData - * @returns - */ -const fakeHTTP = async (fakeData = []) => { - await delay(5) - const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) - return Promise.resolve(data) -} - let STATE_APP = {} test(`[Caso - 07] Retornar estado`, async () => { diff --git a/__test__/08-case.test.js b/__test__/08-case.test.js index 82fc46a..ac295d1 100644 --- a/__test__/08-case.test.js +++ b/__test__/08-case.test.js @@ -1,43 +1,44 @@ -const { test } = require('uvu') -const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') +// const { test } = require('uvu') +// const assert = require('uvu/assert') +// const MOCK_DB = require('../packages/database/src/mock') +// const PROVIDER_DB = require('../packages/provider/src/mock') +// const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') -test(`[Caso - 08] Regular expression on keyword`, async () => { - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() +// const database = new MOCK_DB() +// test.before(() => { +// database.listHistory = [] +// }); +// test.after(() => { +// database.listHistory = [] +// }); - const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` - const flujoPrincipal = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) - .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) - .addAnswer('Fin!') +// test(`[Caso - 08] Regular expression on keyword`, async () => { +// const provider = createProvider(PROVIDER_DB) - createBot({ - database, - flow: createFlow([flujoPrincipal]), - provider, - }) +// const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` +// const flujoPrincipal = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) +// .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) +// .addAnswer('Fin!') - provider.delaySendMessage(0, 'message', { - from: '000', - body: 'hola', - }) +// createBot({ +// database, +// flow: createFlow([flujoPrincipal]), +// provider, +// }) - provider.delaySendMessage(20, 'message', { - from: '000', - body: '374245455400126', - }) +// provider.delaySendMessage(0, 'message', { +// from: '000', +// body: '374245455400126', +// }) - await delay(40) - const getHistory = database.listHistory.map((i) => i.answer) - assert.is('Gracias por proporcionar un numero de tarjeta valido', getHistory[0]) - assert.is('Fin!', getHistory[1]) - assert.is(undefined, getHistory[2]) -}) +// const getHistory = database.listHistory.map((i) => i.answer) +// assert.is('Gracias por proporcionar un numero de tarjeta valido', getHistory[1]) +// assert.is('Leifer', getHistory[1]) -test.run() +// }) -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} +// test.run() + +// function delay(ms) { +// return new Promise((res) => setTimeout(res, ms)) +// } diff --git a/__test__/09-case.test.js b/__test__/09-case.test.js deleted file mode 100644 index 417ce31..0000000 --- a/__test__/09-case.test.js +++ /dev/null @@ -1,41 +0,0 @@ -const { test } = require('uvu') -const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_MOCK = require('../packages/provider/src/mock') -const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') - -let PROVIDER = undefined - -test(`[Caso - 09] Check provider WS`, async () => { - const [VALUE_A, VALUE_B] = ['hola', 'buenas'] - - const flow = addKeyword(VALUE_A).addAnswer(VALUE_B, null, async (_, { provider }) => { - PROVIDER = provider - }) - const provider = createProvider(PROVIDER_MOCK) - const database = new MOCK_DB() - - createBot({ - database, - flow: createFlow([flow]), - provider, - }) - - provider.delaySendMessage(100, 'message', { - from: '000', - body: VALUE_A, - }) - - await delay(100) - - const prevMsg = database.getPrevByNumber('000') - - assert.is(prevMsg.answer, VALUE_B) - assert.is(typeof PROVIDER.sendMessage, 'function') -}) - -test.run() - -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 29cf5d1..dbb84a2 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -110,13 +110,16 @@ class CoreClass { } // 📄 Finalizar flujo - const endFlow = async (message = null) => { - endFlowFlag = true - if (message) this.sendProviderAndSave(from, createCtxMessage(message)) - clearQueue() - sendFlow([]) - return - } + const endFlow = + (flag) => + async (message = null) => { + flag.endFlow = true + endFlowFlag = true + if (message) this.sendProviderAndSave(from, createCtxMessage(message)) + clearQueue() + sendFlow([]) + return + } // 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx const sendFlow = async (messageToSend, numberOrId, options = { prev: prevMsg }) => { @@ -127,68 +130,57 @@ class CoreClass { if (endFlowFlag) return const delayMs = ctxMessage?.options?.delay || 0 if (delayMs) await delay(delayMs) - QueuePrincipal.enqueue(() => - Promise.all([ - this.sendProviderAndSave(numberOrId, ctxMessage).then(() => resolveCbEveryCtx(ctxMessage)), - ]) + await QueuePrincipal.enqueue(() => + this.sendProviderAndSave(numberOrId, ctxMessage).then(() => resolveCbEveryCtx(ctxMessage)) ) } return Promise.all(queue) } - // 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje - const fallBack = async (validation = false, message = null) => { - QueuePrincipal.queue = [] - - if (validation) { - const currentPrev = await this.databaseClass.getPrevByNumber(from) - const nextFlow = await this.flowClass.find(refToContinue?.ref, true) - const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) - - return sendFlow(filterNextFlow, from, { prev: undefined }) - } - - await this.sendProviderAndSave(from, { - ...prevMsg, - answer: typeof message === 'string' ? message : message?.body ?? prevMsg.answer, - options: { - ...prevMsg.options, - buttons: prevMsg.options?.buttons, - }, - }) + const continueFlow = async () => { + const currentPrev = await this.databaseClass.getPrevByNumber(from) + const nextFlow = await this.flowClass.find(refToContinue?.ref, true) + const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) + const isContinueFlow = filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref) + if (!isContinueFlow) await sendFlow(filterNextFlow, from, { prev: undefined }) return } + // 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje + const fallBack = + (flag) => + async (message = null) => { + QueuePrincipal.queue = [] + flag.fallBack = true + await this.sendProviderAndSave(from, { + ...prevMsg, + answer: typeof message === 'string' ? message : message?.body ?? prevMsg.answer, + options: { + ...prevMsg.options, + buttons: prevMsg.options?.buttons, + }, + }) + return + } // 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes // para evitar bloque de whatsapp - const flowDynamic = async (listMsg = []) => { - if (!Array.isArray(listMsg)) listMsg = [listMsg] + const flowDynamic = + (flag) => + async (listMsg = []) => { + flag.flowDynamic = true + if (!Array.isArray(listMsg)) listMsg = [listMsg] - const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index)) - const currentPrev = await this.databaseClass.getPrevByNumber(from) + const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index)) - const skipContinueFlow = async () => { - const nextFlow = await this.flowClass.find(refToContinue?.ref, true) - const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) - const isContinueFlow = filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref) - return { - continue: !isContinueFlow, - contexts: filterNextFlow, + if (endFlowFlag) return + for (const msg of parseListMsg) { + await this.sendProviderAndSave(from, msg) } + await continueFlow() + return } - if (endFlowFlag) return - for (const msg of parseListMsg) { - await this.sendProviderAndSave(from, msg) - } - - const continueFlowData = await skipContinueFlow() - - if (continueFlowData.continue) return sendFlow(continueFlowData.contexts, from, { prev: undefined }) - return - } - // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback const resolveCbEveryCtx = async (ctxMessage) => { if (!ctxMessage?.options?.capture) return await cbEveryCtx(ctxMessage?.ref) @@ -196,15 +188,29 @@ class CoreClass { // 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo const cbEveryCtx = async (inRef) => { + let flags = { + endFlow: false, + fallBack: false, + flowDynamic: false, + wait: true, + } + const provider = this.providerClass if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve() - return this.flowClass.allCallbacks[inRef](messageCtxInComming, { + + const argsCb = { provider, - fallBack, - flowDynamic, - endFlow, - }) + fallBack: fallBack(flags), + flowDynamic: flowDynamic(flags), + endFlow: endFlow(flags), + } + + await this.flowClass.allCallbacks[inRef](messageCtxInComming, argsCb) + const wait = !(!flags.endFlow && !flags.fallBack && !flags.flowDynamic) + if (!wait) await continueFlow() + + return } // 📄🤘(tiene return) [options: nested(array)]: Si se tiene flujos hijos los implementa @@ -216,7 +222,7 @@ class CoreClass { msgToSend = this.flowClass.find(body, false, flowStandalone) || [] - sendFlow(msgToSend, from) + await sendFlow(msgToSend, from) return } @@ -226,7 +232,7 @@ class CoreClass { if (typeCapture === 'boolean' && fallBackFlag) { msgToSend = this.flowClass.find(refToContinue?.ref, true) || [] - sendFlow(msgToSend, from) + await sendFlow(msgToSend, from) return } } @@ -241,11 +247,11 @@ class CoreClass { * @param {*} ctxMessage ver más en GLOSSARY.md * @returns */ - sendProviderAndSave = (numberOrId, ctxMessage) => { + sendProviderAndSave = async (numberOrId, ctxMessage) => { const { answer } = ctxMessage - return this.providerClass - .sendMessage(numberOrId, answer, ctxMessage) - .then(() => this.databaseClass.save({ ...ctxMessage, from: numberOrId })) + await this.providerClass.sendMessage(numberOrId, answer, ctxMessage) + await this.databaseClass.save({ ...ctxMessage, from: numberOrId }) + return } /** diff --git a/packages/bot/package.json b/packages/bot/package.json index 563cd74..053a85d 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.96-alpha.0", + "version": "0.0.100-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { From dda59fa93b33499d6481dd864793c5eb9728afd2 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 9 Feb 2023 15:09:52 +0100 Subject: [PATCH 47/53] test: a lot test --- __mocks__/env.js | 22 ++++ __mocks__/mobile.mock.js | 6 - __mocks__/mock.provider.js | 21 ---- __test__/00-case.test.js | 52 +++++++++ __test__/001-case.test.js | 59 ++++++++++ __test__/01-case.test.js | 55 +++++---- __test__/02-case.test.js | 103 ++++------------- __test__/03-case.test.js | 168 +++++++++++++++++++++++---- __test__/04-case.test.js | 169 +++++++++++++++++++++------- __test__/05-case.test.js | 117 ++++++++++--------- __test__/06-case.test.js | 111 ------------------ __test__/07-case.test.js | 81 ------------- __test__/08-case.test.js | 44 -------- packages/bot/core/core.class.js | 2 +- packages/bot/io/flow.class.js | 15 +-- packages/provider/src/mock/index.js | 18 +-- 16 files changed, 530 insertions(+), 513 deletions(-) create mode 100644 __mocks__/env.js delete mode 100644 __mocks__/mobile.mock.js delete mode 100644 __mocks__/mock.provider.js create mode 100644 __test__/00-case.test.js create mode 100644 __test__/001-case.test.js delete mode 100644 __test__/06-case.test.js delete mode 100644 __test__/07-case.test.js delete mode 100644 __test__/08-case.test.js diff --git a/__mocks__/env.js b/__mocks__/env.js new file mode 100644 index 0000000..9f1706c --- /dev/null +++ b/__mocks__/env.js @@ -0,0 +1,22 @@ +const MOCK_DB = require('../packages/database/src/mock') +const PROVIDER_DB = require('../packages/provider/src/mock') + +/** + * Preparar env para el test + * @param {*} context + */ +const setup = async (context) => { + context.provider = new PROVIDER_DB() + context.database = new MOCK_DB() +} + +const clear = async (context) => { + context.provider = null + context.database = null +} + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} + +module.exports = { setup, clear, delay } diff --git a/__mocks__/mobile.mock.js b/__mocks__/mobile.mock.js deleted file mode 100644 index 7f19f74..0000000 --- a/__mocks__/mobile.mock.js +++ /dev/null @@ -1,6 +0,0 @@ -const MOCK_MOBILE_WS = { - from: 'XXXXXX', - hasMedia: false, -} - -module.exports = { MOCK_MOBILE_WS } diff --git a/__mocks__/mock.provider.js b/__mocks__/mock.provider.js deleted file mode 100644 index 67b793e..0000000 --- a/__mocks__/mock.provider.js +++ /dev/null @@ -1,21 +0,0 @@ -const ProviderClass = require('../packages/bot/provider/provider.class') -class MockProvider extends ProviderClass { - constructor() { - super() - } - - delaySendMessage = (miliseconds, eventName, payload) => - new Promise((res) => - setTimeout(() => { - this.emit(eventName, payload) - res - }, miliseconds) - ) - - sendMessage = async (userId, message) => { - console.log(`Enviando... ${userId}, ${message}`) - return Promise.resolve({ userId, message }) - } -} - -module.exports = MockProvider diff --git a/__test__/00-case.test.js b/__test__/00-case.test.js new file mode 100644 index 0000000..eea982a --- /dev/null +++ b/__test__/00-case.test.js @@ -0,0 +1,52 @@ +const { suite } = require('uvu') +const assert = require('uvu/assert') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') + +const suiteCase = suite('Flujo: Simple') + +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Responder a "hola"`, async ({ database, provider }) => { + const flow = addKeyword('hola').addAnswer('Buenas!').addAnswer('Como vamos!') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(0) + + assert.is('Buenas!', database.listHistory[0].answer) + assert.is('Como vamos!', database.listHistory[1].answer) + assert.is(undefined, database.listHistory[2]) +}) + +suiteCase(`NO reponder a "pepe"`, async ({ database, provider }) => { + const flow = addKeyword('hola').addAnswer('Buenas!').addAnswer('Como vamos!') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'pepe', + }) + + await delay(0) + + assert.is(undefined, database.listHistory[0]) + assert.is(undefined, database.listHistory[1]) +}) + +suiteCase.run() diff --git a/__test__/001-case.test.js b/__test__/001-case.test.js new file mode 100644 index 0000000..b421955 --- /dev/null +++ b/__test__/001-case.test.js @@ -0,0 +1,59 @@ +const { suite } = require('uvu') +const assert = require('uvu/assert') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') + +const suiteCase = suite('Flujo: regex') + +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Responder a una expresion regular`, async ({ database, provider }) => { + const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` + + const flow = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) + .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) + .addAnswer('Fin!') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: '374245455400126', + }) + + await delay(10) + + assert.is('Gracias por proporcionar un numero de tarjeta valido', database.listHistory[0].answer) + assert.is('Fin!', database.listHistory[1].answer) + assert.is(undefined, database.listHistory[2]) +}) + +suiteCase(`NO Responder a una expresion regular`, async ({ database, provider }) => { + const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` + const flow = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) + .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) + .addAnswer('Fin!') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(10) + + assert.is(undefined, database.listHistory[0]) + assert.is(undefined, database.listHistory[1]) +}) + +suiteCase.run() diff --git a/__test__/01-case.test.js b/__test__/01-case.test.js index 57ae08c..7bca259 100644 --- a/__test__/01-case.test.js +++ b/__test__/01-case.test.js @@ -1,36 +1,51 @@ -const { test } = require('uvu') +const { suite } = require('uvu') const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') -test(`[Caso - 01] Flow Basico`, async () => { - const [VALUE_A, VALUE_B] = ['hola', 'buenas'] +const suiteCase = suite('Flujo: sensitive') - const flow = addKeyword(VALUE_A).addAnswer(VALUE_B) - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Responder a "ole" en minuscula`, async ({ database, provider }) => { + const flow = addKeyword(['ola', 'ole'], { sensitive: true }).addAnswer('Bienvenido a la OLA') createBot({ database, - flow: createFlow([flow]), provider, + flow: createFlow([flow]), }) - provider.delaySendMessage(100, 'message', { + await provider.delaySendMessage(0, 'message', { from: '000', - body: VALUE_A, + body: 'ole', }) - await delay(100) + await delay(0) - const prevMsg = database.getPrevByNumber('000') - - assert.is(prevMsg.answer, VALUE_B) + assert.is('Bienvenido a la OLA', database.listHistory[0].answer) + assert.is(undefined, database.listHistory[1]) }) -test.run() +suiteCase(`NO Responder a "ole" en minuscula`, async ({ database, provider }) => { + const flow = addKeyword(['ola', 'ole'], { sensitive: true }).addAnswer('Bienvenido a la OLA') -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'OLE', + }) + + await delay(0) + + assert.is(undefined, database.listHistory[0]) + assert.is(undefined, database.listHistory[1]) +}) + +suiteCase.run() diff --git a/__test__/02-case.test.js b/__test__/02-case.test.js index a2a93ec..1d4c28d 100644 --- a/__test__/02-case.test.js +++ b/__test__/02-case.test.js @@ -1,99 +1,40 @@ -const { test } = require('uvu') +const { suite } = require('uvu') const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') -/** - * Falsear peticion async - * @param {*} fakeData - * @returns - */ -const fakeHTTP = async (fakeData = []) => { - console.log('⚡ Server request!') - await delay(50) - console.log('⚡ Server return!') - const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) - console.log(data) - return Promise.resolve(data) -} +const suiteCase = suite('Flujo: capture') -test(`[Caso - 02] Flow (flowDynamic)`, async () => { - const MOCK_VALUES = [ - 'Bienvenido te envio muchas marcas (5510)', - 'Seleccione marca del auto a cotizar, con el *número* correspondiente', - 'Seleccione la sub marca del auto a cotizar, con el *número* correspondiente:', - 'Los precios rondan:', - ] - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() +suiteCase.before.each(setup) +suiteCase.after.each(clear) - const flujoPrincipal = addKeyword(['hola']) - .addAnswer(MOCK_VALUES[0], null, async (ctx, { flowDynamic }) => { - console.log('execute...') - const data = await fakeHTTP(['Ford', 'GM', 'BMW']) - return flowDynamic(data) - }) - .addAnswer(MOCK_VALUES[1], null, async (ctx, { flowDynamic }) => { - const data = await fakeHTTP(['Ranger', 'Explorer']) - return flowDynamic(data) - }) - .addAnswer(MOCK_VALUES[2], null, async (ctx, { flowDynamic }) => { - const data = await fakeHTTP(['Usado', 'Nuevos']) - return flowDynamic(data) - }) - .addAnswer(MOCK_VALUES[3], null, async (ctx, { flowDynamic }) => { - const data = await fakeHTTP(['1000', '2000', '3000']) - return flowDynamic(data) - }) +suiteCase(`Responder a "pregunta"`, async ({ database, provider }) => { + const flow = addKeyword(['hola']) + .addAnswer(['Hola como estas?', '¿Cual es tu edad?'], { capture: true }) + .addAnswer('Gracias por tu respuesta') createBot({ database, - flow: createFlow([flujoPrincipal]), provider, + flow: createFlow([flow]), }) - provider.delaySendMessage(0, 'message', { + await provider.delaySendMessage(0, 'message', { from: '000', body: 'hola', }) - await delay(1200) - const getHistory = database.listHistory.map((i) => i.answer) - assert.is(MOCK_VALUES[0], getHistory[0]) + await provider.delaySendMessage(10, 'message', { + from: '000', + body: '90', + }) - //FlowDynamic - assert.is('1 Ford', getHistory[1]) - assert.is('2 GM', getHistory[2]) - assert.is('3 BMW', getHistory[3]) + await delay(20) - assert.is(MOCK_VALUES[1], getHistory[4]) - - //FlowDynamic - assert.is('1 Ranger', getHistory[5]) - assert.is('2 Explorer', getHistory[6]) - - assert.is(MOCK_VALUES[2], getHistory[7]) - - //FlowDynamic - assert.is('1 Usado', getHistory[8]) - assert.is('2 Nuevos', getHistory[9]) - - assert.is(MOCK_VALUES[3], getHistory[10]) - - //FlowDynamic - assert.is('1 1000', getHistory[11]) - assert.is('2 2000', getHistory[12]) - assert.is('3 3000', getHistory[13]) + assert.is(['Hola como estas?', '¿Cual es tu edad?'].join('\n'), database.listHistory[0].answer) + assert.is('90', database.listHistory[1].answer) + assert.is('Gracias por tu respuesta', database.listHistory[2].answer) + assert.is(undefined, database.listHistory[3]) }) -test.run() - -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} +suiteCase.run() diff --git a/__test__/03-case.test.js b/__test__/03-case.test.js index 45c399a..6b9f7e8 100644 --- a/__test__/03-case.test.js +++ b/__test__/03-case.test.js @@ -1,44 +1,162 @@ -const { test } = require('uvu') +const { suite } = require('uvu') const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') -test(`[Caso - 03] Flow puro`, async () => { - const MOCK_VALUES = ['Bienvenido a mi tienda', 'Como estas?'] +const fakeHTTP = async (fakeData = []) => { + await delay(50) + const data = fakeData.map((u) => ({ body: `${u}` })) + return Promise.resolve(data) +} - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() +const suiteCase = suite('Flujo: flowDynamic') - const flujoPrincipal = addKeyword(['hola']) - .addAnswer(MOCK_VALUES[0]) - .addAnswer(MOCK_VALUES[1]) +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Responder con mensajes asyncronos`, async ({ database, provider }) => { + const MOCK_VALUES = [ + 'Bienvenido te envio muchas marcas (5510)', + 'Seleccione marca del auto a cotizar, con el *número* correspondiente', + 'Seleccione la sub marca del auto a cotizar, con el *número* correspondiente:', + 'Los precios rondan:', + ] + const flow = addKeyword(['hola']) + .addAnswer(MOCK_VALUES[0], null, async (_, { flowDynamic }) => { + const data = await fakeHTTP(['Ford', 'GM', 'BMW']) + return flowDynamic(data) + }) + .addAnswer(MOCK_VALUES[1], null, async (_, { flowDynamic }) => { + const data = await fakeHTTP(['Ranger', 'Explorer']) + return flowDynamic(data) + }) + .addAnswer(MOCK_VALUES[2], null, async (_, { flowDynamic }) => { + const data = await fakeHTTP(['Usado', 'Nuevos']) + return flowDynamic(data) + }) + .addAnswer(MOCK_VALUES[3], null, async (_, { flowDynamic }) => { + const data = await fakeHTTP(['1000', '2000', '3000']) + return flowDynamic(data) + }) createBot({ database, - flow: createFlow([flujoPrincipal]), provider, + flow: createFlow([flow]), }) - provider.delaySendMessage(0, 'message', { + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(1200) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is(MOCK_VALUES[0], getHistory[0]) + + //FlowDynamic + assert.is('Ford', getHistory[1]) + assert.is('GM', getHistory[2]) + assert.is('BMW', getHistory[3]) + + assert.is(MOCK_VALUES[1], getHistory[4]) + + //FlowDynamic + assert.is('Ranger', getHistory[5]) + assert.is('Explorer', getHistory[6]) + + assert.is(MOCK_VALUES[2], getHistory[7]) + + //FlowDynamic + assert.is('Usado', getHistory[8]) + assert.is('Nuevos', getHistory[9]) + + assert.is(MOCK_VALUES[3], getHistory[10]) + + //FlowDynamic + assert.is('1000', getHistory[11]) + assert.is('2000', getHistory[12]) + assert.is('3000', getHistory[13]) + assert.is(undefined, getHistory[14]) +}) + +suiteCase(`Responder con un "string"`, async ({ database, provider }) => { + const flow = addKeyword(['hola']) + .addAnswer('Como vas?', null, async (_, { flowDynamic }) => { + return flowDynamic('Todo bien!') + }) + .addAnswer('y vos?') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { from: '000', body: 'hola', }) await delay(10) const getHistory = database.listHistory.map((i) => i.answer) - - assert.is(MOCK_VALUES[0], getHistory[0]) - assert.is(MOCK_VALUES[1], getHistory[1]) + assert.is('Como vas?', getHistory[0]) + assert.is('Todo bien!', getHistory[1]) + assert.is('y vos?', getHistory[2]) + assert.is(undefined, getHistory[3]) }) -test.run() +suiteCase(`Responder con un "array"`, async ({ database, provider }) => { + const flow = addKeyword(['hola']) + .addAnswer('Como vas?', null, async (_, { flowDynamic }) => { + return flowDynamic(['Todo bien!', 'trabajando']) + }) + .addAnswer('y vos?') -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(10) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is('Como vas?', getHistory[0]) + assert.is('Todo bien!', getHistory[1]) + assert.is('trabajando', getHistory[2]) + assert.is('y vos?', getHistory[3]) + assert.is(undefined, getHistory[4]) +}) + +suiteCase(`Responder con un "object"`, async ({ database, provider }) => { + const flow = addKeyword(['hola']) + .addAnswer('Como vas?', null, async (_, { flowDynamic }) => { + return flowDynamic([{ body: 'Todo bien!' }]) + }) + .addAnswer('y vos?') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(10) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is('Como vas?', getHistory[0]) + assert.is('Todo bien!', getHistory[1]) + assert.is('y vos?', getHistory[2]) + assert.is(undefined, getHistory[3]) +}) + +suiteCase.run() diff --git a/__test__/04-case.test.js b/__test__/04-case.test.js index 2291a0c..f2280bb 100644 --- a/__test__/04-case.test.js +++ b/__test__/04-case.test.js @@ -1,82 +1,167 @@ -const { test } = require('uvu') +const { suite } = require('uvu') const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') -/** - * Falsear peticion async - * @param {*} fakeData - * @returns - */ const fakeHTTP = async (fakeData = []) => { - console.log('⚡ Server request!') await delay(50) - console.log('⚡ Server return!') - const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) - console.log(data) + const data = fakeData.map((u) => ({ body: `${u}` })) return Promise.resolve(data) } -test(`[Caso - 04] Romper flujo (endFlow)`, async () => { +const suiteCase = suite('Flujo: endFlow') + +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Detener el flujo`, async ({ database, provider }) => { const MOCK_VALUES = [ - 'Bienvenido te envio muchas marcas (5510)', + 'Bienvenido te envio muchas marcas', 'Seleccione marca del auto a cotizar, con el *número* correspondiente', 'Seleccione la sub marca del auto a cotizar, con el *número* correspondiente:', 'Los precios rondan:', ] - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() - - const flujoPrincipal = addKeyword(['hola']) - .addAnswer(MOCK_VALUES[0], null, async (ctx, { flowDynamic }) => { - console.log('execute...') + const flow = addKeyword(['hola']) + .addAnswer(MOCK_VALUES[0], null, async (_, { flowDynamic }) => { const data = await fakeHTTP(['Ford', 'GM', 'BMW']) return flowDynamic(data) }) - .addAnswer(MOCK_VALUES[1], null, async (ctx, { endFlow }) => { + .addAnswer(MOCK_VALUES[1], null, async (_, { endFlow }) => { return endFlow() }) - .addAnswer(MOCK_VALUES[2], null, async (ctx, { flowDynamic }) => { - const data = await fakeHTTP(['Usado', 'Nuevos']) - return flowDynamic(data) - }) - .addAnswer(MOCK_VALUES[3], null, async (ctx, { flowDynamic }) => { + .addAnswer(MOCK_VALUES[2]) + .addAnswer(MOCK_VALUES[3], null, async (_, { flowDynamic }) => { const data = await fakeHTTP(['1000', '2000', '3000']) return flowDynamic(data) }) createBot({ database, - flow: createFlow([flujoPrincipal]), provider, + flow: createFlow([flow]), }) - provider.delaySendMessage(0, 'message', { + await provider.delaySendMessage(0, 'message', { from: '000', body: 'hola', }) - await delay(1200) + await delay(500) const getHistory = database.listHistory.map((i) => i.answer) assert.is(MOCK_VALUES[0], getHistory[0]) //FlowDynamic - assert.is('1 Ford', getHistory[1]) - assert.is('2 GM', getHistory[2]) - assert.is('3 BMW', getHistory[3]) + assert.is('Ford', getHistory[1]) + assert.is('GM', getHistory[2]) + assert.is('BMW', getHistory[3]) assert.is(MOCK_VALUES[1], getHistory[4]) + + //FlowDynamic assert.is(undefined, getHistory[5]) + assert.is(undefined, getHistory[6]) }) -test.run() +suiteCase(`Detener el flujo flowDynamic`, async ({ database, provider }) => { + const flow = addKeyword(['hola']) + .addAnswer('Buenas!', null, async (_, { endFlow, flowDynamic }) => { + await flowDynamic('Continuamos...') + return endFlow() + }) + .addAnswer('Como estas!') -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await delay(10) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is('Buenas!', getHistory[0]) + assert.is('Continuamos...', getHistory[1]) + assert.is(undefined, getHistory[2]) +}) + +suiteCase(`flowDynamic con capture`, async ({ database, provider }) => { + const MOCK_VALUES = ['¿CUal es tu email?', 'Continuamos....', '¿Cual es tu edad?'] + + const flow = addKeyword(['hola']) + .addAnswer( + MOCK_VALUES[0], + { + capture: true, + }, + async (ctx, { flowDynamic, fallBack }) => { + const validation = ctx.body.includes('@') + + if (validation) { + const getDataFromApi = await fakeHTTP(['Gracias por tu email se ha validado de manera correcta']) + return flowDynamic(getDataFromApi) + } + return fallBack() + } + ) + .addAnswer(MOCK_VALUES[1]) + .addAnswer(MOCK_VALUES[2], { capture: true }, async (ctx, { flowDynamic, fallBack }) => { + if (ctx.body !== '18') { + await delay(20) + return fallBack('Ups creo que no eres mayor de edad') + } + return flowDynamic('Bien tu edad es correcta!') + }) + .addAnswer('Puedes pasar') + + createBot({ + database, + provider, + flow: createFlow([flow]), + }) + + await provider.delaySendMessage(0, 'message', { + from: '000', + body: 'hola', + }) + + await provider.delaySendMessage(10, 'message', { + from: '000', + body: 'this is not email value', + }) + + await provider.delaySendMessage(20, 'message', { + from: '000', + body: 'test@test.com', + }) + + await provider.delaySendMessage(90, 'message', { + from: '000', + body: '20', + }) + + await provider.delaySendMessage(200, 'message', { + from: '000', + body: '18', + }) + + await delay(500) + const getHistory = database.listHistory.map((i) => i.answer) + assert.is(MOCK_VALUES[0], getHistory[0]) + assert.is('this is not email value', getHistory[1]) + assert.is(MOCK_VALUES[0], getHistory[2]) + assert.is('test@test.com', getHistory[3]) + assert.is('Gracias por tu email se ha validado de manera correcta', getHistory[4]) + assert.is(MOCK_VALUES[1], getHistory[5]) + assert.is(MOCK_VALUES[2], getHistory[6]) + assert.is('20', getHistory[7]) + assert.is('Ups creo que no eres mayor de edad', getHistory[8]) + assert.is('18', getHistory[9]) + assert.is('Bien tu edad es correcta!', getHistory[10]) + assert.is('Puedes pasar', getHistory[11]) +}) + +suiteCase.run() diff --git a/__test__/05-case.test.js b/__test__/05-case.test.js index 8e821f2..3962d31 100644 --- a/__test__/05-case.test.js +++ b/__test__/05-case.test.js @@ -1,24 +1,16 @@ -const { test } = require('uvu') +const { suite } = require('uvu') const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') +const { addKeyword, createBot, createFlow } = require('../packages/bot/index') +const { setup, clear, delay } = require('../__mocks__/env') -/** - * Falsear peticion async - * @param {*} fakeData - * @returns - */ -const fakeHTTP = async (fakeData = []) => { - await delay(5) - const data = fakeData.map((u, i) => ({ body: `${u}` })) - return Promise.resolve(data) -} +const suiteCase = suite('Flujo: manejo de estado') -test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { - const MOCK_VALUES = ['¿CUal es tu email?', 'Continuamos....', '¿Cual es tu edad?'] - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() +suiteCase.before.each(setup) +suiteCase.after.each(clear) + +suiteCase(`Debe retornar un mensaje resumen`, async ({ database, provider }) => { + let STATE_APP = {} + const MOCK_VALUES = ['¿Cual es tu nombre?', '¿Cual es tu edad?', 'Tu datos son:'] const flujoPrincipal = addKeyword(['hola']) .addAnswer( @@ -26,25 +18,27 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { { capture: true, }, - async (ctx, { flowDynamic, fallBack }) => { - const validation = ctx.body.includes('@') + async (ctx, { flowDynamic }) => { + STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], name: ctx.body } - if (validation) { - const getDataFromApi = await fakeHTTP(['Gracias por tu email se ha validado de manera correcta']) - return flowDynamic(getDataFromApi) - } - return fallBack() + flowDynamic('Gracias por tu nombre!') } ) - .addAnswer(MOCK_VALUES[1]) - .addAnswer(MOCK_VALUES[2], { capture: true }, async (ctx, { flowDynamic, fallBack }) => { - if (ctx.body !== '18') { - await delay(20) - return fallBack('Ups creo que no eres mayor de edad') + .addAnswer( + MOCK_VALUES[1], + { + capture: true, + }, + async (ctx, { flowDynamic }) => { + STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], age: ctx.body } + + await flowDynamic(`Gracias por tu edad! ${STATE_APP[ctx.from].name}`) } - return flowDynamic('Bien tu edad es correcta!') + ) + .addAnswer(MOCK_VALUES[2], null, async (ctx, { flowDynamic }) => { + flowDynamic(`Nombre: ${STATE_APP[ctx.from].name} Edad: ${STATE_APP[ctx.from].age}`) }) - .addAnswer('Puedes pasar') + .addAnswer('🤖🤖 Gracias por tu participacion') createBot({ database, @@ -57,44 +51,47 @@ test(`[Caso - 05] Continuar Flujo (continueFlow)`, async () => { body: 'hola', }) + provider.delaySendMessage(5, 'message', { + from: '001', + body: 'hola', + }) + provider.delaySendMessage(10, 'message', { from: '000', - body: 'this is not email value', + body: 'Leifer', + }) + + provider.delaySendMessage(15, 'message', { + from: '000', + body: '90', }) provider.delaySendMessage(20, 'message', { - from: '000', - body: 'test@test.com', + from: '001', + body: 'Maria', }) - provider.delaySendMessage(90, 'message', { - from: '000', - body: '20', + provider.delaySendMessage(25, 'message', { + from: '001', + body: '100', }) - provider.delaySendMessage(200, 'message', { - from: '000', - body: '18', - }) - - await delay(1200) + await delay(500) const getHistory = database.listHistory.map((i) => i.answer) assert.is(MOCK_VALUES[0], getHistory[0]) - assert.is('this is not email value', getHistory[1]) - assert.is(MOCK_VALUES[0], getHistory[2]) - assert.is('test@test.com', getHistory[3]) - assert.is('Gracias por tu email se ha validado de manera correcta', getHistory[4]) - assert.is(MOCK_VALUES[1], getHistory[5]) - assert.is(MOCK_VALUES[2], getHistory[6]) - assert.is('20', getHistory[7]) - assert.is('Ups creo que no eres mayor de edad', getHistory[8]) - assert.is('18', getHistory[9]) - assert.is('Bien tu edad es correcta!', getHistory[10]) - assert.is('Puedes pasar', getHistory[11]) + assert.is('¿Cual es tu nombre?', getHistory[1]) + assert.is('Leifer', getHistory[2]) + assert.is('Gracias por tu nombre!', getHistory[3]) + assert.is('¿Cual es tu edad?', getHistory[4]) + assert.is('90', getHistory[5]) + assert.is('Gracias por tu edad! Leifer', getHistory[6]) + assert.is('Tu datos son:', getHistory[7]) + assert.is('Nombre: Leifer Edad: 90', getHistory[8]) + assert.is('🤖🤖 Gracias por tu participacion', getHistory[9]) + assert.is('Maria', getHistory[10]) + assert.is('Gracias por tu nombre!', getHistory[11]) + assert.is('100', getHistory[12]) + assert.is(undefined, getHistory[13]) }) -test.run() - -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} +suiteCase.run() diff --git a/__test__/06-case.test.js b/__test__/06-case.test.js deleted file mode 100644 index c68679e..0000000 --- a/__test__/06-case.test.js +++ /dev/null @@ -1,111 +0,0 @@ -const { test } = require('uvu') -const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot/index') - -/** - * Falsear peticion async - * @param {*} fakeData - * @returns - */ -const fakeHTTP = async (fakeData = []) => { - await delay(5) - const data = fakeData.map((u, i) => ({ body: `${i + 1} ${u}` })) - return Promise.resolve(data) -} - -test(`[Caso - 06] Finalizar Flujo (endFlow)`, async () => { - const MOCK_VALUES = [ - '¿CUal es tu email?', - 'Continuamos....', - '¿Cual es tu edad?', - ] - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() - - const flujoPrincipal = addKeyword(['hola']) - .addAnswer( - MOCK_VALUES[0], - { - capture: true, - }, - async (ctx, { flowDynamic, fallBack }) => { - const validation = ctx.body.includes('@') - - if (validation) { - const getDataFromApi = await fakeHTTP([ - 'Gracias por tu email se ha validado de manera correcta', - ]) - return flowDynamic(getDataFromApi) - } - return fallBack(validation) - } - ) - .addAnswer(MOCK_VALUES[1], null, async (_, { endFlow }) => { - return endFlow() - }) - .addAnswer( - MOCK_VALUES[2], - { capture: true }, - async (ctx, { flowDynamic, fallBack }) => { - if (ctx.body !== '18') { - await delay(50) - return fallBack(false, 'Ups creo que no eres mayor de edad') - } - return flowDynamic('Bien tu edad es correcta!') - } - ) - .addAnswer('Puedes pasar') - - createBot({ - database, - flow: createFlow([flujoPrincipal]), - provider, - }) - - provider.delaySendMessage(0, 'message', { - from: '000', - body: 'hola', - }) - - provider.delaySendMessage(10, 'message', { - from: '000', - body: 'this is not email value', - }) - - provider.delaySendMessage(20, 'message', { - from: '000', - body: 'test@test.com', - }) - - provider.delaySendMessage(90, 'message', { - from: '000', - body: '20', - }) - - await delay(1200) - const getHistory = database.listHistory.map((i) => i.answer) - assert.is(MOCK_VALUES[0], getHistory[0]) - assert.is('this is not email value', getHistory[1]) - assert.is(MOCK_VALUES[0], getHistory[2]) - assert.is('test@test.com', getHistory[3]) - assert.is( - '1 Gracias por tu email se ha validado de manera correcta', - getHistory[4] - ) - assert.is(MOCK_VALUES[1], getHistory[5]) - assert.is('20', getHistory[6]) - assert.is(undefined, getHistory[7]) -}) - -test.run() - -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} diff --git a/__test__/07-case.test.js b/__test__/07-case.test.js deleted file mode 100644 index efe2ed5..0000000 --- a/__test__/07-case.test.js +++ /dev/null @@ -1,81 +0,0 @@ -const { test } = require('uvu') -const assert = require('uvu/assert') -const MOCK_DB = require('../packages/database/src/mock') -const PROVIDER_DB = require('../packages/provider/src/mock') -const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') - -let STATE_APP = {} - -test(`[Caso - 07] Retornar estado`, async () => { - const MOCK_VALUES = ['¿Cual es tu nombre?', '¿Cual es tu edad?', 'Tu datos son:'] - const provider = createProvider(PROVIDER_DB) - const database = new MOCK_DB() - - const flujoPrincipal = addKeyword(['hola']) - .addAnswer( - MOCK_VALUES[0], - { - capture: true, - }, - async (ctx, { flowDynamic, fallBack }) => { - STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], name: ctx.body } - - flowDynamic('Gracias por tu nombre!') - } - ) - .addAnswer( - MOCK_VALUES[1], - { - capture: true, - }, - async (ctx, { flowDynamic, endFlow }) => { - STATE_APP[ctx.from] = { ...STATE_APP[ctx.from], age: ctx.body } - - await flowDynamic('Gracias por tu edad!') - } - ) - .addAnswer(MOCK_VALUES[2], null, async (ctx, { flowDynamic }) => { - flowDynamic(`Nombre: ${STATE_APP[ctx.from].name} Edad: ${STATE_APP[ctx.from].age}`) - }) - .addAnswer('🤖🤖 Gracias por tu participacion') - - createBot({ - database, - flow: createFlow([flujoPrincipal]), - provider, - }) - - provider.delaySendMessage(0, 'message', { - from: '000', - body: 'hola', - }) - - provider.delaySendMessage(20, 'message', { - from: '000', - body: 'Leifer', - }) - - provider.delaySendMessage(40, 'message', { - from: '000', - body: '90', - }) - - await delay(1200) - const getHistory = database.listHistory.map((i) => i.answer) - assert.is(MOCK_VALUES[0], getHistory[0]) - assert.is('Leifer', getHistory[1]) - assert.is('Gracias por tu nombre!', getHistory[2]) - assert.is('¿Cual es tu edad?', getHistory[3]) - assert.is('90', getHistory[4]) - assert.is('Gracias por tu edad!', getHistory[5]) - assert.is('Tu datos son:', getHistory[6]) - assert.is('Nombre: Leifer Edad: 90', getHistory[7]) - assert.is('🤖🤖 Gracias por tu participacion', getHistory[8]) - assert.is(undefined, getHistory[9]) -}) - -test.run() - -function delay(ms) { - return new Promise((res) => setTimeout(res, ms)) -} diff --git a/__test__/08-case.test.js b/__test__/08-case.test.js deleted file mode 100644 index ac295d1..0000000 --- a/__test__/08-case.test.js +++ /dev/null @@ -1,44 +0,0 @@ -// const { test } = require('uvu') -// const assert = require('uvu/assert') -// const MOCK_DB = require('../packages/database/src/mock') -// const PROVIDER_DB = require('../packages/provider/src/mock') -// const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') - -// const database = new MOCK_DB() -// test.before(() => { -// database.listHistory = [] -// }); -// test.after(() => { -// database.listHistory = [] -// }); - -// test(`[Caso - 08] Regular expression on keyword`, async () => { -// const provider = createProvider(PROVIDER_DB) - -// const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm` -// const flujoPrincipal = addKeyword(REGEX_CREDIT_NUMBER, { regex: true }) -// .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`) -// .addAnswer('Fin!') - -// createBot({ -// database, -// flow: createFlow([flujoPrincipal]), -// provider, -// }) - -// provider.delaySendMessage(0, 'message', { -// from: '000', -// body: '374245455400126', -// }) - -// const getHistory = database.listHistory.map((i) => i.answer) -// assert.is('Gracias por proporcionar un numero de tarjeta valido', getHistory[1]) -// assert.is('Leifer', getHistory[1]) - -// }) - -// test.run() - -// function delay(ms) { -// return new Promise((res) => setTimeout(res, ms)) -// } diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index dbb84a2..ed91755 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -139,7 +139,7 @@ class CoreClass { const continueFlow = async () => { const currentPrev = await this.databaseClass.getPrevByNumber(from) - const nextFlow = await this.flowClass.find(refToContinue?.ref, true) + const nextFlow = (await this.flowClass.find(refToContinue?.ref, true)) ?? [] const filterNextFlow = nextFlow.filter((msg) => msg.refSerialize !== currentPrev?.refSerialize) const isContinueFlow = filterNextFlow.map((i) => i.keyword).includes(currentPrev?.ref) if (!isContinueFlow) await sendFlow(filterNextFlow, from, { prev: undefined }) diff --git a/packages/bot/io/flow.class.js b/packages/bot/io/flow.class.js index 13de732..c7cf1e9 100644 --- a/packages/bot/io/flow.class.js +++ b/packages/bot/io/flow.class.js @@ -25,16 +25,8 @@ class FlowClass { let refSymbol = null overFlow = overFlow ?? this.flowSerialize - const customRegex = (str = null) => { - if (typeof str !== 'string') return - const instanceRegex = new RegExp(str) - return instanceRegex.test(str) - } - - /** Retornar expresion regular para buscar coincidencia */ const mapSensitive = (str, mapOptions = { sensitive: false, regex: false }) => { - if (mapOptions.regex) return customRegex(str) - + if (mapOptions.regex) return new RegExp(str) const regexSensitive = mapOptions.sensitive ? 'g' : 'i' if (Array.isArray(str)) { return new RegExp(str.join('|'), regexSensitive) @@ -43,10 +35,7 @@ class FlowClass { } const findIn = (keyOrWord, symbol = false, flow = overFlow) => { - const sensitive = refSymbol?.options?.sensitive || false - const regex = refSymbol?.options?.regex || false capture = refSymbol?.options?.capture || false - if (capture) return messages if (symbol) { @@ -55,6 +44,8 @@ class FlowClass { if (refSymbol?.ref) findIn(refSymbol.ref, true) } else { refSymbol = flow.find((c) => { + const sensitive = c?.options?.sensitive || false + const regex = c?.options?.regex || false return mapSensitive(c.keyword, { sensitive, regex }).test(keyOrWord) }) if (refSymbol?.ref) findIn(refSymbol.ref, true) diff --git a/packages/provider/src/mock/index.js b/packages/provider/src/mock/index.js index 63034c0..9f47757 100644 --- a/packages/provider/src/mock/index.js +++ b/packages/provider/src/mock/index.js @@ -1,20 +1,20 @@ -const { ProviderClass } = require('@bot-whatsapp/bot') +const { ProviderClass } = require('../../../bot') + +function delay(ms) { + return new Promise((res) => setTimeout(res, ms)) +} class MockProvider extends ProviderClass { constructor() { super() } - delaySendMessage = (miliseconds, eventName, payload) => - new Promise((res) => - setTimeout(() => { - this.emit(eventName, payload) - res - }, miliseconds) - ) + delaySendMessage = async (miliseconds, eventName, payload) => { + await delay(miliseconds) + this.emit(eventName, payload) + } sendMessage = async (userId, message) => { - console.log(`Enviando... ${userId}, ${message}`) return Promise.resolve({ userId, message }) } } From 31a42ddcadff61c008408296440d9055f92453e4 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 9 Feb 2023 17:10:54 +0100 Subject: [PATCH 48/53] test: :art: a lot test --- __mocks__/env.js | 17 +++++++++++++++ __mocks__/mock.provider.js | 21 +++++++++++++++++++ .../provider/tests/provider.class.test.js | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 __mocks__/mock.provider.js diff --git a/__mocks__/env.js b/__mocks__/env.js index 9f1706c..ff09721 100644 --- a/__mocks__/env.js +++ b/__mocks__/env.js @@ -1,6 +1,21 @@ const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') +class MOCK_FLOW { + allCallbacks = { ref: () => 1 } + flowSerialize = [] + flowRaw = [] + find = (arg) => { + if (arg) { + return [{ answer: 'answer', ref: 'ref' }] + } else { + return null + } + } + findBySerialize = () => ({}) + findIndexByRef = () => 0 +} + /** * Preparar env para el test * @param {*} context @@ -8,11 +23,13 @@ const PROVIDER_DB = require('../packages/provider/src/mock') const setup = async (context) => { context.provider = new PROVIDER_DB() context.database = new MOCK_DB() + context.flow = new MOCK_FLOW() } const clear = async (context) => { context.provider = null context.database = null + context.flow = null } function delay(ms) { diff --git a/__mocks__/mock.provider.js b/__mocks__/mock.provider.js new file mode 100644 index 0000000..67b793e --- /dev/null +++ b/__mocks__/mock.provider.js @@ -0,0 +1,21 @@ +const ProviderClass = require('../packages/bot/provider/provider.class') +class MockProvider extends ProviderClass { + constructor() { + super() + } + + delaySendMessage = (miliseconds, eventName, payload) => + new Promise((res) => + setTimeout(() => { + this.emit(eventName, payload) + res + }, miliseconds) + ) + + sendMessage = async (userId, message) => { + console.log(`Enviando... ${userId}, ${message}`) + return Promise.resolve({ userId, message }) + } +} + +module.exports = MockProvider diff --git a/packages/provider/tests/provider.class.test.js b/packages/provider/tests/provider.class.test.js index 3a892fd..dc3320a 100644 --- a/packages/provider/tests/provider.class.test.js +++ b/packages/provider/tests/provider.class.test.js @@ -1,6 +1,6 @@ const { test } = require('uvu') const assert = require('uvu/assert') -const MockProvider = require('../../../__mocks__/mock.provider') +const MockProvider = require('../../provider/src/mock') test(`ProviderClass`, async () => { const provider = new MockProvider() From a88b01e69f8559a3be12c062d862d0a2a416df7c Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 9 Feb 2023 17:17:10 +0100 Subject: [PATCH 49/53] refactor: :children_crossing: rm workflow --- .github/workflows/contributors.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .github/workflows/contributors.yml diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml deleted file mode 100644 index b126e98..0000000 --- a/.github/workflows/contributors.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Revisando Colaboradores - -on: - schedule: - - cron: '0 9 * * *' - -jobs: - contrib-readme-job: - runs-on: ubuntu-latest - name: A job to automate contrib in readme - steps: - - name: Contribute List - uses: akhilmhdh/contributors-readme-action@v2.3.6 - with: - image_size: 50 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From c9a6350f42ae6fbe09dd5653d152680655424370 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 9 Feb 2023 20:54:26 +0100 Subject: [PATCH 50/53] test: :fire: a lot test e2e --- packages/bot/tests/bot.class.test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/bot/tests/bot.class.test.js b/packages/bot/tests/bot.class.test.js index 4db4ca8..d94127c 100644 --- a/packages/bot/tests/bot.class.test.js +++ b/packages/bot/tests/bot.class.test.js @@ -17,6 +17,8 @@ class MockFlow { } findBySerialize = () => ({}) findIndexByRef = () => 0 + getRefToContinueChild = () => ({}) + getFlowsChild = () => [] } class MockDBA { From a46a9efd8dbd921c773395d331154dc9a8aae783 Mon Sep 17 00:00:00 2001 From: Zamphi <40876040+mistertito86@users.noreply.github.com> Date: Thu, 9 Feb 2023 19:27:05 -0300 Subject: [PATCH 51/53] feat(provider): :bug: add_location From 6933fed395a7acbddd31a82bdd34c7952ce7d04a Mon Sep 17 00:00:00 2001 From: jcdevsoft <91914386+jcdevsoft@users.noreply.github.com> Date: Thu, 9 Feb 2023 22:27:13 -0600 Subject: [PATCH 52/53] Se agrega variable para puerto de mysql, para configurar en caso de que no sea el que trae por defecto --- starters/apps/base-baileys-mysql/app.js | 2 ++ starters/apps/base-meta-mysql/app.js | 2 ++ starters/apps/base-twilio-mysql/app.js | 2 ++ starters/apps/base-venom-mysql/app.js | 2 ++ starters/apps/base-wweb-mysql/app.js | 2 ++ 5 files changed, 10 insertions(+) diff --git a/starters/apps/base-baileys-mysql/app.js b/starters/apps/base-baileys-mysql/app.js index 2b3a2fe..30ee231 100644 --- a/starters/apps/base-baileys-mysql/app.js +++ b/starters/apps/base-baileys-mysql/app.js @@ -11,6 +11,7 @@ const MYSQL_DB_HOST = 'localhost' const MYSQL_DB_USER = 'usr' const MYSQL_DB_PASSWORD = 'pass' const MYSQL_DB_NAME = 'bot' +const MYSQL_DB_PORT = '3306' /** * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: @@ -88,6 +89,7 @@ const main = async () => { user: MYSQL_DB_USER, database: MYSQL_DB_NAME, password: MYSQL_DB_PASSWORD, + port: MYSQL_DB_PORT, }) const adapterFlow = createFlow([flowPrincipal]) const adapterProvider = createProvider(BaileysProvider) diff --git a/starters/apps/base-meta-mysql/app.js b/starters/apps/base-meta-mysql/app.js index 1c2ff53..31f4f0d 100644 --- a/starters/apps/base-meta-mysql/app.js +++ b/starters/apps/base-meta-mysql/app.js @@ -10,6 +10,7 @@ const MYSQL_DB_HOST = 'localhost' const MYSQL_DB_USER = 'usr' const MYSQL_DB_PASSWORD = 'pass' const MYSQL_DB_NAME = 'bot' +const MYSQL_DB_PORT = '3306' /** * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: @@ -87,6 +88,7 @@ const main = async () => { user: MYSQL_DB_USER, database: MYSQL_DB_NAME, password: MYSQL_DB_PASSWORD, + port: MYSQL_DB_PORT, }) const adapterFlow = createFlow([flowPrincipal]) diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js index 2a9eaa3..bf9a239 100644 --- a/starters/apps/base-twilio-mysql/app.js +++ b/starters/apps/base-twilio-mysql/app.js @@ -11,6 +11,7 @@ const MYSQL_DB_HOST = 'localhost' const MYSQL_DB_USER = 'user' const MYSQL_DB_PASSWORD = 'pass' const MYSQL_DB_NAME = 'bot' +const MYSQL_DB_PORT = '3306' /** * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: @@ -88,6 +89,7 @@ const main = async () => { user: MYSQL_DB_USER, database: MYSQL_DB_NAME, password: MYSQL_DB_PASSWORD, + port: MYSQL_DB_PORT, }) const adapterFlow = createFlow([flowPrincipal]) const adapterProvider = createProvider(TwilioProvider, { diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js index 48a47c8..28e3399 100644 --- a/starters/apps/base-venom-mysql/app.js +++ b/starters/apps/base-venom-mysql/app.js @@ -12,6 +12,7 @@ const MYSQL_DB_HOST = 'localhost' const MYSQL_DB_USER = 'user' const MYSQL_DB_PASSWORD = 'pass' const MYSQL_DB_NAME = 'bot' +const MYSQL_DB_PORT = '3306' /** * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: @@ -89,6 +90,7 @@ const main = async () => { user: MYSQL_DB_USER, database: MYSQL_DB_NAME, password: MYSQL_DB_PASSWORD, + port: MYSQL_DB_PORT, }) const adapterFlow = createFlow([flowPrincipal]) const adapterProvider = createProvider(VenomProvider) diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js index 97ceadc..46270a2 100644 --- a/starters/apps/base-wweb-mysql/app.js +++ b/starters/apps/base-wweb-mysql/app.js @@ -12,6 +12,7 @@ const MYSQL_DB_HOST = 'localhost' const MYSQL_DB_USER = 'user' const MYSQL_DB_PASSWORD = 'pass' const MYSQL_DB_NAME = 'bot' +const MYSQL_DB_PORT = '3306' /** * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: @@ -89,6 +90,7 @@ const main = async () => { user: MYSQL_DB_USER, database: MYSQL_DB_NAME, password: MYSQL_DB_PASSWORD, + port: MYSQL_DB_PORT, }) const adapterFlow = createFlow([flowPrincipal]) const adapterProvider = createProvider(WebWhatsappProvider) From a147677a26b36bba429c3dd3c2c81a44a7a4d2b6 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Fri, 10 Feb 2023 11:17:49 +0100 Subject: [PATCH 53/53] =?UTF-8?q?feat(provider):=20:zap:=20support=20locat?= =?UTF-8?q?ion=20=EF=BF=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __test__/{00-case.test.js => 0.0.0-case.test.js} | 0 __test__/{02-case.test.js => 0.1.2-case.test.js} | 0 __test__/{03-case.test.js => 0.1.3-case.test.js} | 0 __test__/{04-case.test.js => 0.1.4-case.test.js} | 0 __test__/{05-case.test.js => 0.1.5-case.test.js} | 0 __test__/{06-case.test.js => 0.1.6-case.test.js} | 0 packages/provider/src/baileys/index.js | 3 +-- packages/provider/src/venom/index.js | 2 +- packages/provider/src/web-whatsapp/index.js | 4 +--- 9 files changed, 3 insertions(+), 6 deletions(-) rename __test__/{00-case.test.js => 0.0.0-case.test.js} (100%) rename __test__/{02-case.test.js => 0.1.2-case.test.js} (100%) rename __test__/{03-case.test.js => 0.1.3-case.test.js} (100%) rename __test__/{04-case.test.js => 0.1.4-case.test.js} (100%) rename __test__/{05-case.test.js => 0.1.5-case.test.js} (100%) rename __test__/{06-case.test.js => 0.1.6-case.test.js} (100%) diff --git a/__test__/00-case.test.js b/__test__/0.0.0-case.test.js similarity index 100% rename from __test__/00-case.test.js rename to __test__/0.0.0-case.test.js diff --git a/__test__/02-case.test.js b/__test__/0.1.2-case.test.js similarity index 100% rename from __test__/02-case.test.js rename to __test__/0.1.2-case.test.js diff --git a/__test__/03-case.test.js b/__test__/0.1.3-case.test.js similarity index 100% rename from __test__/03-case.test.js rename to __test__/0.1.3-case.test.js diff --git a/__test__/04-case.test.js b/__test__/0.1.4-case.test.js similarity index 100% rename from __test__/04-case.test.js rename to __test__/0.1.4-case.test.js diff --git a/__test__/05-case.test.js b/__test__/0.1.5-case.test.js similarity index 100% rename from __test__/05-case.test.js rename to __test__/0.1.5-case.test.js diff --git a/__test__/06-case.test.js b/__test__/0.1.6-case.test.js similarity index 100% rename from __test__/06-case.test.js rename to __test__/0.1.6-case.test.js diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 3916d8a..a2d88ae 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -115,7 +115,6 @@ class BaileysProvider extends ProviderClass { func: ({ messages, type }) => { if (type !== 'notify') return const [messageCtx] = messages - console.log(messageCtx) let payload = { ...messageCtx, body: messageCtx?.message?.extendedTextMessage?.text ?? messageCtx?.message?.conversation, @@ -126,7 +125,7 @@ class BaileysProvider extends ProviderClass { if (messageCtx.message.locationMessage) { const { degreesLatitude, degreesLongitude } = messageCtx.message.locationMessage if (typeof degreesLatitude === 'number' && typeof degreesLongitude === 'number') { - payload = { ...payload, body: `${degreesLatitude},${degreesLongitude}` } + payload = { ...payload, body: `📍` } } } diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js index 02918de..6776033 100644 --- a/packages/provider/src/venom/index.js +++ b/packages/provider/src/venom/index.js @@ -93,7 +93,7 @@ class VenomProvider extends ProviderClass { const lat = payload.lat const lng = payload.lng if (lat !== '' && lng !== '') { - payload = { ...payload, body: `${lat},${lng}` } + payload = { ...payload, body: `📍` } } } this.emit('message', payload) diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index 22968d3..2e87938 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -91,9 +91,7 @@ class WebWhatsappProvider extends ProviderClass { } payload.from = wwebCleanNumber(payload.from, true) if (payload._data.lat && payload._data.lng) { - let lat = payload._data.lat - let lng = payload._data.lng - payload = { ...payload, body: `${lat},${lng}` } + payload = { ...payload, body: `📍` } } this.emit('message', payload) },