diff --git a/.github/workflows/check-provider-major.yml b/.github/workflows/check-provider-major.yml new file mode 100644 index 0000000..5f0227b --- /dev/null +++ b/.github/workflows/check-provider-major.yml @@ -0,0 +1,44 @@ +name: Rev Major Providers + +on: + schedule: + - cron: '0 9 * * *' + +jobs: + check-npm: + name: Install Dependencies + runs-on: ubuntu-latest + 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 --name=baileys --stable=false + + - name: Check Venom + run: yarn node ./scripts/checker.js --name=venom --stable=false + + - name: Check web-whatsapp + run: yarn node ./scripts/checker.js --name=web-whatsapp --stable=false + + - name: Check Meta + run: yarn node ./scripts/checker.js --name=meta --stable=false + + - name: Check Twilio + run: yarn node ./scripts/checker.js --name=twilio --stable=false + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 'ci(providers): 🚩 Check BREAKING CHANGE' diff --git a/.github/workflows/check-providers.yml b/.github/workflows/check-providers.yml index 412fdfc..5bdae6c 100644 --- a/.github/workflows/check-providers.yml +++ b/.github/workflows/check-providers.yml @@ -29,20 +29,20 @@ jobs: run: yarn install --immutable --network-timeout 300000 - name: Check Baileys - run: yarn node ./scripts/checker.js baileys + run: yarn node ./scripts/checker.js --name=baileys --stable=true - name: Check Venom - run: yarn node ./scripts/checker.js venom + run: yarn node ./scripts/checker.js --name=venom --stable=true - name: Check web-whatsapp - run: yarn node ./scripts/checker.js web-whatsapp + run: yarn node ./scripts/checker.js --name=web-whatsapp --stable=true - name: Check Meta - run: yarn node ./scripts/checker.js meta + run: yarn node ./scripts/checker.js --name=meta --stable=true - name: Check Twilio - run: yarn node ./scripts/checker.js twilio + run: yarn node ./scripts/checker.js --name=twilio --stable=true - uses: stefanzweifel/git-auto-commit-action@v4 with: - commit_message: 'ci(providers): updated versions providers' + commit_message: 'ci(providers): 👍 updated versions stable providers' diff --git a/packages/provider/src/baileys/package.json b/packages/provider/src/baileys/package.json index 4326d59..da529d3 100644 --- a/packages/provider/src/baileys/package.json +++ b/packages/provider/src/baileys/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@adiwajshing/baileys": "5.0.0", + "@adiwajshing/baileys": "4.4.0", "mime-types": "2.1.35", "wa-sticker-formatter": "4.3.2" } diff --git a/scripts/checker.js b/scripts/checker.js index 26f3e41..67952c8 100644 --- a/scripts/checker.js +++ b/scripts/checker.js @@ -11,7 +11,7 @@ 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] +const [PKG_NAME, PKG_STABLE] = process.argv.slice(2) || [null, null] /** * Revisar ultima version de una paquetes @@ -29,12 +29,36 @@ const checkPkg = async (pkgName = '') => { return stdout.trim().replace('\n', '') } +/** + * Revisar ultima version de una paquetes + * @param {*} pkgName + */ +const checkPkgStable = async (pkgName = '', version = '') => { + const { stdout } = await cmd( + NPM_COMMAND, + [ + 'show', + `${pkgName}@${version.split('.').shift()}.*`, + 'version', + '--json', + ], + { + stdio: 'inherit', + } + ) + + const listVersions = JSON.parse(stdout).reverse() + console.log(`[${pkgName}]: `, listVersions) + return listVersions.at(0) +} + /** * Revisar todas las dependencias del provider * @param {*} provider + * @param {*} stable * @returns */ -const checkEveryProvider = async (provider = '') => { +const checkEveryProvider = async (provider = '', stable = true) => { const pkgDependencies = readFileSync( join(PATH_PACKAGES, 'provider', 'src', provider, 'package.json') ) @@ -42,9 +66,12 @@ const checkEveryProvider = async (provider = '') => { 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 + for (const [pkgName, pkgVersion] of devParse) { + if (!stable) newDevParse[pkgName] = await checkPkg(pkgName) + if (stable) + newDevParse[pkgName] = await checkPkgStable(pkgName, pkgVersion) + + console.log(newDevParse) } return newDevParse } catch (e) { @@ -122,9 +149,14 @@ const updateStarters = async (provider = '', updateDev = {}) => { const main = async () => { if (PKG_NAME) { - const list = await checkEveryProvider(PKG_NAME) - await updateDependencies(PKG_NAME, list) - await updateStarters(PKG_NAME, list) + 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' + ) + await updateDependencies(providerName, list) + await updateStarters(providerName, list) } } diff --git a/starters/apps/base-baileys-memory/package.json b/starters/apps/base-baileys-memory/package.json index e27fef1..481e00a 100644 --- a/starters/apps/base-baileys-memory/package.json +++ b/starters/apps/base-baileys-memory/package.json @@ -13,7 +13,7 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "5.0.0", + "@adiwajshing/baileys": "4.4.0", "mime-types": "2.1.35", "wa-sticker-formatter": "4.3.2" }, diff --git a/starters/apps/base-baileys-mongo/package.json b/starters/apps/base-baileys-mongo/package.json index 2b4e0f7..d828a88 100644 --- a/starters/apps/base-baileys-mongo/package.json +++ b/starters/apps/base-baileys-mongo/package.json @@ -13,7 +13,7 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "5.0.0", + "@adiwajshing/baileys": "4.4.0", "mime-types": "2.1.35", "mongodb": "^4.12.1", "wa-sticker-formatter": "4.3.2" diff --git a/starters/apps/base-baileys-mysql/package.json b/starters/apps/base-baileys-mysql/package.json index 2d1684f..4a7b07a 100644 --- a/starters/apps/base-baileys-mysql/package.json +++ b/starters/apps/base-baileys-mysql/package.json @@ -13,7 +13,7 @@ "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", "@bot-whatsapp/provider": "latest", - "@adiwajshing/baileys": "5.0.0", + "@adiwajshing/baileys": "4.4.0", "mime-types": "2.1.35", "mysql2": "^2.3.3", "wa-sticker-formatter": "4.3.2"