@kaikybrofc/omnizap-system 2.1.8

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 (166) hide show
  1. package/.env.example +534 -0
  2. package/LICENSE +21 -0
  3. package/README.md +431 -0
  4. package/RELEASE-v2.1.2.md +83 -0
  5. package/app/config/adminIdentity.js +87 -0
  6. package/app/config/baileysConfig.js +693 -0
  7. package/app/config/groupUtils.js +388 -0
  8. package/app/connection/socketController.js +992 -0
  9. package/app/controllers/messageController.js +354 -0
  10. package/app/modules/adminModule/groupCommandHandlers.js +1294 -0
  11. package/app/modules/adminModule/groupEventHandlers.js +355 -0
  12. package/app/modules/aiModule/catCommand.js +1006 -0
  13. package/app/modules/broadcastModule/noticeCommand.js +416 -0
  14. package/app/modules/gameModule/diceCommand.js +67 -0
  15. package/app/modules/menuModule/common.js +311 -0
  16. package/app/modules/menuModule/menus.js +59 -0
  17. package/app/modules/playModule/playCommand.js +1615 -0
  18. package/app/modules/quoteModule/quoteCommand.js +851 -0
  19. package/app/modules/rpgPokemonModule/rpgBattleCanvasRenderer.js +786 -0
  20. package/app/modules/rpgPokemonModule/rpgBattleService.js +2082 -0
  21. package/app/modules/rpgPokemonModule/rpgBattleService.test.js +760 -0
  22. package/app/modules/rpgPokemonModule/rpgEvolutionUtils.js +22 -0
  23. package/app/modules/rpgPokemonModule/rpgPokemonCommand.js +172 -0
  24. package/app/modules/rpgPokemonModule/rpgPokemonDomain.js +192 -0
  25. package/app/modules/rpgPokemonModule/rpgPokemonDomain.test.js +93 -0
  26. package/app/modules/rpgPokemonModule/rpgPokemonEvolution.test.js +46 -0
  27. package/app/modules/rpgPokemonModule/rpgPokemonMessages.js +746 -0
  28. package/app/modules/rpgPokemonModule/rpgPokemonRepository.js +1859 -0
  29. package/app/modules/rpgPokemonModule/rpgPokemonService.js +6738 -0
  30. package/app/modules/rpgPokemonModule/rpgProfileCanvasRenderer.js +354 -0
  31. package/app/modules/statsModule/globalRankingCommand.js +65 -0
  32. package/app/modules/statsModule/noMessageCommand.js +288 -0
  33. package/app/modules/statsModule/rankingCommand.js +60 -0
  34. package/app/modules/statsModule/rankingCommon.js +889 -0
  35. package/app/modules/stickerModule/addStickerMetadata.js +239 -0
  36. package/app/modules/stickerModule/convertToWebp.js +390 -0
  37. package/app/modules/stickerModule/stickerCommand.js +454 -0
  38. package/app/modules/stickerModule/stickerConvertCommand.js +156 -0
  39. package/app/modules/stickerModule/stickerTextCommand.js +657 -0
  40. package/app/modules/stickerPackModule/autoPackCollectorRuntime.js +20 -0
  41. package/app/modules/stickerPackModule/autoPackCollectorService.js +284 -0
  42. package/app/modules/stickerPackModule/semanticReclassificationEngine.js +466 -0
  43. package/app/modules/stickerPackModule/semanticReclassificationEngine.test.js +88 -0
  44. package/app/modules/stickerPackModule/semanticThemeClusterService.js +571 -0
  45. package/app/modules/stickerPackModule/stickerAssetClassificationRepository.js +449 -0
  46. package/app/modules/stickerPackModule/stickerAssetRepository.js +400 -0
  47. package/app/modules/stickerPackModule/stickerAssetReprocessQueueRepository.js +180 -0
  48. package/app/modules/stickerPackModule/stickerAutoPackByTagsRuntime.js +4078 -0
  49. package/app/modules/stickerPackModule/stickerClassificationBackgroundRuntime.js +598 -0
  50. package/app/modules/stickerPackModule/stickerClassificationService.js +588 -0
  51. package/app/modules/stickerPackModule/stickerMarketplaceDriftService.js +102 -0
  52. package/app/modules/stickerPackModule/stickerPackCatalogHttp.js +7506 -0
  53. package/app/modules/stickerPackModule/stickerPackCommandHandlers.js +1095 -0
  54. package/app/modules/stickerPackModule/stickerPackEngagementRepository.js +108 -0
  55. package/app/modules/stickerPackModule/stickerPackErrors.js +30 -0
  56. package/app/modules/stickerPackModule/stickerPackInteractionEventRepository.js +110 -0
  57. package/app/modules/stickerPackModule/stickerPackItemRepository.js +440 -0
  58. package/app/modules/stickerPackModule/stickerPackMarketplaceService.js +337 -0
  59. package/app/modules/stickerPackModule/stickerPackMessageService.js +296 -0
  60. package/app/modules/stickerPackModule/stickerPackRepository.js +442 -0
  61. package/app/modules/stickerPackModule/stickerPackService.js +788 -0
  62. package/app/modules/stickerPackModule/stickerPackServiceRuntime.js +51 -0
  63. package/app/modules/stickerPackModule/stickerPackUtils.js +97 -0
  64. package/app/modules/stickerPackModule/stickerStorageService.js +507 -0
  65. package/app/modules/stickerPackModule/stickerWorkerPipelineRuntime.js +233 -0
  66. package/app/modules/stickerPackModule/stickerWorkerTaskQueueRepository.js +205 -0
  67. package/app/modules/systemMetricsModule/pingCommand.js +421 -0
  68. package/app/modules/tiktokModule/tiktokCommand.js +798 -0
  69. package/app/modules/userModule/userCommand.js +1217 -0
  70. package/app/modules/waifuPicsModule/waifuPicsCommand.js +177 -0
  71. package/app/observability/metrics.js +734 -0
  72. package/app/services/captchaService.js +492 -0
  73. package/app/services/dbWriteQueue.js +572 -0
  74. package/app/services/groupMetadataService.js +279 -0
  75. package/app/services/lidMapService.js +663 -0
  76. package/app/services/messagePersistenceService.js +56 -0
  77. package/app/services/newsBroadcastService.js +351 -0
  78. package/app/services/pokeApiService.js +398 -0
  79. package/app/services/queueUtils.js +57 -0
  80. package/app/services/socketState.js +7 -0
  81. package/app/store/aiPromptStore.js +38 -0
  82. package/app/store/groupConfigStore.js +58 -0
  83. package/app/store/premiumUserStore.js +36 -0
  84. package/app/utils/antiLink/antiLinkModule.js +804 -0
  85. package/app/utils/http/getImageBufferModule.js +18 -0
  86. package/app/utils/json/jsonSanitizer.js +113 -0
  87. package/app/utils/json/jsonSanitizer.test.js +40 -0
  88. package/app/utils/logger/loggerModule.js +262 -0
  89. package/app/utils/systemMetrics/systemMetricsModule.js +91 -0
  90. package/database/index.js +2052 -0
  91. package/database/init.js +516 -0
  92. package/database/migrations/20260203_0001_sticker_packs.sql +54 -0
  93. package/database/migrations/20260210_0003_rpg_pokemon.sql +58 -0
  94. package/database/migrations/20260210_0004_rpg_shiny_biome.sql +9 -0
  95. package/database/migrations/20260210_0005_rpg_missions.sql +14 -0
  96. package/database/migrations/20260210_0006_rpg_world_pokedex_traits.sql +27 -0
  97. package/database/migrations/20260210_0007_rpg_raid_pvp.sql +56 -0
  98. package/database/migrations/20260210_0008_rpg_social_system.sql +195 -0
  99. package/database/migrations/20260211_0009_rpg_social_xp.sql +36 -0
  100. package/database/migrations/20260222_0010_remove_message_xp.sql +2 -0
  101. package/database/migrations/20260226_0011_sticker_asset_classification.sql +17 -0
  102. package/database/migrations/20260226_0012_sticker_pack_engagement.sql +16 -0
  103. package/database/migrations/20260226_0013_sticker_marketplace_intelligence.sql +19 -0
  104. package/database/migrations/20260226_0014_sticker_pack_publish_flow.sql +30 -0
  105. package/database/migrations/20260226_0014_sticker_worker_queues.sql +42 -0
  106. package/database/migrations/20260226_0015_sticker_auto_pack_curation_integrity.sql +18 -0
  107. package/database/migrations/20260226_0016_sticker_web_google_auth_persistence.sql +34 -0
  108. package/database/migrations/20260226_0017_sticker_web_admin_ban.sql +22 -0
  109. package/database/migrations/20260226_0018_sticker_web_admin_moderator.sql +18 -0
  110. package/database/migrations/20260227_0019_sticker_classification_v2_signals.sql +12 -0
  111. package/database/migrations/20260227_0020_semantic_theme_clusters.sql +35 -0
  112. package/docker-compose.yml +103 -0
  113. package/ecosystem.prod.config.cjs +35 -0
  114. package/eslint.config.js +61 -0
  115. package/index.js +437 -0
  116. package/ml/clip_classifier/Dockerfile +16 -0
  117. package/ml/clip_classifier/README.md +120 -0
  118. package/ml/clip_classifier/adaptive_scoring.py +40 -0
  119. package/ml/clip_classifier/classifier.py +654 -0
  120. package/ml/clip_classifier/embedding_store.py +481 -0
  121. package/ml/clip_classifier/env_loader.py +15 -0
  122. package/ml/clip_classifier/llm_label_expander.py +144 -0
  123. package/ml/clip_classifier/main.py +213 -0
  124. package/ml/clip_classifier/requirements.txt +10 -0
  125. package/ml/clip_classifier/similarity_engine.py +74 -0
  126. package/observability/alert-rules.yml +60 -0
  127. package/observability/grafana/dashboards/omnizap-mysql.json +136 -0
  128. package/observability/grafana/dashboards/omnizap-overview.json +170 -0
  129. package/observability/grafana/provisioning/dashboards/dashboards.yml +11 -0
  130. package/observability/grafana/provisioning/datasources/datasources.yml +15 -0
  131. package/observability/loki-config.yml +38 -0
  132. package/observability/mysql-exporter.cnf +5 -0
  133. package/observability/mysql-setup.sql +46 -0
  134. package/observability/prometheus.yml +32 -0
  135. package/observability/promtail-config.yml +84 -0
  136. package/package.json +109 -0
  137. package/public/api-docs/index.html +144 -0
  138. package/public/css/github-project-panel.css +297 -0
  139. package/public/css/stickers-admin.css +1272 -0
  140. package/public/css/styles.css +671 -0
  141. package/public/index.html +1311 -0
  142. package/public/js/apps/apiDocsApp.js +310 -0
  143. package/public/js/apps/createPackApp.js +2069 -0
  144. package/public/js/apps/homeApp.js +396 -0
  145. package/public/js/apps/stickersAdminApp.js +1744 -0
  146. package/public/js/apps/stickersApp.js +4830 -0
  147. package/public/js/catalog.js +1019 -0
  148. package/public/js/github-panel/components/CommitList.js +34 -0
  149. package/public/js/github-panel/components/ErrorState.js +16 -0
  150. package/public/js/github-panel/components/GithubProjectPanel.js +106 -0
  151. package/public/js/github-panel/components/ReleaseList.js +38 -0
  152. package/public/js/github-panel/components/SkeletonPanel.js +22 -0
  153. package/public/js/github-panel/components/StatCard.js +15 -0
  154. package/public/js/github-panel/index.js +15 -0
  155. package/public/js/github-panel/useGithubRepoData.js +154 -0
  156. package/public/js/github-panel/vendor/react.js +11 -0
  157. package/public/js/runtime/react-runtime.js +19 -0
  158. package/public/licenca/index.html +106 -0
  159. package/public/stickers/admin/index.html +23 -0
  160. package/public/stickers/create/index.html +47 -0
  161. package/public/stickers/index.html +48 -0
  162. package/public/termos-de-uso/index.html +125 -0
  163. package/scripts/cache-bust.mjs +107 -0
  164. package/scripts/deploy.sh +458 -0
  165. package/scripts/github-deploy-notify.mjs +174 -0
  166. package/scripts/release.sh +129 -0
@@ -0,0 +1,297 @@
1
+ :root {
2
+ --gh-bg: rgba(14, 22, 41, 0.9);
3
+ --gh-card: rgba(20, 30, 54, 0.86);
4
+ --gh-border: #2a3b60;
5
+ --gh-border-hover: #47689a;
6
+ --gh-text: #dfe8f7;
7
+ --gh-muted: #9fb0cc;
8
+ --gh-accent: #38bdf8;
9
+ --gh-accent-2: #22c55e;
10
+ }
11
+
12
+ .ghp-panel {
13
+ display: grid;
14
+ gap: 16px;
15
+ margin-top: 26px;
16
+ }
17
+
18
+ .ghp-header {
19
+ display: flex;
20
+ align-items: flex-start;
21
+ justify-content: space-between;
22
+ gap: 12px;
23
+ flex-wrap: wrap;
24
+ }
25
+
26
+ .ghp-title {
27
+ margin: 0 0 2px;
28
+ font-family: "Sora", sans-serif;
29
+ font-size: 24px;
30
+ }
31
+
32
+ .ghp-header-actions {
33
+ display: inline-flex;
34
+ gap: 10px;
35
+ align-items: center;
36
+ flex-wrap: wrap;
37
+ justify-content: flex-end;
38
+ }
39
+
40
+ .ghp-updated {
41
+ color: var(--gh-muted);
42
+ font-size: 13px;
43
+ }
44
+
45
+ .ghp-repo-link,
46
+ .ghp-retry {
47
+ border: 1px solid var(--gh-border);
48
+ background: #0f1729;
49
+ color: var(--gh-text);
50
+ border-radius: 10px;
51
+ padding: 8px 12px;
52
+ font-size: 13px;
53
+ text-decoration: none;
54
+ cursor: pointer;
55
+ }
56
+
57
+ @media (max-width: 560px) {
58
+ .ghp-header {
59
+ gap: 10px;
60
+ }
61
+
62
+ .ghp-header-actions {
63
+ width: 100%;
64
+ justify-content: space-between;
65
+ }
66
+
67
+ .ghp-updated {
68
+ font-size: 12px;
69
+ }
70
+
71
+ .ghp-repo-link {
72
+ font-size: 12px;
73
+ padding: 7px 10px;
74
+ }
75
+ }
76
+
77
+ .ghp-inline-warning {
78
+ margin: 0;
79
+ padding: 10px 12px;
80
+ border: 1px solid #5b4b25;
81
+ background: #2a220f;
82
+ color: #f1d38b;
83
+ border-radius: 10px;
84
+ font-size: 13px;
85
+ }
86
+
87
+ .ghp-stat-grid {
88
+ display: grid;
89
+ gap: 12px;
90
+ grid-template-columns: 1fr;
91
+ }
92
+
93
+ @media (min-width: 680px) {
94
+ .ghp-stat-grid {
95
+ grid-template-columns: repeat(2, minmax(0, 1fr));
96
+ }
97
+ }
98
+
99
+ @media (min-width: 1080px) {
100
+ .ghp-stat-grid {
101
+ grid-template-columns: repeat(5, minmax(0, 1fr));
102
+ }
103
+ }
104
+
105
+ .ghp-stat-card {
106
+ min-height: 132px;
107
+ display: grid;
108
+ gap: 8px;
109
+ align-content: start;
110
+ border: 1px solid var(--gh-border);
111
+ border-radius: 14px;
112
+ background:
113
+ radial-gradient(120% 120% at 0% 0%, #38bdf816, transparent 60%),
114
+ linear-gradient(160deg, var(--gh-card), #101a31);
115
+ padding: 14px;
116
+ transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
117
+ }
118
+
119
+ .ghp-stat-card:hover {
120
+ border-color: var(--gh-border-hover);
121
+ transform: translateY(-2px);
122
+ box-shadow: 0 8px 24px #00000044;
123
+ }
124
+
125
+ .ghp-stat-head {
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: space-between;
129
+ gap: 8px;
130
+ }
131
+
132
+ .ghp-stat-head i {
133
+ color: #8ec9ff;
134
+ }
135
+
136
+ .ghp-stat-label {
137
+ color: var(--gh-muted);
138
+ font-size: 12px;
139
+ text-transform: uppercase;
140
+ letter-spacing: .35px;
141
+ }
142
+
143
+ .ghp-stat-value {
144
+ margin: 0;
145
+ color: var(--gh-text);
146
+ font-weight: 700;
147
+ font-size: 20px;
148
+ line-height: 1.2;
149
+ }
150
+
151
+ .ghp-stat-detail {
152
+ margin: 0;
153
+ color: var(--gh-muted);
154
+ font-size: 13px;
155
+ line-height: 1.4;
156
+ display: -webkit-box;
157
+ -webkit-box-orient: vertical;
158
+ -webkit-line-clamp: 2;
159
+ overflow: hidden;
160
+ }
161
+
162
+ .ghp-list-grid {
163
+ display: grid;
164
+ gap: 12px;
165
+ grid-template-columns: 1fr;
166
+ }
167
+
168
+ @media (min-width: 980px) {
169
+ .ghp-list-grid {
170
+ grid-template-columns: repeat(2, minmax(0, 1fr));
171
+ }
172
+ }
173
+
174
+ .ghp-list-card {
175
+ border: 1px solid var(--gh-border);
176
+ border-radius: 14px;
177
+ background: linear-gradient(165deg, var(--gh-bg), #111b32);
178
+ padding: 14px;
179
+ min-height: 260px;
180
+ }
181
+
182
+ .ghp-list-title {
183
+ margin: 0 0 10px;
184
+ font-size: 16px;
185
+ color: var(--gh-text);
186
+ }
187
+
188
+ .ghp-list {
189
+ margin: 0;
190
+ padding: 0;
191
+ list-style: none;
192
+ display: grid;
193
+ gap: 8px;
194
+ }
195
+
196
+ .ghp-list-item {
197
+ border: 1px solid #2b4067;
198
+ border-radius: 10px;
199
+ background: #0d1629;
200
+ padding: 10px;
201
+ }
202
+
203
+ .ghp-list-link {
204
+ color: var(--gh-text);
205
+ text-decoration: none;
206
+ font-size: 14px;
207
+ line-height: 1.35;
208
+ display: -webkit-box;
209
+ -webkit-box-orient: vertical;
210
+ -webkit-line-clamp: 2;
211
+ overflow: hidden;
212
+ }
213
+
214
+ .ghp-list-link:hover {
215
+ text-decoration: underline;
216
+ }
217
+
218
+ .ghp-list-meta {
219
+ margin: 6px 0 0;
220
+ color: var(--gh-muted);
221
+ font-size: 12px;
222
+ }
223
+
224
+ .ghp-empty {
225
+ border: 1px dashed #37507c;
226
+ border-radius: 10px;
227
+ padding: 12px;
228
+ color: var(--gh-muted);
229
+ font-size: 14px;
230
+ }
231
+
232
+ .ghp-error {
233
+ border: 1px solid #5a3344;
234
+ border-radius: 14px;
235
+ background: #21111a;
236
+ padding: 14px;
237
+ }
238
+
239
+ .ghp-error h3 {
240
+ margin: 0 0 6px;
241
+ font-size: 17px;
242
+ }
243
+
244
+ .ghp-error p {
245
+ margin: 0 0 10px;
246
+ color: #d0b6c0;
247
+ }
248
+
249
+ .ghp-rate-limit {
250
+ color: #f1d38b !important;
251
+ }
252
+
253
+ .ghp-skeleton-card,
254
+ .ghp-skeleton-title,
255
+ .ghp-skeleton-line {
256
+ border-radius: 10px;
257
+ background: linear-gradient(90deg, #2f4268 0%, #4e6796 50%, #2f4268 100%);
258
+ background-size: 220% 100%;
259
+ animation: ghp-shimmer 1.2s linear infinite;
260
+ }
261
+
262
+ .ghp-skeleton-card {
263
+ min-height: 132px;
264
+ }
265
+
266
+ .ghp-skeleton-title {
267
+ height: 18px;
268
+ margin-bottom: 10px;
269
+ }
270
+
271
+ .ghp-skeleton-line {
272
+ height: 44px;
273
+ }
274
+
275
+ @keyframes ghp-shimmer {
276
+ 0% { background-position: 100% 0; }
277
+ 100% { background-position: -100% 0; }
278
+ }
279
+
280
+ .ghp-repo-link:focus-visible,
281
+ .ghp-retry:focus-visible,
282
+ .ghp-list-link:focus-visible {
283
+ outline: 2px solid var(--gh-accent);
284
+ outline-offset: 2px;
285
+ }
286
+
287
+ @media (prefers-reduced-motion: reduce) {
288
+ .ghp-stat-card,
289
+ .ghp-repo-link,
290
+ .ghp-retry,
291
+ .ghp-skeleton-card,
292
+ .ghp-skeleton-title,
293
+ .ghp-skeleton-line {
294
+ transition: none;
295
+ animation: none;
296
+ }
297
+ }