@adens/wanie 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -1,13 +1,13 @@
1
- # OpenWA runtime settings
1
+ # Wanie runtime settings
2
2
  # Required for CLI and deployment
3
- OPENWA_JWT_SECRET=your_secret_key_here
3
+ WANIE_JWT_SECRET=your_secret_key_here
4
4
 
5
5
  # Optional values for Docker / server deployment
6
6
  #HOST=0.0.0.0
7
7
  #FE_PORT=55111
8
8
  #BE_PORT=55222
9
- #OPENWA_DATA_DIR=/app/storage
10
- #OPENWA_AUTO_OPEN=false
11
- #OPENWA_USE_WWEBJS=true
12
- #OPENWA_ALLOW_MOCK=false
9
+ #WANIE_DATA_DIR=/app/storage
10
+ #WANIE_AUTO_OPEN=false
11
+ #WANIE_USE_WWEBJS=true
12
+ #WANIE_ALLOW_MOCK=false
13
13
  #DATABASE_URL=file:./storage/database/openwa.db
@@ -1,12 +1,12 @@
1
1
  version: '3.8'
2
2
 
3
3
  services:
4
- wanie:
4
+ openwa:
5
5
  build:
6
6
  context: .
7
7
  dockerfile: Dockerfile
8
- image: 'wanie:latest'
9
- container_name: wanie
8
+ image: 'openwa:latest'
9
+ container_name: openwa
10
10
  env_file:
11
11
  - .env
12
12
  environment:
@@ -20,21 +20,21 @@ services:
20
20
  WANIE_ALLOW_MOCK: '${WANIE_ALLOW_MOCK}'
21
21
  DATABASE_URL: '${DATABASE_URL}'
22
22
  volumes:
23
- - 'wanie-storage:/app/storage'
23
+ - 'openwa-storage:/app/storage'
24
24
  restart: unless-stopped
25
25
 
26
26
  labels:
27
27
  - "traefik.enable=true"
28
- - "traefik.http.routers.wanie.rule=Host(`wanie.commitflow.space`)"
29
- - "traefik.http.routers.wanie.entrypoints=websecure"
30
- - "traefik.http.routers.wanie.tls=true"
31
- - "traefik.http.services.wanie.loadbalancer.server.port=55111"
28
+ - "traefik.http.routers.openwa.rule=Host(`openwa.commitflow.space`)"
29
+ - "traefik.http.routers.openwa.entrypoints=websecure"
30
+ - "traefik.http.routers.openwa.tls=true"
31
+ - "traefik.http.services.openwa.loadbalancer.server.port=55111"
32
32
 
33
33
  networks:
34
34
  - coolify
35
35
 
36
36
  volumes:
37
- wanie-storage:
37
+ openwa-storage:
38
38
 
39
39
  networks:
40
40
  coolify:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adens/wanie",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "description": "Wanie is an AI messaging CRM for WhatsApp, Telegram, and external apps.",
5
5
  "license": "MIT",
6
6
  "author": "asepindrak <asepindrakurniawan@gmail.com>",
@@ -1,7 +1,6 @@
1
1
  const { prisma } = require("../database/client");
2
2
  const chatService = require("./chat-service");
3
3
  const TelegramService = require("./telegram-service");
4
- const WhatsAppMetaService = require("./whatsapp-meta-service");
5
4
 
6
5
  const DEFAULT_MAX_ATTEMPTS = Math.max(
7
6
  1,
@@ -23,6 +22,10 @@ let workerTimer = null;
23
22
  let workerContext = null;
24
23
  let cleanupTimer = null;
25
24
 
25
+ function getWhatsAppMetaService() {
26
+ return require("./whatsapp-meta-service");
27
+ }
28
+
26
29
  function userRoom(userId) {
27
30
  return `user:${userId}`;
28
31
  }
@@ -164,6 +167,7 @@ async function deliverMessage({ message, sessionManager }) {
164
167
  }
165
168
 
166
169
  if (transport === "whatsapp_cloud") {
170
+ const WhatsAppMetaService = getWhatsAppMetaService();
167
171
  return WhatsAppMetaService.sendMessage(message);
168
172
  }
169
173
 
@@ -1 +1 @@
1
- QQ1ysyWPzWQomE__NhSkk
1
+ Dd6A1Jk0UaTH3tnZ32O1w
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js",
9
- "static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js"
8
+ "static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js",
9
+ "static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -49,7 +49,7 @@
49
49
  "static/chunks/112-ca8e9951d0f252f3.js",
50
50
  "static/chunks/345-e3903db3bacd28c4.js",
51
51
  "static/chunks/853-82d0cd3e3aea25ba.js",
52
- "static/chunks/pages/dashboard-59b9d8a866dc0f3a.js"
52
+ "static/chunks/pages/dashboard-7e3b74583d1118f9.js"
53
53
  ]
54
54
  },
55
55
  "ampFirstPages": []
@@ -2,8 +2,8 @@
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {
5
- "NEXT_PUBLIC_WANIE_VERSION": "1.2.4",
6
- "NEXT_PUBLIC_OPENWA_VERSION": "1.2.4"
5
+ "NEXT_PUBLIC_WANIE_VERSION": "1.2.6",
6
+ "NEXT_PUBLIC_OPENWA_VERSION": "1.2.6"
7
7
  },
8
8
  "webpack": null,
9
9
  "eslint": {
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/pages/index-eed3e77a2d6d4965.js"],"/_app":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/css/bea5989ca8575b05.css","static/chunks/pages/_app-37894446f6ae5afe.js"],"/_error":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/pages/_error-54ded4deef871f80.js"],"/crm":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/853-82d0cd3e3aea25ba.js","static/chunks/pages/crm-7139cae207bc3414.js"],"/dashboard":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/345-e3903db3bacd28c4.js","static/chunks/853-82d0cd3e3aea25ba.js","static/chunks/pages/dashboard-59b9d8a866dc0f3a.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/pages/index-eed3e77a2d6d4965.js"],"/_app":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/css/bea5989ca8575b05.css","static/chunks/pages/_app-37894446f6ae5afe.js"],"/_error":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/pages/_error-54ded4deef871f80.js"],"/crm":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/853-82d0cd3e3aea25ba.js","static/chunks/pages/crm-7139cae207bc3414.js"],"/dashboard":["static/chunks/webpack-5e931bb610e47be1.js","static/chunks/framework-4a528b3463cc1b0e.js","static/chunks/main-fa3d9aaba0152bd0.js","static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/345-e3903db3bacd28c4.js","static/chunks/853-82d0cd3e3aea25ba.js","static/chunks/pages/dashboard-7e3b74583d1118f9.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54ded4deef871f80.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"QQ1ysyWPzWQomE__NhSkk","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54ded4deef871f80.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"Dd6A1Jk0UaTH3tnZ32O1w","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54ded4deef871f80.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"QQ1ysyWPzWQomE__NhSkk","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54ded4deef871f80.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"Dd6A1Jk0UaTH3tnZ32O1w","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/1d0474cf-ec3da571186edc9c.js" defer=""></script><script src="/_next/static/chunks/49e74b9e-07a6db5f839f54a4.js" defer=""></script><script src="/_next/static/chunks/112-ca8e9951d0f252f3.js" defer=""></script><script src="/_next/static/chunks/853-82d0cd3e3aea25ba.js" defer=""></script><script src="/_next/static/chunks/pages/crm-7139cae207bc3414.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/crm","query":{},"buildId":"QQ1ysyWPzWQomE__NhSkk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/1d0474cf-ec3da571186edc9c.js" defer=""></script><script src="/_next/static/chunks/49e74b9e-07a6db5f839f54a4.js" defer=""></script><script src="/_next/static/chunks/112-ca8e9951d0f252f3.js" defer=""></script><script src="/_next/static/chunks/853-82d0cd3e3aea25ba.js" defer=""></script><script src="/_next/static/chunks/pages/crm-7139cae207bc3414.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/crm","query":{},"buildId":"Dd6A1Jk0UaTH3tnZ32O1w","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/1d0474cf-ec3da571186edc9c.js" defer=""></script><script src="/_next/static/chunks/49e74b9e-07a6db5f839f54a4.js" defer=""></script><script src="/_next/static/chunks/112-ca8e9951d0f252f3.js" defer=""></script><script src="/_next/static/chunks/345-e3903db3bacd28c4.js" defer=""></script><script src="/_next/static/chunks/853-82d0cd3e3aea25ba.js" defer=""></script><script src="/_next/static/chunks/pages/dashboard-59b9d8a866dc0f3a.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/dashboard","query":{},"buildId":"QQ1ysyWPzWQomE__NhSkk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/1d0474cf-ec3da571186edc9c.js" defer=""></script><script src="/_next/static/chunks/49e74b9e-07a6db5f839f54a4.js" defer=""></script><script src="/_next/static/chunks/112-ca8e9951d0f252f3.js" defer=""></script><script src="/_next/static/chunks/345-e3903db3bacd28c4.js" defer=""></script><script src="/_next/static/chunks/853-82d0cd3e3aea25ba.js" defer=""></script><script src="/_next/static/chunks/pages/dashboard-7e3b74583d1118f9.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/dashboard","query":{},"buildId":"Dd6A1Jk0UaTH3tnZ32O1w","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Login | Wanie</title><meta name="description" content="Sign in or register for your Wanie workspace to manage sessions and chats from one dashboard." data-next-head=""/><meta name="theme-color" content="#111b21" data-next-head=""/><link rel="icon" href="/favicon.ico" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/index-eed3e77a2d6d4965.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_buildManifest.js" defer=""></script><script src="/_next/static/QQ1ysyWPzWQomE__NhSkk/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-long.png"/><link rel="preload" as="image" href="/logo-square.png"/><div id="__next"><main class="min-h-screen bg-[linear-gradient(180deg,#0b141a_0%,#111b21_100%)] px-6 py-8"><section class="mx-auto grid w-full max-w-[1180px] overflow-hidden rounded-[36px] border border-white/10 bg-[#0f1a20] shadow-[0_24px_90px_rgba(0,0,0,0.35)] lg:grid-cols-[1.05fr_0.95fr]"><div class="relative hidden min-h-[720px] overflow-hidden bg-[radial-gradient(circle_at_top_left,rgba(37,211,102,0.28),transparent_36%),linear-gradient(180deg,#0b141a_0%,#111b21_100%)] px-10 py-10 lg:flex lg:flex-col"><div class="absolute inset-0 bg-[linear-gradient(135deg,transparent_0%,rgba(255,255,255,0.03)_45%,transparent_100%)]"></div><div class="relative z-10 flex items-center justify-between"><div><img src="/logo-long.png" alt="Wanie" class="object-contain h-12 w-auto max-w-[220px]"/><p class="mt-5 text-xs uppercase tracking-[0.35em] text-brand-100/70">Wanie Workspace</p><h1 class="mt-3 text-4xl font-semibold leading-tight text-white">AI messaging CRM,<br/>packed into one CLI.</h1></div><div class="rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80">Local-first</div></div><div class="relative z-10 mt-10 grid gap-4"><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">Unified inbox for WhatsApp, Telegram, and external apps.</p></div><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">AI auto-replies grounded in your CRM knowledge base.</p></div><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">Webhooks, REST APIs, media, and realtime updates in one CLI package.</p></div></div><div class="relative z-10 mt-auto rounded-[32px] border border-white/10 bg-white/[0.05] p-6 backdrop-blur"><div class="mb-5 flex items-center gap-3"><div class="flex h-12 w-12 items-center justify-center rounded-2xl bg-white p-2 shadow-[0_12px_30px_rgba(0,0,0,0.18)]"><img src="/logo-square.png" alt="Wanie icon" class="object-cover h-full w-full rounded-xl"/></div><div><p class="text-sm font-semibold text-white">Production-style control center</p><p class="text-sm text-white/50">Session manager, dashboard auth, media tools, and realtime sockets.</p></div></div><div class="grid gap-3 sm:grid-cols-3"><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Frontend</p><p class="mt-2 text-lg font-semibold text-white">55111</p></div><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Backend</p><p class="mt-2 text-lg font-semibold text-white">55222</p></div><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Mode</p><p class="mt-2 text-lg font-semibold text-white">Local</p></div></div></div></div><div class="flex items-center justify-center bg-[#f7f8fa] px-6 py-8 sm:px-10"><section class="w-full max-w-[470px] rounded-[32px] bg-white p-8 shadow-[0_20px_60px_rgba(17,27,33,0.12)] ring-1 ring-black/5 sm:p-10"><div class="mb-8 flex items-start justify-between gap-4"><div><img src="/logo-long.png" alt="Wanie" class="object-contain mb-4 h-10 w-auto max-w-[180px]"/><p class="text-[11px] font-semibold uppercase tracking-[0.28em] text-[#00a884]">Wanie Access</p><h2 class="mt-3 text-3xl font-semibold leading-tight text-[#111b21]">Sign in to Wanie</h2><p class="mt-3 text-sm leading-7 text-[#667781]">Continue to your AI messaging CRM and manage every customer conversation from one place.</p></div><div class="rounded-full bg-[#f0f2f5] px-3 py-1 text-xs font-semibold uppercase tracking-[0.16em] text-[#54656f]">CLI</div></div><div class="mb-7 grid grid-cols-2 gap-2 rounded-full bg-[#f0f2f5] p-1.5"><button type="button" class="rounded-full px-4 py-3 text-sm font-semibold transition bg-white text-[#111b21] shadow-sm">Login</button><button type="button" class="rounded-full px-4 py-3 text-sm font-semibold transition text-[#667781] hover:text-[#111b21]">Register</button></div><form class="space-y-4"><label class="block"><span class="mb-2 block text-sm font-medium text-[#54656f]">Email</span><input type="email" class="w-full rounded-2xl border border-[#d1d7db] bg-[#f7f8fa] px-4 py-3.5 text-[#111b21] outline-none transition placeholder:text-[#8696a0] focus:border-[#00a884] focus:bg-white" placeholder="you@example.com" required="" value=""/></label><label class="block"><span class="mb-2 block text-sm font-medium text-[#54656f]">Password</span><input type="password" class="w-full rounded-2xl border border-[#d1d7db] bg-[#f7f8fa] px-4 py-3.5 text-[#111b21] outline-none transition placeholder:text-[#8696a0] focus:border-[#00a884] focus:bg-white" placeholder="Minimum 1 character" required="" value=""/></label><button type="submit" class="w-full rounded-2xl bg-[#00a884] px-4 py-3.5 font-semibold text-white transition hover:bg-[#019273] disabled:cursor-not-allowed disabled:opacity-60">Enter dashboard</button></form><div class="mt-4 flex items-center justify-between text-sm text-[#667781]"><button type="button" class="font-medium text-[#00a884] hover:text-[#01886d]">Forgot password?</button></div><div class="mt-8 rounded-[24px] bg-[#f7f8fa] px-4 py-4"><p class="text-xs uppercase tracking-[0.22em] text-[#8696a0]">Setup flow</p><p class="mt-2 text-sm leading-7 text-[#54656f]">Install once with npm, run `wanie`, sign in to the dashboard, and connect multiple WhatsApp devices from your local browser.</p></div></section></div></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"QQ1ysyWPzWQomE__NhSkk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Login | Wanie</title><meta name="description" content="Sign in or register for your Wanie workspace to manage sessions and chats from one dashboard." data-next-head=""/><meta name="theme-color" content="#111b21" data-next-head=""/><link rel="icon" href="/favicon.ico" data-next-head=""/><link rel="preload" href="/_next/static/css/bea5989ca8575b05.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bea5989ca8575b05.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5e931bb610e47be1.js" defer=""></script><script src="/_next/static/chunks/framework-4a528b3463cc1b0e.js" defer=""></script><script src="/_next/static/chunks/main-fa3d9aaba0152bd0.js" defer=""></script><script src="/_next/static/chunks/pages/_app-37894446f6ae5afe.js" defer=""></script><script src="/_next/static/chunks/pages/index-eed3e77a2d6d4965.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_buildManifest.js" defer=""></script><script src="/_next/static/Dd6A1Jk0UaTH3tnZ32O1w/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-long.png"/><link rel="preload" as="image" href="/logo-square.png"/><div id="__next"><main class="min-h-screen bg-[linear-gradient(180deg,#0b141a_0%,#111b21_100%)] px-6 py-8"><section class="mx-auto grid w-full max-w-[1180px] overflow-hidden rounded-[36px] border border-white/10 bg-[#0f1a20] shadow-[0_24px_90px_rgba(0,0,0,0.35)] lg:grid-cols-[1.05fr_0.95fr]"><div class="relative hidden min-h-[720px] overflow-hidden bg-[radial-gradient(circle_at_top_left,rgba(37,211,102,0.28),transparent_36%),linear-gradient(180deg,#0b141a_0%,#111b21_100%)] px-10 py-10 lg:flex lg:flex-col"><div class="absolute inset-0 bg-[linear-gradient(135deg,transparent_0%,rgba(255,255,255,0.03)_45%,transparent_100%)]"></div><div class="relative z-10 flex items-center justify-between"><div><img src="/logo-long.png" alt="Wanie" class="object-contain h-12 w-auto max-w-[220px]"/><p class="mt-5 text-xs uppercase tracking-[0.35em] text-brand-100/70">Wanie Workspace</p><h1 class="mt-3 text-4xl font-semibold leading-tight text-white">AI messaging CRM,<br/>packed into one CLI.</h1></div><div class="rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80">Local-first</div></div><div class="relative z-10 mt-10 grid gap-4"><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">Unified inbox for WhatsApp, Telegram, and external apps.</p></div><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">AI auto-replies grounded in your CRM knowledge base.</p></div><div class="rounded-[28px] border border-white/10 bg-white/[0.04] px-5 py-4 backdrop-blur"><p class="text-sm leading-7 text-white/78">Webhooks, REST APIs, media, and realtime updates in one CLI package.</p></div></div><div class="relative z-10 mt-auto rounded-[32px] border border-white/10 bg-white/[0.05] p-6 backdrop-blur"><div class="mb-5 flex items-center gap-3"><div class="flex h-12 w-12 items-center justify-center rounded-2xl bg-white p-2 shadow-[0_12px_30px_rgba(0,0,0,0.18)]"><img src="/logo-square.png" alt="Wanie icon" class="object-cover h-full w-full rounded-xl"/></div><div><p class="text-sm font-semibold text-white">Production-style control center</p><p class="text-sm text-white/50">Session manager, dashboard auth, media tools, and realtime sockets.</p></div></div><div class="grid gap-3 sm:grid-cols-3"><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Frontend</p><p class="mt-2 text-lg font-semibold text-white">55111</p></div><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Backend</p><p class="mt-2 text-lg font-semibold text-white">55222</p></div><div class="rounded-2xl bg-[#111b21] px-4 py-4"><p class="text-[11px] uppercase tracking-[0.22em] text-white/35">Mode</p><p class="mt-2 text-lg font-semibold text-white">Local</p></div></div></div></div><div class="flex items-center justify-center bg-[#f7f8fa] px-6 py-8 sm:px-10"><section class="w-full max-w-[470px] rounded-[32px] bg-white p-8 shadow-[0_20px_60px_rgba(17,27,33,0.12)] ring-1 ring-black/5 sm:p-10"><div class="mb-8 flex items-start justify-between gap-4"><div><img src="/logo-long.png" alt="Wanie" class="object-contain mb-4 h-10 w-auto max-w-[180px]"/><p class="text-[11px] font-semibold uppercase tracking-[0.28em] text-[#00a884]">Wanie Access</p><h2 class="mt-3 text-3xl font-semibold leading-tight text-[#111b21]">Sign in to Wanie</h2><p class="mt-3 text-sm leading-7 text-[#667781]">Continue to your AI messaging CRM and manage every customer conversation from one place.</p></div><div class="rounded-full bg-[#f0f2f5] px-3 py-1 text-xs font-semibold uppercase tracking-[0.16em] text-[#54656f]">CLI</div></div><div class="mb-7 grid grid-cols-2 gap-2 rounded-full bg-[#f0f2f5] p-1.5"><button type="button" class="rounded-full px-4 py-3 text-sm font-semibold transition bg-white text-[#111b21] shadow-sm">Login</button><button type="button" class="rounded-full px-4 py-3 text-sm font-semibold transition text-[#667781] hover:text-[#111b21]">Register</button></div><form class="space-y-4"><label class="block"><span class="mb-2 block text-sm font-medium text-[#54656f]">Email</span><input type="email" class="w-full rounded-2xl border border-[#d1d7db] bg-[#f7f8fa] px-4 py-3.5 text-[#111b21] outline-none transition placeholder:text-[#8696a0] focus:border-[#00a884] focus:bg-white" placeholder="you@example.com" required="" value=""/></label><label class="block"><span class="mb-2 block text-sm font-medium text-[#54656f]">Password</span><input type="password" class="w-full rounded-2xl border border-[#d1d7db] bg-[#f7f8fa] px-4 py-3.5 text-[#111b21] outline-none transition placeholder:text-[#8696a0] focus:border-[#00a884] focus:bg-white" placeholder="Minimum 1 character" required="" value=""/></label><button type="submit" class="w-full rounded-2xl bg-[#00a884] px-4 py-3.5 font-semibold text-white transition hover:bg-[#019273] disabled:cursor-not-allowed disabled:opacity-60">Enter dashboard</button></form><div class="mt-4 flex items-center justify-between text-sm text-[#667781]"><button type="button" class="font-medium text-[#00a884] hover:text-[#01886d]">Forgot password?</button></div><div class="mt-8 rounded-[24px] bg-[#f7f8fa] px-4 py-4"><p class="text-xs uppercase tracking-[0.22em] text-[#8696a0]">Setup flow</p><p class="mt-2 text-sm leading-7 text-[#54656f]">Install once with npm, run `wanie`, sign in to the dashboard, and connect multiple WhatsApp devices from your local browser.</p></div></section></div></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"Dd6A1Jk0UaTH3tnZ32O1w","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST=function(s,a,e,r,t,c,n){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:s,errorRate:1e-4,numBits:s,numHashes:null,bitArray:[]},"/":["static/chunks/pages/index-eed3e77a2d6d4965.js"],"/_error":["static/chunks/pages/_error-54ded4deef871f80.js"],"/crm":[r,t,c,n,"static/chunks/pages/crm-7139cae207bc3414.js"],"/dashboard":[r,t,c,"static/chunks/345-e3903db3bacd28c4.js",n,"static/chunks/pages/dashboard-59b9d8a866dc0f3a.js"],sortedPages:["/","/_app","/_error","/crm","/dashboard"]}}(0,1e-4,null,"static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/853-82d0cd3e3aea25ba.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST=function(s,a,e,r,t,c,n){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:null,bitArray:[]},__routerFilterDynamic:{numItems:s,errorRate:1e-4,numBits:s,numHashes:null,bitArray:[]},"/":["static/chunks/pages/index-eed3e77a2d6d4965.js"],"/_error":["static/chunks/pages/_error-54ded4deef871f80.js"],"/crm":[r,t,c,n,"static/chunks/pages/crm-7139cae207bc3414.js"],"/dashboard":[r,t,c,"static/chunks/345-e3903db3bacd28c4.js",n,"static/chunks/pages/dashboard-7e3b74583d1118f9.js"],sortedPages:["/","/_app","/_error","/crm","/dashboard"]}}(0,1e-4,null,"static/chunks/1d0474cf-ec3da571186edc9c.js","static/chunks/49e74b9e-07a6db5f839f54a4.js","static/chunks/112-ca8e9951d0f252f3.js","static/chunks/853-82d0cd3e3aea25ba.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();