@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,38 @@
1
+ auth_enabled: false
2
+
3
+ server:
4
+ http_listen_port: 3100
5
+
6
+ common:
7
+ instance_addr: 0.0.0.0
8
+ path_prefix: /loki
9
+ storage:
10
+ filesystem:
11
+ chunks_directory: /loki/chunks
12
+ rules_directory: /loki/rules
13
+ replication_factor: 1
14
+ ring:
15
+ kvstore:
16
+ store: inmemory
17
+
18
+ schema_config:
19
+ configs:
20
+ - from: 2024-01-01
21
+ store: boltdb-shipper
22
+ object_store: filesystem
23
+ schema: v13
24
+ index:
25
+ prefix: index_
26
+ period: 24h
27
+
28
+ limits_config:
29
+ retention_period: 168h
30
+ reject_old_samples: true
31
+ reject_old_samples_max_age: 168h
32
+
33
+ chunk_store_config:
34
+ max_look_back_period: 0
35
+
36
+ table_manager:
37
+ retention_deletes_enabled: true
38
+ retention_period: 168h
@@ -0,0 +1,5 @@
1
+ [client]
2
+ host=host.docker.internal
3
+ port=3306
4
+ user=exporter
5
+ password=exporter
@@ -0,0 +1,46 @@
1
+ -- OmniZap observability setup for MySQL
2
+ -- Run as a privileged user (root/admin).
3
+ -- This script is idempotent and focused on metrics/logging for mysqld-exporter.
4
+
5
+ -- 1) Metrics user for mysqld-exporter
6
+ -- Matches docker-compose default DSN: exporter:exporter@(host.docker.internal:3306)/
7
+ CREATE USER IF NOT EXISTS 'exporter'@'%' IDENTIFIED BY 'exporter';
8
+ ALTER USER 'exporter'@'%' IDENTIFIED BY 'exporter';
9
+
10
+ GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
11
+ GRANT SELECT ON performance_schema.* TO 'exporter'@'%';
12
+ GRANT SELECT ON information_schema.* TO 'exporter'@'%';
13
+ GRANT SELECT ON sys.* TO 'exporter'@'%';
14
+ FLUSH PRIVILEGES;
15
+
16
+ -- 2) Slow query log (runtime values; set in my.cnf for persistence)
17
+ SET GLOBAL slow_query_log = ON;
18
+ SET GLOBAL long_query_time = 0.5;
19
+ SET GLOBAL log_output = 'FILE';
20
+ -- Keep slow log in datadir for compatibility across MariaDB/MySQL host setups.
21
+ -- If needed, change to another writable path.
22
+ SET GLOBAL slow_query_log_file = '/var/lib/mysql/mysql-slow.log';
23
+
24
+ -- 3) Performance Schema consumers/instruments
25
+ -- NOTE: performance_schema itself cannot be enabled dynamically.
26
+ -- If disabled, set performance_schema=ON in my.cnf and restart MySQL.
27
+ UPDATE performance_schema.setup_instruments
28
+ SET ENABLED = 'YES', TIMED = 'YES'
29
+ WHERE NAME LIKE 'statement/%';
30
+
31
+ UPDATE performance_schema.setup_consumers
32
+ SET ENABLED = 'YES'
33
+ WHERE NAME IN (
34
+ 'events_statements_current',
35
+ 'events_statements_history',
36
+ 'events_statements_history_long',
37
+ 'events_waits_current',
38
+ 'events_waits_history',
39
+ 'events_waits_history_long'
40
+ );
41
+
42
+ -- 4) InnoDB diagnostics
43
+ SET GLOBAL innodb_monitor_enable = 'all';
44
+ SET GLOBAL innodb_status_output = ON;
45
+ SET GLOBAL innodb_status_output_locks = ON;
46
+ SET GLOBAL innodb_print_all_deadlocks = ON;
@@ -0,0 +1,32 @@
1
+ global:
2
+ scrape_interval: 10s
3
+ evaluation_interval: 10s
4
+
5
+ rule_files:
6
+ - /etc/prometheus/alert-rules.yml
7
+
8
+ scrape_configs:
9
+ - job_name: prometheus
10
+ static_configs:
11
+ - targets: ['prometheus:9090']
12
+
13
+ - job_name: node-exporter
14
+ static_configs:
15
+ - targets: ['node-exporter:9100']
16
+
17
+ - job_name: mysql-exporter
18
+ static_configs:
19
+ - targets: ['mysql-exporter:9104']
20
+
21
+ - job_name: omnizap
22
+ metrics_path: /metrics
23
+ static_configs:
24
+ - targets: ['host.docker.internal:9102']
25
+
26
+ - job_name: loki
27
+ static_configs:
28
+ - targets: ['loki:3100']
29
+
30
+ - job_name: promtail
31
+ static_configs:
32
+ - targets: ['promtail:9080']
@@ -0,0 +1,84 @@
1
+ server:
2
+ http_listen_port: 9080
3
+ grpc_listen_port: 0
4
+
5
+ positions:
6
+ filename: /tmp/positions.yaml
7
+
8
+ clients:
9
+ - url: http://loki:3100/loki/api/v1/push
10
+
11
+ scrape_configs:
12
+ - job_name: omnizap-app
13
+ static_configs:
14
+ - targets: [localhost]
15
+ labels:
16
+ job: omnizap-app
17
+ __path__: /var/log/omnizap/application-*.log
18
+ - targets: [localhost]
19
+ labels:
20
+ job: omnizap-app
21
+ __path__: /var/log/omnizap/error-*.log
22
+ - targets: [localhost]
23
+ labels:
24
+ job: omnizap-app
25
+ __path__: /var/log/omnizap/warn-*.log
26
+ pipeline_stages:
27
+ - json:
28
+ expressions:
29
+ timestamp: timestamp
30
+ level: level
31
+ message: message
32
+ service: service
33
+ instanceId: instanceId
34
+ environment: environment
35
+ event: event
36
+ table: table
37
+ durationMs: durationMs
38
+ - labels:
39
+ level:
40
+ service:
41
+ environment:
42
+ event:
43
+ table:
44
+ - timestamp:
45
+ source: timestamp
46
+ format: RFC3339Nano
47
+
48
+ - job_name: omnizap-db-monitor
49
+ static_configs:
50
+ - targets: [localhost]
51
+ labels:
52
+ job: db-monitor
53
+ __path__: /var/log/omnizap/db-monitor.log*
54
+ pipeline_stages:
55
+ - json:
56
+ expressions:
57
+ ts: ts
58
+ event: event
59
+ type: type
60
+ table: table
61
+ durationMs: durationMs
62
+ fingerprint: fingerprint
63
+ - labels:
64
+ event:
65
+ type:
66
+ table:
67
+ fingerprint:
68
+ - timestamp:
69
+ source: ts
70
+ format: RFC3339Nano
71
+
72
+ - job_name: mysql-slow
73
+ static_configs:
74
+ - targets: [localhost]
75
+ labels:
76
+ job: mysql-slow
77
+ __path__: /var/log/mysql/mysql-slow.log
78
+
79
+ - job_name: mysql-error
80
+ static_configs:
81
+ - targets: [localhost]
82
+ labels:
83
+ job: mysql-error
84
+ __path__: /var/log/mysql/error.log
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "@kaikybrofc/omnizap-system",
3
+ "version": "2.1.8",
4
+ "description": "Sistema profissional de automação WhatsApp com tecnologia Baileys",
5
+ "main": "index.js",
6
+ "publishConfig": {
7
+ "registry": "https://npm.pkg.github.com"
8
+ },
9
+ "files": [
10
+ "app/**/*.js",
11
+ "database/**/*.js",
12
+ "database/migrations/**/*.sql",
13
+ "public/**/*.html",
14
+ "public/**/*.css",
15
+ "public/**/*.js",
16
+ "scripts/**/*.sh",
17
+ "scripts/**/*.mjs",
18
+ "ml/clip_classifier/adaptive_scoring.py",
19
+ "ml/clip_classifier/classifier.py",
20
+ "ml/clip_classifier/embedding_store.py",
21
+ "ml/clip_classifier/env_loader.py",
22
+ "ml/clip_classifier/llm_label_expander.py",
23
+ "ml/clip_classifier/main.py",
24
+ "ml/clip_classifier/similarity_engine.py",
25
+ "ml/clip_classifier/requirements.txt",
26
+ "ml/clip_classifier/README.md",
27
+ "ml/clip_classifier/Dockerfile",
28
+ "observability/**/*.yml",
29
+ "observability/**/*.yaml",
30
+ "observability/**/*.json",
31
+ "observability/**/*.sql",
32
+ "observability/**/*.cnf",
33
+ "index.js",
34
+ "docker-compose.yml",
35
+ "ecosystem.prod.config.cjs",
36
+ "eslint.config.js",
37
+ ".env.example",
38
+ "README.md",
39
+ "RELEASE-v2.1.2.md",
40
+ "LICENSE",
41
+ "package-lock.json"
42
+ ],
43
+ "type": "module",
44
+ "keywords": [
45
+ "whatsapp",
46
+ "automation",
47
+ "baileys",
48
+ "omnizap",
49
+ "messaging",
50
+ "bot"
51
+ ],
52
+ "author": "OmniZap Team",
53
+ "license": "MIT",
54
+ "scripts": {
55
+ "start": "node index.js",
56
+ "dev": "node index.js",
57
+ "db:init": "node database/init.js",
58
+ "pm2:prod": "pm2 start ecosystem.prod.config.cjs",
59
+ "deploy": "bash ./scripts/deploy.sh",
60
+ "deploy:dry-run": "DEPLOY_DRY_RUN=1 bash ./scripts/deploy.sh",
61
+ "release": "bash ./scripts/release.sh",
62
+ "release:minor": "RELEASE_TYPE=minor bash ./scripts/release.sh",
63
+ "release:major": "RELEASE_TYPE=major bash ./scripts/release.sh",
64
+ "test": "node --test",
65
+ "lint": "eslint .",
66
+ "lint:fix": "eslint . --fix"
67
+ },
68
+ "dependencies": {
69
+ "@hapi/boom": "^10.0.1",
70
+ "@whiskeysockets/baileys": "github:WhiskeySockets/Baileys",
71
+ "axios": "^1.13.5",
72
+ "canvas": "^3.2.1",
73
+ "chalk": "^4.1.2",
74
+ "dotenv": "^16.5.0",
75
+ "envalid": "^8.0.0",
76
+ "ffmpeg": "^0.0.4",
77
+ "jimp": "^1.6.0",
78
+ "lodash": "^4.17.21",
79
+ "moment-timezone": "^0.5.48",
80
+ "mysql2": "^3.15.0",
81
+ "node-cache": "^5.1.2",
82
+ "openai": "^5.23.2",
83
+ "pino": "^10.0.0",
84
+ "pino-pretty": "^13.0.0",
85
+ "prom-client": "^15.1.3",
86
+ "proper-lockfile": "^4.1.2",
87
+ "qrcode-terminal": "^0.12.0",
88
+ "stream-json": "^1.9.1",
89
+ "uuid": "^13.0.0",
90
+ "webp-conv": "github:kaikybrofc/webp-conv",
91
+ "winston": "^3.17.0",
92
+ "winston-daily-rotate-file": "^5.0.0"
93
+ },
94
+ "devDependencies": {
95
+ "eslint": "^9.39.2",
96
+ "pm2": "^6.0.11"
97
+ },
98
+ "engines": {
99
+ "node": ">=16.0.0"
100
+ },
101
+ "repository": {
102
+ "type": "git",
103
+ "url": "https://github.com/kaikybrofc/omnizap-system.git"
104
+ },
105
+ "bugs": {
106
+ "url": "https://github.com/kaikybrofc/omnizap-system/issues"
107
+ },
108
+ "homepage": "https://github.com/kaikybrofc/omnizap-system#readme"
109
+ }
@@ -0,0 +1,144 @@
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>OmniZap API Docs | Sticker Packs</title>
7
+ <meta name="description" content="Documentação da API pública de sticker packs do OmniZap System." />
8
+ <meta name="keywords" content="omnizap api, documentação api, sticker packs api, whatsapp bot api" />
9
+ <meta name="author" content="OmniZap System" />
10
+ <meta name="robots" content="index, follow, max-snippet:-1" />
11
+ <link rel="canonical" href="https://omnizap.shop/api-docs/" />
12
+ <link rel="icon" type="image/jpeg" href="https://iili.io/FC3FABe.jpg" />
13
+ <link rel="apple-touch-icon" href="https://iili.io/FC3FABe.jpg" />
14
+ <link rel="sitemap" type="application/xml" href="https://omnizap.shop/sitemap.xml" />
15
+ <meta property="og:type" content="website" />
16
+ <meta property="og:locale" content="pt_BR" />
17
+ <meta property="og:site_name" content="OmniZap System" />
18
+ <meta property="og:title" content="OmniZap API Docs | Sticker Packs" />
19
+ <meta property="og:description" content="Documentação técnica da API pública de sticker packs do OmniZap System." />
20
+ <meta property="og:url" content="https://omnizap.shop/api-docs/" />
21
+ <meta property="og:image" content="https://iili.io/fSNGag2.png" />
22
+ <meta name="twitter:card" content="summary_large_image" />
23
+ <meta name="twitter:title" content="OmniZap API Docs" />
24
+ <meta name="twitter:description" content="Referência da API pública do OmniZap para sticker packs." />
25
+ <meta name="twitter:image" content="https://iili.io/fSNGag2.png" />
26
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" rel="stylesheet" />
27
+ <style>
28
+ body {
29
+ margin: 0;
30
+ font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
31
+ background: #0b1020;
32
+ color: #e6edf7;
33
+ }
34
+ .wrap { width: min(1024px, 92vw); margin: 0 auto; padding: 30px 0; }
35
+ h1, h2 { margin: 0 0 10px; }
36
+ h1 { font-size: 34px; }
37
+ h2 { font-size: 20px; margin-top: 22px; }
38
+ .section-title { margin: 22px 0 10px; }
39
+ .sub-title { font-size: 18px; margin: 0 0 10px; }
40
+ p { color: #9fb0cc; }
41
+ .card {
42
+ border: 1px solid #2a3b60;
43
+ background: #121a2f;
44
+ border-radius: 12px;
45
+ padding: 16px;
46
+ margin-bottom: 12px;
47
+ }
48
+ .list {
49
+ margin: 0;
50
+ padding-left: 18px;
51
+ color: #c5d4ea;
52
+ line-height: 1.7;
53
+ }
54
+ .status-row {
55
+ display: flex;
56
+ gap: 10px;
57
+ align-items: center;
58
+ flex-wrap: wrap;
59
+ margin-bottom: 10px;
60
+ }
61
+ .badge {
62
+ display: inline-flex;
63
+ align-items: center;
64
+ border-radius: 999px;
65
+ padding: 6px 10px;
66
+ border: 1px solid transparent;
67
+ font-size: 12px;
68
+ font-weight: 700;
69
+ letter-spacing: .2px;
70
+ }
71
+ .badge-ok {
72
+ color: #d8ffea;
73
+ background: #103724;
74
+ border-color: #1f6a42;
75
+ }
76
+ .badge-warn {
77
+ color: #f5eed6;
78
+ background: #34280f;
79
+ border-color: #6b5422;
80
+ }
81
+ .badge-bad {
82
+ color: #ffd8de;
83
+ background: #3a141d;
84
+ border-color: #713041;
85
+ }
86
+ .status-meta {
87
+ color: #9fb0cc;
88
+ font-size: 13px;
89
+ }
90
+ .status-grid {
91
+ display: grid;
92
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
93
+ gap: 8px;
94
+ }
95
+ .status-item {
96
+ border: 1px solid #314669;
97
+ border-radius: 10px;
98
+ padding: 10px;
99
+ background: #0f1729;
100
+ display: grid;
101
+ gap: 4px;
102
+ }
103
+ .status-item strong {
104
+ font-size: 12px;
105
+ color: #9fb0cc;
106
+ text-transform: uppercase;
107
+ letter-spacing: .3px;
108
+ }
109
+ .status-item span {
110
+ font-size: 14px;
111
+ color: #d5f8e1;
112
+ }
113
+ .status-error {
114
+ margin-top: 10px;
115
+ color: #ffb4c1;
116
+ font-size: 13px;
117
+ }
118
+ code, pre {
119
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
120
+ background: #0f1729;
121
+ border-radius: 8px;
122
+ }
123
+ pre {
124
+ padding: 12px;
125
+ overflow: auto;
126
+ border: 1px solid #314669;
127
+ color: #d5f8e1;
128
+ }
129
+ .top a {
130
+ color: #38bdf8;
131
+ text-decoration: none;
132
+ margin-right: 12px;
133
+ }
134
+ .icon {
135
+ margin-right: 8px;
136
+ color: #8ec5ff;
137
+ }
138
+ </style>
139
+ </head>
140
+ <body>
141
+ <div id="api-docs-react-root"></div>
142
+ <script type="module" src="/js/apps/apiDocsApp.js?v=20260226-api-docs-plus"></script>
143
+ </body>
144
+ </html>