@omnizap-system/omnizap 2.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/.clusterfuzzlite/Dockerfile +10 -0
  2. package/.env.example +907 -0
  3. package/.github/codeql/codeql-config.yml +10 -0
  4. package/.github/dependabot.yml +35 -0
  5. package/.github/workflows/ci.yml +73 -0
  6. package/.github/workflows/codeql.yml +106 -0
  7. package/.github/workflows/db-migration-check.yml +98 -0
  8. package/.github/workflows/dependency-review.yml +22 -0
  9. package/.github/workflows/deploy.yml +95 -0
  10. package/.github/workflows/release.yml +106 -0
  11. package/.github/workflows/security-attest-provenance.yml +51 -0
  12. package/.github/workflows/security-gitleaks.yml +34 -0
  13. package/.github/workflows/security-runner-hardening.yml +31 -0
  14. package/.github/workflows/security-scorecard.yml +44 -0
  15. package/.github/workflows/security-zap-baseline.yml +44 -0
  16. package/.github/workflows/security-zap-full-scan.yml +43 -0
  17. package/.github/workflows/security-zizmor.yml +36 -0
  18. package/.github/workflows/wiki-sync.yml +44 -0
  19. package/.gitleaks.toml +15 -0
  20. package/.prettierrc +34 -0
  21. package/CODE_OF_CONDUCT.md +114 -0
  22. package/LICENSE +56 -0
  23. package/README.md +110 -0
  24. package/SECURITY.md +110 -0
  25. package/app/config/index.js +4 -0
  26. package/app/configParts/adminIdentity.js +92 -0
  27. package/app/configParts/baileysConfig.js +1818 -0
  28. package/app/configParts/groupUtils.js +692 -0
  29. package/app/configParts/loggerConfig.js +394 -0
  30. package/app/configParts/messagePersistenceService.js +305 -0
  31. package/app/connection/baileysCompatibility.test.js +40 -0
  32. package/app/connection/baileysDbAuthState.js +344 -0
  33. package/app/connection/socketController.js +2243 -0
  34. package/app/controllers/messageController.js +7 -0
  35. package/app/controllers/messagePipeline/commandMiddleware.js +146 -0
  36. package/app/controllers/messagePipeline/conversationMiddleware.js +183 -0
  37. package/app/controllers/messagePipeline/messagePipelineMiddlewares.test.js +522 -0
  38. package/app/controllers/messagePipeline/postProcessingMiddleware.js +41 -0
  39. package/app/controllers/messagePipeline/preProcessingMiddlewares.js +166 -0
  40. package/app/controllers/messageProcessingPipeline.js +699 -0
  41. package/app/modules/adminModule/AGENT.md +4056 -0
  42. package/app/modules/adminModule/adminAiHelpService.js +56 -0
  43. package/app/modules/adminModule/adminConfigRuntime.js +177 -0
  44. package/app/modules/adminModule/commandConfig.json +7122 -0
  45. package/app/modules/adminModule/groupCommandHandlers.js +1823 -0
  46. package/app/modules/adminModule/groupCommandHandlers.test.js +350 -0
  47. package/app/modules/adminModule/groupEventHandlers.js +399 -0
  48. package/app/modules/aiModule/AGENT.md +547 -0
  49. package/app/modules/aiModule/aiAiHelpService.js +14 -0
  50. package/app/modules/aiModule/aiConfigRuntime.js +135 -0
  51. package/app/modules/aiModule/catCommand.js +967 -0
  52. package/app/modules/aiModule/commandConfig.json +981 -0
  53. package/app/modules/analyticsModule/messageAnalysisEventRepository.js +83 -0
  54. package/app/modules/gameModule/AGENT.md +196 -0
  55. package/app/modules/gameModule/commandConfig.json +366 -0
  56. package/app/modules/gameModule/diceCommand.js +42 -0
  57. package/app/modules/gameModule/gameAiHelpService.js +14 -0
  58. package/app/modules/gameModule/gameConfigRuntime.js +68 -0
  59. package/app/modules/menuModule/AGENT.md +205 -0
  60. package/app/modules/menuModule/commandConfig.json +366 -0
  61. package/app/modules/menuModule/common.js +316 -0
  62. package/app/modules/menuModule/menuAiHelpService.js +14 -0
  63. package/app/modules/menuModule/menuConfigRuntime.js +68 -0
  64. package/app/modules/menuModule/menus.js +66 -0
  65. package/app/modules/playModule/AGENT.md +321 -0
  66. package/app/modules/playModule/commandConfig.json +584 -0
  67. package/app/modules/playModule/playAiHelpService.js +14 -0
  68. package/app/modules/playModule/playCommand.js +1417 -0
  69. package/app/modules/playModule/playConfigRuntime.js +68 -0
  70. package/app/modules/quoteModule/AGENT.md +199 -0
  71. package/app/modules/quoteModule/commandConfig.json +366 -0
  72. package/app/modules/quoteModule/quoteAiHelpService.js +14 -0
  73. package/app/modules/quoteModule/quoteCommand.js +842 -0
  74. package/app/modules/quoteModule/quoteConfigRuntime.js +68 -0
  75. package/app/modules/rpgPokemonModule/AGENT.md +229 -0
  76. package/app/modules/rpgPokemonModule/commandConfig.json +386 -0
  77. package/app/modules/rpgPokemonModule/rpgBattleCanvasRenderer.js +795 -0
  78. package/app/modules/rpgPokemonModule/rpgBattleService.js +2110 -0
  79. package/app/modules/rpgPokemonModule/rpgBattleService.test.js +770 -0
  80. package/app/modules/rpgPokemonModule/rpgEvolutionUtils.js +22 -0
  81. package/app/modules/rpgPokemonModule/rpgPokemonAiHelpService.js +14 -0
  82. package/app/modules/rpgPokemonModule/rpgPokemonCommand.js +174 -0
  83. package/app/modules/rpgPokemonModule/rpgPokemonConfigRuntime.js +68 -0
  84. package/app/modules/rpgPokemonModule/rpgPokemonDomain.js +192 -0
  85. package/app/modules/rpgPokemonModule/rpgPokemonDomain.test.js +93 -0
  86. package/app/modules/rpgPokemonModule/rpgPokemonEvolution.test.js +46 -0
  87. package/app/modules/rpgPokemonModule/rpgPokemonMessages.js +746 -0
  88. package/app/modules/rpgPokemonModule/rpgPokemonRepository.js +1847 -0
  89. package/app/modules/rpgPokemonModule/rpgPokemonService.js +6839 -0
  90. package/app/modules/rpgPokemonModule/rpgProfileCanvasRenderer.js +354 -0
  91. package/app/modules/statsModule/AGENT.md +320 -0
  92. package/app/modules/statsModule/commandConfig.json +540 -0
  93. package/app/modules/statsModule/globalRankingCommand.js +64 -0
  94. package/app/modules/statsModule/rankingCommand.js +41 -0
  95. package/app/modules/statsModule/rankingCommon.js +1305 -0
  96. package/app/modules/statsModule/statsAiHelpService.js +14 -0
  97. package/app/modules/statsModule/statsConfigRuntime.js +68 -0
  98. package/app/modules/stickerModule/AGENT.md +692 -0
  99. package/app/modules/stickerModule/addStickerMetadata.js +239 -0
  100. package/app/modules/stickerModule/commandConfig.json +1216 -0
  101. package/app/modules/stickerModule/convertToWebp.js +367 -0
  102. package/app/modules/stickerModule/stickerAiHelpService.js +14 -0
  103. package/app/modules/stickerModule/stickerCommand.js +446 -0
  104. package/app/modules/stickerModule/stickerConfigRuntime.js +68 -0
  105. package/app/modules/stickerModule/stickerConvertCommand.js +159 -0
  106. package/app/modules/stickerModule/stickerTextCommand.js +653 -0
  107. package/app/modules/stickerPackModule/AGENT.md +215 -0
  108. package/app/modules/stickerPackModule/autoPackCollectorRuntime.js +20 -0
  109. package/app/modules/stickerPackModule/autoPackCollectorService.js +357 -0
  110. package/app/modules/stickerPackModule/commandConfig.json +387 -0
  111. package/app/modules/stickerPackModule/domainEventOutboxRepository.js +227 -0
  112. package/app/modules/stickerPackModule/domainEvents.js +52 -0
  113. package/app/modules/stickerPackModule/semanticReclassificationEngine.js +429 -0
  114. package/app/modules/stickerPackModule/semanticReclassificationEngine.test.js +75 -0
  115. package/app/modules/stickerPackModule/semanticThemeClusterService.js +544 -0
  116. package/app/modules/stickerPackModule/stickerAssetClassificationRepository.js +400 -0
  117. package/app/modules/stickerPackModule/stickerAssetRepository.js +400 -0
  118. package/app/modules/stickerPackModule/stickerAssetReprocessQueueRepository.js +175 -0
  119. package/app/modules/stickerPackModule/stickerAutoPackByTagsRuntime.js +3702 -0
  120. package/app/modules/stickerPackModule/stickerClassificationBackgroundRuntime.js +559 -0
  121. package/app/modules/stickerPackModule/stickerClassificationService.js +557 -0
  122. package/app/modules/stickerPackModule/stickerDedicatedTaskWorkerRuntime.js +249 -0
  123. package/app/modules/stickerPackModule/stickerDomainEventBus.js +65 -0
  124. package/app/modules/stickerPackModule/stickerDomainEventConsumerRuntime.js +208 -0
  125. package/app/modules/stickerPackModule/stickerMarketplaceDriftService.js +99 -0
  126. package/app/modules/stickerPackModule/stickerObjectStorageService.js +285 -0
  127. package/app/modules/stickerPackModule/stickerPackAiHelpService.js +14 -0
  128. package/app/modules/stickerPackModule/stickerPackCommandHandlers.js +1148 -0
  129. package/app/modules/stickerPackModule/stickerPackConfigRuntime.js +68 -0
  130. package/app/modules/stickerPackModule/stickerPackEngagementRepository.js +152 -0
  131. package/app/modules/stickerPackModule/stickerPackErrors.js +30 -0
  132. package/app/modules/stickerPackModule/stickerPackInteractionEventRepository.js +101 -0
  133. package/app/modules/stickerPackModule/stickerPackItemRepository.js +432 -0
  134. package/app/modules/stickerPackModule/stickerPackMarketplaceService.js +313 -0
  135. package/app/modules/stickerPackModule/stickerPackMessageService.js +268 -0
  136. package/app/modules/stickerPackModule/stickerPackRepository.js +450 -0
  137. package/app/modules/stickerPackModule/stickerPackScoreSnapshotRepository.js +179 -0
  138. package/app/modules/stickerPackModule/stickerPackScoreSnapshotRuntime.js +271 -0
  139. package/app/modules/stickerPackModule/stickerPackService.js +733 -0
  140. package/app/modules/stickerPackModule/stickerPackServiceRuntime.js +32 -0
  141. package/app/modules/stickerPackModule/stickerPackUtils.js +107 -0
  142. package/app/modules/stickerPackModule/stickerStorageService.js +559 -0
  143. package/app/modules/stickerPackModule/stickerWorkerPipelineRuntime.js +242 -0
  144. package/app/modules/stickerPackModule/stickerWorkerTaskQueueRepository.js +242 -0
  145. package/app/modules/systemMetricsModule/AGENT.md +193 -0
  146. package/app/modules/systemMetricsModule/commandConfig.json +344 -0
  147. package/app/modules/systemMetricsModule/pingCommand.js +399 -0
  148. package/app/modules/systemMetricsModule/systemMetricsAiHelpService.js +14 -0
  149. package/app/modules/systemMetricsModule/systemMetricsConfigRuntime.js +68 -0
  150. package/app/modules/tiktokModule/AGENT.md +196 -0
  151. package/app/modules/tiktokModule/commandConfig.json +366 -0
  152. package/app/modules/tiktokModule/tiktokAiHelpService.js +14 -0
  153. package/app/modules/tiktokModule/tiktokCommand.js +716 -0
  154. package/app/modules/tiktokModule/tiktokConfigRuntime.js +68 -0
  155. package/app/modules/userModule/AGENT.md +200 -0
  156. package/app/modules/userModule/commandConfig.json +386 -0
  157. package/app/modules/userModule/userAiHelpService.js +14 -0
  158. package/app/modules/userModule/userCommand.js +1155 -0
  159. package/app/modules/userModule/userConfigRuntime.js +68 -0
  160. package/app/modules/waifuPicsModule/AGENT.md +431 -0
  161. package/app/modules/waifuPicsModule/commandConfig.json +780 -0
  162. package/app/modules/waifuPicsModule/waifuPicsAiHelpService.js +14 -0
  163. package/app/modules/waifuPicsModule/waifuPicsCommand.js +586 -0
  164. package/app/modules/waifuPicsModule/waifuPicsConfigRuntime.js +68 -0
  165. package/app/observability/metrics.js +766 -0
  166. package/app/services/ai/aiHelpResponseCacheRepository.js +280 -0
  167. package/app/services/ai/aiLearningRepository.js +400 -0
  168. package/app/services/ai/commandConfigEnrichmentRepository.js +769 -0
  169. package/app/services/ai/commandConfigEnrichmentService.js +452 -0
  170. package/app/services/ai/commandConfigValidationService.js +443 -0
  171. package/app/services/ai/commandToolBuilderService.js +192 -0
  172. package/app/services/ai/conversationRouterService.js +516 -0
  173. package/app/services/ai/geminiService.js +115 -0
  174. package/app/services/ai/geminiService.test.js +87 -0
  175. package/app/services/ai/globalModuleAiHelpService.js +1412 -0
  176. package/app/services/ai/globalToolCallingService.js +203 -0
  177. package/app/services/ai/messageCommandExecutionService.js +391 -0
  178. package/app/services/ai/moduleAiHelpCoreService.js +1099 -0
  179. package/app/services/ai/moduleAiHelpWrapperFactory.js +65 -0
  180. package/app/services/ai/moduleCommandConfigRuntimeService.js +113 -0
  181. package/app/services/ai/moduleToolExecutorService.js +464 -0
  182. package/app/services/ai/moduleToolRegistryService.js +178 -0
  183. package/app/services/ai/toolCandidateSelectorService.js +781 -0
  184. package/app/services/auth/googleWebLinkService.js +80 -0
  185. package/app/services/auth/whatsappLoginLinkService.js +230 -0
  186. package/app/services/external/pokeApiService.js +398 -0
  187. package/app/services/group/groupMetadataService.js +311 -0
  188. package/app/services/infra/dbWriteQueue.js +874 -0
  189. package/app/services/infra/featureFlagService.js +131 -0
  190. package/app/services/infra/queueUtils.js +55 -0
  191. package/app/services/messaging/captchaService.js +491 -0
  192. package/app/services/messaging/messagePersistenceService.js +1 -0
  193. package/app/services/messaging/newsBroadcastService.js +347 -0
  194. package/app/services/sticker/stickerFocusService.js +347 -0
  195. package/app/services/sticker/stickerFocusService.test.js +43 -0
  196. package/app/store/aiPromptStore.js +38 -0
  197. package/app/store/conversationSessionStore.js +131 -0
  198. package/app/store/groupConfigStore.js +58 -0
  199. package/app/store/premiumUserStore.js +54 -0
  200. package/app/utils/antiLink/antiLinkModule.js +700 -0
  201. package/app/utils/http/getImageBufferModule.js +18 -0
  202. package/app/utils/json/jsonSanitizer.js +113 -0
  203. package/app/utils/json/jsonSanitizer.test.js +40 -0
  204. package/app/utils/systemMetrics/systemMetricsModule.js +88 -0
  205. package/app/workers/aiLearningWorker.js +605 -0
  206. package/app/workers/commandConfigEnrichmentWorker.js +242 -0
  207. package/database/index.js +2075 -0
  208. package/database/init.js +151 -0
  209. package/database/migrations/.gitkeep +0 -0
  210. package/database/migrations/20260307_d0_hardening_down.sql +64 -0
  211. package/database/migrations/20260307_d0_hardening_up.sql +79 -0
  212. package/database/migrations/20260307_d1_terms_acceptance_down.sql +11 -0
  213. package/database/migrations/20260307_d1_terms_acceptance_up.sql +37 -0
  214. package/database/migrations/20260307_d2_auth_hardening_down.sql +75 -0
  215. package/database/migrations/20260307_d2_auth_hardening_up.sql +100 -0
  216. package/database/migrations/20260314_d7_canonical_sender_down.sql +53 -0
  217. package/database/migrations/20260314_d7_canonical_sender_up.sql +114 -0
  218. package/database/migrations/20260406_d30_security_analytics_down.sql +95 -0
  219. package/database/migrations/20260406_d30_security_analytics_up.sql +292 -0
  220. package/database/migrations/20260407_d31_web_google_session_token_hardening_down.sql +2 -0
  221. package/database/migrations/20260407_d31_web_google_session_token_hardening_up.sql +17 -0
  222. package/database/migrations/20260408_d32_ai_help_response_cache_down.sql +1 -0
  223. package/database/migrations/20260408_d32_ai_help_response_cache_up.sql +22 -0
  224. package/database/migrations/20260409_d33_ai_learning_tables_down.sql +4 -0
  225. package/database/migrations/20260409_d33_ai_learning_tables_up.sql +52 -0
  226. package/database/migrations/20260410_d34_command_config_enrichment_down.sql +3 -0
  227. package/database/migrations/20260410_d34_command_config_enrichment_up.sql +48 -0
  228. package/database/schema.sql +1186 -0
  229. package/docker-compose.yml +104 -0
  230. package/docs/audits/stickerCatalogController-out-of-scope.md +103 -0
  231. package/docs/audits/stickerCatalogController-symbols.md +58 -0
  232. package/docs/compliance/acceptable-use-policy-2026-03-07.md +35 -0
  233. package/docs/compliance/dpa-b2b-standard-2026-03-07.md +80 -0
  234. package/docs/compliance/monthly-compliance-checklist-2026-03-07.md +88 -0
  235. package/docs/compliance/notice-and-takedown-policy-2026-03-07.md +34 -0
  236. package/docs/compliance/privacy-policy-2026-03-07.md +75 -0
  237. package/docs/compliance/subprocessors-inventory-2026-03-07.md +16 -0
  238. package/docs/database/production-db-evolution-runbook-2026q1.md +365 -0
  239. package/docs/security/dsar-lgpd-runbook-2026-03-07.md +86 -0
  240. package/docs/security/incident-response-lgpd-anpd-runbook-2026-03-07.md +77 -0
  241. package/docs/security/network-hardening-runbook-2026-03-07.md +137 -0
  242. package/docs/seo/omnizap-seo-playbook-br-2026-02-28.md +238 -0
  243. package/docs/seo/satellite-page-template.md +116 -0
  244. package/docs/seo/satellite-pages-phase1.json +364 -0
  245. package/docs/wiki/Home.md +120 -0
  246. package/docs/wiki/pair-extraordinaire-2026-03-08.md +3 -0
  247. package/docs/wiki/recent-changes-2026-03-08.md +47 -0
  248. package/ecosystem.prod.config.cjs +135 -0
  249. package/eslint.config.js +89 -0
  250. package/index.js +488 -0
  251. package/ml/clip_classifier/Dockerfile +18 -0
  252. package/ml/clip_classifier/README.md +118 -0
  253. package/ml/clip_classifier/adaptive_scoring.py +40 -0
  254. package/ml/clip_classifier/classifier.py +654 -0
  255. package/ml/clip_classifier/embedding_store.py +481 -0
  256. package/ml/clip_classifier/env_loader.py +15 -0
  257. package/ml/clip_classifier/llm_label_expander.py +144 -0
  258. package/ml/clip_classifier/main.py +213 -0
  259. package/ml/clip_classifier/requirements.txt +10 -0
  260. package/ml/clip_classifier/similarity_engine.py +74 -0
  261. package/new-logo.png +0 -0
  262. package/observability/alert-rules.yml +60 -0
  263. package/observability/grafana/dashboards/omnizap-mysql.json +136 -0
  264. package/observability/grafana/dashboards/omnizap-overview.json +170 -0
  265. package/observability/grafana/provisioning/dashboards/dashboards.yml +11 -0
  266. package/observability/grafana/provisioning/datasources/datasources.yml +15 -0
  267. package/observability/loki-config.yml +38 -0
  268. package/observability/mysql-setup.sql +46 -0
  269. package/observability/prometheus.yml +35 -0
  270. package/observability/promtail-config.yml +84 -0
  271. package/observability/sticker-catalog-slo.md +83 -0
  272. package/observability/sticker-scale-hardening-rollout.md +128 -0
  273. package/package.json +144 -0
  274. package/public/apple-touch-icon.png +0 -0
  275. package/public/assets/css/commands-react.input.css +71 -0
  276. package/public/assets/css/create-pack-react.input.css +31 -0
  277. package/public/assets/css/home-react.input.css +106 -0
  278. package/public/assets/css/login-react.input.css +58 -0
  279. package/public/assets/css/stickers-react.input.css +18 -0
  280. package/public/assets/css/terms-react.input.css +115 -0
  281. package/public/assets/css/user-react.input.css +57 -0
  282. package/public/assets/images/brand-icon-192.png +0 -0
  283. package/public/assets/images/brand-logo-128.webp +0 -0
  284. package/public/assets/images/hero-banner-1280.jpg +0 -0
  285. package/public/comandos/commands-catalog.json +4517 -0
  286. package/public/css/api-docs.css +161 -0
  287. package/public/css/stickers-admin.css +1288 -0
  288. package/public/css/styles.css +679 -0
  289. package/public/css/systemadm/admin.css +474 -0
  290. package/public/css/systemadm/base.css +73 -0
  291. package/public/css/systemadm/components.css +662 -0
  292. package/public/css/systemadm/layout.css +229 -0
  293. package/public/css/systemadm/tokens.css +56 -0
  294. package/public/favicon-16x16.png +0 -0
  295. package/public/favicon-32x32.png +0 -0
  296. package/public/favicon.ico +0 -0
  297. package/public/js/apps/apiDocsApp.js +235 -0
  298. package/public/js/apps/commandsReactApp.js +528 -0
  299. package/public/js/apps/createPackApp.js +1646 -0
  300. package/public/js/apps/homeReactApp.js +942 -0
  301. package/public/js/apps/loginReactApp.js +496 -0
  302. package/public/js/apps/stickersAdminApp.js +1753 -0
  303. package/public/js/apps/stickersApp.js +3797 -0
  304. package/public/js/apps/termsReactApp.js +528 -0
  305. package/public/js/apps/userApp.js +2540 -0
  306. package/public/js/apps/userProfile/actions.js +66 -0
  307. package/public/js/apps/userReactApp.js +547 -0
  308. package/public/js/catalog.js +950 -0
  309. package/public/pages/api-docs.html +40 -0
  310. package/public/pages/aup.html +158 -0
  311. package/public/pages/comandos.html +41 -0
  312. package/public/pages/dpa.html +227 -0
  313. package/public/pages/home.html +45 -0
  314. package/public/pages/licenca.html +182 -0
  315. package/public/pages/login.html +40 -0
  316. package/public/pages/notice-and-takedown.html +234 -0
  317. package/public/pages/politica-de-privacidade.html +251 -0
  318. package/public/pages/seo-bot-whatsapp-para-grupo.html +350 -0
  319. package/public/pages/seo-bot-whatsapp-sem-programar.html +350 -0
  320. package/public/pages/seo-como-automatizar-avisos-no-whatsapp.html +350 -0
  321. package/public/pages/seo-como-criar-comandos-whatsapp.html +350 -0
  322. package/public/pages/seo-como-evitar-spam-no-whatsapp.html +350 -0
  323. package/public/pages/seo-como-moderar-grupo-whatsapp.html +350 -0
  324. package/public/pages/seo-como-organizar-comunidade-whatsapp.html +350 -0
  325. package/public/pages/seo-melhor-bot-whatsapp-para-grupos.html +350 -0
  326. package/public/pages/stickers-admin.html +31 -0
  327. package/public/pages/stickers-create.html +41 -0
  328. package/public/pages/stickers.html +45 -0
  329. package/public/pages/suboperadores.html +237 -0
  330. package/public/pages/termos-de-uso-texto-integral.html +241 -0
  331. package/public/pages/termos-de-uso.html +41 -0
  332. package/public/pages/user-password-reset.html +32 -0
  333. package/public/pages/user-systemadm.html +508 -0
  334. package/public/pages/user.html +39 -0
  335. package/public/robots.txt +9 -0
  336. package/public/site.webmanifest +24 -0
  337. package/public/sitemap.xml +98 -0
  338. package/schemas/command-config.schema.json +582 -0
  339. package/scripts/baileys-compat-smoke.mjs +12 -0
  340. package/scripts/cache-bust.mjs +142 -0
  341. package/scripts/deploy.sh +916 -0
  342. package/scripts/email-broadcast-terms-update.mjs +170 -0
  343. package/scripts/enrich-command-discovery-fields.mjs +286 -0
  344. package/scripts/generate-command-config-schema.mjs +273 -0
  345. package/scripts/generate-commands-catalog.mjs +308 -0
  346. package/scripts/generate-module-agents.mjs +631 -0
  347. package/scripts/generate-seo-satellite-pages.mjs +400 -0
  348. package/scripts/github-deploy-notify.mjs +174 -0
  349. package/scripts/github-release-notify.mjs +219 -0
  350. package/scripts/release.sh +599 -0
  351. package/scripts/run-codeql-local.sh +116 -0
  352. package/scripts/run-prettier-all.mjs +25 -0
  353. package/scripts/security-smoketest.mjs +581 -0
  354. package/scripts/sticker-catalog-loadtest.mjs +210 -0
  355. package/scripts/sticker-worker-task.mjs +119 -0
  356. package/scripts/sync-readme-snapshot.mjs +133 -0
  357. package/scripts/validate-command-config-schema.mjs +130 -0
  358. package/scripts/validate-command-configs.mjs +15 -0
  359. package/scripts/wiki-sync.sh +191 -0
  360. package/server/auth/googleWebAuth/googleWebAuthRuntime.js +62 -0
  361. package/server/auth/googleWebAuth/googleWebAuthService.js +807 -0
  362. package/server/auth/jwt/webJwtService.js +147 -0
  363. package/server/auth/stickerCatalogAuthContext.js +165 -0
  364. package/server/auth/termsAcceptance/termsAcceptanceHandler.js +189 -0
  365. package/server/auth/userPassword/index.js +14 -0
  366. package/server/auth/userPassword/userPasswordAuthService.js +422 -0
  367. package/server/auth/userPassword/userPasswordCrypto.js +199 -0
  368. package/server/auth/userPassword/userPasswordCrypto.test.js +76 -0
  369. package/server/auth/userPassword/userPasswordRecoveryService.js +728 -0
  370. package/server/auth/validation/authSchemas.js +236 -0
  371. package/server/auth/webAccount/webAccountHandlers.js +1434 -0
  372. package/server/controllers/admin/adminBanService.js +138 -0
  373. package/server/controllers/admin/adminPanelHandlers.js +2083 -0
  374. package/server/controllers/admin/stickerCatalogAdminContext.js +17 -0
  375. package/server/controllers/admin/systemAdminController.js +201 -0
  376. package/server/controllers/email/emailAutomationController.js +239 -0
  377. package/server/controllers/metricsController.js +21 -0
  378. package/server/controllers/seo/stickerCatalogSeoContext.js +514 -0
  379. package/server/controllers/sticker/nonCatalogHandlers.js +303 -0
  380. package/server/controllers/sticker/stickerCatalogController.js +4700 -0
  381. package/server/controllers/system/contactController.js +115 -0
  382. package/server/controllers/system/githubController.js +137 -0
  383. package/server/controllers/system/stickerCatalogSystemContext.js +758 -0
  384. package/server/controllers/system/storageController.js +154 -0
  385. package/server/controllers/system/systemController.js +135 -0
  386. package/server/controllers/system/systemMetricsController.js +156 -0
  387. package/server/controllers/system/visitController.js +90 -0
  388. package/server/controllers/userController.js +145 -0
  389. package/server/email/emailAutomationRuntime.js +225 -0
  390. package/server/email/emailAutomationService.js +125 -0
  391. package/server/email/emailOutboxRepository.js +282 -0
  392. package/server/email/emailTemplateService.js +480 -0
  393. package/server/email/emailTransportService.js +156 -0
  394. package/server/http/clientIp.js +95 -0
  395. package/server/http/httpRequestUtils.js +262 -0
  396. package/server/http/httpRequestUtils.test.js +80 -0
  397. package/server/http/httpServer.js +180 -0
  398. package/server/http/requestContext.js +20 -0
  399. package/server/http/siteRoutingUtils.js +87 -0
  400. package/server/index.js +1 -0
  401. package/server/middleware/cachePolicy.js +26 -0
  402. package/server/middleware/cachePolicyHelpers.js +1 -0
  403. package/server/middleware/endpointRateLimit.js +181 -0
  404. package/server/middleware/rateLimit.js +70 -0
  405. package/server/middleware/requireAdminAuth.js +48 -0
  406. package/server/middleware/securityHeaders.js +97 -0
  407. package/server/routes/admin/systemAdminRouter.js +64 -0
  408. package/server/routes/email/emailAutomationRouter.js +46 -0
  409. package/server/routes/health/healthRouter.js +41 -0
  410. package/server/routes/indexRouter.js +234 -0
  411. package/server/routes/metrics/metricsRouter.js +58 -0
  412. package/server/routes/static/staticPageRouter.js +134 -0
  413. package/server/routes/sticker/catalogHandlers/catalogAdminHttp.js +105 -0
  414. package/server/routes/sticker/catalogHandlers/catalogAuthHttp.js +77 -0
  415. package/server/routes/sticker/catalogHandlers/catalogPublicHttp.js +120 -0
  416. package/server/routes/sticker/catalogHandlers/catalogUploadHttp.js +83 -0
  417. package/server/routes/sticker/catalogRouter.js +77 -0
  418. package/server/routes/sticker/stickerApiRouter.js +84 -0
  419. package/server/routes/sticker/stickerDataRouter.js +145 -0
  420. package/server/routes/sticker/stickerSiteRouter.js +43 -0
  421. package/server/routes/user/userApiPaths.js +66 -0
  422. package/server/routes/user/userRouter.js +65 -0
  423. package/server/utils/safePath.js +26 -0
  424. package/utils/logger/loggerModule.js +35 -0
  425. package/vite.config.mjs +38 -0
@@ -0,0 +1,40 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR" data-theme="night">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>API Docs | OmniZap System</title>
7
+ <meta name="description" content="Documentação técnica da API OmniZap para desenvolvedores: endpoints, autenticação e integração de bots." />
8
+ <meta name="robots" content="index, follow" />
9
+ <meta name="theme-color" content="#020617" />
10
+ <link rel="canonical" href="https://omnizap.shop/api-docs/" />
11
+ <link rel="icon" href="/favicon.ico" sizes="any" />
12
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
13
+ <link rel="stylesheet" href="/assets/css/api-docs.css" />
14
+ <style>
15
+ body {
16
+ margin: 0;
17
+ background: #020617;
18
+ color: #f8fafc;
19
+ font-family:
20
+ system-ui,
21
+ -apple-system,
22
+ sans-serif;
23
+ }
24
+ #api-docs-react-root {
25
+ min-height: 100vh;
26
+ }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <div id="api-docs-react-root"></div>
31
+ <noscript>
32
+ <main style="max-width: 800px; margin: 50px auto; padding: 20px; text-align: center">
33
+ <h1>OmniZap API Documentation</h1>
34
+ <p>JavaScript é necessário para carregar a documentação interativa da API.</p>
35
+ <a href="/" style="color: #22c55e">Voltar para Home</a>
36
+ </main>
37
+ </noscript>
38
+ <script type="module" src="/assets/js/api-docs.bundle.js"></script>
39
+ </body>
40
+ </html>
@@ -0,0 +1,158 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Política de Uso Aceitável (AUP) | OmniZap</title>
7
+ <meta name="description" content="Política de Uso Aceitável do OmniZap com lista objetiva de casos proibidos." />
8
+ <meta name="robots" content="index, follow" />
9
+ <link rel="canonical" href="https://omnizap.shop/aup/" />
10
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&family=Sora:wght@100..800&display=swap" rel="stylesheet" />
13
+ <style>
14
+ :root {
15
+ --bc: 210 40% 96%;
16
+ --p: 142 71% 45%;
17
+ --s: 217 91% 60%;
18
+ }
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+ body {
23
+ margin: 0;
24
+ background: #020617;
25
+ background-image: radial-gradient(at 0% 0%, hsla(142, 71%, 45%, 0.12) 0px, transparent 50%), radial-gradient(at 100% 0%, hsla(217, 91%, 60%, 0.12) 0px, transparent 50%);
26
+ color: hsl(var(--bc));
27
+ font-family: 'Sora', sans-serif;
28
+ line-height: 1.6;
29
+ min-height: 100vh;
30
+ }
31
+ .container {
32
+ width: min(900px, 94vw);
33
+ margin: 0 auto;
34
+ padding: 40px 0 80px;
35
+ }
36
+ .navbar {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ padding: 1rem 0;
41
+ margin-bottom: 3rem;
42
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
43
+ }
44
+ .logo {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 10px;
48
+ text-decoration: none;
49
+ color: inherit;
50
+ font-weight: 800;
51
+ font-size: 1.2rem;
52
+ }
53
+ .logo img {
54
+ width: 32px;
55
+ height: 32px;
56
+ border-radius: 8px;
57
+ }
58
+ .nav-links a {
59
+ padding: 6px 14px;
60
+ border-radius: 999px;
61
+ background: rgba(255, 255, 255, 0.03);
62
+ border: 1px solid rgba(255, 255, 255, 0.05);
63
+ color: rgba(255, 255, 255, 0.6);
64
+ text-decoration: none;
65
+ font-size: 0.8rem;
66
+ font-weight: 600;
67
+ transition: all 0.2s;
68
+ }
69
+ .nav-links a:hover {
70
+ color: #fff;
71
+ border-color: rgba(255, 255, 255, 0.2);
72
+ }
73
+
74
+ .glass-card {
75
+ background: rgba(255, 255, 255, 0.02);
76
+ backdrop-filter: blur(12px);
77
+ border: 1px solid rgba(255, 255, 255, 0.05);
78
+ border-radius: 2rem;
79
+ padding: 2.5rem;
80
+ margin-bottom: 1.5rem;
81
+ }
82
+ h1 {
83
+ font-family: 'Space Grotesk', sans-serif;
84
+ font-size: 2.5rem;
85
+ font-weight: 800;
86
+ margin: 0 0 1rem;
87
+ }
88
+ h2 {
89
+ font-family: 'Space Grotesk', sans-serif;
90
+ font-size: 1.5rem;
91
+ font-weight: 700;
92
+ margin: 0 0 1.2rem;
93
+ color: hsla(142, 71%, 45%, 1);
94
+ }
95
+ p,
96
+ li {
97
+ color: rgba(255, 255, 255, 0.6);
98
+ font-size: 0.95rem;
99
+ }
100
+ ul {
101
+ padding-left: 1.2rem;
102
+ }
103
+ li {
104
+ margin-bottom: 0.8rem;
105
+ }
106
+ .footer {
107
+ text-align: center;
108
+ margin-top: 4rem;
109
+ opacity: 0.3;
110
+ font-size: 0.7rem;
111
+ font-weight: 700;
112
+ letter-spacing: 0.2em;
113
+ }
114
+ </style>
115
+ </head>
116
+ <body>
117
+ <div class="container">
118
+ <header class="navbar">
119
+ <a href="/" class="logo">
120
+ <img src="/assets/images/brand-logo-128.webp" alt="OmniZap" />
121
+ <span>OmniZap<span style="color: hsla(142, 71%, 45%, 1)">.</span></span>
122
+ </a>
123
+ <nav class="nav-links">
124
+ <a href="/">Início</a>
125
+ <a href="/termos-de-uso/">Termos</a>
126
+ <a href="/politica-de-privacidade/">Privacidade</a>
127
+ </nav>
128
+ </header>
129
+
130
+ <main>
131
+ <section class="glass-card">
132
+ <h1>Política de Uso Aceitável</h1>
133
+ <p>Versão: 07/03/2026</p>
134
+ <p>Esta política define as diretrizes para o uso ético e legal do OmniZap System.</p>
135
+ </section>
136
+
137
+ <section class="glass-card">
138
+ <h2>Casos Proibidos</h2>
139
+ <ul>
140
+ <li>Spam, flood e disparos em massa não solicitados.</li>
141
+ <li>Phishing, fraude, malware e engenharia social.</li>
142
+ <li>Operar setores regulados sem licença válida.</li>
143
+ <li>Coletar dados pessoais sem base legal adequada.</li>
144
+ <li>Violar direitos autorais ou marcas registradas.</li>
145
+ <li>Burlar limites técnicos ou mecanismos de segurança.</li>
146
+ </ul>
147
+ </section>
148
+
149
+ <section class="glass-card">
150
+ <h2>Medidas de Enforcement</h2>
151
+ <p>Violações podem resultar em remoção imediata de conteúdo, suspensão de acesso e comunicação às autoridades competentes.</p>
152
+ </section>
153
+ </main>
154
+
155
+ <footer class="footer">© 2026 OMNIZAP SYSTEM · AUP V2</footer>
156
+ </div>
157
+ </body>
158
+ </html>
@@ -0,0 +1,41 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR" data-theme="night">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Comandos do Bot para WhatsApp | OmniZap</title>
7
+ <meta name="description" content="Explore a biblioteca completa de comandos do OmniZap para moderação, stickers, mídia e utilidades inteligentes." />
8
+ <meta name="keywords" content="comandos bot whatsapp, comandos omnizap, bot para grupo whatsapp, automacao whatsapp" />
9
+ <meta name="robots" content="index, follow" />
10
+ <link rel="canonical" href="https://omnizap.shop/comandos/" />
11
+ <link rel="icon" href="/favicon.ico" sizes="any" />
12
+ <link rel="manifest" href="/site.webmanifest" />
13
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
14
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
15
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
16
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&family=Sora:wght@100..800&display=swap" rel="stylesheet" />
17
+ <link rel="stylesheet" href="/assets/css/commands-react.css" />
18
+ <style>
19
+ body {
20
+ margin: 0;
21
+ background: #020617;
22
+ color: #fff;
23
+ font-family: 'Sora', sans-serif;
24
+ }
25
+ #commands-react-root {
26
+ min-height: 100vh;
27
+ }
28
+ </style>
29
+ </head>
30
+ <body>
31
+ <div id="commands-react-root"></div>
32
+ <noscript>
33
+ <main style="max-width: 800px; margin: 50px auto; padding: 20px; text-align: center">
34
+ <h1>OmniZap - Catálogo de Comandos</h1>
35
+ <p>JavaScript é necessário para carregar a biblioteca interativa de comandos.</p>
36
+ <a href="/" style="color: #22c55e">Voltar para Home</a>
37
+ </main>
38
+ </noscript>
39
+ <script type="module" src="/assets/js/commands-react.bundle.js"></script>
40
+ </body>
41
+ </html>
@@ -0,0 +1,227 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>DPA Padrão B2B | OmniZap System</title>
7
+ <meta name="description" content="DPA padrão para clientes B2B com anexos técnicos de suboperadores, segurança, incidente e SLA de cooperação." />
8
+ <meta name="robots" content="index, follow" />
9
+ <link rel="canonical" href="https://omnizap.shop/dpa/" />
10
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&family=Sora:wght@100..800&display=swap" rel="stylesheet" />
13
+ <style>
14
+ :root {
15
+ --bc: 210 40% 96%;
16
+ --p: 142 71% 45%;
17
+ --s: 217 91% 60%;
18
+ }
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+ body {
23
+ margin: 0;
24
+ background: #020617;
25
+ background-image: radial-gradient(at 0% 0%, hsla(142, 71%, 45%, 0.1) 0px, transparent 50%), radial-gradient(at 100% 0%, hsla(217, 91%, 60%, 0.1) 0px, transparent 50%);
26
+ color: hsl(var(--bc));
27
+ font-family: 'Sora', sans-serif;
28
+ line-height: 1.6;
29
+ min-height: 100vh;
30
+ overflow-x: hidden;
31
+ }
32
+ .container {
33
+ width: min(1100px, 92vw);
34
+ margin: 0 auto;
35
+ padding: 20px 0 60px;
36
+ }
37
+ .navbar {
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 1rem;
41
+ padding: 1rem 0;
42
+ margin-bottom: 2rem;
43
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
44
+ }
45
+ @media (min-width: 768px) {
46
+ .navbar {
47
+ flex-direction: row;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ }
51
+ }
52
+ .logo {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 10px;
56
+ text-decoration: none;
57
+ color: inherit;
58
+ font-weight: 800;
59
+ font-size: 1.1rem;
60
+ }
61
+ .logo img {
62
+ width: 28px;
63
+ height: 28px;
64
+ border-radius: 6px;
65
+ }
66
+ .nav-links {
67
+ display: flex;
68
+ gap: 8px;
69
+ overflow-x: auto;
70
+ padding-bottom: 4px;
71
+ -webkit-overflow-scrolling: touch;
72
+ }
73
+ .nav-links::-webkit-scrollbar {
74
+ display: none;
75
+ }
76
+ .nav-links a {
77
+ padding: 5px 12px;
78
+ border-radius: 999px;
79
+ background: rgba(255, 255, 255, 0.03);
80
+ border: 1px solid rgba(255, 255, 255, 0.05);
81
+ color: rgba(255, 255, 255, 0.5);
82
+ text-decoration: none;
83
+ font-size: 0.75rem;
84
+ font-weight: 600;
85
+ white-space: nowrap;
86
+ }
87
+
88
+ .glass-card {
89
+ background: rgba(255, 255, 255, 0.02);
90
+ backdrop-filter: blur(12px);
91
+ border: 1px solid rgba(255, 255, 255, 0.05);
92
+ border-radius: 1.5rem;
93
+ padding: 1.5rem;
94
+ margin-bottom: 1rem;
95
+ word-wrap: break-word;
96
+ }
97
+ @media (min-width: 768px) {
98
+ .glass-card {
99
+ padding: 2.5rem;
100
+ border-radius: 2rem;
101
+ }
102
+ }
103
+ h1 {
104
+ font-family: 'Space Grotesk', sans-serif;
105
+ font-size: clamp(1.8rem, 8vw, 3rem);
106
+ font-weight: 800;
107
+ margin: 0 0 0.5rem;
108
+ letter-spacing: -0.02em;
109
+ line-height: 1.1;
110
+ }
111
+ h2 {
112
+ font-family: 'Space Grotesk', sans-serif;
113
+ font-size: clamp(1.2rem, 5vw, 1.5rem);
114
+ font-weight: 700;
115
+ margin: 0 0 1rem;
116
+ color: hsla(142, 71%, 45%, 1);
117
+ }
118
+ p,
119
+ li {
120
+ color: rgba(255, 255, 255, 0.6);
121
+ font-size: 0.9rem;
122
+ }
123
+ @media (min-width: 768px) {
124
+ p,
125
+ li {
126
+ font-size: 0.95rem;
127
+ }
128
+ }
129
+
130
+ table {
131
+ width: 100%;
132
+ border-collapse: collapse;
133
+ margin: 1.5rem 0;
134
+ min-width: 500px;
135
+ }
136
+ th,
137
+ td {
138
+ padding: 0.75rem;
139
+ text-align: left;
140
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
141
+ font-size: 0.8rem;
142
+ }
143
+ th {
144
+ background: rgba(255, 255, 255, 0.03);
145
+ color: #fff;
146
+ font-weight: 700;
147
+ text-transform: uppercase;
148
+ letter-spacing: 0.05em;
149
+ font-size: 0.65rem;
150
+ }
151
+
152
+ .footer {
153
+ text-align: center;
154
+ margin-top: 3rem;
155
+ padding-top: 2rem;
156
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
157
+ opacity: 0.2;
158
+ font-size: 0.6rem;
159
+ font-weight: 700;
160
+ letter-spacing: 0.2em;
161
+ }
162
+ </style>
163
+ </head>
164
+ <body>
165
+ <div class="container">
166
+ <header class="navbar">
167
+ <a href="/" class="logo">
168
+ <img src="/assets/images/brand-logo-128.webp" alt="OmniZap" />
169
+ <span>OmniZap<span style="color: hsla(142, 71%, 45%, 1)">.</span></span>
170
+ </a>
171
+ <nav class="nav-links">
172
+ <a href="/">Início</a>
173
+ <a href="/politica-de-privacidade/">Privacidade</a>
174
+ <a href="/suboperadores/">Parceiros</a>
175
+ </nav>
176
+ </header>
177
+
178
+ <main>
179
+ <section class="glass-card">
180
+ <h1>DPA Padrão para Clientes B2B</h1>
181
+ <p>Versão: 07/03/2026</p>
182
+ <p>Este documento regula o processamento de dados pessoais em relações empresariais (Business-to-Business) no contexto do OmniZap System.</p>
183
+ </section>
184
+
185
+ <section class="glass-card">
186
+ <h2>Anexos Técnicos</h2>
187
+ <ul>
188
+ <li><strong>Anexo I:</strong> Inventário de suboperadores e regiões.</li>
189
+ <li><strong>Anexo II:</strong> Medidas de segurança e criptografia.</li>
190
+ <li><strong>Anexo III:</strong> Fluxo de resposta a incidentes.</li>
191
+ <li><strong>Anexo IV:</strong> SLA de cooperação regulatória.</li>
192
+ </ul>
193
+ </section>
194
+
195
+ <section class="glass-card">
196
+ <h2>SLA de Cooperação</h2>
197
+ <div style="overflow-x: auto">
198
+ <table>
199
+ <thead>
200
+ <tr>
201
+ <th>Evento</th>
202
+ <th>Prazo Alvo</th>
203
+ </tr>
204
+ </thead>
205
+ <tbody>
206
+ <tr>
207
+ <td>Confirmação de incidente crítico</td>
208
+ <td>Até 4h úteis</td>
209
+ </tr>
210
+ <tr>
211
+ <td>Atualização de status de mitigação</td>
212
+ <td>Até 24h</td>
213
+ </tr>
214
+ <tr>
215
+ <td>Suporte em solicitações DSAR</td>
216
+ <td>Até 5 dias</td>
217
+ </tr>
218
+ </tbody>
219
+ </table>
220
+ </div>
221
+ </section>
222
+ </main>
223
+
224
+ <footer class="footer">© 2026 OMNIZAP SYSTEM · DPA B2B V2</footer>
225
+ </div>
226
+ </body>
227
+ </html>
@@ -0,0 +1,45 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR" data-theme="night">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>OmniZap Bot | Automação Profissional para WhatsApp</title>
7
+ <meta name="description" content="O bot definitivo para organizar grupos, criar figurinhas e automatizar fluxos no WhatsApp sem programação." />
8
+ <meta name="robots" content="index, follow" />
9
+ <meta name="theme-color" content="#020617" />
10
+ <link rel="canonical" href="https://omnizap.shop/" />
11
+ <link rel="icon" href="/favicon.ico" sizes="any" />
12
+ <link rel="manifest" href="/site.webmanifest" />
13
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
14
+ <link rel="stylesheet" href="/assets/css/home-react.css" />
15
+ <style>
16
+ body {
17
+ margin: 0;
18
+ background: #020617;
19
+ color: #fff;
20
+ font-family:
21
+ system-ui,
22
+ -apple-system,
23
+ sans-serif;
24
+ }
25
+ #home-react-root {
26
+ min-height: 100vh;
27
+ }
28
+ </style>
29
+ </head>
30
+ <body>
31
+ <div id="home-react-root"></div>
32
+ <noscript>
33
+ <main style="max-width: 800px; margin: 100px auto; text-align: center; padding: 20px">
34
+ <h1>OmniZap Bot</h1>
35
+ <p>Ative o JavaScript para vivenciar a experiência completa.</p>
36
+ <div style="margin-top: 20px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap">
37
+ <a href="/login/" style="color: #22c55e">Entrar</a>
38
+ <a href="/stickers/" style="color: #22c55e">Marketplace</a>
39
+ <a href="/comandos/" style="color: #22c55e">Comandos</a>
40
+ </div>
41
+ </main>
42
+ </noscript>
43
+ <script type="module" src="/assets/js/home-react.bundle.js"></script>
44
+ </body>
45
+ </html>
@@ -0,0 +1,182 @@
1
+ <!doctype html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Licença MIT | OmniZap System</title>
7
+ <meta name="description" content="Informações jurídicas de licença do OmniZap System (MIT License)." />
8
+ <meta name="robots" content="index, follow" />
9
+ <link rel="canonical" href="https://omnizap.shop/licenca/" />
10
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&family=Sora:wght@100..800&display=swap" rel="stylesheet" />
13
+ <style>
14
+ :root {
15
+ --bc: 210 40% 96%;
16
+ --p: 142 71% 45%;
17
+ --s: 217 91% 60%;
18
+ }
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+ body {
23
+ margin: 0;
24
+ background: #020617;
25
+ background-image: radial-gradient(at 0% 0%, hsla(142, 71%, 45%, 0.12) 0px, transparent 50%), radial-gradient(at 100% 0%, hsla(217, 91%, 60%, 0.12) 0px, transparent 50%);
26
+ color: hsl(var(--bc));
27
+ font-family: 'Sora', sans-serif;
28
+ line-height: 1.6;
29
+ min-height: 100vh;
30
+ }
31
+ .container {
32
+ width: min(1000px, 94vw);
33
+ margin: 0 auto;
34
+ padding: 40px 0 80px;
35
+ }
36
+ .navbar {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ padding: 1rem 0;
41
+ margin-bottom: 3rem;
42
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
43
+ }
44
+ .logo {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 10px;
48
+ text-decoration: none;
49
+ color: inherit;
50
+ font-weight: 800;
51
+ font-size: 1.2rem;
52
+ }
53
+ .logo img {
54
+ width: 32px;
55
+ height: 32px;
56
+ border-radius: 8px;
57
+ }
58
+ .nav-links a {
59
+ padding: 6px 14px;
60
+ border-radius: 999px;
61
+ background: rgba(255, 255, 255, 0.03);
62
+ border: 1px solid rgba(255, 255, 255, 0.05);
63
+ color: rgba(255, 255, 255, 0.6);
64
+ text-decoration: none;
65
+ font-size: 0.8rem;
66
+ font-weight: 600;
67
+ transition: all 0.2s;
68
+ }
69
+ .nav-links a:hover {
70
+ color: #fff;
71
+ border-color: rgba(255, 255, 255, 0.2);
72
+ }
73
+
74
+ .glass-card {
75
+ background: rgba(255, 255, 255, 0.02);
76
+ backdrop-filter: blur(12px);
77
+ border: 1px solid rgba(255, 255, 255, 0.05);
78
+ border-radius: 2rem;
79
+ padding: 2.5rem;
80
+ margin-bottom: 1.5rem;
81
+ }
82
+ h1 {
83
+ font-family: 'Space Grotesk', sans-serif;
84
+ font-size: 2.5rem;
85
+ font-weight: 800;
86
+ margin: 0 0 1rem;
87
+ }
88
+ h2 {
89
+ font-family: 'Space Grotesk', sans-serif;
90
+ font-size: 1.5rem;
91
+ font-weight: 700;
92
+ margin: 0 0 1.2rem;
93
+ color: hsla(142, 71%, 45%, 1);
94
+ }
95
+ p,
96
+ li {
97
+ color: rgba(255, 255, 255, 0.6);
98
+ font-size: 0.95rem;
99
+ }
100
+
101
+ pre {
102
+ background: rgba(0, 0, 0, 0.3);
103
+ border: 1px solid rgba(255, 255, 255, 0.1);
104
+ padding: 1.5rem;
105
+ border-radius: 1.5rem;
106
+ font-family: monospace;
107
+ font-size: 0.85rem;
108
+ color: hsla(142, 71%, 45%, 0.8);
109
+ overflow-x: auto;
110
+ }
111
+
112
+ .footer {
113
+ text-align: center;
114
+ margin-top: 4rem;
115
+ opacity: 0.2;
116
+ font-size: 0.7rem;
117
+ font-weight: 700;
118
+ letter-spacing: 0.2em;
119
+ }
120
+
121
+ @media (max-width: 768px) {
122
+ .glass-card {
123
+ padding: 1.5rem;
124
+ }
125
+ }
126
+ </style>
127
+ </head>
128
+ <body>
129
+ <div class="container">
130
+ <header class="navbar">
131
+ <a href="/" class="logo">
132
+ <img src="/assets/images/brand-logo-128.webp" alt="OmniZap" />
133
+ <span>OmniZap<span style="color: hsla(142, 71%, 45%, 1)">.</span></span>
134
+ </a>
135
+ <nav class="nav-links">
136
+ <a href="/">Início</a>
137
+ <a href="/termos-de-uso/">Termos</a>
138
+ <a href="https://github.com/Omnizap-System/omnizap" target="_blank">GitHub</a>
139
+ </nav>
140
+ </header>
141
+
142
+ <main>
143
+ <section class="glass-card">
144
+ <h1>Licença de Software</h1>
145
+ <p>O OmniZap System é distribuído sob a licença <strong>MIT</strong>. Isso significa que você é livre para usar, copiar, modificar e distribuir o código, desde que mantenha os créditos originais.</p>
146
+ </section>
147
+
148
+ <section class="glass-card">
149
+ <h2>Texto Oficial (Inglês)</h2>
150
+ <pre>
151
+ Copyright (c) 2025-2026 Kaiky Brito
152
+
153
+ Permission is hereby granted, free of charge, to any person obtaining a copy
154
+ of this software and associated documentation files (the "Software"), to deal
155
+ in the Software without restriction, including without limitation the rights
156
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
157
+ copies of the Software, and to permit persons to whom the Software is
158
+ furnished to do so, subject to the following conditions:
159
+
160
+ The above copyright notice and this permission notice shall be included in all
161
+ copies or substantial portions of the Software.
162
+
163
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
164
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
165
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
166
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
167
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
168
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
169
+ SOFTWARE.</pre
170
+ >
171
+ </section>
172
+
173
+ <section class="glass-card">
174
+ <h2>Isenção de Responsabilidade</h2>
175
+ <p>O software é fornecido "como está", sem garantias de qualquer tipo. Os autores não se responsabilizam por danos decorrentes do uso ou mau uso desta ferramenta.</p>
176
+ </section>
177
+ </main>
178
+
179
+ <footer class="footer">© 2026 OMNIZAP SYSTEM · MIT LICENSE V2</footer>
180
+ </div>
181
+ </body>
182
+ </html>