@kaikybrofc/omnizap-system 2.2.10 → 2.3.1

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 (123) hide show
  1. package/README.md +13 -13
  2. package/app/config/adminIdentity.js +1 -3
  3. package/app/connection/socketController.js +10 -20
  4. package/app/controllers/messageController.js +7 -28
  5. package/app/modules/aiModule/catCommand.js +29 -192
  6. package/app/modules/broadcastModule/noticeCommand.js +28 -97
  7. package/app/modules/gameModule/diceCommand.js +6 -32
  8. package/app/modules/playModule/playCommand.js +57 -258
  9. package/app/modules/quoteModule/quoteCommand.js +2 -4
  10. package/app/modules/rpgPokemonModule/rpgPokemonRepository.js +1 -13
  11. package/app/modules/statsModule/noMessageCommand.js +16 -84
  12. package/app/modules/statsModule/rankingCommand.js +5 -25
  13. package/app/modules/statsModule/rankingCommon.js +1 -9
  14. package/app/modules/stickerModule/convertToWebp.js +4 -27
  15. package/app/modules/stickerModule/stickerCommand.js +13 -24
  16. package/app/modules/stickerModule/stickerTextCommand.js +13 -25
  17. package/app/modules/stickerPackModule/autoPackCollectorService.js +16 -7
  18. package/app/modules/stickerPackModule/domainEventOutboxRepository.js +20 -36
  19. package/app/modules/stickerPackModule/domainEvents.js +2 -11
  20. package/app/modules/stickerPackModule/semanticReclassificationEngine.js +13 -50
  21. package/app/modules/stickerPackModule/semanticReclassificationEngine.test.js +2 -15
  22. package/app/modules/stickerPackModule/semanticThemeClusterService.js +14 -41
  23. package/app/modules/stickerPackModule/stickerAssetClassificationRepository.js +25 -95
  24. package/app/modules/stickerPackModule/stickerAssetRepository.js +12 -31
  25. package/app/modules/stickerPackModule/stickerAssetReprocessQueueRepository.js +13 -18
  26. package/app/modules/stickerPackModule/stickerAutoPackByTagsRuntime.js +284 -709
  27. package/app/modules/stickerPackModule/stickerClassificationBackgroundRuntime.js +27 -106
  28. package/app/modules/stickerPackModule/stickerClassificationService.js +46 -77
  29. package/app/modules/stickerPackModule/stickerDedicatedTaskWorkerRuntime.js +13 -53
  30. package/app/modules/stickerPackModule/stickerDomainEventBus.js +10 -16
  31. package/app/modules/stickerPackModule/stickerDomainEventConsumerRuntime.js +40 -39
  32. package/app/modules/stickerPackModule/stickerMarketplaceDriftService.js +1 -4
  33. package/app/modules/stickerPackModule/stickerObjectStorageService.js +26 -26
  34. package/app/modules/stickerPackModule/stickerPackCommandHandlers.js +32 -187
  35. package/app/modules/stickerPackModule/stickerPackInteractionEventRepository.js +6 -15
  36. package/app/modules/stickerPackModule/stickerPackItemRepository.js +6 -32
  37. package/app/modules/stickerPackModule/stickerPackMarketplaceService.js +12 -36
  38. package/app/modules/stickerPackModule/stickerPackMessageService.js +12 -40
  39. package/app/modules/stickerPackModule/stickerPackRepository.js +23 -66
  40. package/app/modules/stickerPackModule/stickerPackScoreSnapshotRepository.js +9 -21
  41. package/app/modules/stickerPackModule/stickerPackScoreSnapshotRuntime.js +10 -40
  42. package/app/modules/stickerPackModule/stickerPackService.js +50 -115
  43. package/app/modules/stickerPackModule/stickerPackServiceRuntime.js +2 -21
  44. package/app/modules/stickerPackModule/stickerPackUtils.js +13 -3
  45. package/app/modules/stickerPackModule/stickerStorageService.js +16 -65
  46. package/app/modules/stickerPackModule/stickerWorkerPipelineRuntime.js +4 -22
  47. package/app/modules/stickerPackModule/stickerWorkerTaskQueueRepository.js +14 -29
  48. package/app/modules/systemMetricsModule/pingCommand.js +9 -39
  49. package/app/modules/tiktokModule/tiktokCommand.js +17 -109
  50. package/app/modules/userModule/userCommand.js +2 -88
  51. package/app/observability/metrics.js +5 -16
  52. package/app/services/captchaService.js +1 -6
  53. package/app/services/dbWriteQueue.js +3 -18
  54. package/app/services/featureFlagService.js +2 -8
  55. package/app/services/newsBroadcastService.js +0 -1
  56. package/app/services/queueUtils.js +2 -4
  57. package/app/services/whatsappLoginLinkService.js +7 -9
  58. package/app/store/premiumUserStore.js +1 -2
  59. package/app/utils/antiLink/antiLinkModule.js +3 -233
  60. package/app/utils/logger/loggerModule.js +9 -34
  61. package/app/utils/systemMetrics/systemMetricsModule.js +1 -4
  62. package/database/index.js +1 -0
  63. package/database/init.js +1 -8
  64. package/database/migrations/20260228_0027_web_visit_event.sql +15 -0
  65. package/docker-compose.yml +27 -27
  66. package/docs/seo/omnizap-seo-playbook-br-2026-02-28.md +26 -0
  67. package/docs/seo/satellite-page-template.md +2 -0
  68. package/docs/seo/satellite-pages-phase1.json +40 -177
  69. package/eslint.config.js +2 -15
  70. package/index.js +8 -36
  71. package/ml/clip_classifier/README.md +4 -6
  72. package/observability/alert-rules.yml +12 -12
  73. package/observability/grafana/provisioning/dashboards/dashboards.yml +1 -1
  74. package/package.json +6 -3
  75. package/public/api-docs/index.html +220 -193
  76. package/public/bot-whatsapp-para-grupo/index.html +291 -261
  77. package/public/bot-whatsapp-sem-programar/index.html +291 -261
  78. package/public/comandos/index.html +421 -406
  79. package/public/como-automatizar-avisos-no-whatsapp/index.html +291 -261
  80. package/public/como-criar-comandos-whatsapp/index.html +291 -261
  81. package/public/como-evitar-spam-no-whatsapp/index.html +291 -261
  82. package/public/como-moderar-grupo-whatsapp/index.html +291 -261
  83. package/public/como-organizar-comunidade-whatsapp/index.html +291 -261
  84. package/public/css/github-project-panel.css +13 -8
  85. package/public/css/stickers-admin.css +25 -9
  86. package/public/css/styles.css +23 -16
  87. package/public/index.html +1106 -993
  88. package/public/js/apps/apiDocsApp.js +17 -167
  89. package/public/js/apps/createPackApp.js +69 -332
  90. package/public/js/apps/homeApp.js +274 -101
  91. package/public/js/apps/loginApp.js +3 -12
  92. package/public/js/apps/stickersAdminApp.js +190 -181
  93. package/public/js/apps/stickersApp.js +482 -1411
  94. package/public/js/apps/userApp.js +217 -1
  95. package/public/js/catalog.js +11 -74
  96. package/public/js/github-panel/components/ErrorState.js +1 -8
  97. package/public/js/github-panel/components/GithubProjectPanel.js +2 -9
  98. package/public/js/github-panel/components/SkeletonPanel.js +1 -11
  99. package/public/js/github-panel/components/StatCard.js +1 -7
  100. package/public/js/github-panel/vendor/react.js +1 -9
  101. package/public/js/runtime/react-runtime.js +1 -9
  102. package/public/licenca/index.html +200 -86
  103. package/public/login/index.html +315 -325
  104. package/public/melhor-bot-whatsapp-para-grupos/index.html +291 -261
  105. package/public/stickers/admin/index.html +14 -19
  106. package/public/stickers/create/index.html +39 -44
  107. package/public/stickers/index.html +96 -107
  108. package/public/termos-de-uso/index.html +369 -122
  109. package/public/user/index.html +527 -350
  110. package/scripts/cache-bust.mjs +5 -24
  111. package/scripts/generate-seo-satellite-pages.mjs +10 -13
  112. package/scripts/run-prettier-all.mjs +25 -0
  113. package/scripts/sticker-catalog-loadtest.mjs +13 -11
  114. package/scripts/sticker-worker-task.mjs +1 -4
  115. package/scripts/sync-readme-snapshot.mjs +3 -2
  116. package/server/auth/googleWebAuth/googleWebAuthService.js +614 -0
  117. package/server/controllers/stickerCatalogController.js +297 -632
  118. package/server/http/httpServer.js +2 -10
  119. package/server/routes/stickerCatalog/catalogHandlers/catalogAdminHttp.js +1 -8
  120. package/server/routes/stickerCatalog/catalogHandlers/catalogAuthHttp.js +1 -9
  121. package/server/routes/stickerCatalog/catalogHandlers/catalogPublicHttp.js +10 -11
  122. package/server/routes/stickerCatalog/catalogHandlers/catalogUploadHttp.js +1 -10
  123. package/server/routes/stickerCatalog/catalogRouter.js +11 -13
@@ -1,49 +1,44 @@
1
1
  <!doctype html>
2
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>OmniZap | Criar novo Pack</title>
7
- <meta name="description" content="Crie um novo pack com fluxo visual passo a passo. Adicione stickers, escolha capa e publique no catálogo OmniZap." />
8
- <meta name="robots" content="noindex, nofollow" />
9
- <link rel="icon" type="image/jpeg" href="https://iili.io/FC3FABe.jpg" />
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=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap" rel="stylesheet" />
13
- <script src="https://cdn.tailwindcss.com"></script>
14
- <script>
15
- tailwind.config = {
16
- theme: {
17
- extend: {
18
- fontFamily: {
19
- sans: ['Manrope', 'ui-sans-serif', 'system-ui'],
20
- display: ['Sora', 'ui-sans-serif', 'system-ui']
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>OmniZap | Criar novo Pack</title>
7
+ <meta name="description" content="Crie um novo pack com fluxo visual passo a passo. Adicione stickers, escolha capa e publique no catálogo OmniZap." />
8
+ <meta name="robots" content="noindex, nofollow" />
9
+ <link rel="icon" type="image/jpeg" href="https://iili.io/FC3FABe.jpg" />
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=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap" rel="stylesheet" />
13
+ <script src="https://cdn.tailwindcss.com"></script>
14
+ <script>
15
+ tailwind.config = {
16
+ theme: {
17
+ extend: {
18
+ fontFamily: {
19
+ sans: ['Manrope', 'ui-sans-serif', 'system-ui'],
20
+ display: ['Sora', 'ui-sans-serif', 'system-ui'],
21
+ },
22
+ colors: {
23
+ base: '#0f172a',
24
+ panel: '#1e293b',
25
+ panelSoft: '#111827',
26
+ line: 'rgba(255,255,255,0.05)',
27
+ accent: '#2563eb',
28
+ accent2: '#7c3aed',
29
+ cta: '#22c55e',
30
+ },
31
+ boxShadow: {
32
+ panel: '0 20px 40px rgba(0,0,0,.35)',
33
+ },
21
34
  },
22
- colors: {
23
- base: '#0f172a',
24
- panel: '#1e293b',
25
- panelSoft: '#111827',
26
- line: 'rgba(255,255,255,0.05)',
27
- accent: '#2563eb',
28
- accent2: '#7c3aed',
29
- cta: '#22c55e',
30
- },
31
- boxShadow: {
32
- panel: '0 20px 40px rgba(0,0,0,.35)'
33
- }
34
- }
35
- }
36
- };
37
- </script>
38
- </head>
39
- <body class="bg-base text-slate-100 min-h-screen">
40
- <div
41
- id="create-pack-react-root"
42
- data-api-base-path="/api/sticker-packs"
43
- data-web-path="/stickers"
44
- data-login-path="__STICKER_LOGIN_WEB_PATH__"
45
- ></div>
35
+ },
36
+ };
37
+ </script>
38
+ </head>
39
+ <body class="bg-base text-slate-100 min-h-screen">
40
+ <div id="create-pack-react-root" data-api-base-path="/api/sticker-packs" data-web-path="/stickers" data-login-path="__STICKER_LOGIN_WEB_PATH__"></div>
46
41
 
47
- <script type="module" src="/js/apps/createPackApp.js?v=20260228-create-pack-login-required1"></script>
48
- </body>
42
+ <script type="module" src="/js/apps/createPackApp.js?v=20260228-create-pack-login-required1"></script>
43
+ </body>
49
44
  </html>
@@ -1,116 +1,105 @@
1
1
  <!doctype html>
2
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>Catálogo de Stickers OmniZap | Módulo Integrável via API</title>
7
- <meta name="description" content="Catálogo de stickers do OmniZap com packs públicos integráveis por API em bots e automações WhatsApp." />
8
- <meta name="keywords" content="stickers omnizap, catálogo stickers, packs whatsapp, api stickers, bot whatsapp stickers" />
9
- <meta name="robots" content="index, follow" />
10
- <link rel="canonical" href="https://omnizap.shop/stickers/" />
11
- <link rel="icon" type="image/jpeg" href="https://iili.io/FC3FABe.jpg" />
12
- <link rel="preconnect" href="https://fonts.googleapis.com" />
13
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
14
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
15
- <script src="https://cdn.tailwindcss.com"></script>
16
- <script>
17
- tailwind.config = {
18
- theme: {
19
- extend: {
20
- fontFamily: {
21
- sans: ['Inter', 'ui-sans-serif', 'system-ui', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji']
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Catálogo de Stickers OmniZap | Módulo Integrável via API</title>
7
+ <meta name="description" content="Catálogo de stickers do OmniZap com packs públicos integráveis por API em bots e automações WhatsApp." />
8
+ <meta name="keywords" content="stickers omnizap, catálogo stickers, packs whatsapp, api stickers, bot whatsapp stickers" />
9
+ <meta name="robots" content="index, follow" />
10
+ <link rel="canonical" href="https://omnizap.shop/stickers/" />
11
+ <link rel="icon" type="image/jpeg" href="https://iili.io/FC3FABe.jpg" />
12
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
13
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
14
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
15
+ <script src="https://cdn.tailwindcss.com"></script>
16
+ <script>
17
+ tailwind.config = {
18
+ theme: {
19
+ extend: {
20
+ fontFamily: {
21
+ sans: ['Inter', 'ui-sans-serif', 'system-ui', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'],
22
+ },
23
+ colors: {
24
+ slateApp: '#0f172a',
25
+ slateCard: '#1e293b',
26
+ borderApp: 'rgba(255,255,255,0.05)',
27
+ accent: '#2563eb',
28
+ accentTech: '#7c3aed',
29
+ cta: '#22c55e',
30
+ },
31
+ boxShadow: {
32
+ soft: '0 8px 24px rgba(2, 6, 23, 0.22)',
33
+ },
22
34
  },
23
- colors: {
24
- slateApp: '#0f172a',
25
- slateCard: '#1e293b',
26
- borderApp: 'rgba(255,255,255,0.05)',
27
- accent: '#2563eb',
28
- accentTech: '#7c3aed',
29
- cta: '#22c55e'
35
+ },
36
+ };
37
+ </script>
38
+ <script type="application/ld+json">
39
+ {
40
+ "@context": "https://schema.org",
41
+ "@type": "FAQPage",
42
+ "mainEntity": [
43
+ {
44
+ "@type": "Question",
45
+ "name": "O catálogo de stickers faz parte do OmniZap?",
46
+ "acceptedAnswer": {
47
+ "@type": "Answer",
48
+ "text": "Sim. O catálogo de stickers é um módulo oficial do OmniZap para uso em automações e bots."
49
+ }
50
+ },
51
+ {
52
+ "@type": "Question",
53
+ "name": "Posso usar os packs em um bot de WhatsApp?",
54
+ "acceptedAnswer": {
55
+ "@type": "Answer",
56
+ "text": "Sim. Os packs públicos podem ser usados em fluxos de bot e integrações com a API OmniZap."
57
+ }
30
58
  },
31
- boxShadow: {
32
- soft: '0 8px 24px rgba(2, 6, 23, 0.22)'
59
+ {
60
+ "@type": "Question",
61
+ "name": "Onde encontro documentação técnica para integração?",
62
+ "acceptedAnswer": {
63
+ "@type": "Answer",
64
+ "text": "A documentação técnica está em https://omnizap.shop/api-docs/."
65
+ }
66
+ },
67
+ {
68
+ "@type": "Question",
69
+ "name": "Onde vejo a visão geral da plataforma?",
70
+ "acceptedAnswer": {
71
+ "@type": "Answer",
72
+ "text": "A página principal da plataforma está em https://omnizap.shop/."
73
+ }
33
74
  }
34
- }
35
- }
36
- };
37
- </script>
38
- <script type="application/ld+json">
39
- {
40
- "@context": "https://schema.org",
41
- "@type": "FAQPage",
42
- "mainEntity": [
43
- {
44
- "@type": "Question",
45
- "name": "O catálogo de stickers faz parte do OmniZap?",
46
- "acceptedAnswer": {
47
- "@type": "Answer",
48
- "text": "Sim. O catálogo de stickers é um módulo oficial do OmniZap para uso em automações e bots."
49
- }
50
- },
51
- {
52
- "@type": "Question",
53
- "name": "Posso usar os packs em um bot de WhatsApp?",
54
- "acceptedAnswer": {
55
- "@type": "Answer",
56
- "text": "Sim. Os packs públicos podem ser usados em fluxos de bot e integrações com a API OmniZap."
57
- }
58
- },
59
- {
60
- "@type": "Question",
61
- "name": "Onde encontro documentação técnica para integração?",
62
- "acceptedAnswer": {
63
- "@type": "Answer",
64
- "text": "A documentação técnica está em https://omnizap.shop/api-docs/."
65
- }
66
- },
67
- {
68
- "@type": "Question",
69
- "name": "Onde vejo a visão geral da plataforma?",
70
- "acceptedAnswer": {
71
- "@type": "Answer",
72
- "text": "A página principal da plataforma está em https://omnizap.shop/."
73
- }
75
+ ]
74
76
  }
75
- ]
76
- }
77
- </script>
78
- </head>
79
- <body class="bg-slateApp text-slate-100 font-sans min-h-screen">
80
- <div id="stickers-react-root"
81
- data-web-path="/stickers"
82
- data-api-base-path="/api/sticker-packs"
83
- data-orphan-api-path="/api/sticker-packs/orphan-stickers"
84
- data-login-path="__STICKER_LOGIN_WEB_PATH__"
85
- data-default-limit="24"
86
- data-default-orphan-limit="24"
87
- data-initial-pack-key=""
88
- ></div>
77
+ </script>
78
+ </head>
79
+ <body class="bg-slateApp text-slate-100 font-sans min-h-screen">
80
+ <div id="stickers-react-root" data-web-path="/stickers" data-api-base-path="/api/sticker-packs" data-orphan-api-path="/api/sticker-packs/orphan-stickers" data-login-path="__STICKER_LOGIN_WEB_PATH__" data-default-limit="24" data-default-orphan-limit="24" data-initial-pack-key=""></div>
89
81
 
90
- <noscript>
91
- <main class="mx-auto w-[min(960px,92vw)] py-8">
92
- <section class="rounded-xl border border-white/5 bg-slateCard p-4">
93
- <h1 class="text-2xl font-extrabold">Catálogo de Stickers OmniZap</h1>
94
- <p class="mt-2 text-slate-300">
95
- Este catálogo é um módulo da plataforma OmniZap para bots e automação WhatsApp.
96
- Você pode usar packs públicos e integrar fluxos com a API.
97
- </p>
98
- <div class="mt-4 rounded-lg border border-white/5 bg-slate-900/60 p-3">
99
- <h2 class="text-lg font-bold">FAQ rápido</h2>
100
- <ul class="mt-2 list-disc space-y-1 pl-5 text-sm text-slate-300">
101
- <li>Os packs públicos podem ser integrados em bots de WhatsApp.</li>
102
- <li>Documentação técnica disponível na Área de Desenvolvedor.</li>
103
- <li>O catálogo é integrado ao ecossistema OmniZap.</li>
104
- </ul>
105
- </div>
106
- <div class="mt-3 flex flex-wrap gap-2">
107
- <a class="rounded-lg border border-blue-500/40 bg-blue-500/10 px-3 py-2 text-blue-200" href="/api-docs/">Área de Desenvolvedor</a>
108
- <a class="rounded-lg border border-white/10 px-3 py-2 text-slate-200" href="/">Página principal do OmniZap</a>
109
- </div>
110
- </section>
111
- </main>
112
- </noscript>
82
+ <noscript>
83
+ <main class="mx-auto w-[min(960px,92vw)] py-8">
84
+ <section class="rounded-xl border border-white/5 bg-slateCard p-4">
85
+ <h1 class="text-2xl font-extrabold">Catálogo de Stickers OmniZap</h1>
86
+ <p class="mt-2 text-slate-300">Este catálogo é um módulo da plataforma OmniZap para bots e automação WhatsApp. Você pode usar packs públicos e integrar fluxos com a API.</p>
87
+ <div class="mt-4 rounded-lg border border-white/5 bg-slate-900/60 p-3">
88
+ <h2 class="text-lg font-bold">FAQ rápido</h2>
89
+ <ul class="mt-2 list-disc space-y-1 pl-5 text-sm text-slate-300">
90
+ <li>Os packs públicos podem ser integrados em bots de WhatsApp.</li>
91
+ <li>Documentação técnica disponível na Área de Desenvolvedor.</li>
92
+ <li>O catálogo é integrado ao ecossistema OmniZap.</li>
93
+ </ul>
94
+ </div>
95
+ <div class="mt-3 flex flex-wrap gap-2">
96
+ <a class="rounded-lg border border-blue-500/40 bg-blue-500/10 px-3 py-2 text-blue-200" href="/api-docs/">Área de Desenvolvedor</a>
97
+ <a class="rounded-lg border border-white/10 px-3 py-2 text-slate-200" href="/">Página principal do OmniZap</a>
98
+ </div>
99
+ </section>
100
+ </main>
101
+ </noscript>
113
102
 
114
- <script type="module" src="/js/apps/stickersApp.js?v=20260228-login-redirect-my-packs1"></script>
115
- </body>
103
+ <script type="module" src="/js/apps/stickersApp.js?v=20260228-login-redirect-my-packs1"></script>
104
+ </body>
116
105
  </html>