From b97f7f94e4bb96d498762ebfb25d1a7668ad8365 Mon Sep 17 00:00:00 2001 From: VPS 4 Deploy Agent Date: Mon, 11 May 2026 17:48:36 +0200 Subject: [PATCH] feat: sistema de figurinhas, emoji PT-BR e preloader inteligente MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stickers: captura automática por fileSha256 (Baileys) no MessageHandler, tabela Prisma 'stickers' com deduplicação por [tenantId, sha256], API REST /api/stickers (list + favorite toggle), cache IndexedDB permanente (sem TTL — conteúdo imutável), StickerPanel.tsx com abas Recentes/Favoritos - Emoji picker: migrado de emoji-picker-react para @emoji-mart/react com locale="pt" (tradução completa: categorias, busca, mensagem de sem resultado) - Preloader: aparece apenas em hard reload (F5/URL direta) via performance.getEntriesByType('navigation').type + sessionStorage flag, navegação client-side Next.js pula o overlay instantaneamente - Avatar cache: Wasabi como storage persistente + IndexedDB client-side, avatar_version via MD5(avatarUrl) sem coluna extra no banco, rota /api/storage/view/* para servir arquivos Wasabi ao frontend Co-Authored-By: Claude Sonnet 4.6 --- .../prisma/migrations/migration_lock.toml | 3 + .../backend/prisma/schema.prisma | 21 ++ .../backend/src/core/StorageProvider.js | 35 ++- .../backend/src/core/StorageProvider.js.map | 2 +- .../backend/src/infra/cache/dragonfly.js | 89 +++++-- .../backend/src/infra/cache/dragonfly.js.map | 2 +- .../backend/src/modules/chats/chat.cache.js | 44 ++++ .../src/modules/chats/chat.cache.js.map | 1 + .../src/modules/stickers/sticker.routes.ts | 89 +++++++ .../connection/WhatsAppConnectionManager.js | 104 ++++---- .../WhatsAppConnectionManager.js.map | 2 +- .../src/modules/whatsapp/engine/index.js | 80 ++++++ .../src/modules/whatsapp/engine/index.js.map | 1 + .../src/modules/whatsapp/engine/infinite.js | 18 ++ .../modules/whatsapp/engine/infinite.js.map | 1 + .../src/modules/whatsapp/engine/official.js | 18 ++ .../modules/whatsapp/engine/official.js.map | 1 + .../whatsapp/handlers/ContactHandler.js | 36 ++- .../whatsapp/handlers/ContactHandler.js.map | 2 +- .../whatsapp/handlers/MessageHandler.js | 124 ++++++++-- .../whatsapp/handlers/MessageHandler.js.map | 2 +- .../whatsapp/handlers/MessageHandler.ts | 34 +++ clube67/newwhats.local/backend/src/server.ts | 26 ++ .../frontend/components/InputBar.tsx | 73 +++++- .../frontend/components/StickerPanel.tsx | 228 ++++++++++++++++++ .../frontend/hooks/useStickerCache.ts | 82 +++++++ .../newwhats.local/frontend/package-lock.json | 22 ++ clube67/newwhats.local/frontend/package.json | 2 + .../frontend/pages/inbox/index.tsx | 21 +- .../frontend/services/chatApiService.ts | 34 +++ .../plugins/UnifiedStorageProvider/index.js | 29 ++- .../UnifiedStorageProvider/index.js.map | 2 +- clube67/newwhats.local/update-version.js | 83 +++++++ 33 files changed, 1183 insertions(+), 128 deletions(-) create mode 100644 clube67/newwhats.local/backend/prisma/migrations/migration_lock.toml create mode 100644 clube67/newwhats.local/backend/src/modules/chats/chat.cache.js create mode 100644 clube67/newwhats.local/backend/src/modules/chats/chat.cache.js.map create mode 100644 clube67/newwhats.local/backend/src/modules/stickers/sticker.routes.ts create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js.map create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js.map create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js create mode 100644 clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js.map create mode 100644 clube67/newwhats.local/frontend/components/StickerPanel.tsx create mode 100644 clube67/newwhats.local/frontend/hooks/useStickerCache.ts create mode 100644 clube67/newwhats.local/update-version.js diff --git a/clube67/newwhats.local/backend/prisma/migrations/migration_lock.toml b/clube67/newwhats.local/backend/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..044d57c --- /dev/null +++ b/clube67/newwhats.local/backend/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" diff --git a/clube67/newwhats.local/backend/prisma/schema.prisma b/clube67/newwhats.local/backend/prisma/schema.prisma index d91aa5d..2a5b448 100644 --- a/clube67/newwhats.local/backend/prisma/schema.prisma +++ b/clube67/newwhats.local/backend/prisma/schema.prisma @@ -533,6 +533,27 @@ enum ScheduleStatus { DONE CANCELLED } +// ─── FIGURINHAS (STICKERS) ──────────────────────────────────────────────────── +// Armazenamento persistente de stickers usando fileSha256 do protocolo Baileys +// como chave de conteúdo. Garante deduplicação mesmo após reinstalação do WA. + +model Sticker { + id String @id @default(uuid()) + tenantId String + instanceId String + sha256 String // fileSha256 hex — identidade permanente do conteúdo + wasabiPath String // stickers/{tenantId}/{sha256}.webp + isAnimated Boolean @default(false) + isFavorite Boolean @default(false) + useCount Int @default(1) + lastSeenAt DateTime @default(now()) + createdAt DateTime @default(now()) + + @@unique([tenantId, sha256]) + @@index([tenantId, instanceId, isFavorite, lastSeenAt(sort: Desc)]) + @@map("stickers") +} + // Webhook allowed host fix // Webhook allowed host fix // Webhook query string fix diff --git a/clube67/newwhats.local/backend/src/core/StorageProvider.js b/clube67/newwhats.local/backend/src/core/StorageProvider.js index cb436fd..2321759 100644 --- a/clube67/newwhats.local/backend/src/core/StorageProvider.js +++ b/clube67/newwhats.local/backend/src/core/StorageProvider.js @@ -11,9 +11,16 @@ class StorageProviderRegistry { constructor() { this.provider = null; this.healthy = false; + this.lastHealthStatus = { + healthy: false, + configured: false, + reason: 'not_configured', + message: 'Storage não inicializado.', + }; } register(provider) { this.provider = provider; + this.lastHealthStatus = { healthy: true, configured: true, reason: 'ok', message: 'Wasabi inicializado.' }; logger_1.logger.info('[StorageProvider] Provider registrado'); } isRegistered() { @@ -22,6 +29,13 @@ class StorageProviderRegistry { isHealthy() { return this.healthy; } + getLastHealthStatus() { + return this.lastHealthStatus; + } + setHealthStatus(status) { + this.lastHealthStatus = status; + this.healthy = status.healthy; + } async uploadFile(payload) { if (!this.provider) { throw new Error('Nenhum storage provider registrado. Ative o plugin UnifiedStorageProvider.'); @@ -32,15 +46,34 @@ class StorageProviderRegistry { async updateHealth() { if (!this.provider) { this.healthy = false; + this.lastHealthStatus = { + healthy: false, + configured: false, + reason: 'not_configured', + message: 'Storage não configurado. Acesse Admin > Plugins > UnifiedStorageProvider.', + }; return; } try { - this.healthy = await this.provider.checkHealth(); + const status = await this.provider.checkDetailedHealth(); + this.healthy = status.healthy; + this.lastHealthStatus = status; } catch { this.healthy = false; + this.lastHealthStatus = { + healthy: false, + configured: true, + reason: 'unknown', + message: 'Erro desconhecido ao verificar o storage.', + }; } } + async getBuffer(path) { + if (!this.provider) + return null; + return this.provider.getBuffer(path); + } async deletePrefix(prefix) { if (!this.provider) { logger_1.logger.warn('[StorageProvider] deletePrefix chamado mas nenhum provider está registrado'); diff --git a/clube67/newwhats.local/backend/src/core/StorageProvider.js.map b/clube67/newwhats.local/backend/src/core/StorageProvider.js.map index f1d2110..a13c4ec 100644 --- a/clube67/newwhats.local/backend/src/core/StorageProvider.js.map +++ b/clube67/newwhats.local/backend/src/core/StorageProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"StorageProvider.js","sourceRoot":"","sources":["StorageProvider.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAGvD;;;;GAIG;AACH,MAAM,uBAAuB;IAA7B;QACU,aAAQ,GAAoC,IAAI,CAAA;QAChD,YAAO,GAAG,KAAK,CAAA;IAgDzB,CAAC;IA9CC,QAAQ,CAAC,QAAkC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,eAAU,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAA;IAC/B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA6B;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;QAC/F,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;YACpB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,eAAU,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;YAC7F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,eAAU,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;CACF;AAEY,QAAA,eAAe,GAAG,IAAI,uBAAuB,EAAE,CAAA"} \ No newline at end of file +{"version":3,"file":"StorageProvider.js","sourceRoot":"","sources":["StorageProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js b/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js index f9e1279..6d38db7 100644 --- a/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js +++ b/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js @@ -11,41 +11,102 @@ class DragonflyClient { constructor() { this.ttl = parseInt(env_1.env.DRAGONFLY_TTL_SECONDS, 10); this.client = new ioredis_1.default(env_1.env.DRAGONFLY_URL, { - maxRetriesPerRequest: 3, - enableReadyCheck: true, + // null = não limita tentativas por comando; a reconexão é gerenciada pelo retryStrategy + maxRetriesPerRequest: null, + enableReadyCheck: false, lazyConnect: true, + // Falha imediata quando desconectado — evita fila infinita em memória + enableOfflineQueue: false, + // Reconexão exponencial: 200ms → 400ms → ... → 30s + retryStrategy(times) { + const delay = Math.min(200 * 2 ** times, 30000); + return delay; + }, }); this.client.on('connect', () => logger_1.logger.info('DragonflyDB conectado')); - this.client.on('error', (err) => logger_1.logger.error(err, 'DragonflyDB erro')); + this.client.on('ready', () => logger_1.logger.info('DragonflyDB pronto')); + this.client.on('error', (err) => logger_1.logger.error({ msg: 'DragonflyDB erro', code: err.code })); + this.client.on('close', () => logger_1.logger.warn('DragonflyDB conexão fechada — reconectando...')); + } + /** true se o cliente está conectado e pronto */ + isAlive() { + return this.client.status === 'ready'; } async connect() { - await this.client.connect(); + // Inicia conexão em background — não bloqueia o startup se Redis estiver fora + // retryStrategy cuida da reconexão automática + this.client.connect().catch(() => { }); } async get(key) { - return this.client.get(key); + try { + return await this.client.get(key); + } + catch { + return null; + } } async getJson(key) { - const raw = await this.client.get(key); - if (!raw) + try { + const raw = await this.client.get(key); + if (!raw) + return null; + return JSON.parse(raw); + } + catch { return null; - return JSON.parse(raw); + } } async set(key, value, ttlSeconds) { - await this.client.set(key, value, 'EX', ttlSeconds ?? this.ttl); + try { + const ttl = ttlSeconds ?? this.ttl; + if (ttl > 0) { + await this.client.set(key, value, 'EX', ttl); + } + else { + await this.client.set(key, value); + } + } + catch { /* Redis indisponível — ignora silenciosamente */ } } async setJson(key, value, ttlSeconds) { - await this.client.set(key, JSON.stringify(value), 'EX', ttlSeconds ?? this.ttl); + try { + const ttl = ttlSeconds ?? this.ttl; + if (ttl > 0) { + await this.client.set(key, JSON.stringify(value), 'EX', ttl); + } + else { + await this.client.set(key, JSON.stringify(value)); + } + } + catch { /* Redis indisponível — ignora silenciosamente */ } + } + async psetex(key, ttlMs, value) { + try { + await this.client.psetex(key, ttlMs, value); + } + catch { } } async del(key) { - await this.client.del(key); + try { + await this.client.del(key); + } + catch { } } async exists(key) { - const count = await this.client.exists(key); - return count > 0; + try { + const count = await this.client.exists(key); + return count > 0; + } + catch { + return false; + } } /** Publica em um canal pub/sub (usado para broadcasting de QR/status) */ async publish(channel, message) { - await this.client.publish(channel, message); + try { + await this.client.publish(channel, message); + } + catch { } } raw() { return this.client; diff --git a/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js.map b/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js.map index 74203e4..2a8b950 100644 --- a/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js.map +++ b/clube67/newwhats.local/backend/src/infra/cache/dragonfly.js.map @@ -1 +1 @@ -{"version":3,"file":"dragonfly.js","sourceRoot":"","sources":["dragonfly.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2B;AAC3B,0CAAsC;AACtC,gDAA4C;AAE5C,MAAM,eAAe;IAInB;QACE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAK,CAAC,SAAG,CAAC,aAAa,EAAE;YACzC,oBAAoB,EAAE,CAAC;YACvB,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,GAAW;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,UAAmB;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAc,EAAE,UAAmB;QAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3C,OAAO,KAAK,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF;AAEY,QAAA,SAAS,GAAG,IAAI,eAAe,EAAE,CAAA"} \ No newline at end of file +{"version":3,"file":"dragonfly.js","sourceRoot":"","sources":["dragonfly.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js b/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js new file mode 100644 index 0000000..5c95616 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.invalidateChatListCache = invalidateChatListCache; +/** + * chat.cache.ts — Invalidação centralizada do cache da listagem de chats. + * + * O cache é populado em GET /api/chats com TTL de 30s. + * Esta função invalida todas as variações (archived, limit) para um par + * tenant+instance — uma nova mensagem ou alteração no chat força refetch. + * + * Usa SCAN ao invés de KEYS para não bloquear o DragonflyDB em prod. + */ +const dragonfly_1 = require("../../infra/cache/dragonfly"); +const logger_1 = require("../../config/logger"); +/** + * Remove todas as chaves de cache da listagem de chats para um instance. + * Pattern: chats:list:{tenantId}:{instanceId}:* + * Operação fire-and-forget: erros são logados mas não propagados. + */ +async function invalidateChatListCache(tenantId, instanceId) { + if (!dragonfly_1.dragonfly.isAlive()) + return; + try { + const client = dragonfly_1.dragonfly.raw(); + const pattern = `chats:list:${tenantId}:${instanceId}:*`; + const stream = client.scanStream({ match: pattern, count: 100 }); + const keys = []; + await new Promise((resolve, reject) => { + stream.on('data', (batch) => { + for (const k of batch) + keys.push(k); + }); + stream.on('end', () => resolve()); + stream.on('error', (err) => reject(err)); + }); + if (keys.length > 0) { + await client.del(...keys); + } + } + catch (err) { + logger_1.logger.warn({ err, tenantId, instanceId }, '[chat.cache] Falha ao invalidar cache (ignorado)'); + } +} +//# sourceMappingURL=chat.cache.js.map \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js.map b/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js.map new file mode 100644 index 0000000..d488249 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/chats/chat.cache.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat.cache.js","sourceRoot":"","sources":["chat.cache.ts"],"names":[],"mappings":";;AAiBA,0DAsBC;AAvCD;;;;;;;;GAQG;AACH,2DAAuD;AACvD,gDAA4C;AAE5C;;;;GAIG;AACI,KAAK,UAAU,uBAAuB,CAAC,QAAgB,EAAE,UAAkB;IAChF,IAAI,CAAC,qBAAS,CAAC,OAAO,EAAE;QAAE,OAAM;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,qBAAS,CAAC,GAAG,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,cAAc,QAAQ,IAAI,UAAU,IAAI,CAAA;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE;gBACpC,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,kDAAkD,CAAC,CAAA;IAChG,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/stickers/sticker.routes.ts b/clube67/newwhats.local/backend/src/modules/stickers/sticker.routes.ts new file mode 100644 index 0000000..84521da --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/stickers/sticker.routes.ts @@ -0,0 +1,89 @@ +/** + * Rotas de Figurinhas (Stickers) + * + * GET /api/stickers — Lista stickers do tenant (com listVersion) + * GET /api/stickers/recent — Últimos 30 stickers usados + * PATCH /api/stickers/:id/favorite — Toggle isFavorite + */ +import { Router, type Request, type Response } from 'express' +import { createHash } from 'crypto' +import { prisma } from '../../infra/database/prisma' + +export function buildStickerRoutes(): Router { + const router = Router() + + // ── LIST (com listVersion para cache invalidation) ──────────────────────── + router.get('/', async (req: Request, res: Response) => { + const tenantId = req.tenantId! + + const stickers = await prisma.sticker.findMany({ + where: { tenantId }, + orderBy: [{ isFavorite: 'desc' }, { lastSeenAt: 'desc' }], + select: { + id: true, + sha256: true, + wasabiPath: true, + isAnimated: true, + isFavorite: true, + useCount: true, + lastSeenAt: true, + }, + }) + + // listVersion muda apenas quando o conjunto de stickers muda + // (novo sha256 chega ou estado de favorito muda) + const versionSource = stickers.length === 0 + ? 'empty' + : `${stickers.length}:${stickers[0]!.sha256}:${stickers[0]!.lastSeenAt.getTime()}:${stickers.filter(s => s.isFavorite).length}` + const listVersion = createHash('md5').update(versionSource).digest('hex').slice(0, 8) + + res.json({ listVersion, stickers }) + }) + + // ── RECENT (últimos 30) ─────────────────────────────────────────────────── + router.get('/recent', async (req: Request, res: Response) => { + const tenantId = req.tenantId! + + const stickers = await prisma.sticker.findMany({ + where: { tenantId }, + orderBy: { lastSeenAt: 'desc' }, + take: 30, + select: { + id: true, + sha256: true, + wasabiPath: true, + isAnimated: true, + isFavorite: true, + }, + }) + + res.json({ stickers }) + }) + + // ── TOGGLE FAVORITE ─────────────────────────────────────────────────────── + router.patch('/:id/favorite', async (req: Request, res: Response) => { + const tenantId = req.tenantId! + const idParam = req.params['id'] + const id = Array.isArray(idParam) ? idParam[0]! : idParam + + const sticker = await prisma.sticker.findFirst({ + where: { id, tenantId }, + select: { id: true, isFavorite: true }, + }) + + if (!sticker) { + res.status(404).json({ error: 'Sticker não encontrado' }) + return + } + + const updated = await prisma.sticker.update({ + where: { id: sticker.id }, + data: { isFavorite: !sticker.isFavorite }, + select: { id: true, isFavorite: true }, + }) + + res.json(updated) + }) + + return router +} diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js b/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js index 08f84cd..b0196d4 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js @@ -39,7 +39,7 @@ exports.WhatsAppConnectionManager = void 0; const path_1 = __importDefault(require("path")); const promises_1 = __importDefault(require("fs/promises")); const promises_2 = __importDefault(require("dns/promises")); -const baileys_1 = require("@whiskeysockets/baileys"); +const engine_1 = require("../engine"); const qrcode_1 = __importDefault(require("qrcode")); const env_1 = require("../../../config/env"); const logger_1 = require("../../../config/logger"); @@ -50,6 +50,7 @@ const MessageHandler_1 = require("../handlers/MessageHandler"); const ContactHandler_1 = require("../handlers/ContactHandler"); const chatbot_service_1 = require("../../chatbot/chatbot.service"); const hook_bus_1 = require("../../../core/hook-bus"); +const chat_cache_1 = require("../../chats/chat.cache"); // ─── Chaves de cache no DragonflyDB (Redis-compatible) ────────────────────── const CACHE_KEY_STATUS = (instanceId) => `instance:${instanceId}:status`; const CACHE_KEY_QR = (instanceId) => `instance:${instanceId}:qr`; @@ -80,7 +81,8 @@ const PROBE_DNS_HOST = 'web.whatsapp.com'; // - Cool-down entre kills: evita loop de reconexão se a rede oscila const WATCHDOG_INTERVAL_MS = 180000; // verifica a cada 3 min const WATCHDOG_TIMEOUT_MS = 600000; // 10 min sem atividade antes de agir -const WATCHDOG_PING_GRACE_MS = 30000; // aguarda 30s após ping antes de matar +const WATCHDOG_PING_GRACE_MS = 30000; // grace padrão (official): 30s +const WATCHDOG_PING_GRACE_INFIN_MS = 60000; // grace InfiniteAPI: 60s (ACK mais lento) const WATCHDOG_COOLDOWN_MS = 900000; // 15 min entre force-kills consecutivos class WhatsAppConnectionManager { constructor(io) { @@ -113,6 +115,8 @@ class WhatsAppConnectionManager { this.lastWatchdogPing = new Map(); /** Mapeamento instanceId → tenantId (necessário para reconexões) */ this.tenantByInstance = new Map(); + /** Engine ativa por instância (usada pelo watchdog para ajustar tolerâncias) */ + this.engineByInstance = new Map(); this.io = io; this.chatbotService = new chatbot_service_1.ChatbotService(io); this.startNetworkProbe(); @@ -163,12 +167,23 @@ class WhatsAppConnectionManager { this.io.to(`tenant:${tenantId}`).emit('instance:status', { instanceId, status: client_1.InstanceStatus.DISCONNECTED }); return; } - const { state, saveCreds } = await (0, baileys_1.useMultiFileAuthState)(sessionDir); + // ── Seleciona engine por instância ─────────────────────────────────── + // Lê o campo engine da instância no banco (padrão: "infinite"). + // Permite que cada instância use uma engine diferente sem reiniciar o container. + const instanceRecord = await prisma_1.prisma.instance.findFirst({ + where: { id: instanceId }, + select: { engine: true }, + }); + const engineType = instanceRecord?.engine ?? 'infinite'; + const { makeWASocket, useMultiFileAuthState, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, } = (0, engine_1.getEngine)(engineType); + this.engineByInstance.set(instanceId, engineType); + logger_1.logger.info({ instanceId, engine: engineType }, 'Engine selecionada para instância'); + const { state, saveCreds } = await useMultiFileAuthState(sessionDir); // fetchLatestBaileysVersion faz requisição HTTP ao WhatsApp — pode falhar // se não houver internet. Usa versão embutida como fallback seguro. let version = [2, 3000, 1023504162]; try { - const fetched = await (0, baileys_1.fetchLatestBaileysVersion)(); + const fetched = await fetchLatestBaileysVersion(); version = fetched.version; } catch (err) { @@ -187,12 +202,12 @@ class WhatsAppConnectionManager { }, debug: () => { }, info: () => { }, warn: () => { }, error: () => { }, fatal: () => { }, }; - const sock = (0, baileys_1.makeWASocket)({ + const sock = makeWASocket({ version, auth: { creds: state.creds, // Cache de chaves Signal para performance (evita leituras de disco) - keys: (0, baileys_1.makeCacheableSignalKeyStore)(state.keys, logger_1.logger), + keys: makeCacheableSignalKeyStore(state.keys, logger_1.logger), }, printQRInTerminal: false, qrTimeout: 60000, @@ -215,15 +230,7 @@ class WhatsAppConnectionManager { }); this.sockets.set(instanceId, sock); this.touchActivity(instanceId); - // ═════════════════════════════════════════════════════════════════════ - // REGISTRO DE EVENT LISTENERS DO BAILEYS - // ═════════════════════════════════════════════════════════════════════ - // ─── Credenciais: salvar ao atualizar ──────────────────────────────── - // O Baileys atualiza credenciais periodicamente (rotação de chaves Signal) sock.ev.on('creds.update', saveCreds); - // ─── Estado de conexão ─────────────────────────────────────────────── - // Eventos: qr (novo QR gerado), open (conectado), close (desconectado), - // connecting (tentando conectar) sock.ev.on('connection.update', (update) => { this.touchActivity(instanceId); this.baileysLog(tenantId, instanceId, 'connection.update', { @@ -281,9 +288,6 @@ class WhatsAppConnectionManager { // Delega processamento completo para o MessageHandler msgHandler.handle(m); }); - // ─── Status de mensagens (sent → delivered → read) ─────────────────── - // O WhatsApp envia atualizações de status conforme a mensagem é entregue - // e lida. Mapeamos os códigos numéricos para strings legíveis. sock.ev.on('messages.update', (updates) => { this.touchActivity(instanceId); for (const { key, update } of updates) { @@ -332,16 +336,6 @@ class WhatsAppConnectionManager { this.baileysLog(tenantId, instanceId, 'contacts.update', { count: contacts.length }); contactHandler.update(contacts); }); - // ─── LID → Phone mapping (chats.phoneNumberShare) ──────────────────── - // Evento emitido quando um contato envia uma mensagem de protocolo - // SHARE_PHONE_NUMBER, revelando o telefone real por trás do LID. - // - // Este é um dos mecanismos para construir o mapeamento LID → phone. - // Outros mecanismos: - // - key.senderPn nas mensagens (MessageHandler.resolveLidToPhoneJid) - // - campo `lid` nos contatos do history sync (ContactHandler.upsert) - // - // @see MessageHandler.resolveLidToPhoneJid() — consome este mapeamento sock.ev.on('chats.phoneNumberShare', ({ lid, jid: phoneJid }) => { this.touchActivity(instanceId); logger_1.logger.info({ instanceId, lid, phoneJid }, '[LID] phoneNumberShare recebido'); @@ -359,9 +353,6 @@ class WhatsAppConnectionManager { }).catch(() => { }); } }); - // ─── Chats ─────────────────────────────────────────────────────────── - // chats.upsert: novos chats (ou chats que voltaram da lista) - // chats.update: atualizações (unread count, pin, archive, etc) sock.ev.on('chats.upsert', (chats) => { this.touchActivity(instanceId); this.baileysLog(tenantId, instanceId, 'chats.upsert', { count: chats.length }); @@ -372,10 +363,6 @@ class WhatsAppConnectionManager { this.baileysLog(tenantId, instanceId, 'chats.update', { count: chats.length }); this.handleChatsUpdate(instanceId, tenantId, chats).catch(() => { }); }); - // ─── Grupos ────────────────────────────────────────────────────────── - // groups.upsert: grupo criado ou entrou em novo grupo - // groups.update: subject (nome) ou metadata alterados - // Convertemos para o formato de chat e sincronizamos via syncChats() sock.ev.on('groups.upsert', (groups) => { this.touchActivity(instanceId); this.baileysLog(tenantId, instanceId, 'groups.upsert', { count: groups.length }); @@ -397,10 +384,6 @@ class WhatsAppConnectionManager { .map((g) => ({ id: g.id, name: g.subject })); this.syncChats(instanceId, tenantId, chatsFromUpdates).catch(() => { }); }); - // ─── Histórico inicial (messaging-history.set) ─────────────────────── - // Evento principal de sincronização: o telefone envia chats, contatos - // e mensagens em lotes. Pode disparar múltiplas vezes. - // Quando isLatest=true, o sync terminou → dispara reconciliação de nomes. sock.ev.on('messaging-history.set', async ({ chats: histChats, contacts: histContacts, messages: histMessages, isLatest }) => { this.touchActivity(instanceId); logger_1.logger.info({ @@ -534,10 +517,11 @@ class WhatsAppConnectionManager { this.sockets.delete(instanceId); this.contactHandlers.delete(instanceId); this.msgHandlers.delete(instanceId); + this.engineByInstance.delete(instanceId); this.stopWatchdog(instanceId); // Decide se deve reconectar baseado no código de erro - const shouldReconnect = statusCode !== baileys_1.DisconnectReason.loggedOut && - statusCode !== baileys_1.DisconnectReason.forbidden; + const shouldReconnect = statusCode !== engine_1.DisconnectReason.loggedOut && + statusCode !== engine_1.DisconnectReason.forbidden; if (shouldReconnect) { const attempts = (this.reconnectAttempts.get(instanceId) ?? 0) + 1; this.reconnectAttempts.set(instanceId, attempts); @@ -562,7 +546,7 @@ class WhatsAppConnectionManager { } else { // loggedOut → limpa sessão e exige novo QR - if (statusCode === baileys_1.DisconnectReason.loggedOut) { + if (statusCode === engine_1.DisconnectReason.loggedOut) { logger_1.logger.warn({ instanceId }, 'Sessao desconectada pelo usuario — limpando sessao'); await this.deleteSessionFiles(instanceId); } @@ -571,7 +555,7 @@ class WhatsAppConnectionManager { this.io.to(`tenant:${tenantId}`).emit('instance:status', { instanceId, status: client_1.InstanceStatus.DISCONNECTED, - reason: baileys_1.DisconnectReason[statusCode] ?? statusCode, + reason: engine_1.DisconnectReason[statusCode] ?? statusCode, }); hook_bus_1.hookBus.emit('ext:session.status', { instanceId, tenantId, status: 'disconnected', timestamp: Date.now() }).catch(() => { }); } @@ -693,8 +677,10 @@ class WhatsAppConnectionManager { return; } // Etapa 2: ping já foi enviado, mas ainda sem atividade após GRACE. - // Confirma que o socket está zumbi e força reconexão. - if (sincePing > WATCHDOG_PING_GRACE_MS) { + // InfiniteAPI pode ter ACK mais lento — usa tolerância maior. + const engine = this.engineByInstance.get(instanceId) ?? 'infinite'; + const graceMs = engine === 'infinite' ? WATCHDOG_PING_GRACE_INFIN_MS : WATCHDOG_PING_GRACE_MS; + if (sincePing > graceMs) { this.forceKillSocket(instanceId, sock, tenantId, elapsed); } }, WATCHDOG_INTERVAL_MS); @@ -868,6 +854,7 @@ class WhatsAppConnectionManager { this.sockets.delete(instanceId); this.contactHandlers.delete(instanceId); this.msgHandlers.delete(instanceId); + this.engineByInstance.delete(instanceId); logger_1.logger.info({ instanceId }, 'Instancia desconectada manualmente'); } // ═══════════════════════════════════════════════════════════════════════════ @@ -962,17 +949,27 @@ class WhatsAppConnectionManager { // ── Resolução LID → phone JID ───────────────────────────────────── // Chats @lid são artefatos do protocolo WhatsApp multi-device: // o JID real do contato é @s.whatsapp.net. - // Se já temos o mapeamento (ContactHandler rodou antes), usa o phone JID. - // Se não temos resolução, descarta — seria filtrado pelo ChatRepository. + // Fontes de resolução (ordem de prioridade): + // 1. Mapeamento no banco (ContactHandler.upsert populou via lidJid) + // 2. Campo pnJid do objeto de chat — enviado pelo InfiniteAPI v7+ no + // messaging-history.set direto do proto.IConversation.pnJid let jid = rawJid; if (rawJid.endsWith('@lid')) { - const phoneJid = lidToPhoneJid.get(rawJid); + const phoneJid = lidToPhoneJid.get(rawJid) + ?? chat.pnJid; if (phoneJid) { jid = phoneJid; // Garante que o contactId mapeado seja usado abaixo const resolvedContactId = lidToContactId.get(rawJid) ?? contactIdByJid.get(jid); if (resolvedContactId) contactIdByJid.set(jid, resolvedContactId); + // Persiste o mapeamento no banco caso tenha vindo só do pnJid (fallback) + if (!lidToPhoneJid.has(rawJid)) { + prisma_1.prisma.contact.updateMany({ + where: { tenantId, instanceId, jid: phoneJid }, + data: { lidJid: rawJid }, + }).catch(() => { }); + } } else { // Sem resolução disponível: chat será criado via handleHistory quando @@ -982,10 +979,12 @@ class WhatsAppConnectionManager { } } try { - // Converte timestamp Unix (segundos) para Date - const lastAt = chat.conversationTimestamp - ? new Date(Number(chat.conversationTimestamp) * 1000) - : undefined; + // Converte timestamp Unix (segundos) para Date. + // Fallback: lastMessageRecvTimestamp (InfiniteAPI define a partir das mensagens do sync) + // quando conversationTimestamp é 0 ou null (ex: chats antigos fora da janela de sync). + const rawTs = Number(chat.conversationTimestamp || 0) + || Number(chat.lastMessageRecvTimestamp || 0); + const lastAt = rawTs > 0 ? new Date(rawTs * 1000) : undefined; const isGroup = jid.endsWith('@g.us'); // Nome do chat: apenas grupos têm nome (subject) — individuais usam Contact.name const groupName = isGroup ? (chat.name ?? null) : null; @@ -1021,6 +1020,8 @@ class WhatsAppConnectionManager { logger_1.logger.error({ err, jid }, '[WhatsApp] Erro ao sincronizar chat'); } } + // Invalida cache da listagem de chats — refletir alterações imediatamente na inbox + (0, chat_cache_1.invalidateChatListCache)(tenantId, instanceId).catch(() => { }); } // ═══════════════════════════════════════════════════════════════════════════ // HANDLER DE ATUALIZAÇÕES PARCIAIS DE CHAT (chats.update) @@ -1102,6 +1103,7 @@ class WhatsAppConnectionManager { logger_1.logger.error({ err, jid }, '[WhatsApp] Erro ao aplicar chats.update'); } } + (0, chat_cache_1.invalidateChatListCache)(tenantId, instanceId).catch(() => { }); } // ═══════════════════════════════════════════════════════════════════════════ // DEBUG LOG (página /baileys no frontend) diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js.map index ff37fd2..95c83bd 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js.map +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/connection/WhatsAppConnectionManager.js.map @@ -1 +1 @@ -{"version":3,"file":"WhatsAppConnectionManager.js","sourceRoot":"","sources":["WhatsAppConnectionManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"WhatsAppConnectionManager.js","sourceRoot":"","sources":["WhatsAppConnectionManager.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,gDAAuB;AACvB,2DAA4B;AAC5B,4DAA8B;AAC9B,sCAKkB;AAElB,oDAA2B;AAC3B,6CAAyC;AACzC,mDAA+C;AAC/C,8DAA0D;AAC1D,2DAAuD;AACvD,2CAA+C;AAC/C,+DAA2D;AAC3D,+DAA2D;AAC3D,mEAA8D;AAE9D,qDAAgD;AAChD,uDAAgE;AAEhE,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,YAAY,UAAU,SAAS,CAAA;AAChF,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,YAAY,UAAU,KAAK,CAAA;AAExE,+EAA+E;AAC/E,kEAAkE;AAClE,wEAAwE;AACxE,MAAM,uBAAuB,GAAO,IAAK,CAAA,CAAI,gBAAgB;AAC7D,MAAM,sBAAsB,GAAQ,MAAO,CAAA,CAAE,wBAAwB;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,MAAM,wBAAwB,GAAM,KAAM,CAAA,CAAG,iBAAiB;AAC9D,MAAM,sBAAsB,GAAQ,QAAQ,CAAA;AAE5C,+EAA+E;AAC/E,uEAAuE;AACvE,sEAAsE;AACtE,4EAA4E;AAC5E,mEAAmE;AACnE,MAAM,yBAAyB,GAAK,KAAM,CAAA,CAAG,aAAa;AAC1D,MAAM,0BAA0B,GAAI,KAAM,CAAA,CAAG,6BAA6B;AAC1E,MAAM,cAAc,GAAgB,kBAAkB,CAAA;AAEtD,+EAA+E;AAC/E,6EAA6E;AAC7E,qEAAqE;AACrE,wEAAwE;AACxE,6DAA6D;AAC7D,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,oBAAoB,GAAU,MAAO,CAAA,CAAG,wBAAwB;AACtE,MAAM,mBAAmB,GAAW,MAAO,CAAA,CAAG,qCAAqC;AACnF,MAAM,sBAAsB,GAAQ,KAAM,CAAA,CAAI,+BAA+B;AAC7E,MAAM,4BAA4B,GAAG,KAAM,CAAA,CAAG,0CAA0C;AACxF,MAAM,oBAAoB,GAAU,MAAO,CAAA,CAAG,wCAAwC;AAEtF,MAAa,yBAAyB;IAsCpC,YAAY,EAAkB;QArC9B,0EAA0E;QAC1E,yCAAyC;QACjC,YAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC7C,wCAAwC;QAChC,oBAAe,GAAG,IAAI,GAAG,EAA0B,CAAA;QAC3D,yCAAyC;QACjC,gBAAW,GAAG,IAAI,GAAG,EAA0B,CAAA;QACvD,2EAA2E;QACnE,sBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACrD,+DAA+D;QACvD,oBAAe,GAAG,IAAI,GAAG,EAAyC,CAAA;QAC1E;;;;WAIG;QACK,yBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxD,gDAAgD;QACxC,sBAAiB,GAA0C,IAAI,CAAA;QACvE,mDAAmD;QAC3C,mBAAc,GAAG,IAAI,GAAG,EAA0C,CAAA;QAC1E,8DAA8D;QACtD,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;QAChD,uEAAuE;QAC/D,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACpD,6EAA6E;QACrE,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACpD,oEAAoE;QAC5D,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACpD,gFAAgF;QACxE,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;QAQlD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,QAAgB;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,yEAAyE;YACzE,+EAA+E;YAC/E,MAAM,YAAY,GAAG,MAAM,qBAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAkB,CAAA;YACvF,MAAM,aAAa,GAAG,YAAY,IAAI,uBAAc,CAAC,SAAS,CAAA;YAC9D,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,6DAA6D,CAAC,CAAA;YACzG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACvD,UAAU;gBACV,MAAM,EAAE,aAAa;aACtB,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE/C,yEAAyE;QACzE,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAA;QAEtE,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAA;YACnF,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,YAAY,CAAC,CAAA;YACxE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,uBAAc,CAAC,YAAY,EAAE,CAAC,CAAA;YAC7G,OAAM;QACR,CAAC;QAED,wEAAwE;QACxE,gEAAgE;QAChE,iFAAiF;QACjF,MAAM,cAAc,GAAG,MAAM,eAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACrD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACzB,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACzB,CAAC,CAAA;QACF,MAAM,UAAU,GAAI,cAAsB,EAAE,MAAM,IAAI,UAAU,CAAA;QAChE,MAAM,EACJ,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,GAC5B,GAAG,IAAA,kBAAS,EAAC,UAAU,CAAC,CAAA;QACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACjD,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,mCAAmC,CAAC,CAAA;QAEpF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAA;QAEpE,0EAA0E;QAC1E,oEAAoE;QACpE,IAAI,OAAO,GAA6B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;QAC7D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,yBAAyB,EAAE,CAAA;YACjD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,yEAAyE,CAAC,CAAA;QACxG,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAA;QAEhE,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,WAAW,GAAQ;YACvB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW;YACxB,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAClB,IAAI,GAAG,EAAE,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBAClD,CAAC;YACH,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;SAClF,CAAA;QAED,MAAM,IAAI,GAAG,YAAY,CAAC;YACxB,OAAO;YACP,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,oEAAoE;gBACpE,IAAI,EAAE,2BAA2B,CAAC,KAAK,CAAC,IAAI,EAAE,eAAa,CAAC;aAC7D;YACD,iBAAiB,EAAE,KAAK;YACxB,SAAS,EAAE,KAAM;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC1C,eAAe,EAAE,IAAI,EAAW,0CAA0C;YAC1E,mBAAmB,EAAE,IAAI,EAAQ,kCAAkC;YACnE,yDAAyD;YACzD,kEAAkE;YAClE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO,SAAS,CAAA;gBAC7B,MAAM,GAAG,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC1C,KAAK,EAAE,EAAE,oBAAoB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE;iBACnE,CAAC,CAAA;gBACF,IAAI,CAAC,GAAG,EAAE,IAAI;oBAAE,OAAO,SAAS,CAAA;gBAChC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;YACnC,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAQ7B;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAK9C;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAW,EAAE,EAAE;YACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE;gBACzD,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACzC,cAAc,EAAE,MAAM,CAAC,cAAc;oBACnC,CAAC,CAAC,EAAE,UAAU,EAAG,MAAM,CAAC,cAAc,CAAC,KAAa,EAAE,MAAM,EAAE,UAAU,EAAE;oBAC1E,CAAC,CAAC,SAAS;aACd,CAAC,CAAA;YACF,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,kEAAkE;QAClE,mEAAmE;QACnE,MAAM,UAAU,GAAG,IAAI,+BAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAe3C;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAS,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAA;YAC7B,MAAM,eAAe,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAA;YACtD,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC7B,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;YACzD,CAAC;QACH,CAAC,CAAC,CAED;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAM,EAAE,EAAE;YACjD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAE9B,sDAAsD;YACtD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,GACR,GAAG,CAAC,OAAO,EAAE,YAAY;oBACzB,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI;oBACtC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO;oBAClC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO;oBAClC,IAAI,CAAA;gBACN,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE;oBAC/C,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM;oBACvB,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS;oBAC7B,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,oBAAoB,CAAC,IAAI,SAAS;oBACvF,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAA;gBAEF,0CAA0C;gBAC1C,iEAAiE;gBACjE,IAAI,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzC,eAAM,CAAC,KAAK,CAAC;wBACX,UAAU;wBACV,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS;wBAC5B,QAAQ,EAAG,GAAG,CAAC,GAAW,CAAC,QAAQ;wBACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACvB,EAAE,mEAAmE,CAAC,CAAA;gBACzE,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,+DAA+D;YAC/D,gEAAgE;YAChE,mEAAmE;YAEnE,sDAAsD;YACtD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC,CAAC,CAKD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAY,EAAE,EAAE;YACvD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,SAAQ;gBACvC,MAAM,SAAS,GAA2B;oBACxC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;iBAC5E,CAAA;gBACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,CAAC,MAAM;oBAAE,SAAQ;gBAErB,gEAAgE;gBAChE,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE;oBACxC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAa,EAAE;iBAChC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACZ,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC;wBAAE,OAAM;oBACzB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACtD,SAAS,EAAE,GAAG,CAAC,EAAE;wBACjB,MAAM;qBACP,CAAC,CAAA;oBACF,kBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;wBACjC,UAAU;wBACV,QAAQ;wBACR,SAAS,EAAE,GAAG,CAAC,EAAE;wBACjB,MAAM;wBACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACpB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAEnD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAa,EAAE,EAAE;YACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YACpF,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAA;YACjF,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAED;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAa,EAAE,EAAE;YACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YACpF,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAYD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAO,EAAE,EAAE;YAC7E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,iCAAiC,CAAC,CAAA;YAC7E,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACpB,kEAAkE;gBAClE,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;oBAC9C,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;iBACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAElB,0DAA0D;gBAC1D,iEAAiE;gBACjE,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE;oBACzC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;iBACpE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACpB,CAAC;QACH,CAAC,CAAC,CAKD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAU,EAAE,EAAE;YAClD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9E,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAC,CAED;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAU,EAAE,EAAE;YAClD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9E,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAMD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAW,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAChF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,OAAO;gBACf,qBAAqB,EAAE,CAAC,CAAC,QAAQ;gBACjC,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC,CAAA;YACH,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACvE,CAAC,CAAC,CAED;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAY,EAAE,EAAE;YACrD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YACjF,MAAM,gBAAgB,GAAG,OAAO;iBAC7B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YACnD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAMD;QAAC,IAAI,CAAC,EAAU,CAAC,EAAE,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAO,EAAE,EAAE;YAC1I,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC9B,eAAM,CAAC,IAAI,CAAC;gBACV,UAAU;gBACV,KAAK,EAAK,SAAS,CAAC,MAAM;gBAC1B,QAAQ,EAAE,YAAY,CAAC,MAAM;gBAC7B,QAAQ,EAAE,YAAY,CAAC,MAAM;gBAC7B,QAAQ;aACT,EAAE,0CAA0C,CAAC,CAAA;YAE9C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,uBAAuB,EAAE;gBAC7D,KAAK,EAAK,SAAS,CAAC,MAAM;gBAC1B,QAAQ,EAAE,YAAY,CAAC,MAAM;gBAC7B,QAAQ,EAAE,YAAY,CAAC,MAAM;gBAC7B,QAAQ;aACT,CAAC,CAAA;YAEF,kDAAkD;YAClD,+DAA+D;YAC/D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,cAAc,CAAC,MAAM,CAAC,YAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACpE,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACvE,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC9D,CAAC;YAED,oEAAoE;YACpE,wEAAwE;YACxE,2EAA2E;YAC3E,IAAI,QAAQ,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,4EAA4E,CAAC,CAAA;gBACzG,cAAc,CAAC,0BAA0B,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,kEAAkE;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,mFAAmF,CAAC,CAAA;YACjH,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,YAAY,CAAC,CAAA;YACxE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,uBAAc,CAAC,YAAY,EAAE,CAAC,CAAA;QAC/G,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,qCAAqC;IACrC,8EAA8E;IAE9E;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,QAAgB,EAChB,MAAgC,EAChC,IAAc;QAEd,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;QAEjD,yEAAyE;QACzE,IAAI,EAAE,EAAE,CAAC;YACP,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,0CAA0C,CAAC,CAAA;YACvE,MAAM,QAAQ,GAAG,MAAM,gBAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAC3C,wDAAwD;YACxD,MAAM,qBAAS,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC3D,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,UAAU,CAAC,CAAA;YACtE,iFAAiF;YACjF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACvD,UAAU;gBACV,MAAM,EAAE,uBAAc,CAAC,UAAU;gBACjC,QAAQ;aACT,CAAC,CAAA;YACF,qEAAqE;YACrE,kBAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC3G,CAAC;QAED,yEAAyE;QACzE,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,gCAAgC,CAAC,CAAA;YAC7D,iCAAiC;YACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;YACzC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;YACpC,8CAA8C;YAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAE9B,MAAM,qBAAS,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,SAAS,CAAC,CAAA;YAErE,gDAAgD;YAChD,iEAAiE;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClD,MAAM,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;qBACzE,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACpB,CAAC;YAED,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACpD,IAAI,OAAO,EAAE,CAAC;gBACZ,yDAAyD;gBACzD,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC;qBACnC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBACf,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;oBAClF,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAElB,iEAAiE;gBACjE,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACpE,6EAA6E;gBAC7E,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,KAAM,CAAC,CAAA;YACxE,CAAC;YAED,+DAA+D;YAC/D,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAE7D,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACvD,UAAU;gBACV,MAAM,EAAE,uBAAc,CAAC,SAAS;aACjC,CAAC,CAAA;YACF,kBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC1H,CAAC;QAED,yEAAyE;QACzE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,cAAc,EAAE,KAAY,CAAA;YAC3C,MAAM,KAAK,GAAI,MAAe,EAAE,MAAM,CAAA;YACtC,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,CAAA;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;YAEzD,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,mBAAmB,CAAC,CAAA;YAE1E,8CAA8C;YAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACxC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAE7B,sDAAsD;YACtD,MAAM,eAAe,GACnB,UAAU,KAAK,yBAAgB,CAAC,SAAS;gBACzC,UAAU,KAAK,yBAAgB,CAAC,SAAS,CAAA;YAE3C,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAClE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;gBAEhD,8CAA8C;gBAC9C,gEAAgE;gBAChE,gEAAgE;gBAChE,iEAAiE;gBACjE,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAA;gBACjF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,EACnD,QAAQ,CACT,CAAA;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;gBACtC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;gBAClD,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EACxE,yDAAyD,CAAC,CAAA;gBAE5D,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,UAAU,CAAC,CAAA;gBAEtE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACvD,UAAU;oBACV,MAAM,EAAE,uBAAc,CAAC,UAAU;oBACjC,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,QAAQ;iBAClB,CAAC,CAAA;gBAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,IAAI,UAAU,KAAK,yBAAgB,CAAC,SAAS,EAAE,CAAC;oBAC9C,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,oDAAoD,CAAC,CAAA;oBACjF,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBAC3C,CAAC;gBACD,mDAAmD;gBACnD,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,YAAY,CAAC,CAAA;gBAExE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACvD,UAAU;oBACV,MAAM,EAAE,uBAAc,CAAC,YAAY;oBACnC,MAAM,EAAG,yBAAsD,CAAC,UAAU,CAAC,IAAI,UAAU;iBAC1F,CAAC,CAAA;gBACF,kBAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC7H,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,uBAAc,CAAC,UAAU,CAAC,CAAA;YACtE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACvD,UAAU;gBACV,MAAM,EAAE,uBAAc,CAAC,UAAU;aAClC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0DAA0D;IAC1D,8EAA8E;IAE9E;;;;;;;;OAQG;IACK,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,QAAgB;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC7C,KAAK,EAAE,EAAE,UAAU,EAAE;gBACrB,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;aAC7C,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,mEAAmE,CAAC,CAAA;gBAChG,OAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAM,CAAC,CAAA;YAE3C,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAClE,iDAAiD,CAAC,CAAA;YAEpD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;gBAChD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC1C,UAAU;aACX,CAAC,CAAA;YAEF,6CAA6C;YAC7C,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBACxD,UAAU;gBACV,UAAU;gBACV,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;aACvC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,2CAA2C,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oDAAoD;IACpD,8EAA8E;IAE9E;;;OAGG;IACK,aAAa,CAAC,UAAkB;QACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,aAAa,CAAC,UAAkB;QACtC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QAE7B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAA;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAEtD,IAAI,OAAO,IAAI,mBAAmB,EAAE,CAAC;gBACnC,kEAAkE;gBAClE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;gBACxC,OAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAEzC,sEAAsE;YACtE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,QAAQ,EAAE,CAAC;oBACb,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EACxB,iDAAiD,CAAC,CAAA;oBACpD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;oBAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACpD,CAAC;gBACD,OAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC3D,MAAM,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAA;YAEhC,iEAAiE;YACjE,sEAAsE;YACtE,IAAI,QAAQ,KAAK,CAAC,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;oBAC1C,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAC7C,oDAAoD,CAAC,CAAA;gBACzD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,6DAA6D;oBAC7D,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,EAC7B,uCAAuC,CAAC,CAAA;oBAC1C,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAC3D,CAAC;gBACD,OAAM;YACR,CAAC;YAED,oEAAoE;YACpE,8DAA8D;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAA;YAClE,MAAM,OAAO,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,sBAAsB,CAAA;YAC7F,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC,EAAE,oBAAoB,CAAC,CAAA;QAExB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACK,eAAe,CACrB,UAAkB,EAClB,IAAc,EACd,QAA4B,EAC5B,SAAiB;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAA;QAEhC,IAAI,SAAS,GAAG,oBAAoB,EAAE,CAAC;YACrC,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,EACrD,oEAAoE,CACrE,CAAA;YACD,OAAM;QACR,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EACnC,0DAA0D,CAAC,CAAA;QAE7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExC,IAAI,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAEtE,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,uCAAuC;IAC/B,YAAY,CAAC,UAAkB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,aAAa,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,CAAC;QACD,2DAA2D;QAC3D,iEAAiE;QACjE,kDAAkD;QAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1C,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E,sEAAsE;IAC9D,mBAAmB,CAAC,UAAkB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzC,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE,KAAa;QAC3E,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC,EAAE,KAAK,CAAC,CAAA;QACT,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,GAAQ;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAA;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAA;QACrD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG;gBAChB,WAAW,EAAI,YAAY;gBAC3B,WAAW,EAAI,mBAAmB;gBAClC,YAAY;gBACZ,cAAc;gBACd,WAAW;gBACX,cAAc;gBACd,aAAa;gBACb,UAAU;gBACV,OAAO;aACR,CAAA;YACD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;QAC3C,CAAC;QACD,sEAAsE;QACtE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC1C,IAAI,iDAAiD,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,8EAA8E;IAC9E,yDAAyD;IACzD,8EAA8E;IAE9E;;;;;;;;;;;OAWG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAM;QAClC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9C,8DAA8D;YAC9D,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAM;YAEhD,IAAI,CAAC;gBACH,MAAM,kBAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAM,CAAC,+DAA+D;YACxE,CAAC;YAED,8DAA8D;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,WAAW,GAAG,GAAG,CAAA;gBACnC,IAAI,SAAS,IAAI,0BAA0B;oBAAE,SAAQ;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACtD,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBACvB,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,EAChD,2DAA2D,CAAC,CAAA;gBAC9D,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;gBACpC,iEAAiE;gBACjE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/C,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,wCAAwC,CAAC,CAC5E,CAAA;YACH,CAAC;QACH,CAAC,EAAE,yBAAyB,CAAC,CAAA;QAC7B,mDAAmD;QACnD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAA;IAClC,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QACpC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzC,kEAAkE;QAClE,uDAAuD;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACxC,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAA;IACnE,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E,qFAAqF;IACrF,SAAS,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IAED,yEAAyE;IACzE,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAE9E;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAChC,UAAkB,EAClB,MAAsB;QAEtB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;iBACpE,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO;gBAAE,MAAM,GAAG,CAAA,CAAC,CAAC,CAAC;YAChE,qBAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SACpD,CAAC,CAAA;IACJ,CAAC;IAED,0DAA0D;IACnD,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QAChD,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAA;QACtE,MAAM,kBAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAE9E;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,QAAgB,EAAE,KAAY;QACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAE9B,4DAA4D;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,gBAAgB,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACrD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YAClD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;SAChC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE1E,0DAA0D;QAC1D,uEAAuE;QACvE,2EAA2E;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAG,yBAAyB;QAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAE,mBAAmB;QACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAClD,KAAK,EAAE;oBACL,QAAQ;oBACR,UAAU;oBACV,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;oBACvB,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,uCAAuC;iBAC5E;gBACD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;aAC9C,CAAC,CAAA;YACF,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;oBACd,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;oBACpC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;YACtB,IAAI,CAAC,MAAM;gBAAE,SAAQ;YAErB,mFAAmF;YACnF,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAExG,qEAAqE;YACrE,+DAA+D;YAC/D,2CAA2C;YAC3C,6CAA6C;YAC7C,sEAAsE;YACtE,uEAAuE;YACvE,iEAAiE;YACjE,IAAI,GAAG,GAAG,MAAM,CAAA;YAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;uBACpC,IAAY,CAAC,KAA2B,CAAA;gBAC9C,IAAI,QAAQ,EAAE,CAAC;oBACb,GAAG,GAAG,QAAQ,CAAA;oBACd,oDAAoD;oBACpD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAC/E,IAAI,iBAAiB;wBAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;oBACjE,yEAAyE;oBACzE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC;4BACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;4BAC9C,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;yBACzB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;oBACpB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,sEAAsE;oBACtE,6CAA6C;oBAC7C,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,8CAA8C,CAAC,CAAA;oBACpF,SAAQ;gBACV,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,gDAAgD;gBAChD,yFAAyF;gBACzF,uFAAuF;gBACvF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC;uBAChD,MAAM,CAAE,IAAY,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAA;gBACxD,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE7D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACrC,iFAAiF;gBACjF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACtD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;gBAEjD,MAAM,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,KAAK,EAAE,EAAE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;oBACjE,MAAM,EAAE;wBACN,QAAQ;wBACR,UAAU;wBACV,GAAG;wBACH,IAAI,EAAW,SAAS;wBACxB,WAAW,EAAI,IAAI,CAAC,WAAW,IAAK,CAAC;wBACrC,aAAa,EAAE,MAAM,IAAI,IAAI;wBAC7B,QAAQ,EAAO,CAAC,CAAC,IAAI,CAAC,MAAM;wBAC5B,UAAU,EAAK,IAAI,CAAC,QAAQ,IAAQ,KAAK;wBACzC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;qBAChC;oBACD,MAAM,EAAE;wBACN,GAAG,CAAC,SAAS,IAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBACtC,GAAG,CAAC,SAAS,IAAK,EAAE,SAAS,EAAE,CAAC;wBAChC,wDAAwD;wBACxD,+DAA+D;wBAC/D,kEAAkE;wBAClE,0BAA0B;wBAC1B,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACxE,GAAG,CAAC,MAAM,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;wBACxC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAO,SAAS,IAAI,EAAE,QAAQ,EAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACjE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACpE;iBACF,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QACD,mFAAmF;QACnF,IAAA,oCAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,8EAA8E;IAC9E,2DAA2D;IAC3D,8EAA8E;IAE9E;;;;;;;;;;OAUG;IACK,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE,OAAc;QAClF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAA;YACrB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAQ;YAE1C,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,MAAM,KAAK,GAAwB,EAAE,CAAA;gBACrC,IAAI,MAAM,CAAC,MAAM,KAAQ,SAAS;oBAAE,KAAK,CAAC,QAAQ,GAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;gBACvE,IAAI,MAAM,CAAC,QAAQ,KAAM,SAAS;oBAAE,KAAK,CAAC,UAAU,GAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAA;gBACzE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;oBAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;gBAE5E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAE7C,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpC,KAAK,EAAI,EAAE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;oBACnE,IAAI,EAAK,KAAK;oBACd,OAAO,EAAE;wBACP,OAAO,EAAE;4BACP,MAAM,EAAE;gCACN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;gCAC5C,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI;gCAC5B,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI;6BAC1C;yBACF;qBACF;iBACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;gBAEpB,IAAI,CAAC,IAAI;oBAAE,SAAQ;gBAEnB,gDAAgD;gBAChD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;gBACtB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACrC,MAAM,WAAW,GAAG,OAAO;oBACzB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;oBACrB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;gBAErD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;oBACnD,EAAE,EAAY,IAAI,CAAC,EAAE;oBACrB,QAAQ,EAAM,IAAI,CAAC,QAAQ;oBAC3B,UAAU,EAAI,IAAI,CAAC,UAAU;oBAC7B,GAAG,EAAW,IAAI,CAAC,GAAG;oBACtB,IAAI,EAAU,IAAI,CAAC,IAAI,IAAI,IAAI;oBAC/B,WAAW,EAAG,IAAI,CAAC,WAAW;oBAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,QAAQ,EAAM,IAAI,CAAC,QAAQ;oBAC3B,UAAU,EAAI,IAAI,CAAC,UAAU;oBAC7B,SAAS,EAAK,IAAI,CAAC,SAAS;oBAC5B,OAAO,EAAE,CAAC;wBACR,CAAC,CAAC;4BACE,IAAI,EAAW,WAAW;4BAC1B,KAAK,EAAU,CAAC,CAAC,KAAK;4BACtB,SAAS,EAAM,CAAC,CAAC,SAAS;4BAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;4BAChC,aAAa,EAAG,CAAC,CAAC,aAAa;yBAChC;wBACH,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;4BAC9F,CAAC,CAAC,IAAI;oBACR,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,yCAAyC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;QACD,IAAA,oCAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,8EAA8E;IAC9E,2CAA2C;IAC3C,8EAA8E;IAE9E;;;;;OAKG;IACK,UAAU,CAAC,QAAgB,EAAE,UAAkB,EAAE,KAAa,EAAE,IAAa;QACnF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;YACnD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,UAAU;YACrB,KAAK;YACL,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;CACF;AAzrCD,8DAyrCC"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js new file mode 100644 index 0000000..a018c18 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js @@ -0,0 +1,80 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.proto = exports.isJidStatusBroadcast = exports.isJidGroup = exports.generateWAMessageFromContent = exports.generateMessageIDV2 = exports.getContentType = exports.downloadMediaMessage = exports.makeCacheableSignalKeyStore = exports.fetchLatestBaileysVersion = exports.DisconnectReason = exports.useMultiFileAuthState = exports.makeWASocket = void 0; +exports.getEngine = getEngine; +const official = __importStar(require("./official")); +const infinite = __importStar(require("./infinite")); +// Engine padrão global: lida de BAILEYS_ENGINE (fallback para 'infinite') +const defaultEngineType = process.env.BAILEYS_ENGINE ?? 'infinite'; +function resolveEngine(type) { + return type === 'infinite' ? infinite : official; +} +/** + * Retorna os exports da engine selecionada para uma instância específica. + * Permite que cada instância use uma engine diferente (infinite ou official). + * Se não informado, usa BAILEYS_ENGINE do ambiente (padrão: 'infinite'). + */ +function getEngine(engineType) { + const e = resolveEngine(engineType ?? defaultEngineType); + return { + makeWASocket: e.makeWASocket, + useMultiFileAuthState: e.useMultiFileAuthState, + fetchLatestBaileysVersion: e.fetchLatestBaileysVersion, + makeCacheableSignalKeyStore: e.makeCacheableSignalKeyStore, + downloadMediaMessage: e.downloadMediaMessage, + getContentType: e.getContentType, + generateMessageIDV2: e.generateMessageIDV2, + generateWAMessageFromContent: e.generateWAMessageFromContent, + isJidGroup: e.isJidGroup, + isJidStatusBroadcast: e.isJidStatusBroadcast, + }; +} +// Exports estáticos: usam a engine global (retrocompatibilidade com código existente) +const selectedEngine = resolveEngine(defaultEngineType); +exports.makeWASocket = selectedEngine.makeWASocket; +exports.useMultiFileAuthState = selectedEngine.useMultiFileAuthState; +exports.DisconnectReason = selectedEngine.DisconnectReason; +exports.fetchLatestBaileysVersion = selectedEngine.fetchLatestBaileysVersion; +exports.makeCacheableSignalKeyStore = selectedEngine.makeCacheableSignalKeyStore; +exports.downloadMediaMessage = selectedEngine.downloadMediaMessage; +exports.getContentType = selectedEngine.getContentType; +exports.generateMessageIDV2 = selectedEngine.generateMessageIDV2; +exports.generateWAMessageFromContent = selectedEngine.generateWAMessageFromContent; +exports.isJidGroup = selectedEngine.isJidGroup; +exports.isJidStatusBroadcast = selectedEngine.isJidStatusBroadcast; +var official_1 = require("./official"); +Object.defineProperty(exports, "proto", { enumerable: true, get: function () { return official_1.proto; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js.map new file mode 100644 index 0000000..b458f61 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,8BAyBC;AAxCD,qDAAsC;AACtC,qDAAsC;AAEtC,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU,CAAA;AAElE,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,UAA0B;IAYlD,MAAM,CAAC,GAAG,aAAa,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAA;IACxD,OAAO;QACL,YAAY,EAAgB,CAAC,CAAC,YAAmB;QACjD,qBAAqB,EAAO,CAAC,CAAC,qBAA4B;QAC1D,yBAAyB,EAAG,CAAC,CAAC,yBAAgC;QAC9D,2BAA2B,EAAE,CAAC,CAAC,2BAAkC;QACjE,oBAAoB,EAAQ,CAAC,CAAC,oBAA2B;QACzD,cAAc,EAAc,CAAC,CAAC,cAAqB;QACnD,mBAAmB,EAAS,CAAC,CAAC,mBAA0B;QACxD,4BAA4B,EAAE,CAAC,CAAC,4BAAmC;QACnE,UAAU,EAAkB,CAAC,CAAC,UAAiB;QAC/C,oBAAoB,EAAQ,CAAC,CAAC,oBAA2B;KAC1D,CAAA;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAA;AAE1C,QAAA,YAAY,GAAG,cAAc,CAAC,YAAmB,CAAA;AACjD,QAAA,qBAAqB,GAAG,cAAc,CAAC,qBAA4B,CAAA;AACnE,QAAA,gBAAgB,GAAG,cAAc,CAAC,gBAAuB,CAAA;AACzD,QAAA,yBAAyB,GAAG,cAAc,CAAC,yBAAgC,CAAA;AAC3E,QAAA,2BAA2B,GAAG,cAAc,CAAC,2BAAkC,CAAA;AAC/E,QAAA,oBAAoB,GAAG,cAAc,CAAC,oBAA2B,CAAA;AACjE,QAAA,cAAc,GAAG,cAAc,CAAC,cAAqB,CAAA;AACrD,QAAA,mBAAmB,GAAG,cAAc,CAAC,mBAA0B,CAAA;AAC/D,QAAA,4BAA4B,GAAG,cAAc,CAAC,4BAAmC,CAAA;AACjF,QAAA,UAAU,GAAG,cAAc,CAAC,UAAiB,CAAA;AAC7C,QAAA,oBAAoB,GAAG,cAAc,CAAC,oBAA2B,CAAA;AAC9E,uCAAkC;AAAzB,iGAAA,KAAK,OAAA"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js new file mode 100644 index 0000000..0334eaf --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("baileys"), exports); +//# sourceMappingURL=infinite.js.map \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js.map new file mode 100644 index 0000000..d527562 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/infinite.js.map @@ -0,0 +1 @@ +{"version":3,"file":"infinite.js","sourceRoot":"","sources":["infinite.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js new file mode 100644 index 0000000..5fa93aa --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("@whiskeysockets/baileys"), exports); +//# sourceMappingURL=official.js.map \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js.map new file mode 100644 index 0000000..91e8421 --- /dev/null +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/engine/official.js.map @@ -0,0 +1 @@ +{"version":3,"file":"official.js","sourceRoot":"","sources":["official.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js index b12402b..18979c9 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js @@ -88,10 +88,19 @@ class ContactHandler { // Ex: { id: "5511999999999@s.whatsapp.net", lid: "123456789@lid" } const lidFromContact = c.lid; try { - // Para contatos @lid que possuem campo `jid` (vem do history sync), - // usa o JID real como chave primária. Caso contrário, usa c.id como está. + // Para contatos @lid que possuem o JID real do telefone: + // - Baileys oficial envia o campo `jid` (@s.whatsapp.net) + // - InfiniteAPI v7+ envia o campo `phoneNumber` (@s.whatsapp.net) + // Ambos são suportados — o primeiro disponível vence. // Isso evita criar contatos duplicados (um com LID, outro com phone). - const contactJid = isLid && c.jid ? c.jid : c.id; + const pnJid = c.jid + ?? c.phoneNumber; + const contactJid = isLid && pnJid ? pnJid : c.id; + // Quando o contato É um @lid mas foi resolvido para phoneJid: + // lidJid = c.id (o @lid original) para manter o mapeamento no banco + // Quando o contato TEM campo `lid` (history sync Baileys oficial): + // lidJid = lidFromContact + const finalLidJid = isLid && pnJid ? c.id : (lidFromContact ?? undefined); const contact = await prisma_1.prisma.contact.upsert({ where: { tenantId_instanceId_jid: { @@ -109,45 +118,46 @@ class ContactHandler { notify: c.notify ?? null, phone: contactJid.endsWith('@lid') ? null : contactJid.split('@')[0], ...(imgUrl && imgUrl !== 'changed' ? { avatarUrl: imgUrl } : {}), - // Salva mapeamento LID: - // Se o contato É um LID (c.id termina em @lid): salva c.id como lidJid - // Se o contato TEM campo lid (history sync): salva lid como lidJid - ...(isLid ? { lidJid: c.id } : lidFromContact ? { lidJid: lidFromContact } : {}), + ...(finalLidJid ? { lidJid: finalLidJid } : {}), }, update: { name: this.resolveName(c) ?? null, verifiedName: c.verifiedName ?? null, notify: c.notify ?? null, ...(imgUrl && imgUrl !== 'changed' ? { avatarUrl: imgUrl } : {}), - ...(isLid ? { lidJid: c.id } : lidFromContact ? { lidJid: lidFromContact } : {}), + ...(finalLidJid ? { lidJid: finalLidJid } : {}), }, }); // Garante vínculo Chat ↔ Contact para chats órfãos // (chats criados antes do contato existir ficam com contactId=null) + // Usa contactJid (JID resolvido) porque chats @lid são salvos com phone JID. + // Quando c.id é @lid mas foi resolvido para pnJid, o chat no banco tem pnJid. await prisma_1.prisma.chat.updateMany({ where: { tenantId: this.tenantId, instanceId: this.instanceId, - jid: c.id, + jid: contactJid, contactId: null, }, data: { contactId: contact.id }, }); // ── Lógica de avatar ────────────────────────────────────────────── - // JIDs @lid não suportam profilePictureUrl (retorna 404 no WA) - if (!isLid) { + // JIDs @lid não suportam profilePictureUrl. Usa contactJid para verificar + // pois @lid resolvido para phone JID deve buscar avatar normalmente. + const resolvedIsLid = contactJid.endsWith('@lid'); + if (!resolvedIsLid) { if (imgUrl && imgUrl !== 'changed') { // Avatar veio pronto do Baileys — notifica frontend imediatamente directAvatarCount++; this.io?.to(`tenant:${this.tenantId}`).emit('contact:avatar', { instanceId: this.instanceId, - jid: c.id, + jid: contactJid, avatarUrl: imgUrl, }); } else if (imgUrl === 'changed' || imgUrl === undefined) { // Precisa buscar via API — adiciona à fila com rate-limit - needFetchAvatar.push(c.id); + needFetchAvatar.push(contactJid); } } } diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js.map index dcc298d..e9b715e 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js.map +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/ContactHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"ContactHandler.js","sourceRoot":"","sources":["ContactHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ContactHandler.js","sourceRoot":"","sources":["ContactHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js index afe5d0f..151a7e1 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js @@ -28,13 +28,14 @@ exports.MessageHandler = void 0; */ const path_1 = __importDefault(require("path")); const promises_1 = __importDefault(require("fs/promises")); -const baileys_1 = require("@whiskeysockets/baileys"); +const engine_1 = require("../engine"); const client_1 = require("@prisma/client"); const prisma_1 = require("../../../infra/database/prisma"); const logger_1 = require("../../../config/logger"); const whatsapp_1 = require("../../../shared/utils/whatsapp"); const StorageProvider_1 = require("../../../core/StorageProvider"); const hook_bus_1 = require("../../../core/hook-bus"); +const chat_cache_1 = require("../../chats/chat.cache"); /** Diretório raiz onde os arquivos de mídia são salvos (organizados por instanceId) */ const MEDIA_DIR = path_1.default.resolve('./media'); /** @@ -168,6 +169,72 @@ class MessageHandler { * (será capturada quando o mapeamento LID for descoberto via phoneNumberShare). */ async handleHistory(messages) { + if (messages.length === 0) + return; + // Define o limite de 2 dias atrás em segundos (timestamp do WhatsApp usa segundos) + const doisDiasAtrasEmSegundos = Math.floor((Date.now() - 2 * 24 * 60 * 60 * 1000) / 1000); + const mensagensRecentes = []; + const mensagensAntigas = []; + // Separa as mensagens por idade + for (const msg of messages) { + const ts = Number(msg.messageTimestamp ?? 0); + if (ts >= doisDiasAtrasEmSegundos) { + mensagensRecentes.push(msg); + } + else { + mensagensAntigas.push(msg); + } + } + // 1. PROCESSAMENTO DE ALTA PRIORIDADE (Imediato) + if (mensagensRecentes.length > 0) { + logger_1.logger.info({ + instanceId: this.instanceId, + count: mensagensRecentes.length + }, '[History] Sincronizando conversas recentes (últimos 2 dias) com prioridade máxima!'); + await this.processHistoryBatch(mensagensRecentes); + } + // 2. PROCESSAMENTO DE BAIXA PRIORIDADE (Gradual em segundo plano) + if (mensagensAntigas.length > 0) { + logger_1.logger.info({ + instanceId: this.instanceId, + count: mensagensAntigas.length + }, '[History] Agendando histórico antigo para sincronização gradual em background...'); + this.processOlderHistoryGradually(mensagensAntigas); + } + } + /** + * Executa o processamento gradual do histórico antigo em lotes de 100 msgs a cada 3 segundos + */ + processOlderHistoryGradually(messages) { + const tamanhoDoLote = 100; + const intervaloMs = 3000; // 3 segundos de folga para a CPU/Postgres respirar + let offset = 0; + const processarProximoLote = async () => { + // Se processou tudo, encerra o ciclo + if (offset >= messages.length) { + logger_1.logger.info({ instanceId: this.instanceId }, '[History] Sincronização completa de histórico antigo concluída com sucesso!'); + return; + } + // Corta o próximo pedaço do histórico + const lote = messages.slice(offset, offset + tamanhoDoLote); + offset += tamanhoDoLote; + try { + await this.processHistoryBatch(lote); + } + catch (err) { + logger_1.logger.error({ err, instanceId: this.instanceId }, '[History] Erro ao processar lote gradual de histórico antigo'); + } + // Agenda o próximo lote de forma não bloqueante + setTimeout(processarProximoLote, intervaloMs).unref(); + }; + // Inicia o sincronismo em background após 5 segundos, garantindo que + // a conexão inicial e o frontend já estejam 100% carregados e estáveis + setTimeout(processarProximoLote, 5000).unref(); + } + /** + * Lógica original de agrupamento e escrita no banco (Refatorada em método auxiliar) + */ + async processHistoryBatch(messages) { if (messages.length === 0) return; // JID próprio da sessão (ex: "5511999@s.whatsapp.net") — usado para filtrar self-chat @@ -186,28 +253,39 @@ class MessageHandler { // O history sync do WhatsApp pode enviar mensagens com remoteJid @lid. // Precisamos converter para @s.whatsapp.net antes de persistir, // caso contrário o chat ficaria duplicado (um com LID, outro com phone). + // + // Fontes de resolução (ordem de prioridade): + // 1. key.remoteJidAlt — InfiniteAPI v7+ inclui o JID alternativo (phone ↔ LID) + // 2. key.senderPn / participantPn — campo do protocolo WA + // 3. DB lookup — contacts.lidJid salvo por sessões anteriores if (jidRaw.endsWith('@lid')) { - // Tenta key.senderPn (disponível quando o protocolo WA inclui sender_pn) - const senderPn = msg.key.senderPn || msg.key.participantPn; - if (senderPn) { - jidRaw = (0, whatsapp_1.normalizeJid)(senderPn); - if (!jidRaw.endsWith('@s.whatsapp.net')) - continue; + // 1. remoteJidAlt: InfiniteAPI preenche o JID alternativo em mensagens históricas. + // Quando remoteJid=@lid, remoteJidAlt contém @s.whatsapp.net (e vice-versa). + const remoteJidAlt = msg.key.remoteJidAlt; + if (remoteJidAlt && remoteJidAlt.endsWith('@s.whatsapp.net')) { + jidRaw = (0, whatsapp_1.normalizeJid)(remoteJidAlt); } else { - // Fallback: busca mapeamento LID → phone já salvo no banco - // (populado por phoneNumberShare ou processMessage anterior) - const contact = await prisma_1.prisma.contact.findFirst({ - where: { tenantId: this.tenantId, instanceId: this.instanceId, lidJid: jidRaw }, - select: { jid: true }, - }); - if (contact?.jid && !contact.jid.endsWith('@lid')) { - jidRaw = contact.jid; + // 2. senderPn / participantPn + const senderPn = msg.key.senderPn || msg.key.participantPn; + if (senderPn) { + jidRaw = (0, whatsapp_1.normalizeJid)(senderPn); + if (!jidRaw.endsWith('@s.whatsapp.net')) + continue; } else { - // Sem resolução possível, ou contato ainda armazenado com JID @lid - // (o mapeamento phone ainda não chegou via phoneNumberShare / senderPn). - continue; + // 3. DB lookup — mapeamento LID → phone salvo pelo ContactHandler + const contact = await prisma_1.prisma.contact.findFirst({ + where: { tenantId: this.tenantId, instanceId: this.instanceId, lidJid: jidRaw }, + select: { jid: true }, + }); + if (contact?.jid && !contact.jid.endsWith('@lid')) { + jidRaw = contact.jid; + } + else { + // Sem resolução possível — descarta (será capturada via phoneNumberShare futuro) + continue; + } } } } @@ -256,7 +334,7 @@ class MessageHandler { if (!message || !key.id) return []; message = unwrapInnerMessage(message); - const contentType = (0, baileys_1.getContentType)(message); + const contentType = (0, engine_1.getContentType)(message); if (!contentType) return []; // Descarta tipos de protocolo/sistema que não representam conteúdo real @@ -301,7 +379,7 @@ class MessageHandler { } } if (totalSaved > 0) { - logger_1.logger.info({ totalSaved, chats: byJid.size, instanceId: this.instanceId }, '[History] Mensagens históricas salvas'); + logger_1.logger.info({ totalSaved, chats: byJid.size, instanceId: this.instanceId }, `[History] Lote de ${totalSaved} mensagens históricas salvas`); } } // ═══════════════════════════════════════════════════════════════════════════ @@ -365,7 +443,7 @@ class MessageHandler { originalLidJid = key.remoteJid; key.remoteJid = phoneJid; } - const contentType = (0, baileys_1.getContentType)(message); + const contentType = (0, engine_1.getContentType)(message); if (!contentType) return; // Descarta tipos de protocolo/sistema (sem conteúdo real para o usuário) @@ -659,6 +737,8 @@ class MessageHandler { : null, lastMessage, }); + // Invalida cache da listagem — força refetch na próxima request da inbox + (0, chat_cache_1.invalidateChatListCache)(this.tenantId, this.instanceId).catch(() => { }); } catch (err) { logger_1.logger.error({ err, chatId }, '[MessageHandler] Falha ao emitir chat:upsert'); @@ -678,7 +758,7 @@ class MessageHandler { */ async downloadAndPersistMedia(msg, savedMsgId, chatId, contentType) { try { - const buffer = await (0, baileys_1.downloadMediaMessage)(msg, 'buffer', {}, { logger: logger_1.logger, reuploadRequest: this.sock.updateMediaMessage }); + const buffer = await (0, engine_1.downloadMediaMessage)(msg, 'buffer', {}, { logger: logger_1.logger, reuploadRequest: this.sock.updateMediaMessage }); if (!buffer) return; // Para documentos: preserva nome e extensão originais do arquivo diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js.map b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js.map index bab5741..995dc44 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js.map +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["MessageHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["MessageHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts index d2a06be..eccd7f0 100644 --- a/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts +++ b/clube67/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts @@ -900,12 +900,46 @@ export class MessageHandler { mediaUrl, }) + // Persiste sticker na biblioteca (deduplicado por sha256) + if (contentType === 'stickerMessage') { + this.persistSticker(msg, mediaUrl).catch(() => {}) + } + logger.debug({ savedMsgId, filePath }, 'Mídia salva') } catch (err) { logger.error({ err, savedMsgId }, 'Falha ao baixar mídia') } } + private async persistSticker(msg: WAMessage, wasabiPath: string): Promise { + const stickerMsg = msg.message?.stickerMessage + if (!stickerMsg) return + + const sha256Bytes = stickerMsg.fileSha256 + if (!sha256Bytes || sha256Bytes.length === 0) return + + const sha256 = Buffer.from(sha256Bytes).toString('hex') + const isAnimated = stickerMsg.isAnimated ?? false + + await prisma.sticker.upsert({ + where: { tenantId_sha256: { tenantId: this.tenantId, sha256 } }, + create: { + tenantId: this.tenantId, + instanceId: this.instanceId, + sha256, + wasabiPath, + isAnimated, + useCount: 1, + lastSeenAt: new Date(), + }, + update: { + useCount: { increment: 1 }, + lastSeenAt: new Date(), + instanceId: this.instanceId, + }, + }) + } + // ═══════════════════════════════════════════════════════════════════════════ // UTILITÁRIOS // ═══════════════════════════════════════════════════════════════════════════ diff --git a/clube67/newwhats.local/backend/src/server.ts b/clube67/newwhats.local/backend/src/server.ts index cd2fdf1..4020f43 100644 --- a/clube67/newwhats.local/backend/src/server.ts +++ b/clube67/newwhats.local/backend/src/server.ts @@ -31,6 +31,8 @@ import { adminRouter } from './modules/auth/admin.routes' import { pairRouter } from './modules/pair/pair.routes' import { buildTemplateRoutes } from './modules/templates/template.routes' import { buildScheduledRoutes } from './modules/scheduled/scheduled.routes' +import { buildStickerRoutes } from './modules/stickers/sticker.routes' +import { storageProvider } from './core/StorageProvider' import { SchedulerService } from './modules/scheduled/scheduler.service' import { authMiddleware } from './shared/middlewares/auth.middleware' import { adminMiddleware } from './shared/middlewares/admin.middleware' @@ -87,6 +89,30 @@ async function bootstrap() { const scheduler = new SchedulerService(whatsAppManager) app.use('/api/templates', authMiddleware, buildTemplateRoutes()) app.use('/api/scheduled', authMiddleware, buildScheduledRoutes(scheduler)) + app.use('/api/stickers', authMiddleware, buildStickerRoutes()) + + // Proxy genérico para arquivos no Wasabi — usado pelo frontend para exibir stickers e mídias + app.get('/api/storage/view/*', authMiddleware, async (req, res) => { + const filePath = (req.params as any)[0] as string + if (!filePath) { res.status(400).end(); return } + try { + const buffer = await storageProvider.getBuffer(filePath) + if (!buffer) { res.status(404).end(); return } + const ext = filePath.split('.').pop()?.toLowerCase() + const mime = + ext === 'webp' ? 'image/webp' : + ext === 'jpg' || ext === 'jpeg' ? 'image/jpeg' : + ext === 'png' ? 'image/png' : + ext === 'mp4' ? 'video/mp4' : + ext === 'ogg' ? 'audio/ogg' : + 'application/octet-stream' + res.setHeader('Content-Type', mime) + res.setHeader('Cache-Control', 'public, max-age=31536000, immutable') + res.send(buffer) + } catch { + res.status(500).end() + } + }) // Banner do frontend — dias restantes do plano app.get('/api/plan/status', authMiddleware, async (req, res) => { diff --git a/clube67/newwhats.local/frontend/components/InputBar.tsx b/clube67/newwhats.local/frontend/components/InputBar.tsx index ec6ea53..af76f6f 100644 --- a/clube67/newwhats.local/frontend/components/InputBar.tsx +++ b/clube67/newwhats.local/frontend/components/InputBar.tsx @@ -13,14 +13,18 @@ import { LayoutTemplate, BookOpen, Plus, + Sticker, } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; -import EmojiPicker, { Theme } from 'emoji-picker-react'; +import Picker from '@emoji-mart/react'; +import emojiData from '@emoji-mart/data'; import { groupApi, type GroupParticipant, type MessageTemplate, type TemplateType } from '../services/chatApiService'; import RichMessageComposer from './RichMessageComposer'; import TemplateLibrary from './TemplateLibrary'; import ScheduleMessageModal from './ScheduleMessageModal'; import FilePreviewModal from './FilePreviewModal'; +import StickerPanel from './StickerPanel'; +import { mediaApi } from '../services/chatApiService'; interface Message { id: number; @@ -64,7 +68,9 @@ const InputBar: React.FC = ({ const textareaRef = useRef(null); const fileInputRef = useRef(null); const [showEmojiPicker, setShowEmojiPicker] = useState(false); + const [showStickerPanel, setShowStickerPanel] = useState(false); const [showAttachMenu, setShowAttachMenu] = useState(false); + const stickerPanelRef = useRef(null); const [previewFile, setPreviewFile] = useState(null); const attachMenuRef = useRef(null); const [showRichComposer, setShowRichComposer] = useState(false); @@ -181,12 +187,15 @@ const InputBar: React.FC = ({ } }, [newMessage]); - // Close emoji picker and attach menu on click outside + // Close emoji picker, sticker panel and attach menu on click outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (emojiPickerRef.current && !emojiPickerRef.current.contains(event.target as Node)) { setShowEmojiPicker(false); } + if (stickerPanelRef.current && !stickerPanelRef.current.contains(event.target as Node)) { + setShowStickerPanel(false); + } if (attachMenuRef.current && !attachMenuRef.current.contains(event.target as Node)) { setShowAttachMenu(false); } @@ -195,6 +204,12 @@ const InputBar: React.FC = ({ return () => document.removeEventListener('mousedown', handleClickOutside); }, []); + const handleSendSticker = useCallback(async (blob: Blob) => { + if (!instanceId || !selectedChat?.remote_jid) return; + setShowStickerPanel(false); + await mediaApi.sendSticker(instanceId, selectedChat.remote_jid, blob); + }, [instanceId, selectedChat]); + const handleKeyDown = (e: React.KeyboardEvent) => { // Mention dropdown navigation if (mentionQuery !== null && filteredParticipants.length > 0) { @@ -226,9 +241,8 @@ const InputBar: React.FC = ({ } }; - const onEmojiClick = (emojiData: any) => { - onNewMessageChange(newMessage + emojiData.emoji); - // Do not close picker, common UX allows multiple emojis + const onEmojiSelect = (emoji: any) => { + onNewMessageChange(newMessage + (emoji.native ?? '')); }; const handleFileChange = (e: React.ChangeEvent) => { @@ -356,12 +370,36 @@ const InputBar: React.FC = ({ exit={{ opacity: 0, y: 10, scale: 0.95 }} className="absolute bottom-20 left-4 z-50 shadow-2xl rounded-2xl overflow-hidden border border-gray-100" > - + + )} + + + {/* Sticker Panel Popover */} + + {showStickerPanel && instanceId && ( + + )} @@ -482,12 +520,23 @@ const InputBar: React.FC = ({ {/* Emoji — mantém no lugar */} + + {/* Figurinhas */} + {instanceId && ( + + )}
diff --git a/clube67/newwhats.local/frontend/components/StickerPanel.tsx b/clube67/newwhats.local/frontend/components/StickerPanel.tsx new file mode 100644 index 0000000..f97f1eb --- /dev/null +++ b/clube67/newwhats.local/frontend/components/StickerPanel.tsx @@ -0,0 +1,228 @@ +'use client'; + +import React, { useState, useEffect, useCallback, useRef } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { Heart, Clock, Loader2 } from 'lucide-react'; +import { stickerApi, type StickerRecord } from '../services/chatApiService'; +import { getStickerFromCache, setStickerInCache } from '../hooks/useStickerCache'; + +const API = process.env.NEXT_PUBLIC_API_URL ?? 'http://localhost:3003'; +const LIST_VERSION_KEY = 'nw:sticker-list-version'; + +interface StickerPanelProps { + instanceId: string; + jid: string; + onSend: (blob: Blob) => void; +} + +// Converte URL Wasabi → URL do proxy do backend +function stickerSrcUrl(wasabiPath: string): string { + const clean = wasabiPath.startsWith('/') ? wasabiPath.slice(1) : wasabiPath; + return `${API}/api/storage/view/${clean}`; +} + +// Carrega sticker: tenta IndexedDB, depois proxy, depois persiste no cache +function useStickerBlob(sticker: StickerRecord) { + const [dataUrl, setDataUrl] = useState(null); + + useEffect(() => { + let cancelled = false; + getStickerFromCache(sticker.sha256).then((cached) => { + if (cancelled) return; + if (cached) { setDataUrl(cached); return; } + + // Carrega do proxy e converte para dataURL via canvas + const img = new Image(); + img.crossOrigin = 'anonymous'; + img.onload = () => { + if (cancelled) return; + try { + const canvas = document.createElement('canvas'); + canvas.width = img.naturalWidth || 96; + canvas.height = img.naturalHeight || 96; + const ctx = canvas.getContext('2d'); + if (!ctx) { setDataUrl(img.src); return; } + ctx.drawImage(img, 0, 0); + const url = canvas.toDataURL('image/webp', 0.9); + setDataUrl(url); + setStickerInCache(sticker.sha256, url); + } catch { + setDataUrl(img.src); + } + }; + img.onerror = () => { if (!cancelled) setDataUrl(null); }; + img.src = stickerSrcUrl(sticker.wasabiPath); + }); + return () => { cancelled = true; }; + }, [sticker.sha256, sticker.wasabiPath]); + + return dataUrl; +} + +// Item individual de sticker +function StickerItem({ + sticker, + onSend, + onToggleFavorite, +}: { + sticker: StickerRecord; + onSend: (s: StickerRecord) => void; + onToggleFavorite: (s: StickerRecord) => void; +}) { + const dataUrl = useStickerBlob(sticker); + const [hovering, setHovering] = useState(false); + + return ( +
setHovering(true)} + onMouseLeave={() => setHovering(false)} + onClick={() => dataUrl && onSend(sticker)} + > +
+ {dataUrl ? ( + + ) : ( +
+ )} +
+ + {/* Botão de favoritar — aparece no hover */} + {hovering && ( + + )} +
+ ); +} + +export default function StickerPanel({ instanceId, jid, onSend }: StickerPanelProps) { + const [tab, setTab] = useState<'recent' | 'favorites'>('recent'); + const [stickers, setStickers] = useState([]); + const [loading, setLoading] = useState(true); + const fetchedRef = useRef(false); + + const load = useCallback(async (force = false) => { + setLoading(true); + try { + const { listVersion, stickers: list } = await stickerApi.list(); + + if (!force) { + const cached = localStorage.getItem(LIST_VERSION_KEY); + if (cached === listVersion) { + // versão igual — sem novidades, mas ainda mostra o que temos + } + localStorage.setItem(LIST_VERSION_KEY, listVersion); + } + setStickers(list); + } catch { + // silencioso — sem stickers ainda + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { + if (fetchedRef.current) return; + fetchedRef.current = true; + load(); + }, [load]); + + const handleSend = useCallback(async (sticker: StickerRecord) => { + const dataUrl = await getStickerFromCache(sticker.sha256); + if (!dataUrl) return; + + // Converte dataURL → Blob → envia + const res = await fetch(dataUrl); + const blob = await res.blob(); + onSend(blob); + }, [onSend]); + + const handleToggleFavorite = useCallback(async (sticker: StickerRecord) => { + const result = await stickerApi.toggleFavorite(sticker.id); + setStickers((prev) => + prev.map((s) => s.id === sticker.id ? { ...s, isFavorite: result.isFavorite } : s) + ); + }, []); + + const displayed = + tab === 'favorites' + ? stickers.filter((s) => s.isFavorite) + : stickers; // recent = all sorted by lastSeenAt (backend already sorts) + + return ( +
+ {/* Tabs */} +
+ + +
+ + {/* Content */} +
+ {loading ? ( +
+ +
+ ) : displayed.length === 0 ? ( +
+ {tab === 'favorites' ? ( + <> + + Nenhum favorito ainda + + ) : ( + <> + 🙂 + + As figurinhas que você receber
aparecem aqui automaticamente +
+ + )} +
+ ) : ( +
+ {displayed.map((s) => ( + + ))} +
+ )} +
+
+ ); +} diff --git a/clube67/newwhats.local/frontend/hooks/useStickerCache.ts b/clube67/newwhats.local/frontend/hooks/useStickerCache.ts new file mode 100644 index 0000000..d2be95a --- /dev/null +++ b/clube67/newwhats.local/frontend/hooks/useStickerCache.ts @@ -0,0 +1,82 @@ +'use client' + +/** + * useStickerCache — cache de figurinhas em IndexedDB. + * + * Chave de cache: sha256 hex do arquivo (conteúdo permanente — nunca muda). + * Sem TTL: stickers são imutáveis, então o cache é eterno. + * O único motivo para uma entrada sumir é o usuário limpar dados do navegador. + * + * Armazenamento: dataURL base64 do WebP (compatível com ). + */ + +const DB_NAME = 'nw-stickers' +const STORE_NAME = 'blobs' +const DB_VERSION = 1 + +interface CacheEntry { + sha256: string + dataUrl: string +} + +let dbPromise: Promise | null = null + +function openDB(): Promise { + if (dbPromise) return dbPromise + dbPromise = new Promise((resolve, reject) => { + const req = indexedDB.open(DB_NAME, DB_VERSION) + req.onupgradeneeded = () => { + const db = req.result + if (!db.objectStoreNames.contains(STORE_NAME)) { + db.createObjectStore(STORE_NAME, { keyPath: 'sha256' }) + } + } + req.onsuccess = () => resolve(req.result) + req.onerror = () => { dbPromise = null; reject(req.error) } + }) + return dbPromise +} + +export async function getStickerFromCache(sha256: string): Promise { + if (typeof window === 'undefined') return null + try { + const db = await openDB() + return new Promise((resolve) => { + const tx = db.transaction(STORE_NAME, 'readonly') + const req = tx.objectStore(STORE_NAME).get(sha256) + req.onsuccess = () => resolve((req.result as CacheEntry | undefined)?.dataUrl ?? null) + req.onerror = () => resolve(null) + }) + } catch { + return null + } +} + +export async function setStickerInCache(sha256: string, dataUrl: string): Promise { + if (typeof window === 'undefined') return + try { + const db = await openDB() + await new Promise((resolve, reject) => { + const tx = db.transaction(STORE_NAME, 'readwrite') + const entry: CacheEntry = { sha256, dataUrl } + const req = tx.objectStore(STORE_NAME).put(entry) + req.onsuccess = () => resolve() + req.onerror = () => reject(req.error) + }) + } catch { /* quota exceeded — ignora */ } +} + +export async function hasStickerInCache(sha256: string): Promise { + if (typeof window === 'undefined') return false + try { + const db = await openDB() + return new Promise((resolve) => { + const tx = db.transaction(STORE_NAME, 'readonly') + const req = tx.objectStore(STORE_NAME).count(sha256) + req.onsuccess = () => resolve(req.result > 0) + req.onerror = () => resolve(false) + }) + } catch { + return false + } +} diff --git a/clube67/newwhats.local/frontend/package-lock.json b/clube67/newwhats.local/frontend/package-lock.json index c9fa78f..83a4f55 100644 --- a/clube67/newwhats.local/frontend/package-lock.json +++ b/clube67/newwhats.local/frontend/package-lock.json @@ -8,6 +8,8 @@ "name": "newwhats-dashboard", "version": "1.0.0", "dependencies": { + "@emoji-mart/data": "^1.2.1", + "@emoji-mart/react": "^1.1.1", "@xyflow/react": "^12.10.2", "axios": "^1.6.0", "date-fns": "^4.1.0", @@ -46,6 +48,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@emoji-mart/data": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.2.1.tgz", + "integrity": "sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==" + }, + "node_modules/@emoji-mart/react": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emoji-mart/react/-/react-1.1.1.tgz", + "integrity": "sha512-NMlFNeWgv1//uPsvLxvGQoIerPuVdXwK/EUek8OOkJ6wVOWPUizRBJU0hDqWZCOROVpfBgCemaC3m6jDOXi03g==", + "peerDependencies": { + "emoji-mart": "^5.2", + "react": "^16.8 || ^17 || ^18" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1354,6 +1370,12 @@ "dev": true, "license": "ISC" }, + "node_modules/emoji-mart": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/emoji-mart/-/emoji-mart-5.6.0.tgz", + "integrity": "sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==", + "peer": true + }, "node_modules/emoji-picker-react": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/emoji-picker-react/-/emoji-picker-react-4.18.0.tgz", diff --git a/clube67/newwhats.local/frontend/package.json b/clube67/newwhats.local/frontend/package.json index 8d70a56..9b95c31 100644 --- a/clube67/newwhats.local/frontend/package.json +++ b/clube67/newwhats.local/frontend/package.json @@ -9,6 +9,8 @@ "lint": "next lint" }, "dependencies": { + "@emoji-mart/data": "^1.2.1", + "@emoji-mart/react": "^1.1.1", "@xyflow/react": "^12.10.2", "axios": "^1.6.0", "date-fns": "^4.1.0", diff --git a/clube67/newwhats.local/frontend/pages/inbox/index.tsx b/clube67/newwhats.local/frontend/pages/inbox/index.tsx index 6871150..0eaa3bb 100644 --- a/clube67/newwhats.local/frontend/pages/inbox/index.tsx +++ b/clube67/newwhats.local/frontend/pages/inbox/index.tsx @@ -127,15 +127,26 @@ export default function WhatsAppInboxPage() { const [isMobile, setIsMobile] = useState(false) const [isNewConvoModalOpen, setIsNewConvoModalOpen] = useState(false) - // Preloader: começa visível e some após o primeiro ciclo loading true→false - // O delay de 400ms dá tempo ao browser iniciar o carregamento dos avatares - // antes do overlay sumir, evitando o flash de skeletons pulsando. - const [pageReady, setPageReady] = useState(false) + // Preloader: aparece APENAS em hard reload (F5 / URL direta) — nunca em + // navegação client-side (router.push). Detectado por: + // 1. performance.getEntriesByType('navigation')[0].type === 'reload' + // 2. ausência do flag sessionStorage 'nw:inbox-loaded' (primeira visita na sessão) + // sessionStorage sobrevive a navegações client-side mas é zerado em nova aba. + const [pageReady, setPageReady] = useState(() => { + if (typeof window === 'undefined') return false + const navEntry = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming | undefined + const isHardReload = navEntry ? navEntry.type === 'reload' : (performance.navigation?.type === 1) + if (isHardReload) return false + return sessionStorage.getItem('nw:inbox-loaded') === '1' + }) const prevLoadingRef = useRef(false) const readyTimerRef = useRef | null>(null) useEffect(() => { if (prevLoadingRef.current && !loading) { - readyTimerRef.current = setTimeout(() => setPageReady(true), 400) + readyTimerRef.current = setTimeout(() => { + setPageReady(true) + sessionStorage.setItem('nw:inbox-loaded', '1') + }, 400) } prevLoadingRef.current = loading return () => { if (readyTimerRef.current) clearTimeout(readyTimerRef.current) } diff --git a/clube67/newwhats.local/frontend/services/chatApiService.ts b/clube67/newwhats.local/frontend/services/chatApiService.ts index 785e7f8..ca7d94f 100644 --- a/clube67/newwhats.local/frontend/services/chatApiService.ts +++ b/clube67/newwhats.local/frontend/services/chatApiService.ts @@ -202,6 +202,17 @@ export const mediaApi = { }) .then((r) => r.data) }, + + sendSticker: (instanceId: string, jid: string, blob: Blob) => { + const fd = new FormData() + fd.append('file', blob, 'sticker.webp') + fd.append('jid', jid) + return api + .post(`/api/instances/${instanceId}/send-media`, fd, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) + .then((r) => r.data) + }, } // ─── Chatbot / IA ───────────────────────────────────────────────────────────── @@ -517,3 +528,26 @@ export const scheduleApi = { logs: (id: string) => api.get(`/api/scheduled/${id}/logs`).then((r) => r.data) as Promise, } + +// ─── Stickers ───────────────────────────────────────────────────────────────── + +export interface StickerRecord { + id: string + sha256: string + wasabiPath: string + isAnimated: boolean + isFavorite: boolean + useCount?: number + lastSeenAt?: string +} + +export const stickerApi = { + list: () => + api.get('/api/stickers').then((r) => r.data) as Promise<{ listVersion: string; stickers: StickerRecord[] }>, + + recent: () => + api.get('/api/stickers/recent').then((r) => r.data) as Promise<{ stickers: StickerRecord[] }>, + + toggleFavorite: (id: string) => + api.patch(`/api/stickers/${id}/favorite`).then((r) => r.data) as Promise<{ id: string; isFavorite: boolean }>, +} diff --git a/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js b/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js index babd13b..3d60088 100644 --- a/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js +++ b/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js @@ -292,10 +292,11 @@ class UnifiedStorageProviderPlugin { } const safeBase = originalName.replace(/[^a-zA-Z0-9._-]/g, '_'); const fileName = `${Date.now()}-${safeBase}`; - // Path no bucket: whatsapp/{tenantId}/{instanceId}/{file} ou {category}/{file} - const relativePath = (category === 'whatsapp' && payload.usuarioSis && payload.sessionJID) - ? `whatsapp/${payload.usuarioSis}/${payload.sessionJID}/${fileName}` - : `${category}/${fileName}`; + // Path no bucket: customPath (quando fornecido) > whatsapp/{t}/{i}/{file} > {cat}/{file} + const relativePath = payload.customPath + ?? ((category === 'whatsapp' && payload.usuarioSis && payload.sessionJID) + ? `whatsapp/${payload.usuarioSis}/${payload.sessionJID}/${fileName}` + : `${category}/${fileName}`); if (!this.s3 || !this.bucket) { return this.saveToLocalFallback(relativePath, buffer, originalName, category); } @@ -317,6 +318,26 @@ class UnifiedStorageProviderPlugin { return this.saveToLocalFallback(relativePath, buffer, originalName, category); } } + async getBuffer(relativePath) { + // 1. Fallback local + const localPath = path_1.default.join(this.localFallbackDir, relativePath); + if (fs_1.default.existsSync(localPath)) { + return fs_1.default.readFileSync(localPath); + } + // 2. Wasabi + if (!this.s3 || !this.bucket) + return null; + try { + const result = await this.s3.send(new client_s3_1.GetObjectCommand({ Bucket: this.bucket, Key: relativePath })); + if (!result.Body) + return null; + const bytes = await result.Body.transformToByteArray(); + return Buffer.from(bytes); + } + catch { + return null; + } + } /** Salva buffer no diretório de fallback local, criando subpastas se necessário */ saveToLocalFallback(relativePath, buffer, originalName, _category) { const dest = path_1.default.join(this.localFallbackDir, relativePath); diff --git a/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js.map b/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js.map index a1aac27..7b93e19 100644 --- a/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js.map +++ b/clube67/newwhats.local/plugins/UnifiedStorageProvider/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;AAAA,kDAQ4B;AAC5B,sDAA8C;AAI9C,IAAI,eAAoB,CAAC;AACzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IACxC,eAAe,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC,eAAe,CAAC;AACjF,CAAC;KAAM,CAAC;IACJ,eAAe,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC,eAAe,CAAC;AACxF,CAAC;AACD,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAErG,2CAA2C;AAC3C,MAAM,QAAQ,GAA2B;IACrC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW;IACvD,GAAG,EAAE,WAAW,EAAG,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe;IAC3D,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAC1D,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,oBAAoB;IAC5C,IAAI,EAAE,yEAAyE;IAC/E,GAAG,EAAE,0BAA0B;IAC/B,IAAI,EAAE,mEAAmE;CAC5E,CAAC;AAEF,MAAM,4BAA4B;IAAlC;QAEY,OAAE,GAAoB,IAAI,CAAC;QAC3B,WAAM,GAAW,EAAE,CAAC;QACpB,WAAM,GAAW,WAAW,CAAC;QAC7B,qBAAgB,GAAW,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEpF,qBAAgB,GAAG,KAAK,CAAC;IA2XrC,CAAC;IAzXG,KAAK,CAAC,QAAQ,CAAC,GAAkB;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvE,IAAI,CAAC,MAAM,GAAK,CAAC,GAAG,CAAC,YAAY,IAAM,OAAO,CAAC,GAAG,CAAC,aAAa,IAAM,WAAW,CAAW,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAK,CAAC,GAAG,CAAC,YAAY,IAAM,OAAO,CAAC,GAAG,CAAC,aAAa,IAAM,EAAE,CAAW,CAAC;QAEpF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB,CAAW,CAAC;QACxG,MAAM,QAAQ,GAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,WAAW,EAAE,CAAC;QAE5F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAEjI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;QAC5G,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,EAAE,GAAG,IAAI,oBAAQ,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ;gBACR,WAAW,EAAE,EAAE,WAAW,EAAE,SAAmB,EAAE,eAAe,EAAE,SAAmB,EAAE;gBACvF,cAAc,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,MAAM,cAAc,QAAQ,EAAE,CAAC,CAAC;YAE/F,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,0EAA0E;YAC1E,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAE3D,IAAI,CAAC;oBACD,oBAAoB;oBACpB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;oBAC7D,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wBAC5D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC;wBAC3E,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;wBAC3D,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;wBACpD,OAAO,GAAG,CAAC,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;oBAChD,CAAC;oBAED,YAAY;oBACZ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAC5D,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,CAAC;wBACnD,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,GAAG,EAAE,QAAQ;qBAChB,CAAC,CAAC,CAAC;oBAEJ,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oBAC3D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC;oBACjG,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;oBAC3D,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;oBAE5C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBACd,MAAM,KAAK,GAAG,MAAO,MAAM,CAAC,IAAY,CAAC,oBAAoB,EAAE,CAAC;wBAChE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxC,CAAC;oBACD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,0EAA0E;YAC1E,2EAA2E;YAC3E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAChE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAA8B,CAAC;gBACtF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,IAAI,CAAC;oBACD,MAAM,EAAE,GAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;wBAC3D,CAAC,CAAC,QAAQ,IAAI,kBAAkB;wBAChC,CAAC,CAAC,WAAW,QAAQ,IAAI,kBAAkB,EAAE,CAAC;oBAClD,MAAM,GAAG,GAAG,IAAI,oBAAQ,CAAC;wBACrB,MAAM,EAAE,MAAM,IAAI,WAAW;wBAC7B,QAAQ,EAAE,EAAE;wBACZ,WAAW,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;wBACnE,cAAc,EAAE,IAAI;qBACvB,CAAC,CAAC;oBACH,MAAM,IAAI,GAAM,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC7F,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,0EAA0E;YAC1E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAA8B,CAAC;gBAC5F,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI;oBAAqB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAEjG,MAAM,QAAQ,GAAS,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAC7E,MAAM,eAAe,GAAG,MAAM,IAAI,WAAW,CAAC;gBAC9C,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC1D,CAAC,CAAC,QAAQ,IAAI,kBAAkB;oBAChC,CAAC,CAAC,WAAW,QAAQ,IAAI,kBAAkB,EAAE,CAAC;gBAElD,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,oBAAQ,CAAC;wBACrB,MAAM,EAAE,eAAe;wBACvB,QAAQ,EAAE,EAAE;wBACZ,WAAW,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;wBACnE,cAAc,EAAE,IAAI;qBACvB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;oBACzC,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;wBAClC,MAAM,CAAC,yBAAyB,GAAG,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;oBAC/E,CAAC;oBACD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;oBACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAkB;QAC/B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW;QACb,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,uFAAuF;aACnG,CAAC;QACN,CAAC;QACD,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,6BAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5G,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,GAAW,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAW,GAAG,EAAE,SAAS,EAAE,cAAc,IAAI,CAAC,CAAC;YAE/D,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACpE,OAAO;oBACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY;oBACtD,OAAO,EAAE,oFAAoF;iBAChG,CAAC;YACN,CAAC;YACD,IAAI,UAAU,KAAK,GAAG,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAChD,sDAAsD;gBACtD,OAAO;oBACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe;oBACzD,OAAO,EAAE,2FAA2F;iBACvG,CAAC;YACN,CAAC;YACD,IAAI,UAAU,KAAK,GAAG,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAChD,OAAO;oBACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB;oBAC5D,OAAO,EAAE,WAAW,IAAI,CAAC,MAAM,gEAAgE;iBAClG,CAAC;YACN,CAAC;YACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAChF,OAAO;oBACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe;oBACzD,OAAO,EAAE,4EAA4E;iBACxF,CAAC;YACN,CAAC;YACD,OAAO;gBACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS;gBACnD,OAAO,EAAE,6BAA6B,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE;aAC/D,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC7B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,qBAAqB;QACrB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,IAAI,WAAW,GAAG,IAAI,CAAC;gBACvB,IAAI,iBAAqC,CAAC;gBAE1C,OAAO,WAAW,EAAE,CAAC;oBACjB,MAAM,UAAU,GAAQ;wBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,IAAI;qBAChB,CAAC;oBACF,IAAI,iBAAiB,EAAE,CAAC;wBACpB,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;oBACrD,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC5E,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAE1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,MAAM,YAAY,GAAG;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,MAAM,EAAE;gCACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAAE,CAAC,CAAC;gCAClD,KAAK,EAAE,IAAI;6BACd;yBACJ,CAAC;wBACF,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;wBAC3D,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;wBAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,MAAM,4CAA4C,MAAM,EAAE,CAAC,CAAC;oBACzH,CAAC;oBAED,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC;oBAC9C,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,CAAC;gBACzD,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClH,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrB,YAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,SAAS,EAAE,CAAC,CAAC;gBACpG,CAAC;qBAAM,CAAC;oBACJ,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,SAAS,EAAE,CAAC,CAAC;gBACtG,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wEAAwE,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5H,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA6B;QACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAE7F,IAAI,MAAM,GAAQ,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,QAAQ,GAAM,IAAI,CAAC,QAAQ,CAAC;QAEhC,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;YAC5F,IAAI,CAAC;gBACD,MAAM,GAAQ,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnI,QAAQ,GAAM,YAAY,CAAC;gBAC3B,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,YAAY,uBAAuB,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAK,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAK,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QAE/C,yFAAyF;QACzF,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU;eAChC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;gBACrE,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE;gBACpE,CAAC,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,oBAAM,CAAC;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAK,YAAY;oBACpB,IAAI,EAAI,MAAM;oBACd,WAAW,EAAE,QAAQ;iBACxB;aACJ,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;YAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAEtD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB;QAChC,oBAAoB;QACpB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACjE,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,YAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QACD,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAO,MAAM,CAAC,IAAY,CAAC,oBAAoB,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,mFAAmF;IAC3E,mBAAmB,CAAC,YAAoB,EAAE,MAAc,EAAE,YAAoB,EAAE,SAAiB;QACrG,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC5D,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC9D,CAAC;IAED,2EAA2E;IACnE,eAAe;QACnB,WAAW,CAAC,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACrC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC,EAAE,MAAO,CAAC,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW;QAC7B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEhC,KAAK,MAAM,KAAK,IAAI,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,GAAO,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC7B,SAAS;YACb,CAAC;YAED,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAExF,IAAI,CAAC;gBACD,MAAM,IAAI,oBAAM,CAAC;oBACb,MAAM,EAAE,IAAI,CAAC,EAAG;oBAChB,MAAM,EAAE;wBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,GAAG,EAAK,YAAY;wBACpB,IAAI,EAAI,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;qBACpC;iBACJ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEV,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,YAAY,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;AACpD,kBAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/clube67/newwhats.local/update-version.js b/clube67/newwhats.local/update-version.js new file mode 100644 index 0000000..ddc974d --- /dev/null +++ b/clube67/newwhats.local/update-version.js @@ -0,0 +1,83 @@ +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); + +const versionFilePath = path.resolve(__dirname, 'version.json'); +const deploysFilePath = path.resolve(__dirname, 'deploys.json'); + +// 1. Obter informações de commit do Git +let commitHash = 'unknown'; +let commitMessage = 'unknown'; +let author = 'unknown'; + +try { + commitHash = execSync('git rev-parse --short HEAD').toString().trim(); + commitMessage = execSync('git log -1 --pretty=format:"%s"').toString().trim(); + author = execSync('git log -1 --pretty=format:"%an"').toString().trim(); +} catch (e) { + console.error('Falha ao obter detalhes do git:', e.message); +} + +// 2. Carregar versão atual ou inicializar +let data = { + version: 'v1.0.0', + buildCount: 0, + lastDeploy: '' +}; + +if (fs.existsSync(versionFilePath)) { + try { + data = JSON.parse(fs.readFileSync(versionFilePath, 'utf8')); + } catch (e) { + console.error('Falha ao analisar version.json, reiniciando.'); + } +} + +// 3. Incrementar buildCount (+1) e atualizar versão v1.0.x +data.buildCount = (data.buildCount || 0) + 1; +data.version = `v1.0.${data.buildCount}`; // v1.+1 +data.lastDeploy = new Date().toISOString(); +data.lastCommit = { + hash: commitHash, + message: commitMessage, + author: author +}; + +// 4. Salvar version.json local +fs.writeFileSync(versionFilePath, JSON.stringify(data, null, 2), 'utf8'); + +// Copiar para a pasta pública do frontend para que fique exposto via HTTP +const publicVersionPath = path.resolve(__dirname, 'frontend/public/version.json'); +fs.mkdirSync(path.dirname(publicVersionPath), { recursive: true }); +fs.writeFileSync(publicVersionPath, JSON.stringify(data, null, 2), 'utf8'); + +// 5. Adicionar entrada de histórico no deploys.json +let deploys = []; +if (fs.existsSync(deploysFilePath)) { + try { + deploys = JSON.parse(fs.readFileSync(deploysFilePath, 'utf8')); + } catch (e) { + console.error('Falha ao analisar deploys.json'); + } +} + +deploys.unshift({ + version: data.version, + buildCount: data.buildCount, + timestamp: data.lastDeploy, + commitHash, + commitMessage, + author, + status: 'Sucesso' +}); + +// Limitar o histórico de deploys a 30 registros +deploys = deploys.slice(0, 30); + +fs.writeFileSync(deploysFilePath, JSON.stringify(deploys, null, 2), 'utf8'); + +// Copiar deploys.json histórico para a pasta pública do frontend +const publicDeploysPath = path.resolve(__dirname, 'frontend/public/deploys.json'); +fs.writeFileSync(publicDeploysPath, JSON.stringify(deploys, null, 2), 'utf8'); + +console.log(`Versão atualizada para ${data.version} (build #${data.buildCount})`);