@cometchat/skills 4.4.2 → 5.0.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 (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,633 +1,77 @@
1
1
  ---
2
2
  name: cometchat-flutter-v6-production
3
- description: >
4
- Production readiness for CometChat Flutter UIKit v6 — server-side auth tokens,
5
- user management, Android ProGuard/R8, iOS Info.plist, minSdk, release build
6
- checklist, environment configuration, and security hardening. Use when preparing
7
- a CometChat Flutter app for production deployment.
3
+ description: "Take a CometChat Flutter integration to production — server-minted auth tokens instead of the Auth Key, secret handling in a Flutter bundle, logout/session hygiene, release build config, and the pre-ship checklist. Triggers: 'production auth cometchat', 'auth token flutter', 'is the auth key safe', 'ship cometchat to production', 'release build cometchat'."
8
4
  license: "MIT"
9
- compatibility: "cometchat_chat_uikit ^6.0.1"
5
+ compatibility: "Flutter >=3.38.9; cometchat_chat_uikit ^6 (6.1.x, verified 6.1.0); cometchat_sdk ^5.0.6"
10
6
  metadata:
11
7
  author: "CometChat"
12
- version: "3.0.0"
13
- tags: "cometchat flutter production release auth-token proguard security"
8
+ version: "1.0.0"
9
+ tags: "cometchat flutter production auth-token security release v6"
14
10
  ---
15
11
 
16
- > **Ground truth:** `cometchat_chat_uikit: ^6.0` pub-cache source + `ui-kit/flutter`. **Official docs:** https://www.cometchat.com/docs/fundamentals/user-auth · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
12
+ > **Ground truth:** `loginWithAuthToken` and `logout` are catalog-verified against 6.1.0. Token MINTING is a server-side REST call its exact endpoint is FETCHED from the REST API docs, never guessed. The dev-vs-prod credential rule is `RULES.md` §4.
17
13
 
18
- # CometChat Flutter UIKit v6 — Production Readiness
14
+ ## Companion skills (read first)
15
+ - `cometchat-flutter-v6-core` — install, credentials, `init→login→render`, `lifecycle.md`. This skill ASSUMES it.
16
+ - `cometchat-flutter-v6-patterns` — where config comes from in your build pipeline.
17
+ - `cometchat-security` — the enterprise auth model this client-side hardening plugs into: wiring your IdP / SSO into the token flow (your IdP → your server → mint the CometChat auth token; CometChat is **not** an IdP), token expiry/refresh + re-login, RBAC roles + group (SBAC) scopes, and Auth Key vs auth token vs REST API Key. Load it for a security review or any SSO question.
19
18
 
20
- Everything you need to move a CometChat Flutter app from development to production. Covers authentication, platform configuration, environment management, and security hardening.
19
+ ## Use this skill when
20
+ Hardening before release: "is the Auth Key safe to ship", "set up production auth", "what do I check before shipping".
21
21
 
22
- ---
23
-
24
- ## 1. Dev Mode vs Production
25
-
26
- CometChat supports two authentication modes. Understanding the difference is critical before shipping.
27
-
28
- ### Dev Mode (authKey — development only)
29
-
30
- The `authKey` is embedded in client code and lets any user log in by UID alone. Convenient for prototyping, but **anyone who decompiles your app can impersonate any user**.
31
-
32
- ```dart
33
- // ✅ Dev mode — fine for prototyping, NEVER ship this
34
- final settings = (UIKitSettingsBuilder()
35
- ..appId = 'APP_ID'
36
- ..region = 'us'
37
- ..authKey = 'AUTH_KEY' // Client-side secret — dev only
38
- ..subscriptionType = CometChatSubscriptionType.allUsers)
39
- .build();
40
-
41
- await CometChatUIKit.init(uiKitSettings: settings);
42
-
43
- // Login with authKey (SDK uses the key from UIKitSettings internally)
44
- await CometChatUIKit.login('user_uid',
45
- onSuccess: (user) => debugPrint('Logged in: ${user.name}'),
46
- onError: (e) => debugPrint('Login failed: ${e.message}'),
47
- );
48
- ```
49
-
50
- ### Production Mode (authToken — server-minted)
51
-
52
- Your backend generates a short-lived `authToken` for each authenticated user. The client never sees the `authKey`.
53
-
54
- ```dart
55
- // ✅ Production — authKey is NOT in client code
56
- final settings = (UIKitSettingsBuilder()
57
- ..appId = 'APP_ID'
58
- ..region = 'us'
59
- // No authKey here — tokens come from your server
60
- ..subscriptionType = CometChatSubscriptionType.allUsers)
61
- .build();
62
-
63
- await CometChatUIKit.init(uiKitSettings: settings);
64
-
65
- // Login with server-provided token
66
- final authToken = await yourBackend.getCometChatToken(currentUserId);
67
- await CometChatUIKit.loginWithAuthToken(authToken,
68
- onSuccess: (user) => debugPrint('Logged in: ${user.name}'),
69
- onError: (e) => debugPrint('Login failed: ${e.message}'),
70
- );
71
- ```
72
-
73
- **Rule**: If `authKey` appears anywhere in your production build, you have a security vulnerability.
74
-
75
- ---
76
-
77
- ## 2. Server-Side Auth Token Flow
78
-
79
- ### How It Works
80
-
81
- ```
82
- ┌──────────┐ 1. Authenticate ┌──────────────┐
83
- │ Flutter │ ──────────────────────> │ Your Server │
84
- │ App │ │ (Backend) │
85
- │ │ 4. Return authToken │ │
86
- │ │ <────────────────────── │ │
87
- └──────────┘ └──────────────┘
88
- │ │
89
- │ 5. loginWithAuthToken(token) │ 2. Verify user identity
90
- │ │ 3. POST /auth-tokens
91
- v v
92
- ┌──────────┐ ┌──────────────┐
93
- │ CometChat│ │ CometChat │
94
- │ SDK │ │ REST API │
95
- └──────────┘ └──────────────┘
96
- ```
97
-
98
- ### Step 1: Your Backend Generates the Token
99
-
100
- Your server calls the CometChat REST API with the `authKey` (which stays server-side):
101
-
102
- ```bash
103
- curl -X POST "https://<APP_ID>.api-<REGION>.cometchat.io/v3/users/<UID>/auth_tokens" \
104
- -H "apikey: YOUR_REST_API_KEY" \
105
- -H "Content-Type: application/json"
106
- ```
107
-
108
- Response:
109
- ```json
110
- {
111
- "data": {
112
- "uid": "user_uid",
113
- "authToken": "user_uid_1a2b3c4d5e6f7a8b9c0d1e2f",
114
- "createdAt": 1700000000
115
- }
116
- }
117
- ```
118
-
119
- Replace `<APP_ID>` with your CometChat app ID and `<REGION>` with your region code (`us`, `eu`, or `in`). The full host becomes:
120
- - US: `<APP_ID>.api-us.cometchat.io`
121
- - EU: `<APP_ID>.api-eu.cometchat.io`
122
- - IN: `<APP_ID>.api-in.cometchat.io`
123
-
124
- Use `YOUR_REST_API_KEY` from the CometChat dashboard (API & Auth Keys). Do not confuse it with the client `authKey`.
125
-
126
- ### Step 2: Your Backend Returns the Token to the Client
127
-
128
- Your Flutter app calls your own backend (after the user authenticates with your auth system), and your backend returns the CometChat `authToken`.
129
-
130
- ### Step 3: Flutter Client Logs In with the Token
131
-
132
- ```dart
133
- Future<void> loginWithToken(String uid) async {
134
- // 1. Call YOUR backend to get a CometChat auth token
135
- final response = await http.post(
136
- Uri.parse('https://your-api.com/cometchat/token'),
137
- headers: {'Authorization': 'Bearer ${yourJwt}'},
138
- body: jsonEncode({'uid': uid}),
139
- );
140
- final authToken = jsonDecode(response.body)['authToken'];
141
-
142
- // 2. Login to CometChat with the token
143
- CometChatUIKit.loginWithAuthToken(authToken,
144
- onSuccess: (user) {
145
- // CometChatUIKit.loggedInUser is now set
146
- debugPrint('Logged in as ${user.name}');
147
- },
148
- onError: (e) {
149
- debugPrint('CometChat login failed: ${e.message}');
150
- },
151
- );
152
- }
153
- ```
154
-
155
- **Note**: `loginWithAuthToken` populates `CometChatUIKit.loggedInUser` before calling `onSuccess` — same as `login()` and `init()`. No need to call `getLoggedInUser()` afterward.
156
-
157
- ---
158
-
159
- ## 3. User Management
160
-
161
- ### Creating Users
162
-
163
- ```dart
164
- final user = User(
165
- uid: 'user_123',
166
- name: 'Jane Doe',
167
- avatar: 'https://example.com/avatar.png',
168
- );
169
-
170
- await CometChatUIKit.createUser(user,
171
- onSuccess: (created) => debugPrint('Created: ${created.uid}'),
172
- onError: (e) => debugPrint('Create failed: ${e.message}'),
173
- );
174
- ```
175
-
176
- ### Updating Users
177
-
178
- ```dart
179
- final user = User(
180
- uid: 'user_123',
181
- name: 'Jane Smith', // Updated name
182
- );
183
-
184
- await CometChatUIKit.updateUser(user,
185
- onSuccess: (updated) => debugPrint('Updated: ${updated.name}'),
186
- onError: (e) => debugPrint('Update failed: ${e.message}'),
187
- );
188
- ```
189
-
190
- ### Production Warning
191
-
192
- `createUser()` and `updateUser()` require the `authKey` (set in UIKitSettings). In production:
193
-
194
- - **Move user creation to your backend** — call the CometChat REST API server-side
195
- - **Move user updates to your backend** — same approach
196
- - The Flutter client should only call `loginWithAuthToken()` — never create or update users directly
197
-
198
- Server-side user creation:
199
- ```bash
200
- curl -X POST "https://<APP_ID>.api-<REGION>.cometchat.io/v3/users" \
201
- -H "apikey: YOUR_REST_API_KEY" \
202
- -H "Content-Type: application/json" \
203
- -d '{"uid": "user_123", "name": "Jane Doe"}'
204
- ```
205
-
206
- ---
207
-
208
- ## 4. Android Build Requirements
209
-
210
- These are required for CometChat UIKit v6 on Android. Without them, debug builds may work but release builds will crash.
211
-
212
- ### gradle.properties
213
-
214
- Ensure these are in `android/gradle.properties`:
215
-
216
- ```properties
217
- android.useAndroidX=true
218
- android.enableJetifier=true
219
- ```
220
-
221
- `enableJetifier` resolves old Android Support Library conflicts from transitive dependencies in the CometChat SDK.
222
-
223
- ### minSdk 26
224
-
225
- In `android/app/build.gradle` (Groovy) or `build.gradle.kts` (Kotlin DSL):
226
-
227
- ```kotlin
228
- // build.gradle.kts
229
- android {
230
- defaultConfig {
231
- minSdk = 26 // Required by cometchat_calls_sdk
232
- }
233
- }
234
- ```
235
-
236
- ```groovy
237
- // build.gradle (Groovy)
238
- android {
239
- defaultConfig {
240
- minSdkVersion 26
241
- }
242
- }
243
- ```
244
-
245
- If your `minSdk` is lower than 26, the build will fail with a manifest merger error referencing `cometchat_calls_sdk`.
246
-
247
- ### ProGuard / R8 Keep Rules
248
-
249
- Create `android/app/proguard-rules.pro` with these exact contents:
250
-
251
- ```proguard
252
- # CometChat — prevent R8 from stripping SDK classes used via reflection
253
- -keep class com.cometchat.** { *; }
254
- -keep interface com.cometchat.** { *; }
255
-
256
- # Suppress warnings for Calls SDK classes referenced cross-module
257
- -dontwarn com.cometchat.calls.CometChatRTCView$CometChatRTCViewBuilder
258
- -dontwarn com.cometchat.calls.CometChatRTCView
259
- -dontwarn com.cometchat.calls.CometChatRTCViewListener
260
- -dontwarn com.cometchat.calls.model.AnalyticsSettings
261
- -dontwarn com.cometchat.calls.model.RTCCallback
262
- -dontwarn com.cometchat.calls.model.RTCReceiver
263
- ```
264
-
265
- Reference the ProGuard file in your release build type. In `android/app/build.gradle.kts`:
266
-
267
- ```kotlin
268
- android {
269
- buildTypes {
270
- release {
271
- isMinifyEnabled = true
272
- isShrinkResources = true
273
- proguardFiles(
274
- getDefaultProguardFile("proguard-android-optimize.txt"),
275
- "proguard-rules.pro"
276
- )
277
- }
278
- }
279
- }
280
- ```
281
-
282
- Or in `android/app/build.gradle` (Groovy):
283
-
284
- ```groovy
285
- android {
286
- buildTypes {
287
- release {
288
- minifyEnabled true
289
- shrinkResources true
290
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
291
- }
292
- }
293
- }
294
- ```
295
-
296
- **Without these rules, release builds crash with `ClassNotFoundException` for CometChat classes.** Debug builds work fine because R8/ProGuard only runs on release.
297
-
298
- ### Multidex (if targeting API < 21 elsewhere)
299
-
300
- CometChat requires minSdk 26, so multidex is not needed (it's automatic above API 21). If you have a multi-module setup where another module targets lower, ensure the app module still sets `minSdk = 26`.
301
-
302
- ---
303
-
304
- ## 5. iOS Build Requirements
305
-
306
- ### Info.plist Permissions
307
-
308
- Add these to `ios/Runner/Info.plist` inside the top-level `<dict>`:
309
-
310
- ```xml
311
- <!-- Camera access (video calls, sending photos) -->
312
- <key>NSCameraUsageDescription</key>
313
- <string>$(PRODUCT_NAME) needs camera access for video calls and sending photos</string>
314
-
315
- <!-- Microphone access (voice/video calls, audio messages) -->
316
- <key>NSMicrophoneUsageDescription</key>
317
- <string>$(PRODUCT_NAME) needs microphone access for voice and video calls</string>
22
+ ## Prerequisites & install
23
+ Core done. No new package.
318
24
 
319
- <!-- Photo library access (sending images from gallery) -->
320
- <key>NSPhotoLibraryUsageDescription</key>
321
- <string>$(PRODUCT_NAME) needs photo library access to send images</string>
322
- ```
323
-
324
- Without these, the app crashes when the user taps the camera/gallery/mic button — iOS terminates apps that access protected APIs without a usage description.
325
-
326
- ### VoIP Background Mode (for CallKit)
327
-
328
- If using CometChat calling with CallKit (incoming call notifications when app is backgrounded), add to `Info.plist`:
329
-
330
- ```xml
331
- <key>UIBackgroundModes</key>
332
- <array>
333
- <string>voip</string>
334
- <string>remote-notification</string>
335
- </array>
336
- ```
337
-
338
- Or enable via Xcode: Target → Signing & Capabilities → + Background Modes → check "Voice over IP" and "Remote notifications".
339
-
340
- ### App Transport Security
341
-
342
- CometChat uses HTTPS by default, so no ATS exceptions are needed. If you're loading user avatars or media from HTTP URLs (not recommended), add:
343
-
344
- ```xml
345
- <key>NSAppTransportSecurity</key>
346
- <dict>
347
- <key>NSAllowsArbitraryLoads</key>
348
- <true/>
349
- </dict>
350
- ```
351
-
352
- **Avoid this in production** — it disables all transport security. Instead, ensure all media URLs use HTTPS.
353
-
354
- ### Minimum iOS Deployment Target
355
-
356
- In `ios/Podfile`, ensure:
357
-
358
- ```ruby
359
- platform :ios, '13.0'
360
- ```
361
-
362
- CometChat UIKit v6 requires iOS 13.0+. If your Podfile has a lower target, `pod install` will fail.
363
-
364
- ---
365
-
366
- ## 6. Environment Configuration
367
-
368
- Never hardcode credentials in source code. The `AppCredentials` pattern used in development:
369
-
370
- ```dart
371
- // ❌ DON'T ship this — credentials visible in decompiled binary
372
- class AppCredentials {
373
- static const String appId = '26580020f03ff346';
374
- static const String region = 'in';
375
- static const String authKey = '4152b0366478871f0fa8d19a287dd6f5ed5f8eff';
376
- }
377
- ```
378
-
379
- ### Option A: Dart Defines (recommended for simple setups)
380
-
381
- Pass credentials at build time:
382
-
383
- ```bash
384
- flutter run \
385
- --dart-define=COMETCHAT_APP_ID=your_app_id \
386
- --dart-define=COMETCHAT_REGION=us
387
- ```
388
-
389
- Read them in code:
390
-
391
- ```dart
392
- class CometChatConfig {
393
- static const appId = String.fromEnvironment('COMETCHAT_APP_ID');
394
- static const region = String.fromEnvironment('COMETCHAT_REGION');
395
- // No authKey in production builds — use authToken flow
396
- }
397
- ```
398
-
399
- For release builds:
400
-
401
- ```bash
402
- flutter build apk \
403
- --dart-define=COMETCHAT_APP_ID=your_app_id \
404
- --dart-define=COMETCHAT_REGION=us
405
-
406
- flutter build ipa \
407
- --dart-define=COMETCHAT_APP_ID=your_app_id \
408
- --dart-define=COMETCHAT_REGION=us
409
- ```
410
-
411
- ### Option B: .env File with flutter_dotenv
412
-
413
- ```bash
414
- dart pub add flutter_dotenv
415
- ```
416
-
417
- Create `.env` (add to `.gitignore`):
418
-
419
- ```
420
- COMETCHAT_APP_ID=your_app_id
421
- COMETCHAT_REGION=us
422
- ```
423
-
424
- Load in code:
425
-
426
- ```dart
427
- import 'package:flutter_dotenv/flutter_dotenv.dart';
428
-
429
- Future<void> main() async {
430
- await dotenv.load(fileName: '.env');
431
- runApp(const MyApp());
432
- }
433
-
434
- class CometChatConfig {
435
- static String get appId => dotenv.env['COMETCHAT_APP_ID'] ?? '';
436
- static String get region => dotenv.env['COMETCHAT_REGION'] ?? 'us';
437
- }
438
- ```
439
-
440
- **Note**: `.env` files bundled in the app asset can still be extracted. For true secret protection, fetch config from your backend at runtime.
441
-
442
- ### Option C: Flavor-Based Configuration
443
-
444
- For apps with dev/staging/prod environments:
445
-
446
- ```dart
447
- enum Environment { dev, staging, prod }
448
-
449
- class CometChatConfig {
450
- final String appId;
451
- final String region;
452
- final bool useAuthToken; // true for staging/prod
453
-
454
- const CometChatConfig._({
455
- required this.appId,
456
- required this.region,
457
- required this.useAuthToken,
458
- });
459
-
460
- static CometChatConfig of(Environment env) {
461
- switch (env) {
462
- case Environment.dev:
463
- return const CometChatConfig._(
464
- appId: 'dev_app_id',
465
- region: 'us',
466
- useAuthToken: false,
467
- );
468
- case Environment.staging:
469
- return const CometChatConfig._(
470
- appId: 'staging_app_id',
471
- region: 'us',
472
- useAuthToken: true,
473
- );
474
- case Environment.prod:
475
- return const CometChatConfig._(
476
- appId: 'prod_app_id',
477
- region: 'us',
478
- useAuthToken: true,
479
- );
480
- }
481
- }
482
- }
483
- ```
484
-
485
- ---
486
-
487
- ## 7. Release Build Checklist
488
-
489
- ### Authentication
490
- - [ ] `authKey` is NOT in any client-side code for production builds
491
- - [ ] Server-side auth token generation is implemented and tested
492
- - [ ] `CometChatUIKit.loginWithAuthToken()` is used instead of `CometChatUIKit.login()`
493
- - [ ] User creation/update calls are server-side, not client-side
494
-
495
- ### Android
496
- - [ ] `minSdk = 26` in `android/app/build.gradle`
497
- - [ ] `android.enableJetifier=true` in `gradle.properties`
498
- - [ ] `proguard-rules.pro` created with CometChat keep rules
499
- - [ ] Release build type references `proguard-rules.pro`
500
- - [ ] `isMinifyEnabled = true` and `isShrinkResources = true` for release
501
- - [ ] Release APK/AAB tested on a real device (not just debug)
502
- - [ ] Push notification provider ID configured (FCM)
503
-
504
- ### iOS
505
- - [ ] `NSCameraUsageDescription` in Info.plist
506
- - [ ] `NSMicrophoneUsageDescription` in Info.plist
507
- - [ ] `NSPhotoLibraryUsageDescription` in Info.plist
508
- - [ ] VoIP background mode enabled (if using CallKit)
509
- - [ ] Minimum deployment target is iOS 13.0+
510
- - [ ] Release build tested on a real device
511
- - [ ] Push notification entitlements configured (APNs)
512
-
513
- ### Environment
514
- - [ ] No hardcoded credentials in source code
515
- - [ ] Credentials passed via dart-define, .env, or flavor config
516
- - [ ] `.env` files are in `.gitignore`
517
- - [ ] Production app ID and region are correct (not dev/staging)
518
-
519
- ### CometChat Configuration
520
- - [ ] `CometChatUIKit.init()` called before any login or component usage
521
- - [ ] `subscriptionType` set in UIKitSettingsBuilder (or presence events won't fire)
522
- - [ ] `region` is lowercase (`'us'`, `'eu'`, `'in'`)
523
- - [ ] Logout properly calls `CometChatUIKit.logout()` and clears local state
524
-
525
- ### Testing
526
- - [ ] Release build tested end-to-end: init → login → send message → receive message → logout
527
- - [ ] Tested on both Android and iOS physical devices
528
- - [ ] Tested with ProGuard/R8 enabled (Android release)
529
- - [ ] Tested push notifications in production environment
530
- - [ ] Tested calling features if enabled (audio + video)
531
- - [ ] Tested app kill → reopen → session restore (cached login via `CometChatUIKit.loggedInUser`)
532
-
533
- ---
534
-
535
- ## 8. Security Hardening
536
-
537
- ### Never Ship authKey in Production
538
-
539
- The `authKey` allows anyone to:
540
- - Log in as any user
541
- - Create users
542
- - Update user profiles
543
-
544
- If it's in your APK/IPA, it can be extracted in minutes with standard decompilation tools.
25
+ ## The one thing that actually matters: the Auth Key must not ship
26
+ An **Auth Key can log in as ANY user of your app.** Everything core writes for development puts it in `cometchat-settings.json`, which is bundled into the APK/IPA — and a bundle is not a secret. Anyone can extract it.
545
27
 
546
- ```dart
547
- // ❌ SECURITY VULNERABILITY — authKey in client code
548
- final settings = (UIKitSettingsBuilder()
549
- ..appId = 'APP_ID'
550
- ..region = 'us'
551
- ..authKey = 'AUTH_KEY_VISIBLE_TO_ATTACKERS')
552
- .build();
553
-
554
- // ✅ SECURE — no authKey, use server-minted tokens
555
- final settings = (UIKitSettingsBuilder()
556
- ..appId = appId // App ID is not secret (it's in network requests anyway)
557
- ..region = region
558
- ..subscriptionType = CometChatSubscriptionType.allUsers)
559
- .build();
560
- ```
561
-
562
- ### Don't Log Sensitive Data
563
-
564
- ```dart
565
- // ❌ WRONG — auth tokens in logs
566
- debugPrint('Token: $authToken');
567
- debugPrint('User: ${user.toJson()}'); // May contain tokens
568
-
569
- // ✅ CORRECT — log only non-sensitive identifiers
570
- debugPrint('Logged in as uid: ${user.uid}');
571
- ```
572
-
573
- In release builds, consider disabling debug prints entirely:
574
-
575
- ```dart
576
- // In main.dart for release
577
- if (kReleaseMode) {
578
- debugPrint = (String? message, {int? wrapWidth}) {};
579
- }
580
- ```
581
-
582
- ### ProGuard Obfuscation
583
-
584
- The ProGuard rules in Section 4 keep CometChat classes intact (required for the SDK to work), but R8 will still obfuscate your own application code. This makes reverse engineering harder.
585
-
586
- Ensure `isMinifyEnabled = true` is set for release builds — it enables both code shrinking and obfuscation.
587
-
588
- ### Token Expiry and Refresh
589
-
590
- CometChat auth tokens don't expire by default, but you can configure token expiry in the CometChat dashboard. If you enable expiry:
28
+ **Development (what core wired):** `credentials.authKey` in the settings asset → `CometChatUIKit.login(uid)`. Fine for building; never for release.
591
29
 
30
+ **Production (what you must move to):**
31
+ 1. Your **server** mints a per-user auth token by calling CometChat's REST API with the **REST API Key** (which stays on the server, never in the app).
32
+ 2. Your app authenticates the user your normal way, then asks YOUR backend for that token.
33
+ 3. The app signs in with the token:
592
34
  ```dart
593
- CometChatUIKit.loginWithAuthToken(authToken,
594
- onSuccess: (user) {
595
- // Token accepted, proceed
596
- },
597
- onError: (e) {
598
- if (e.code == 'ERR_AUTH_TOKEN_NOT_FOUND' || e.code == 'AUTH_ERR_AUTH_TOKEN_NOT_FOUND') {
599
- // Token expired or invalid — fetch a new one from your backend
600
- refreshAndRetryLogin();
601
- }
602
- },
603
- );
604
- ```
605
-
606
- ### Network Security
35
+ import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
607
36
 
608
- - CometChat SDK uses HTTPS/WSS by default — no additional configuration needed
609
- - Don't add `NSAllowsArbitraryLoads` to Info.plist unless absolutely necessary
610
- - If using a proxy or custom certificate pinning, ensure CometChat domains are whitelisted:
611
- - `*.cometchat.io`
612
- - `*.cometchat.com`
613
-
614
- ### Session Management
615
-
616
- ```dart
617
- // Always logout when user signs out of your app
618
- Future<void> signOut() async {
619
- // 1. Logout from CometChat
620
- CometChatUIKit.logout(
621
- onSuccess: (_) => debugPrint('CometChat logout success'),
622
- onError: (e) => debugPrint('CometChat logout failed: ${e.message}'),
37
+ Future<void> signIn(String authTokenFromYourServer) async {
38
+ await CometChatUIKit.loginWithAuthToken(
39
+ authTokenFromYourServer,
40
+ onSuccess: (User user) {},
41
+ onError: (CometChatException e) {},
623
42
  );
624
-
625
- // 2. Clear your own auth state
626
- await yourAuthService.signOut();
627
-
628
- // 3. Navigate to login screen
629
- navigator.pushReplacementNamed('/login');
630
43
  }
631
44
  ```
632
-
633
- Don't just navigate away always call `CometChatUIKit.logout()` to clear the SDK session, disconnect WebSocket, and remove cached credentials.
45
+ 4. **Remove `credentials.authKey`** from the shipped settings file. Confirm by unzipping the release artifact and grepping for the key — do not take it on trust.
46
+ > Fetch the exact token-minting endpoint from the REST API docs (`../cometchat-flutter-v6-core/references/docs-map.md` SDK/REST). Never invent a URL or payload.
47
+
48
+ ## Session hygiene
49
+ - **Log out properly** — `CometChatUIKit.logout()` on your app's sign-out, and unregister the push token FIRST (`-push`), or the next user of the device receives the previous user's notifications.
50
+ - **One user per session.** `login` no-ops if that UID is already signed in, but switching users requires an explicit logout first.
51
+ - **Token expiry** — a server-minted token can expire; handle the login error by refetching from your backend rather than falling back to the Auth Key.
52
+
53
+ ## Release build config
54
+ - **Android** — `minSdk 26` (the docs' 24 is too low — the kit's `cometchat_calls_sdk` dependency pins 26); INTERNET permission; calling adds camera/mic. If you use R8/ProGuard, verify the kit still works in a **release** build, not just debug.
55
+ - **iOS** — deployment target per the docs; usage-description strings for camera/mic/photos, or the OS kills the app on first use.
56
+ - **Settings asset** — a registered asset, so NOT gitignored (a fresh clone / CI `flutter build` fails with *"No file or variants found for asset"*): commit a placeholder (no real Auth Key) and have CI overwrite it at build time with the prod-flavoured file (no Auth Key).
57
+ - **Flavors** — dev and prod should point at different CometChat apps; do not test against production data.
58
+
59
+ ## Pre-ship checklist
60
+ 1. No Auth Key in the release artifact (verified by inspection, not assumption).
61
+ 2. `loginWithAuthToken` is the only login path in prod code.
62
+ 3. Logout clears the session **and** unregisters push.
63
+ 4. Permission strings present on both platforms.
64
+ 5. Release build (obfuscated) actually runs — chat renders, messages send.
65
+ 6. Tested against the prod CometChat app, on real devices.
66
+ 7. Errors surface to the user rather than being swallowed in an empty `onError`.
67
+
68
+ ## Common pitfalls (BAKED)
69
+ - **Shipping the Auth Key** — the single most serious mistake here.
70
+ - **Assuming `--dart-define` is a secret** — it is compiled into the binary, same exposure.
71
+ - **Only testing debug builds** — obfuscation/minification problems appear only in release.
72
+ - **No logout path** → the session persists across users on a shared device.
73
+ - **Swallowing `onError`** → a production auth failure looks like a blank screen.
74
+ - **Minting tokens in the app** — that needs the REST key, which must never be in the client.
75
+
76
+ ## Verify it works
77
+ The release artifact contains no Auth Key; sign-in goes through your backend; sign-out clears the session and push; a release build on a real device sends and receives; an expired token produces a clean re-auth rather than a blank screen.