From 3248dce03da3dac566285e889035f729a8ff4364 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sun, 1 Jan 2023 15:07:11 +0100 Subject: [PATCH] ci(provider): :sparkles: automatic updated versions --- .github/workflows/check-providers.yml | 50 +++++++ .github/workflows/ci.yml | 2 +- .github/workflows/contributors.yml | 2 +- packages/cli/interactive/index.js | 2 +- packages/provider/src/baileys/package.json | 7 + packages/provider/src/meta/package.json | 3 + packages/provider/src/twilio/package.json | 5 + packages/provider/src/venom/package.json | 6 + .../provider/src/web-whatsapp/package.json | 5 + scripts/checker.js | 131 ++++++++++++++++++ .../README.md | 0 .../app.js | 0 .../package.json | 8 +- .../README.md | 0 .../app.js | 0 .../package.json | 8 +- .../README.md | 0 .../app.js | 0 .../package.json | 8 +- starters/apps/base-twilio-memory/package.json | 2 +- starters/apps/base-twilio-mongo/package.json | 2 +- starters/apps/base-twilio-mysql/package.json | 2 +- starters/apps/base-venom-memory/package.json | 5 +- starters/apps/base-venom-mongo/package.json | 4 +- starters/apps/base-venom-mysql/package.json | 5 +- starters/apps/base-wweb-memory/package.json | 4 +- starters/apps/base-wweb-mongo/package.json | 2 +- starters/apps/base-wweb-mysql/package.json | 2 +- 28 files changed, 237 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/check-providers.yml create mode 100644 packages/provider/src/baileys/package.json create mode 100644 packages/provider/src/meta/package.json create mode 100644 packages/provider/src/twilio/package.json create mode 100644 packages/provider/src/venom/package.json create mode 100644 packages/provider/src/web-whatsapp/package.json create mode 100644 scripts/checker.js rename starters/apps/{base-bailey-memory => base-baileys-memory}/README.md (100%) rename starters/apps/{base-bailey-memory => base-baileys-memory}/app.js (100%) rename starters/apps/{base-bailey-memory => base-baileys-memory}/package.json (69%) rename starters/apps/{base-bailey-mongo => base-baileys-mongo}/README.md (100%) rename starters/apps/{base-bailey-mongo => base-baileys-mongo}/app.js (100%) rename starters/apps/{base-bailey-mongo => base-baileys-mongo}/package.json (71%) rename starters/apps/{base-bailey-mysql => base-baileys-mysql}/README.md (100%) rename starters/apps/{base-bailey-mysql => base-baileys-mysql}/app.js (100%) rename starters/apps/{base-bailey-mysql => base-baileys-mysql}/package.json (71%) diff --git a/.github/workflows/check-providers.yml b/.github/workflows/check-providers.yml new file mode 100644 index 0000000..76044ab --- /dev/null +++ b/.github/workflows/check-providers.yml @@ -0,0 +1,50 @@ +name: Build and Test + +on: + push: + branches: + - dev + pull_request: + branches: + - dev + +jobs: + check-npm: + name: Install Dependencies + runs-on: ubuntu-latest + needs: + - test-unit + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: 'yarn' + registry-url: https://registry.npmjs.org/ + + - run: corepack enable + + - name: Install NPM Dependencies + run: yarn install --immutable --network-timeout 300000 + + - name: Check Baileys + run: yarn node ./scripts/checker.js baileys + + - name: Check Venom + run: yarn node ./scripts/checker.js venom + + - name: Check web-whatsapp + run: yarn node ./scripts/checker.js web-whatsapp + + - name: Check Meta + run: yarn node ./scripts/checker.js meta + + - name: Check Twilio + run: yarn node ./scripts/checker.js twilio + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "ci(providers): updated versions providers" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3c2553..82f5ff0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: 🤪 Build and Test +name: Build and Test on: push: diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml index a302035..5a6d3ef 100644 --- a/.github/workflows/contributors.yml +++ b/.github/workflows/contributors.yml @@ -1,4 +1,4 @@ -name: 🙌 Revisando Colaboradores +name: Revisando Colaboradores on: pull_request: branches: diff --git a/packages/cli/interactive/index.js b/packages/cli/interactive/index.js index 89ee601..a0a4034 100644 --- a/packages/cli/interactive/index.js +++ b/packages/cli/interactive/index.js @@ -34,7 +34,7 @@ const startInteractive = async () => { choices: [ { title: 'whatsapp-web.js (gratis)', value: 'wweb' }, { title: 'Venom (gratis)', value: 'venom' }, - { title: 'Baileys (gratis)', value: 'bailey' }, + { title: 'Baileys (gratis)', value: 'baileys' }, { title: 'Twilio', value: 'twilio' }, { title: 'API Oficial (Meta)', value: 'meta' }, ], diff --git a/packages/provider/src/baileys/package.json b/packages/provider/src/baileys/package.json new file mode 100644 index 0000000..4326d59 --- /dev/null +++ b/packages/provider/src/baileys/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "@adiwajshing/baileys": "5.0.0", + "mime-types": "2.1.35", + "wa-sticker-formatter": "4.3.2" + } +} diff --git a/packages/provider/src/meta/package.json b/packages/provider/src/meta/package.json new file mode 100644 index 0000000..92a4250 --- /dev/null +++ b/packages/provider/src/meta/package.json @@ -0,0 +1,3 @@ +{ + "dependencies": {} +} diff --git a/packages/provider/src/twilio/package.json b/packages/provider/src/twilio/package.json new file mode 100644 index 0000000..dd0a9bf --- /dev/null +++ b/packages/provider/src/twilio/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "twilio": "3.84.0" + } +} diff --git a/packages/provider/src/venom/package.json b/packages/provider/src/venom/package.json new file mode 100644 index 0000000..6735c52 --- /dev/null +++ b/packages/provider/src/venom/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "venom-bot": "4.3.7", + "mime-types": "2.1.35" + } +} diff --git a/packages/provider/src/web-whatsapp/package.json b/packages/provider/src/web-whatsapp/package.json new file mode 100644 index 0000000..7514818 --- /dev/null +++ b/packages/provider/src/web-whatsapp/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "whatsapp-web.js": "1.18.4" + } +} diff --git a/scripts/checker.js b/scripts/checker.js new file mode 100644 index 0000000..26f3e41 --- /dev/null +++ b/scripts/checker.js @@ -0,0 +1,131 @@ +const { execFile } = require('node:child_process') +const { readFileSync, writeFileSync, readdirSync } = require('node:fs') +const { join } = require('path') +const process = require('node:process') +const util = require('node:util') +const semver = require('semver') + +const cmd = util.promisify(execFile) +const OS_ENVIROMENT_WIN = process.platform.includes('win32') + +const PATH_PACKAGES = join(__dirname, '..', `packages`) +const PATH_STARTERS = join(__dirname, '..', `starters`, `apps`) +const NPM_COMMAND = OS_ENVIROMENT_WIN ? 'npm.cmd' : 'npm' +const [PKG_NAME] = process.argv.slice(2) || [null] + +/** + * Revisar ultima version de una paquetes + * @param {*} pkgName + */ +const checkPkg = async (pkgName = '') => { + const { stdout } = await cmd( + NPM_COMMAND, + ['show', `${pkgName}`, 'version'], + { + stdio: 'inherit', + } + ) + + return stdout.trim().replace('\n', '') +} + +/** + * Revisar todas las dependencias del provider + * @param {*} provider + * @returns + */ +const checkEveryProvider = async (provider = '') => { + 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] of devParse) { + const lastVersion = await checkPkg(pkgName) + newDevParse[pkgName] = lastVersion + } + return newDevParse + } catch (e) { + console.log(e) + return {} + } +} + +/** + * Actualizar depedencias con nuevas versiones + * @param {*} provider + * @param {*} list + * @returns + */ +const updateDependencies = async (provider = '', list = {}) => { + 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 + ) + ) + } catch (e) { + console.log(e) + return {} + } +} + +/** + * Actualizar starters + * @param {*} provider + * @returns + */ +const updateStarters = async (provider = '', updateDev = {}) => { + provider = provider === 'web-whatsapp' ? 'wweb' : 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 pkgBase = JSON.parse(pkgDependenciesBase) + writeFileSync( + join(PATH_STARTERS, base, 'package.json'), + JSON.stringify( + { + ...pkgBase, + dependencies: { ...pkgBase.dependencies, ...updateDev }, + }, + null, + 2 + ) + ) + } + } catch (e) { + console.log(e) + return + } +} + +const main = async () => { + if (PKG_NAME) { + const list = await checkEveryProvider(PKG_NAME) + await updateDependencies(PKG_NAME, list) + await updateStarters(PKG_NAME, list) + } +} + +main() diff --git a/starters/apps/base-bailey-memory/README.md b/starters/apps/base-baileys-memory/README.md similarity index 100% rename from starters/apps/base-bailey-memory/README.md rename to starters/apps/base-baileys-memory/README.md diff --git a/starters/apps/base-bailey-memory/app.js b/starters/apps/base-baileys-memory/app.js similarity index 100% rename from starters/apps/base-bailey-memory/app.js rename to starters/apps/base-baileys-memory/app.js diff --git a/starters/apps/base-bailey-memory/package.json b/starters/apps/base-baileys-memory/package.json similarity index 69% rename from starters/apps/base-bailey-memory/package.json rename to starters/apps/base-baileys-memory/package.json index 9d9bb38..e27fef1 100644 --- a/starters/apps/base-bailey-memory/package.json +++ b/starters/apps/base-baileys-memory/package.json @@ -4,7 +4,7 @@ "description": "", "main": "app.js", "scripts": { - "pre-copy": "cd .. && yarn run copy.lib base-bailey-memory", + "pre-copy": "cd .. && yarn run copy.lib base-baileys-memory", "start": "node app.js" }, "keywords": [], @@ -13,9 +13,9 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "^4.4.0", - "mime-types": "^2.1.35", - "wa-sticker-formatter": "^4.3.2" + "@adiwajshing/baileys": "5.0.0", + "mime-types": "2.1.35", + "wa-sticker-formatter": "4.3.2" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-bailey-mongo/README.md b/starters/apps/base-baileys-mongo/README.md similarity index 100% rename from starters/apps/base-bailey-mongo/README.md rename to starters/apps/base-baileys-mongo/README.md diff --git a/starters/apps/base-bailey-mongo/app.js b/starters/apps/base-baileys-mongo/app.js similarity index 100% rename from starters/apps/base-bailey-mongo/app.js rename to starters/apps/base-baileys-mongo/app.js diff --git a/starters/apps/base-bailey-mongo/package.json b/starters/apps/base-baileys-mongo/package.json similarity index 71% rename from starters/apps/base-bailey-mongo/package.json rename to starters/apps/base-baileys-mongo/package.json index d154742..2b4e0f7 100644 --- a/starters/apps/base-bailey-mongo/package.json +++ b/starters/apps/base-baileys-mongo/package.json @@ -4,7 +4,7 @@ "description": "", "main": "app.js", "scripts": { - "pre-copy": "cd .. && yarn run copy.lib base-bailey-mongo", + "pre-copy": "cd .. && yarn run copy.lib base-baileys-mongo", "start": "node app.js" }, "keywords": [], @@ -13,10 +13,10 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "^4.4.0", - "mime-types": "^2.1.35", + "@adiwajshing/baileys": "5.0.0", + "mime-types": "2.1.35", "mongodb": "^4.12.1", - "wa-sticker-formatter": "^4.3.2" + "wa-sticker-formatter": "4.3.2" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-bailey-mysql/README.md b/starters/apps/base-baileys-mysql/README.md similarity index 100% rename from starters/apps/base-bailey-mysql/README.md rename to starters/apps/base-baileys-mysql/README.md diff --git a/starters/apps/base-bailey-mysql/app.js b/starters/apps/base-baileys-mysql/app.js similarity index 100% rename from starters/apps/base-bailey-mysql/app.js rename to starters/apps/base-baileys-mysql/app.js diff --git a/starters/apps/base-bailey-mysql/package.json b/starters/apps/base-baileys-mysql/package.json similarity index 71% rename from starters/apps/base-bailey-mysql/package.json rename to starters/apps/base-baileys-mysql/package.json index 337ea1a..2d1684f 100644 --- a/starters/apps/base-bailey-mysql/package.json +++ b/starters/apps/base-baileys-mysql/package.json @@ -4,7 +4,7 @@ "description": "", "main": "app.js", "scripts": { - "pre-copy": "cd .. && yarn run copy.lib base-bailey-mysql", + "pre-copy": "cd .. && yarn run copy.lib base-baileys-mysql", "start": "node app.js" }, "keywords": [], @@ -13,10 +13,10 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "^4.4.0", - "mime-types": "^2.1.35", + "@adiwajshing/baileys": "5.0.0", + "mime-types": "2.1.35", "mysql2": "^2.3.3", - "wa-sticker-formatter": "^4.3.2" + "wa-sticker-formatter": "4.3.2" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-twilio-memory/package.json b/starters/apps/base-twilio-memory/package.json index 572ca88..e71ca5a 100644 --- a/starters/apps/base-twilio-memory/package.json +++ b/starters/apps/base-twilio-memory/package.json @@ -11,7 +11,7 @@ "dependencies": { "body-parser": "^1.20.1", "polka": "^0.5.2", - "twilio": "^3.83.4", + "twilio": "3.84.0", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", diff --git a/starters/apps/base-twilio-mongo/package.json b/starters/apps/base-twilio-mongo/package.json index c8ead10..4a8c063 100644 --- a/starters/apps/base-twilio-mongo/package.json +++ b/starters/apps/base-twilio-mongo/package.json @@ -11,7 +11,7 @@ "dependencies": { "body-parser": "^1.20.1", "polka": "^0.5.2", - "twilio": "^3.83.4", + "twilio": "3.84.0", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", diff --git a/starters/apps/base-twilio-mysql/package.json b/starters/apps/base-twilio-mysql/package.json index 1f5e5d0..d4c4d37 100644 --- a/starters/apps/base-twilio-mysql/package.json +++ b/starters/apps/base-twilio-mysql/package.json @@ -11,7 +11,7 @@ "dependencies": { "body-parser": "^1.20.1", "polka": "^0.5.2", - "twilio": "^3.83.4", + "twilio": "3.84.0", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", diff --git a/starters/apps/base-venom-memory/package.json b/starters/apps/base-venom-memory/package.json index c72298a..dfe5408 100644 --- a/starters/apps/base-venom-memory/package.json +++ b/starters/apps/base-venom-memory/package.json @@ -9,11 +9,12 @@ }, "keywords": [], "dependencies": { - "venom-bot": "^4.3.7", + "venom-bot": "4.3.7", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", - "@bot-whatsapp/provider": "latest" + "@bot-whatsapp/provider": "latest", + "mime-types": "2.1.35" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-venom-mongo/package.json b/starters/apps/base-venom-mongo/package.json index 6586c9f..3b46613 100644 --- a/starters/apps/base-venom-mongo/package.json +++ b/starters/apps/base-venom-mongo/package.json @@ -9,12 +9,12 @@ }, "keywords": [], "dependencies": { - "venom-bot": "^4.3.7", + "venom-bot": "4.3.7", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "mime-types": "^2.1.35", + "mime-types": "2.1.35", "mongodb": "^4.12.1" }, "author": "", diff --git a/starters/apps/base-venom-mysql/package.json b/starters/apps/base-venom-mysql/package.json index c549d12..670fd00 100644 --- a/starters/apps/base-venom-mysql/package.json +++ b/starters/apps/base-venom-mysql/package.json @@ -9,12 +9,13 @@ }, "keywords": [], "dependencies": { - "venom-bot": "^4.3.7", + "venom-bot": "4.3.7", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "mysql2": "^2.3.3" + "mysql2": "^2.3.3", + "mime-types": "2.1.35" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-wweb-memory/package.json b/starters/apps/base-wweb-memory/package.json index 0168dff..fbf9400 100644 --- a/starters/apps/base-wweb-memory/package.json +++ b/starters/apps/base-wweb-memory/package.json @@ -9,11 +9,11 @@ }, "keywords": [], "dependencies": { - "whatsapp-web.js": "^1.18.4", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", - "@bot-whatsapp/provider": "latest" + "@bot-whatsapp/provider": "latest", + "whatsapp-web.js": "1.18.4" }, "author": "", "license": "ISC" diff --git a/starters/apps/base-wweb-mongo/package.json b/starters/apps/base-wweb-mongo/package.json index ea6aae1..c58767a 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.18.4", "@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 b09f470..b1c44ff 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.18.4", "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest",