diff --git a/.github/workflows/check-provider-major.yml b/.github/workflows/check-provider-major.yml index 9557ead..ea91659 100644 --- a/.github/workflows/check-provider-major.yml +++ b/.github/workflows/check-provider-major.yml @@ -39,8 +39,14 @@ jobs: - name: Check Twilio run: yarn node ./scripts/checker.js --name=twilio --stable=true + - name: Add and commit changes to gh-pages branch + run: | + git config --local user.email 'action@github.com' + git config --local user.name 'GitHub Action' + git add . + - uses: stefanzweifel/git-auto-commit-action@v4 with: - commit_message: 'ci(providers): 🚩 Check BREAKING CHANGE' + commit_message: 'ci(providers): check provider versions' create_branch: true - branch: feature/breaking-change + branch: feature/providers-major diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 968147b..87e42a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,3 +56,55 @@ jobs: - name: Unit Tests run: yarn test + + ############ UNIT TEST ############ + check-providers: + name: Check Providers Versions + runs-on: ubuntu-latest + outputs: + commit: ${{ steps.vars.outputs.commit }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{github.event.after}} + persist-credentials: false + + - 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=true + + - name: Check Venom + run: yarn node ./scripts/checker.js --name=venom --stable=true + + - name: Check web-whatsapp + run: yarn node ./scripts/checker.js --name=web-whatsapp --stable=true + + - name: Check Meta + run: yarn node ./scripts/checker.js --name=meta --stable=true + + - name: Check Twilio + run: yarn node ./scripts/checker.js --name=twilio --stable=true + + - name: Set output + id: vars + run: echo "commit=$(git log --format=%B -n 1 ${{github.event.after}})" >> $GITHUB_OUTPUT + + - name: Commit & Push changes + uses: actions-js/push@master + with: + branch: feature/providers-major + github_token: ${{ secrets.GITHUB_TOKEN }} + force: true diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 79d996b..e3efc04 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -70,7 +70,7 @@ class CoreClass { const { body, from } = messageCtxInComming let msgToSend = [] let fallBackFlag = false - + if (!body) return if (!body.length) return const prevMsg = await this.databaseClass.getPrevByNumber(from) diff --git a/packages/bot/package.json b/packages/bot/package.json index 6ed70a3..d3f004e 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.65-alpha.0", + "version": "0.0.66-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/check/index.js b/packages/cli/check/index.js index cbd8e08..454f67c 100644 --- a/packages/cli/check/index.js +++ b/packages/cli/check/index.js @@ -24,7 +24,7 @@ const checkNodeVersion = () => { } const checkOs = () => { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { console.log(bgCyan('🙂 Revisando tu sistema operativo')) const os = process.platform if (!os.includes('win32')) { diff --git a/packages/cli/package.json b/packages/cli/package.json index 6418421..60361be 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.71-alpha.0", + "version": "0.0.72-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/contexts/package.json b/packages/contexts/package.json index 0f37f5f..c186a5f 100644 --- a/packages/contexts/package.json +++ b/packages/contexts/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/contexts", - "version": "0.0.15-alpha.0", + "version": "0.0.16-alpha.0", "description": "", "main": "./lib/bundle.contexts.cjs", "files": [ diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index 873522f..3b372ca 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.92-alpha.0", + "version": "0.0.93-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index a83f31c..f69d0c9 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.63-alpha.0", + "version": "0.0.64-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/docs/src/components/widgets/Collaborator.tsx b/packages/docs/src/components/widgets/Collaborator.tsx index 4337d2b..bc72b08 100644 --- a/packages/docs/src/components/widgets/Collaborator.tsx +++ b/packages/docs/src/components/widgets/Collaborator.tsx @@ -14,7 +14,7 @@ export default component$( {props.user.login}
-
{props.user.login}
+
+ {props.user.login} +
diff --git a/packages/docs/src/components/widgets/Hero.tsx b/packages/docs/src/components/widgets/Hero.tsx index 0e7cc5e..b3761f8 100644 --- a/packages/docs/src/components/widgets/Hero.tsx +++ b/packages/docs/src/components/widgets/Hero.tsx @@ -56,7 +56,7 @@ export default component$(() => {
Ver video diff --git a/packages/docs/src/components/widgets/Members.tsx b/packages/docs/src/components/widgets/Members.tsx new file mode 100644 index 0000000..36ec435 --- /dev/null +++ b/packages/docs/src/components/widgets/Members.tsx @@ -0,0 +1,54 @@ +import { component$ } from '@builder.io/qwik' +import { RequestHandlerCloudflarePages } from '@builder.io/qwik-city/middleware/cloudflare-pages' +import { User } from '~/contexts' +import Collaborator from './Collaborator' + +export const onRequest: RequestHandlerCloudflarePages = async () => { + console.log('??heree') +} + +export const TaleUsers = component$((props: { users: User[] }) => { + return ( + <> + {props.users.map((user) => ( +
+ {' '} + +
+ ))} + + ) +}) + +export default component$((props: { users: User[] }) => { + return ( +
+
+ + +
+ +
+
+
+ ) +}) diff --git a/packages/docs/src/root.tsx b/packages/docs/src/root.tsx index 7d6db36..2cddda0 100644 --- a/packages/docs/src/root.tsx +++ b/packages/docs/src/root.tsx @@ -52,16 +52,22 @@ export default component$(() => { title: 'Avanzado', list: [ { name: 'Migración', link: '/docs/migration' }, - { name: 'Extender funcionalidades', link: '/docs/custom' }, + { name: 'MasterClass', link: '/docs/masterclass' }, + ], + }, + { + title: 'Despliegue', + list: [ + { name: 'Local', link: '/docs/deploy/local' }, + { name: 'Docker', link: '/docs/deploy/docker' }, + { name: 'Cloud', link: '/docs/deploy/cloud' }, ], }, { title: 'Comunidad', list: [ - { name: 'MasterClass', link: '/docs/masterclass' }, { name: 'Colabores', link: '/docs/contributing' }, { name: 'Unirme al proyecto', link: '/docs/join' }, - { name: 'Sponsors', link: '/docs/sponsors' }, ], }, ]) diff --git a/packages/docs/src/routes/docs/deploy/cloud/index.mdx b/packages/docs/src/routes/docs/deploy/cloud/index.mdx new file mode 100644 index 0000000..2e38ff3 --- /dev/null +++ b/packages/docs/src/routes/docs/deploy/cloud/index.mdx @@ -0,0 +1,108 @@ +import Alert from '../../../../components/widgets/Alert' +import Navigation from '../../../../components/widgets/Navigation' + +# Entorno Cloud + +Si deseas tener tu chatbot en ejecución en un servidor en la nueba esta, guía te ayudará. +El servidor deberá cumplir con los requisitos mínimos, puedes ver en [este enlace.](/docs/requirements) + +--- + +Dependiendo de tu proveedor de **servicio Cloud** debes crear una instancia (máquina virtual), este ejemplo iremos orientando en un entorno de AWS. +En nuestro ejemplo creamos una maquina virtual con **Ubuntu 20.04** + +![](https://i.imgur.com/5zRCz9q.png) + +--- + +Posterior al proceso de crear la máquina esperamos unos minutos hasta que ya está operativo y tomamos nota del usuario y la IP pública para proceder a conectarnos vía SSH + +## ![](https://i.imgur.com/ljyJPBm.png) + +## Conectarse via SSH + +Luego de obtener los datos necesarios para conectarnos a nuestra máquina, procedemos a hacerlo + +```shell +ssh -i llaveBot.pem ubutnu@34.228.208.104 +``` + +--- + +Luego puede aparecer un mensaje como el siguiente donde solo debes de responder **yes** + +![](https://i.imgur.com/rUBASqR.png) + +--- + +Una vez conectado ya estás dentro de la máquina virtual, te aconsejamos la primera vez hacer una actualización de dependencias de Ubuntu con los siguientes comandos + +```shell +sudo apt-get update +``` + +```shell +sudo apt-get upgrade +``` + +--- + +## Recuerda instalar Node 16 o superior + +Puedes ver más a detalle los pasos de la instalacion en este [blog](https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-es) + +```shell +curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh +``` + +```shell +sudo bash nodesource_setup.sh +``` + +```shell +sudo apt-get install -y nodejs +``` + +--- + +## Implementar el bot + +Si tienes el código de tu chatbot en un repositorio, solo falta que clones el repo en el servidor y ejecutes `npm start` + +Para escanear el **QR** puedes hacerlo vía WEB accediendo a la URL `http://[TU_IP_PUBLICA]:3000` en este ejemplo seria `http://34.228.208.10:3000` + +![](https://i.imgur.com/xcovczm.png) + +--- + +## Firewall + +Si no te abre la pagina web asegurate de tener el puerto abierto en tu firewall. +Ejemplo permitir el puerto **3000** + +![](https://i.imgur.com/0dAz0B1.png) + +--- + +## Escanear QR + +![](https://i.imgur.com/2m3NbXC.png) + +--- + +## Ejecutar en Producción + +Debes ubicarte en el directorio donde tienes el codigo fuente de tu chatbot. + +Independientemente de tu sistema operativo deberás ejecutar el chatbot con el comando atrevés de un sistema que mantenga el proceso en ejecución. +Recomendamos [Pm2](https://pm2.keymetrics.io/) + +```shell +pm2 start app.js --name=bot1 +``` + +![](https://i.imgur.com/ilPS75H.png) + +La consola de devolver un mensaje con una lista de procesos, en el ejemplo puedes observar, que tenemos un proceso llamado `bot1` + +De esta manera ya puedes cerrar la terminal y tu bot seguirá en ejecución sin problema diff --git a/packages/docs/src/routes/docs/deploy/docker/index.mdx b/packages/docs/src/routes/docs/deploy/docker/index.mdx new file mode 100644 index 0000000..9db9e2e --- /dev/null +++ b/packages/docs/src/routes/docs/deploy/docker/index.mdx @@ -0,0 +1,32 @@ +import Alert from '../../../../components/widgets/Alert' +import Navigation from '../../../../components/widgets/Navigation' + +# Entorno Docker + +Previamente, necesitas tener instalado Docker en tu servidor dependiendo del sistema operativo, los procesos cambian, +puedes encontrar toda la información oficial de docker en [este enlace.](https://docs.docker.com/get-docker/) + +--- + +Dependiendo del proveedor que has elegido necesitaras una implementación de Docker específica, pero no te preocupes, ya que viene implementada automáticamente en un archivo llamado **Dockerfile**, también puedes ver los otros Dockerfile en el apartado de [plantillas.](https://github.com/codigoencasa/bot-whatsapp/tree/main/starters/apps) + +![](https://i.imgur.com/cDspa0R.png) + +--- + +## Contruir imagen + +Solo es necesario construir la imagen del docker lo puedes hacer con el siguiente comando + +```shell +docker build . -t botwhatsapp:latest +``` + +## Iniciar contenedor + +Para iniciar el contenedor con la imagen previamente construida puedes realizarlo ejecutando el siguiente comando. +Se utiliza el puerto **3001** solo com un ejemplo puedes usar el puerto que tu quieras + +```shell +docker run -e PORT=3001 -p 3001:3001 botwhatsapp:latest +``` diff --git a/packages/docs/src/routes/docs/deploy/local/index.mdx b/packages/docs/src/routes/docs/deploy/local/index.mdx new file mode 100644 index 0000000..394af82 --- /dev/null +++ b/packages/docs/src/routes/docs/deploy/local/index.mdx @@ -0,0 +1,26 @@ +import Alert from '../../../../components/widgets/Alert' +import Navigation from '../../../../components/widgets/Navigation' + +# Entorno Local + +Si deseas tener tu chatbot en ejecución en un servidor local (computadora personal, etc.) esta, guía te ayudará. +El servidor local deberá cumplir con los requisitos mínimos, puedes ver en [este enlace.](/docs/requirements) + +--- + +Si deseas instalar pm2 puedes ejecutar `npm install pm2 --global` + +Debes ubicarte en el directorio donde tienes el codigo fuente de tu chatbot. + +Independientemente de tu sistema operativo deberás ejecutar el chatbot con el comando atrevés de un sistema que mantenga el proceso en ejecución. +Recomendamos [Pm2](https://pm2.keymetrics.io/) + +```shell +pm2 start app.js --name=bot1 +``` + +![](https://i.imgur.com/ilPS75H.png) + +La consola de devolver un mensaje con una lista de procesos, en el ejemplo puedes observar, que tenemos un proceso llamado `bot1` + +De esta manera ya puedes cerrar la terminal y tu bot seguirá en ejecución sin problema diff --git a/packages/docs/src/routes/docs/masterclass/index.md b/packages/docs/src/routes/docs/masterclass/index.md deleted file mode 100644 index 9f94b4e..0000000 --- a/packages/docs/src/routes/docs/masterclass/index.md +++ /dev/null @@ -1,24 +0,0 @@ -[![hackmd-github-sync-badge](https://hackmd.io/79xQyVSgRD6RsTpqtMPPdw/badge)](https://hackmd.io/79xQyVSgRD6RsTpqtMPPdw) -### Preguntas Frecuentes para Master Class BOT v2 -> Anota aqui las preguntas o dudas que tengas -> Pronto estare publicando fecha y hora para la masterclass - -1.- Si necesito correr dos bots al mismo tiempo ¿donde puedo cambiar el puerto? - -2.- Si necesito agregar o modificar funciones del bot, ¿como puedo hacerlo? - -3.- Si quiero mi bot con otra base de datos diferente a MySQL ¿como lo puedo hacer? - -4.- Quiero conectarme a tal o cual API con JSON/XML/etc, ¿se puede hacer? - -5.- ¿Como integrar listas? - -6.- Preguntas y respuestas con el Bot - -7.- Guardar conversaciones en Excel. - -8.- ¿Puedo usar 2 o mas sesiones (códigos QR) al mismo tiempo? - -9.- ¿Puede ser que al usar el provider bailey, al leer el qr.png, que sea desde una url en el navegador, y no desde visual studio? Gracias - -10.- ¿Cómo tomo los datos que me envían en un mensaje para utilizarlo internamente en la búsqueda de datos propios y devolver la respuesta? diff --git a/packages/docs/src/routes/docs/masterclass/index.mdx b/packages/docs/src/routes/docs/masterclass/index.mdx new file mode 100644 index 0000000..97612b4 --- /dev/null +++ b/packages/docs/src/routes/docs/masterclass/index.mdx @@ -0,0 +1,26 @@ +# MasterClass + + + +--- + +### Preguntas de la masterclass + +- Si necesito correr dos bots al mismo tiempo ¿donde puedo cambiar el puerto? +- Si necesito agregar o modificar funciones del bot, ¿como puedo hacerlo? +- Si quiero mi bot con otra base de datos diferente a MySQL ¿como lo puedo hacer? +- Quiero conectarme a tal o cual API con JSON/XML/etc, ¿se puede hacer? +- ¿Como integrar listas? +- Preguntas y respuestas con el Bot +- Guardar conversaciones en Excel. +- ¿Puedo usar 2 o mas sesiones (códigos QR) al mismo tiempo? +- ¿Puede ser que al usar el provider bailey, al leer el qr.png, que sea desde una url en el navegador, y no desde visual studio? Gracias +- ¿Cómo tomo los datos que me envían en un mensaje para utilizarlo internamente en la búsqueda de datos propios y devolver la respuesta? diff --git a/packages/docs/src/routes/index.tsx b/packages/docs/src/routes/index.tsx index aa594f8..8ad3b75 100644 --- a/packages/docs/src/routes/index.tsx +++ b/packages/docs/src/routes/index.tsx @@ -5,7 +5,9 @@ import Features from '~/components/widgets/Features' import FAQs from '~/components/widgets/FAQs' import CallToAction from '~/components/widgets/CallToAction' import Collaborators from '~/components/widgets/Collaborators' +import Members from '~/components/widgets/Members' import { fetchGithub } from '~/services/github' +import { fetchOpenCollective } from '~/services/opencollective' import { RequestHandlerNetlify } from '@builder.io/qwik-city/middleware/netlify-edge' import { GITHUB_TOKEN } from './docs/constant' @@ -13,8 +15,12 @@ export const onGet: RequestHandlerNetlify = async ({ platform }) => { const CHECK_GITHUB_TOKEN = (platform as any)?.['GITHUB_TOKEN'] ?? GITHUB_TOKEN console.log(`[🚩 platform]: `, GITHUB_TOKEN) - const data = await fetchGithub(CHECK_GITHUB_TOKEN) - return data + const dataGithub = await fetchGithub(CHECK_GITHUB_TOKEN) + const dataOpenCollective = await fetchOpenCollective() + return { + dataGithub, + dataOpenCollective, + } } export default component$(() => { @@ -27,9 +33,16 @@ export default component$(() => { } + onResolved={(data: any) => { + return ( + <> + + + + + ) + }} > - ) }) diff --git a/packages/docs/src/services/github.ts b/packages/docs/src/services/github.ts index 05d2b8f..e60d250 100644 --- a/packages/docs/src/services/github.ts +++ b/packages/docs/src/services/github.ts @@ -14,6 +14,9 @@ export const fetchGithub = async (token: string) => { }, } ) - const listUsers = data.json() - return listUsers + const listUsers = await data.json() + return listUsers.map((u: any) => ({ + ...u, + avatar_url: `${u.avatar_url}&s=80`, + })) } diff --git a/packages/docs/src/services/opencollective.ts b/packages/docs/src/services/opencollective.ts new file mode 100644 index 0000000..2eb60c8 --- /dev/null +++ b/packages/docs/src/services/opencollective.ts @@ -0,0 +1,19 @@ +/** + * GET API from OpenCollective + * @returns + */ +export const fetchOpenCollective = async () => { + const data = await fetch( + `https://opencollective.com/bot-whatsapp/members/users.json?limit=10&offset=0`, + { + method: 'GET', + } + ) + const listUsers = await data.json() + return listUsers.map((u: any) => ({ + html_url: u.profile, + avatar_url: u.image ?? 'https://i.imgur.com/HhiYKwN.png', + login: u.name, + id: u.MemberId, + })) +} diff --git a/packages/portal/.vscode/extensions.json b/packages/portal/.vscode/extensions.json new file mode 100644 index 0000000..1396082 --- /dev/null +++ b/packages/portal/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["dbaeumer.vscode-eslint", "unifiedjs.vscode-mdx"], + "unwantedRecommendations": [] +} diff --git a/packages/portal/.vscode/qwik-city.code-snippets b/packages/portal/.vscode/qwik-city.code-snippets new file mode 100644 index 0000000..b6c1c17 --- /dev/null +++ b/packages/portal/.vscode/qwik-city.code-snippets @@ -0,0 +1,32 @@ +{ + "onGet": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:onGet", + "description": "onGet function for a route index", + "body": [ + "export const onGet: RequestHandler = (request) => {", + " $0", + "};" + ] + }, + "onGet (typed)": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:onGet typed", + "description": "onGet function for a route index", + "body": [ + "export interface ${1:PageData} {", + " $2", + "};", + "", + "export const onGet: RequestHandler<$1> = (request) => {", + " $4", + "};" + ] + }, + "useEndpoint": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useEndpoint", + "description": "useEndpoint declaration", + "body": "const $1 = useEndpoint();" + } +} diff --git a/packages/portal/.vscode/qwik.code-snippets b/packages/portal/.vscode/qwik.code-snippets new file mode 100644 index 0000000..4b89dbf --- /dev/null +++ b/packages/portal/.vscode/qwik.code-snippets @@ -0,0 +1,84 @@ +{ + "Qwik component (simple)": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:component", + "description": "Simple Qwik component", + "body": [ + "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}} = component$(() => {", + " return <${2:div}>$4", + "});" + ] + }, + "Qwik component (props)": { + "scope": "typescriptreact", + "prefix": "q:component w/props", + "description": "Qwik component w/ props", + "body": [ + "export interface ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}}Props {", + " $2", + "}", + "", + "export const $1 = component$<$1Props>((props) => {", + " const ${2:count} = useSignal(0);", + " return (", + " <${3:div} on${4:Click}$={(ev) => {$5}}>", + " $6", + " ", + " );", + "});" + ] + }, + "Qwik signal": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useSignal", + "description": "useSignal() declaration", + "body": ["const ${1:foo} = useSignal($2);", "$0"] + }, + "Qwik store": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useStore", + "description": "useStore() declaration", + "body": ["const ${1:state} = useStore({", " $2", "});", "$0"] + }, + "$ hook": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:$", + "description": "$() function hook", + "body": ["$(() => {", " $0", "});", ""] + }, + "useClientEffect": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useClientEffect", + "description": "useClientEffect$() function hook", + "body": ["useClientEffect$(({ track }) => {", " $0", "});", ""] + }, + "useTask": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useTask", + "description": "useTask$() function hook", + "body": [ + "useTask$(({ track }) => {", + " track(() => $1);", + " $0", + "});", + "" + ] + }, + "useResource": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useResource", + "description": "useResource$() declaration", + "body": [ + "const $1 = useResource$(({ track, cleanup }) => {", + " $0", + "});", + "" + ] + }, + "useServerMount": { + "scope": "javascriptreact,typescriptreact", + "prefix": "q:useServerMount", + "description": "useServerMount$() function hook", + "body": ["useServerMount$(() => {", " $0", "});", ""] + } +} diff --git a/packages/portal/package.json b/packages/portal/package.json index 0892707..c26ab32 100644 --- a/packages/portal/package.json +++ b/packages/portal/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/portal", - "version": "0.0.21-alpha.0", + "version": "0.0.22-alpha.0", "description": "Portal WEB para escanear QR", "main": "./lib/portal.http.cjs", "scripts": { diff --git a/packages/portal/server/@qwik-city-not-found-paths.js b/packages/portal/server/@qwik-city-not-found-paths.js new file mode 100644 index 0000000..f5f657d --- /dev/null +++ b/packages/portal/server/@qwik-city-not-found-paths.js @@ -0,0 +1,15 @@ +const notFounds = [ + [ + '/', + '\n\n\n \n \n 404 Resource Not Found\n \n \n\n\n

404 Resource Not Found

\n\n', + ], +] +function getNotFound(p) { + for (const r of notFounds) { + if (p.startsWith(r[0])) { + return r[1] + } + } + return 'Resource Not Found' +} +export { getNotFound } diff --git a/packages/portal/server/@qwik-city-plan.mjs b/packages/portal/server/@qwik-city-plan.mjs new file mode 100644 index 0000000..4ae6623 --- /dev/null +++ b/packages/portal/server/@qwik-city-plan.mjs @@ -0,0 +1,5 @@ +import{componentQrl as o,inlinedQrl as i,useStylesScopedQrl as n,Slot as s,useStore as c,useClientEffectQrl as r,_noopQrl as l}from"@builder.io/qwik";import{jsxs as t,jsx as e,Fragment as d}from"@builder.io/qwik/jsx-runtime";const h=`.logo{display:flex;gap:.5rem;align-items:center;align-content:center;color:#1a1a1a}.logo h1{font-size:1.5rem;margin:0} +`,g=o(i(()=>(n(i(h,"s_a8xI1ebvPf4")),t("div",{class:"logo",children:[e("img",{width:"40",height:"40",src:"data:image/png;base64,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",alt:""}),e("h1",{children:"Chatbot"})]})),"s_PjfpaY6FOTY")),P=`header{display:flex;background:white}header .logo a{display:inline-block;padding:10px 10px 7px 20px;text-decoration:none}header ul{margin:0;padding:3px 10px 0 0;list-style:none;flex:1;text-align:right}header li{display:inline-block;margin:0;padding:0}header li a{display:inline-block;padding:15px 10px;text-decoration:none;color:#1a1a1a;font-weight:500}header li a:hover{text-decoration:underline} +`,p=o(i(()=>(n(i(P,"s_DUMnr602HUE")),t("header",{children:[e("div",{class:"logo",children:e("a",{href:"https://github.com/codigoencasa/bot-whatsapp",target:"_blank",title:"qwik",children:e(g,{},"k2_0")})}),t("ul",{children:[e("li",{children:e("a",{href:"https://github.com/codigoencasa/bot-whatsapp",target:"_blank",children:"Docs"})}),e("li",{children:e("a",{href:"https://github.com/codigoencasa/bot-whatsapp/tree/main/starters/apps",target:"_blank",children:"Examples"})}),e("li",{children:e("a",{href:"https://www.youtube.com/watch?v=1u0TTbjK5bo&list=PL_WGMLcL4jzViIlmyDZPnhAdkc8RXGkFh",target:"_blank",children:"Tutorials"})})]})]})),"s_rUlpxt0UkP8")),A=o(i(()=>t(d,{children:[t("main",{children:[e(p,{},"3N_0"),e("section",{children:e(s,{},"3N_1")})]}),e("footer",{children:t("a",{href:"https://qwik.builder.io/",target:"_blank",children:["Made with ",e("strong",{children:"Qwik"})]})})]},"3N_2"),"s_dyI7p8LxEE8")),u=Object.freeze(Object.defineProperty({__proto__:null,default:A},Symbol.toStringTag,{value:"Module"})),w=`div img{display:block;background-color:#f0f0f0;width:350px;height:350px;object-fit:contain;border-radius:10px}div{display:flex;justify-content:center} +`,j=o(i(()=>{n(i(w,"s_C1zLAObj2Tc"));const a=c({count:0});return r(l("s_9iPc0ZNOdxU",[a])),e("div",{children:e("img",{width:350,height:350,src:"qr.png?time="+a.count,alt:"QR"})})},"s_rghJxmpKVus")),m=`.page{display:grid;padding:1rem;gap:2rem}.page .qr-section.links{display:flex;gap:1rem;flex-wrap:wrap}.page .btn-link{background:white;box-shadow:#00000029 0 10px 36px,#0000000f 0 0 0 1px;padding:10px;border-radius:5px;font-weight:600;text-decoration:none;color:#1a1a1a;border:solid 1px #afafaf} +`,y=o(i(()=>(n(i(m,"s_A20fm0z03Yw")),t("div",{class:"page",children:[e("div",{class:"qr-section",children:e(j,{},"UZ_0")}),t("div",{class:"qr-section intructions",children:[e("h1",{children:"Whatsapp QR"}),t("p",{children:["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. ",e("br",{})," Además, nuestro Chatbot se integra fácilmente con otros sistemas y herramientas que ya esté utilizando en su negocio."]}),t("div",{class:"qr-section links",children:[e("a",{class:"btn-link ",target:"_blank",href:"https://bot-whatsapp.netlify.app/",children:"Ver documentación"}),e("a",{class:"btn-link ",target:"_blank",href:"https://www.youtube.com/watch?v=1u0TTbjK5bo&list=PL_WGMLcL4jzViIlmyDZPnhAdkc8RXGkFh",children:"Ver videos"}),e("a",{class:"btn-link ",target:"_blank",href:"https://opencollective.com/bot-whatsapp",children:"Comprar café"})]})]})]})),"s_4uCQXYaqoXY")),f={title:"🤖 Crear chatbot WhatsApp en minutos",meta:[{name:"description",content:"🤖 Crear chatbot WhatsApp en minutos"}]},b=Object.freeze(Object.defineProperty({__proto__:null,default:y,head:f},Symbol.toStringTag,{value:"Module"})),x=()=>u,z=[[/^\/$/,[x,()=>b],void 0,"/",["q-eaa41d1e.js","q-9cbd2586.js"]]],B=[],I=!0,E="/",L=!0,v={routes:z,menus:B,trailingSlash:I,basePathname:E,cacheModules:L};export{E as basePathname,L as cacheModules,v as default,B as menus,z as routes,I as trailingSlash}; diff --git a/packages/portal/server/@qwik-city-static-paths.js b/packages/portal/server/@qwik-city-static-paths.js new file mode 100644 index 0000000..1afa65f --- /dev/null +++ b/packages/portal/server/@qwik-city-static-paths.js @@ -0,0 +1,23 @@ +const staticPaths = new Set([ + '/', + '/favicon.svg', + '/manifest.json', + '/q-manifest.json', + '/robots.txt', + '/service-worker.js', + '/sitemap.xml', + '/water-mark.png', +]) +function isStaticPath(p) { + if (p.startsWith('/build/')) { + return true + } + if (p.startsWith('/assets/')) { + return true + } + if (staticPaths.has(p)) { + return true + } + return false +} +export { isStaticPath } diff --git a/packages/portal/server/entry.ssr.js b/packages/portal/server/entry.ssr.js new file mode 100644 index 0000000..eed19e1 --- /dev/null +++ b/packages/portal/server/entry.ssr.js @@ -0,0 +1 @@ +export * from './entry.ssr.mjs' diff --git a/packages/portal/server/entry.ssr.mjs b/packages/portal/server/entry.ssr.mjs new file mode 100644 index 0000000..c4fbac2 --- /dev/null +++ b/packages/portal/server/entry.ssr.mjs @@ -0,0 +1,2 @@ +import{jsx as r,jsxs as z,Fragment as qe}from"@builder.io/qwik/jsx-runtime";import{renderToStream as je}from"@builder.io/qwik/server";import{componentQrl as j,inlinedQrl as p,useContext as E,jsx as be,SkipRender as we,useEnvData as te,useStore as m,useContextProvider as u,useWatchQrl as ke,useLexicalScope as ne,getLocale as ve,noSerialize as se,Slot as U,useOnDocument as Ce,createContext as k,withLocale as H,_wrapSignal as P,_IMMUTABLE as W,useStylesQrl as Le}from"@builder.io/qwik";const Ne={symbols:{s_kzjavhDI3L0:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"Link_component_a_onClick",canonicalFilename:"s_kzjavhdi3l0",hash:"kzjavhDI3L0",ctxKind:"event",ctxName:"onClick$",captures:!0,parent:"s_8gdLBszqbaM"},s_yiXwCC0m3jY:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"Link_component_a_onMouseOver",canonicalFilename:"s_yixwcc0m3jy",hash:"yiXwCC0m3jY",ctxKind:"event",ctxName:"onMouseOver$",captures:!1,parent:"s_8gdLBszqbaM"},s_EpaZ5qQ4Lg4:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"Link_component_a_onQVisible",canonicalFilename:"s_epaz5qq4lg4",hash:"EpaZ5qQ4Lg4",ctxKind:"event",ctxName:"onQVisible$",captures:!1,parent:"s_8gdLBszqbaM"},s_9iPc0ZNOdxU:{origin:"components/qr/qr.tsx",displayName:"QR_component_useClientEffect",canonicalFilename:"s_9ipc0znodxu",hash:"9iPc0ZNOdxU",ctxKind:"function",ctxName:"useClientEffect$",captures:!0,parent:"s_rghJxmpKVus"},s_4uCQXYaqoXY:{origin:"routes/index.tsx",displayName:"routes_component",canonicalFilename:"s_4ucqxyaqoxy",hash:"4uCQXYaqoXY",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_8gdLBszqbaM:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"Link_component",canonicalFilename:"s_8gdlbszqbam",hash:"8gdLBszqbaM",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_AKetNByE5TM:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"RouterOutlet_component",canonicalFilename:"s_aketnbye5tm",hash:"AKetNByE5TM",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_BVs20TDbvq4:{origin:"root.tsx",displayName:"root_component",canonicalFilename:"s_bvs20tdbvq4",hash:"BVs20TDbvq4",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_D0p4a09aSQg:{origin:"components/router-head/router-head.tsx",displayName:"RouterHead_component",canonicalFilename:"s_d0p4a09asqg",hash:"D0p4a09aSQg",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_PjfpaY6FOTY:{origin:"components/icons/bot.tsx",displayName:"BotLogo_component",canonicalFilename:"s_pjfpay6foty",hash:"PjfpaY6FOTY",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_TxCFOy819ag:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"QwikCityProvider_component",canonicalFilename:"s_txcfoy819ag",hash:"TxCFOy819ag",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_WmYC5H00wtI:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"QwikCityMockProvider_component",canonicalFilename:"s_wmyc5h00wti",hash:"WmYC5H00wtI",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_dyI7p8LxEE8:{origin:"routes/layout.tsx",displayName:"layout_component",canonicalFilename:"s_dyi7p8lxee8",hash:"dyI7p8LxEE8",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_rUlpxt0UkP8:{origin:"components/header/header.tsx",displayName:"header_component",canonicalFilename:"s_rulpxt0ukp8",hash:"rUlpxt0UkP8",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_rghJxmpKVus:{origin:"components/qr/qr.tsx",displayName:"QR_component",canonicalFilename:"s_rghjxmpkvus",hash:"rghJxmpKVus",ctxKind:"function",ctxName:"component$",captures:!1,parent:null},s_xHG1bWPFcUU:{origin:"root.tsx",displayName:"root_component_useStyles",canonicalFilename:"s_xhg1bwpfcuu",hash:"xHG1bWPFcUU",ctxKind:"function",ctxName:"useStyles$",captures:!1,parent:"s_BVs20TDbvq4"},s_A20fm0z03Yw:{origin:"routes/index.tsx",displayName:"routes_component_useStylesScoped",canonicalFilename:"s_a20fm0z03yw",hash:"A20fm0z03Yw",ctxKind:"function",ctxName:"useStylesScoped$",captures:!1,parent:"s_4uCQXYaqoXY"},s_C1zLAObj2Tc:{origin:"components/qr/qr.tsx",displayName:"QR_component_useStylesScoped",canonicalFilename:"s_c1zlaobj2tc",hash:"C1zLAObj2Tc",ctxKind:"function",ctxName:"useStylesScoped$",captures:!1,parent:"s_rghJxmpKVus"},s_DUMnr602HUE:{origin:"components/header/header.tsx",displayName:"header_component_useStylesScoped",canonicalFilename:"s_dumnr602hue",hash:"DUMnr602HUE",ctxKind:"function",ctxName:"useStylesScoped$",captures:!1,parent:"s_rUlpxt0UkP8"},s_a8xI1ebvPf4:{origin:"components/icons/bot.tsx",displayName:"BotLogo_component_useStylesScoped",canonicalFilename:"s_a8xi1ebvpf4",hash:"a8xI1ebvPf4",ctxKind:"function",ctxName:"useStylesScoped$",captures:!1,parent:"s_PjfpaY6FOTY"},s_00bFc4tHmxA:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"useEndpoint_useResource",canonicalFilename:"s_00bfc4thmxa",hash:"00bFc4tHmxA",ctxKind:"function",ctxName:"useResource$",captures:!0,parent:null},s_2Eo7WCpaqI8:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"QwikCityProvider_component_useWatch",canonicalFilename:"s_2eo7wcpaqi8",hash:"2Eo7WCpaqI8",ctxKind:"function",ctxName:"useWatch$",captures:!0,parent:"s_TxCFOy819ag"},s_u0YVoxt2aTY:{origin:"../../../node_modules/@builder.io/qwik-city/index.qwik.mjs",displayName:"Link_component_useOnDocument",canonicalFilename:"s_u0yvoxt2aty",hash:"u0YVoxt2aTY",ctxKind:"function",ctxName:"useOnDocument",captures:!1,parent:"s_8gdLBszqbaM"}},mapping:{s_kzjavhDI3L0:"q-a72d609e.js",s_yiXwCC0m3jY:"q-a72d609e.js",s_EpaZ5qQ4Lg4:"q-a72d609e.js",s_9iPc0ZNOdxU:"q-a72d609e.js",s_4uCQXYaqoXY:"q-a72d609e.js",s_8gdLBszqbaM:"q-a72d609e.js",s_AKetNByE5TM:"q-a72d609e.js",s_BVs20TDbvq4:"q-a72d609e.js",s_D0p4a09aSQg:"q-a72d609e.js",s_PjfpaY6FOTY:"q-a72d609e.js",s_TxCFOy819ag:"q-a72d609e.js",s_WmYC5H00wtI:"q-a72d609e.js",s_dyI7p8LxEE8:"q-a72d609e.js",s_rUlpxt0UkP8:"q-a72d609e.js",s_rghJxmpKVus:"q-a72d609e.js",s_xHG1bWPFcUU:"q-a72d609e.js",s_A20fm0z03Yw:"q-a72d609e.js",s_C1zLAObj2Tc:"q-a72d609e.js",s_DUMnr602HUE:"q-a72d609e.js",s_a8xI1ebvPf4:"q-a72d609e.js",s_00bFc4tHmxA:"q-a72d609e.js",s_2Eo7WCpaqI8:"q-a72d609e.js",s_u0YVoxt2aTY:"q-a72d609e.js"},bundles:{"q-0d007131.js":{size:507,imports:["q-3e21ace4.js"],dynamicImports:["q-9cbd2586.js","q-eaa41d1e.js","q-f1036226.js"],origins:["@qwik-city-plan"]},"q-3e21ace4.js":{size:43312,origins:["\0vite/preload-helper","node_modules/@builder.io/qwik/core.min.mjs"]},"q-45aab3b6.js":{size:2536,origins:["../../node_modules/@builder.io/qwik-city/service-worker.mjs","src/routes/service-worker.ts"]},"q-9cbd2586.js":{size:319,imports:["q-3e21ace4.js"],dynamicImports:["q-a72d609e.js"],origins:["src/routes/index.tsx"]},"q-a72d609e.js":{size:25263,imports:["q-3e21ace4.js"],dynamicImports:["q-0d007131.js"],origins:["../../node_modules/@builder.io/qwik-city/index.qwik.mjs","src/components/header/header.css?used&inline","src/components/header/header.tsx","src/components/icons/bot.css?used&inline","src/components/icons/bot.tsx","src/components/qr/qr.css?used&inline","src/components/qr/qr.tsx","src/components/router-head/router-head.tsx","src/entry_hooks.js","src/global.css?used&inline","src/routes/index.css?used&inline","src/s_00bfc4thmxa.js","src/s_2eo7wcpaqi8.js","src/s_4ucqxyaqoxy.js","src/s_8gdlbszqbam.js","src/s_9ipc0znodxu.js","src/s_a20fm0z03yw.js","src/s_a8xi1ebvpf4.js","src/s_aketnbye5tm.js","src/s_bvs20tdbvq4.js","src/s_c1zlaobj2tc.js","src/s_d0p4a09asqg.js","src/s_dumnr602hue.js","src/s_dyi7p8lxee8.js","src/s_epaz5qq4lg4.js","src/s_kzjavhdi3l0.js","src/s_pjfpay6foty.js","src/s_rghjxmpkvus.js","src/s_rulpxt0ukp8.js","src/s_txcfoy819ag.js","src/s_u0yvoxt2aty.js","src/s_wmyc5h00wti.js","src/s_xhg1bwpfcuu.js","src/s_yixwcc0m3jy.js"],symbols:["s_00bFc4tHmxA","s_2Eo7WCpaqI8","s_4uCQXYaqoXY","s_8gdLBszqbaM","s_9iPc0ZNOdxU","s_A20fm0z03Yw","s_a8xI1ebvPf4","s_AKetNByE5TM","s_BVs20TDbvq4","s_C1zLAObj2Tc","s_D0p4a09aSQg","s_DUMnr602HUE","s_dyI7p8LxEE8","s_EpaZ5qQ4Lg4","s_kzjavhDI3L0","s_PjfpaY6FOTY","s_rghJxmpKVus","s_rUlpxt0UkP8","s_TxCFOy819ag","s_u0YVoxt2aTY","s_WmYC5H00wtI","s_xHG1bWPFcUU","s_yiXwCC0m3jY"]},"q-df6dc34c.js":{size:185,imports:["q-3e21ace4.js"],dynamicImports:["q-a72d609e.js"],origins:["src/root.tsx"]},"q-eaa41d1e.js":{size:185,imports:["q-3e21ace4.js"],dynamicImports:["q-a72d609e.js"],origins:["src/routes/layout.tsx"]},"q-f1036226.js":{size:112,imports:["q-3e21ace4.js"],dynamicImports:["q-45aab3b6.js"],origins:["@qwik-city-entries"]}},injections:[],version:"1",options:{target:"client",buildMode:"production",forceFullBuild:!0,entryStrategy:{type:"single"}},platform:{qwik:"0.16.2",vite:"",rollup:"3.9.1",env:"node",os:"win32",node:"18.12.1"}},Ee=!0,Ie=!1,oe=k("qc-c"),D=k("qc-ic"),O=k("qc-h"),Q=k("qc-l"),M=k("qc-n"),Pe=j(p(()=>{const{contents:e}=E(D);if(e&&e.length>0){const t=e.length;let n=null;for(let s=t-1;s>=0;s--)n=be(e[s].default,{children:n});return n}return we},"RouterOutlet_component_AKetNByE5TM")),R=new WeakMap,N=Symbol(),F=Symbol(),w=new Map,Se=async(e,t,n,s)=>{if(Array.isArray(e))for(const o of e){const a=o[0].exec(s);if(a){const i=o[1],c=Ye(o[2],a),l=o[4],f=new Array(i.length),y=[],_=Te(t,s);let v;return i.forEach((d,g)=>{$(d,y,I=>f[g]=I,n)}),$(_,y,d=>v=d==null?void 0:d.default,n),y.length>0&&await Promise.all(y),[c,f,v,l]}}return null},$=(e,t,n,s)=>{if(typeof e=="function"){const o=R.get(e);if(o)n(o);else{const a=e();typeof a.then=="function"?t.push(a.then(i=>{s!==!1&&R.set(e,i),n(i)})):a&&n(a)}}},Te=(e,t)=>{if(e){t=t.endsWith("/")?t:t+"/";const n=e.find(s=>s[0]===t||t.startsWith(s[0]+(t.endsWith("/")?"":"/")));if(n)return n[1]}},Ye=(e,t)=>{const n={};if(e)for(let s=0;s{const o=K(),a={data:e?e.body:null,head:o,withLocale:i=>H(s,i),...t};for(let i=n.length-1;i>=0;i--){const c=n[i]&&n[i].head;c&&(typeof c=="function"?V(o,H(s,()=>c(a))):typeof c=="object"&&V(o,c))}return a.head},V=(e,t)=>{typeof t.title=="string"&&(e.title=t.title),S(e.meta,t.meta),S(e.links,t.links),S(e.styles,t.styles),Object.assign(e.frontmatter,t.frontmatter)},S=(e,t)=>{if(Array.isArray(t))for(const n of t){if(typeof n.key=="string"){const s=e.findIndex(o=>o.key===n.key);if(s>-1){e[s]=n;continue}}e.push(n)}},K=()=>({title:"",meta:[],links:[],styles:[],frontmatter:{}}),Fe=()=>E(O),ae=()=>E(Q),Ue=()=>E(M),De=()=>se(te("qwikcity")),x=e=>e.pathname+e.search+e.hash,q=(e,t)=>new URL(e,t.href),ie=(e,t)=>e.origin===t.origin,ce=(e,t)=>e.pathname+e.search===t.pathname+t.search,Oe=(e,t)=>e.pathname===t.pathname,X=(e,t)=>ie(e,t)&&!ce(e,t),Qe=(e,t)=>e+(e.endsWith("/")?"":"/")+"q-data.json"+(t??""),Me=(e,t)=>{const n=e.href;if(typeof n=="string"&&n.trim()!==""&&typeof e.target!="string")try{const s=q(n,t),o=q("",t);if(ie(s,o))return x(s)}catch(s){console.error(s)}return null},Ke=(e,t,n)=>{if(e.prefetch!==!1&&t){const s=q(t,n);if(!Oe(s,q("",n)))return""}return null},Ae=(e,t)=>{const n=e.location,s=q(t.path,n);X(n,s)&&(Z(e,n,s),e.history.pushState("","",x(s))),e[F]||(e[F]=1,e.addEventListener("popstate",()=>{const o=e.location,a=q(t.path,o);X(o,a)&&(Z(e,a,o),t.path=x(o))}),e.removeEventListener("popstate",e[N]))},Z=async(e,t,n)=>{const s=e.document,o=n.hash;if(ce(t,n))t.hash!==o&&(await T(),o?J(s,o):e.scrollTo(0,0));else if(o)for(let a=0;a<24&&(await T(),!J(s,o));a++);else await T(),e.scrollTo(0,0)},T=()=>new Promise(e=>setTimeout(e,12)),J=(e,t)=>{const n=t.slice(1),s=e.getElementById(n);return s&&s.scrollIntoView(),s},G=e=>{typeof document<"u"&&document.dispatchEvent(new CustomEvent("qprefetch",{detail:e}))},re=async(e,t)=>{const n=new URL(e),s=n.pathname,o=n.search,a=Qe(s,o);let i=w.get(a);return G({links:[s]}),i||(i=fetch(a).then(c=>{if(c.ok&&(c.headers.get("content-type")||"").includes("json"))return c.json().then(l=>(G({bundles:l.prefetch}),t&&w.delete(a),l));w.delete(a)}),w.set(a,i)),i},Be=j(p(()=>{const e=De();if(!(e!=null&&e.params))throw new Error("Missing Qwik City Env Data");const t=te("url");if(!t)throw new Error("Missing Qwik URL Env Data");const n=new URL(t),s=m({href:n.href,pathname:n.pathname,query:Object.fromEntries(n.searchParams.entries()),params:e.params}),o=m({path:x(n)}),a=m(K),i=m({headings:void 0,menu:void 0}),c=m({contents:void 0});return u(oe,i),u(D,c),u(O,a),u(Q,s),u(M,o),ke(p(async({track:l})=>{const[f,y,_,v,d,g]=ne(),I=ve(""),{routes:le,menus:de,cacheModules:pe,trailingSlash:A}=await import("./@qwik-city-plan.mjs"),me=l(()=>g.path),h=new URL(me,d.href),C=h.pathname,ue=Se(le,de,pe,C),he=Ee?v.response:re(h.href,!0),B=await ue;if(B){const[fe,_e,xe]=B,L=_e,ye=L[L.length-1];if(C.endsWith("/")){if(!A){h.pathname=C.slice(0,-1),g.path=x(h);return}}else if(A){h.pathname+="/",g.path=x(h);return}d.href=h.href,d.pathname=C,d.params={...fe},d.query=Object.fromEntries(h.searchParams.entries()),f.headings=ye.headings,f.menu=xe,y.contents=se(L);const ge=await he,b=ze(ge,d,L,I);w.clear(),_.links=b.links,_.meta=b.meta,_.styles=b.styles,_.title=b.title,_.frontmatter=b.frontmatter,Ie&&Ae(window,g)}},"QwikCityProvider_component_useWatch_2Eo7WCpaqI8",[i,c,a,e,s,o])),r(U,{},"qY_0")},"QwikCityProvider_component_TxCFOy819ag"));p(e=>{const t=e.url??"http://localhost/",n=new URL(t),s=m({href:n.href,pathname:n.pathname,query:Object.fromEntries(n.searchParams.entries()),params:e.params??{}}),o=m({path:x(n)}),a=m(K),i=m({headings:void 0,menu:void 0}),c=m({contents:void 0});return u(oe,i),u(D,c),u(O,a),u(Q,s),u(M,o),r(U,{},"qY_1")},"QwikCityMockProvider_component_WmYC5H00wtI");p(e=>{const t=Ue(),n=ae(),s=e.href,o={...e},a=Me(o,n),i=Ke(e,a,n);return o["preventdefault:click"]=!!a,o.href=a||s,Ce("qinit",p(()=>{window[N]||(window[N]=()=>{window[F]||location.reload()},setTimeout(()=>{addEventListener("popstate",window[N])},0))},"Link_component_useOnDocument_u0YVoxt2aTY")),r("a",{...o,onClick$:p(()=>{const[c,l,f]=ne();c&&(f.path=l.href)},"Link_component_a_onClick_kzjavhDI3L0",[a,o,t]),"data-prefetch":i,onMouseOver$:p((c,l)=>ee(l),"Link_component_a_onMouseOver_yiXwCC0m3jY"),onQVisible$:p((c,l)=>ee(l,!0),"Link_component_a_onQVisible_EpaZ5qQ4Lg4"),children:r(U,{},"AD_0")})},"Link_component_8gdLBszqbaM");const ee=(e,t)=>{e&&e.href&&e.hasAttribute("data-prefetch")&&(Y||(Y=innerWidth),(!t||t&&Y<520)&&re(e.href))};let Y=0;const He=j(p(()=>{const e=Fe(),t=ae();return z(qe,{children:[r("title",{children:P(e,"title")}),r("link",{rel:"canonical",get href(){return t.href},[W]:{href:P(t,"href")}}),r("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),r("link",{rel:"icon",type:"image/svg+xml",href:"/favicon.svg"}),e.meta.map(n=>r("meta",{...n})),e.links.map(n=>r("link",{...n})),e.styles.map(n=>r("style",{...n.props,get dangerouslySetInnerHTML(){return n.style},[W]:{dangerouslySetInnerHTML:P(n,"style")}}))]},"Qn_0")},"s_D0p4a09aSQg")),We=`:root{--qwik-dark-blue: #1a1a1a;--qwik-light-blue: #349713;--qwik-light-purple: #73da51;--qwik-dark-purple: #3f9622}body{background-color:#fafafa;font-family:Inter,sans-serif,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;padding:20px 20px 40px}main{max-width:760px;margin:0 auto;background-color:#fff;border-radius:5px;box-shadow:#110c2e26 0 48px 100px;overflow:hidden}h1,h2{margin:0 0 5px}.lightning{filter:hue-rotate(180deg)}section{padding:20px}ul{list-style-type:square;margin:5px 0 30px;padding-left:25px}li{padding:8px 0}li::marker{color:var(--qwik-light-blue)}a,a:visited{color:var(--qwik-dark-blue)}a:hover{text-decoration:none}table.commands{margin:0 0 30px}.commands td{padding:5px}.commands td:first-child{white-space:nowrap;padding-right:20px}code{font-family:Menlo,Monaco,Courier New,monospace;font-size:.9em;background-color:#e0e0e0;padding:2px 4px;border-radius:3px;border-bottom:2px solid #bfbfbf}footer{padding:15px;text-align:center;font-size:.8em}footer a{text-decoration:none}footer a:hover{text-decoration:underline}a.mindblow{margin:0 auto;display:block;background:var(--qwik-dark-purple);padding:10px 20px;border-radius:10px;border:0;color:#fff;text-decoration:none;font-size:20px;width:fit-content;border-bottom:4px solid black;cursor:url("data:image/svg+xml;utf8,\\1f92f") 16 0,auto}a.mindblow:hover{border-bottom-width:0px;margin-bottom:4px;transform:translateY(4px)} +`,Re=j(p(()=>(Le(p(We,"s_xHG1bWPFcUU")),z(Be,{children:[z("head",{children:[r("meta",{charSet:"utf-8"}),r("link",{rel:"preconnect",href:"https://rsms.me/"}),r("link",{rel:"stylesheet",href:"https://rsms.me/inter/inter.css"}),r(He,{},"pq_0")]}),r("body",{lang:"en",children:r(Pe,{},"pq_1")})]},"pq_2")),"s_BVs20TDbvq4"));function Ze(e){return je(r(Re,{},"we_0"),{manifest:Ne,...e,containerAttributes:{lang:"en-us",...e.containerAttributes}})}export{Ze as default}; diff --git a/packages/portal/server/package.json b/packages/portal/server/package.json new file mode 100644 index 0000000..4720025 --- /dev/null +++ b/packages/portal/server/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/packages/provider/package.json b/packages/provider/package.json index a5ab3b0..5c3ef0a 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.69-alpha.0", + "version": "0.0.70-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], 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",