@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,210 +0,0 @@
1
- # CometChat Calls Flutter SDK v4 → v5 migration (raw SDK)
2
-
3
- Moving the **Calls SDK** from 4.x to **`cometchat_calls_sdk ^5.0.2`** on the Flutter V5 (GetX) chat UI Kit — per the product decision that all families use the V5 calls SDK.
4
-
5
- **Important:** This migrates the **Calls SDK** (4.x → 5.x), not the chat UI Kit cohort (V5 GetX → V6 Bloc, which is `cometchat-flutter-v6-migration`). The chat UI Kit stays on V5 GetX; only the calls layer changes.
6
-
7
- > **Why you can't just bump `cometchat_calls_uikit`.** The latest `cometchat_calls_uikit` (5.0.16) still transitively pins `cometchat_calls_sdk ^4.2.2`, and its prebuilt call widgets (`CometChatCallButtons`/`CometChatIncomingCall`/`CometChatOutgoingCall`/`CometChatOngoingCall`) are compiled against the 4.x API. To run the 5.x calls SDK you **drop `cometchat_calls_uikit`** and integrate the **raw `cometchat_calls_sdk ^5.0.2`** directly with a custom call surface.
8
-
9
- **Substrate of record:** `~/.pub-cache/hosted/pub.dev/cometchat_calls_sdk-5.0.2/lib/`
10
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
11
-
12
- ---
13
-
14
- ## Step 1 — Swap the dependency
15
-
16
- ```diff
17
- # pubspec.yaml
18
- dependencies:
19
- cometchat_chat_uikit: ^5.2.14 # chat UI Kit stays on V5 (GetX)
20
- - cometchat_calls_uikit: ^5.0.15 # 4.x-bound — remove
21
- + cometchat_calls_sdk: ^5.0.2 # raw 5.x calls SDK (direct dependency)
22
- ```
23
-
24
- ```bash
25
- flutter pub get
26
- cd ios && pod install # if you have iOS
27
- ```
28
-
29
- ---
30
-
31
- ## Step 2 — Migrate init
32
-
33
- `init` takes a `CallAppSettings` built via `CallAppSettingBuilder` (`src/builder/call_app_settings_request.dart:36`) and runs with `onSuccess`/`onError` callbacks (`cometchatcalls.dart:172`).
34
-
35
- ```diff
36
- - final callSettings = CallAppSettingsBuilder()
37
- - ..setAppId('APP_ID')
38
- - ..setRegion('REGION');
39
- - await CometChatCalls.init(callSettings);
40
-
41
- + final callAppSettings = (CallAppSettingBuilder()
42
- + ..appId = 'APP_ID'
43
- + ..region = 'REGION')
44
- + .build();
45
- + CometChatCalls.init(
46
- + callAppSettings,
47
- + onSuccess: (String s) {},
48
- + onError: (CometChatCallsException e) {},
49
- + );
50
- ```
51
-
52
- ---
53
-
54
- ## Step 3 — Add the 5.x Calls SDK login
55
-
56
- 4.x had no calls login (it took a per-call auth token). 5.x has its own login that caches the token internally (`cometchatcalls.dart:316`).
57
-
58
- ```dart
59
- // After CometChat.login completes:
60
- final authToken = await CometChat.getUserAuthToken(); // static; no User.getAuthToken() method
61
- if (authToken != null) {
62
- CometChatCalls.loginWithAuthToken(
63
- authToken: authToken,
64
- onSuccess: (user) {},
65
- onError: (CometChatCallsException e) {},
66
- );
67
- }
68
- ```
69
-
70
- ---
71
-
72
- ## Step 4 — Migrate session settings
73
-
74
- `SessionSettingsBuilder` replaces `CallSettingsBuilder` (the latter is `@Deprecated`, `src/builder/call_settings.dart:209`). Methods are chainable / cascade setters (`src/builder/session_settings.dart`).
75
-
76
- ```diff
77
- - final callSettings = (CallSettingsBuilder()
78
- - ..setSessionType(SessionType.video)
79
- - ..startWithAudioMuted(false)
80
- - ..showRecordingButton(true))
81
- - .build();
82
-
83
- + final sessionSettings = (SessionSettingsBuilder()
84
- + ..setType(SessionType.video) // session_settings.dart:197
85
- + ..startAudioMuted(false) // :173
86
- + ..startVideoPaused(false) // :167
87
- + ..setLayout(LayoutType.tile) // :179
88
- + ..hideRecordingButton(false)) // :227 (INVERTED sense vs show*)
89
- + .build();
90
- ```
91
-
92
- ---
93
-
94
- ## Step 5 — Migrate the listener to the 5 split listeners
95
-
96
- The single `CometChatCallsEventsListener` is `@Deprecated` (`src/listener/cometchat_calls_events_listener.dart:16`). 5.x splits events across `SessionStatusListeners`, `ParticipantEventListeners`, `MediaEventListeners`, `ButtonClickListeners`, `LayoutListeners` — registered on `CallSession.getInstance()` (after `joinSession.onSuccess`).
97
-
98
- ```diff
99
- - class MyEvents implements CometChatCallsEventsListener {
100
- - @override
101
- - void onCallEnded() { /* ... */ }
102
- - @override
103
- - void onUserJoined(RTCUser user) { /* ... */ }
104
- - // ...
105
- - }
106
- - CometChatCalls.addCallsEventListeners('id', MyEvents());
107
-
108
- + class MyEvents implements SessionStatusListeners, ParticipantEventListeners {
109
- + @override
110
- + void onSessionLeft() { /* was onCallEnded */ } // session_status_listeners.dart:10
111
- + @override
112
- + void onParticipantJoined(Participant p) { /* was onUserJoined */ } // participant_event_listeners.dart:12
113
- + @override
114
- + void onParticipantLeft(Participant p) { /* was onUserLeft */ } // :15
115
- + // ... remaining interface methods (no-ops or pass-through)
116
- + }
117
- +
118
- + // inside joinSession.onSuccess:
119
- + final events = MyEvents();
120
- + CallSession.getInstance()?.addSessionStatusListener(events); // call_session.dart:66
121
- + CallSession.getInstance()?.addParticipantEventListener(events); // :74
122
- +
123
- + @override
124
- + void dispose() {
125
- + CallSession.getInstance()?.removeSessionStatusListener(events);
126
- + CallSession.getInstance()?.removeParticipantEventListener(events);
127
- + super.dispose();
128
- + }
129
- ```
130
-
131
- ---
132
-
133
- ## Step 6 — Start/join + control method renames + receiver shift
134
-
135
- The two-step `generateToken` + `startSession` collapses into a single `joinSession` (`cometchatcalls.dart:735`). In-call controls move from static methods on `CometChatCalls` to **instance methods on `CallSession`** (the singleton via `CallSession.getInstance()`).
136
-
137
- ```diff
138
- // start the session
139
- - CometChatCalls.generateToken(sessionId, authToken, onSuccess: (t) {
140
- - CometChatCalls.startSession(t.token!, callSettings, onSuccess: (w) {}, onError: (e) {});
141
- - }, onError: (e) {});
142
- + CometChatCalls.joinSession(
143
- + sessionId: sessionId, // SDK mints the call token internally
144
- + sessionSettings: sessionSettings,
145
- + onSuccess: (Widget? w) {},
146
- + onError: (CometChatCallsException e) {},
147
- + );
148
-
149
- // teardown — receiver changes from CometChatCalls (static) to CallSession (singleton)
150
- - CometChatCalls.endSession(onSuccess: (_) {}, onError: (e) {})
151
- + await CallSession.getInstance()?.leaveSession() // call_session.dart:272
152
-
153
- // media controls — same receiver shift, now no-arg
154
- - CometChatCalls.muteAudio()
155
- + CallSession.getInstance()?.muteAudio() // call_session.dart:131
156
- + CallSession.getInstance()?.unMuteAudio() // :145
157
- - CometChatCalls.pauseVideo() / resumeVideo()
158
- + CallSession.getInstance()?.pauseVideo() / resumeVideo() // :168 / :182
159
-
160
- // layout — also moves to the instance (NOT static in 5.x)
161
- - CometChatCalls.setLayout(CallLayout.spotlight)
162
- + CallSession.getInstance()?.setLayout(LayoutType.spotlight) // :394
163
- ```
164
-
165
- **`CallSession.getInstance()` returns `CallSession?` (nullable)** — null when there's no active session. Use `?.` to safely chain.
166
-
167
- ---
168
-
169
- ## Step 7 — GetX state preservation
170
-
171
- If you use GetX controllers around the calls (per `cometchat-flutter-v5-calls/SKILL.md`), the state shape doesn't change — only the underlying SDK calls. Sample diff in a GetX controller:
172
-
173
- ```diff
174
- class CallController extends GetxController {
175
- void startCall(String sessionId) async {
176
- - await CometChatCalls.startSession(callToken, settings: callSettings);
177
- + CometChatCalls.joinSession(sessionId: sessionId, sessionSettings: sessionSettings,
178
- + onSuccess: (w) {}, onError: (e) {});
179
- }
180
-
181
- void endCall() async {
182
- - CometChatCalls.endSession();
183
- + await CallSession.getInstance()?.leaveSession();
184
- }
185
- }
186
- ```
187
-
188
- ---
189
-
190
- ## Verification checklist
191
-
192
- - [ ] `pubspec.yaml` lists `cometchat_calls_sdk: ^5.0.2` and NO `cometchat_calls_uikit`
193
- - [ ] `flutter pub get` + `pod install` succeed
194
- - [ ] `CometChatCalls.loginWithAuthToken(authToken:)` called after `CometChat.login`
195
- - [ ] `CallSettingsBuilder` replaced with `SessionSettingsBuilder`
196
- - [ ] Single `CometChatCallsEventsListener` replaced with the 5 split listeners on `CallSession.getInstance()`
197
- - [ ] `generateToken` + `startSession` collapsed into `joinSession(sessionId:, sessionSettings:, ...)`
198
- - [ ] In-call controls + `leaveSession` moved to `CallSession.getInstance()?.X()`
199
- - [ ] Prebuilt `cometchat_calls_uikit` call widgets removed; custom call surface in place
200
- - [ ] Real-device smoke: iOS + Android, incoming/outgoing/mute/layout/leave
201
-
202
- ---
203
-
204
- ## Pointers
205
-
206
- - Canonical migration: https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
207
- - `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture on the 5.x SDK (GetX patterns)
208
- - `cometchat-flutter-v5-calls/references/call-session.md` — canonical 5.x SDK API surface
209
- - `cometchat-flutter-v6-calls/` — V6 cohort (Bloc) on the SAME 5.0.2 calls SDK
210
- ```
@@ -1,255 +0,0 @@
1
- # Raise hand on Flutter (UIKit V5, GetX-based)
2
-
3
- Same SDK conceptual API as web/native. Flutter V5 uses GetX for state management — the canonical pattern is a `GetxController` that wraps the call event listener and publishes raised-hand state via `Rx<List<RaisedParticipant>>`.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/raise-hand
6
- **Read first:** `cometchat-react-calls/references/raise-hand.md` — UX shape + anti-patterns are identical; this is the V5 GetX-specific wiring.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- Raise/lower hand are **instance methods on the `CallSession` singleton**, NOT static on `CometChatCalls` (`cometchat_calls_sdk-5.0.2` `src/call_session.dart:292,306`). Participant hand events arrive via `ParticipantEventListeners`, registered through `CallSession.getInstance()?.addParticipantEventListener(...)` (`src/call_session.dart:74`).
13
-
14
- ```dart
15
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
16
-
17
- // Local user
18
- CallSession.getInstance()?.raiseHand(); // call_session.dart:292
19
- CallSession.getInstance()?.lowerHand(); // call_session.dart:306
20
-
21
- // Listener — implement the split ParticipantEventListeners interface
22
- class HandListener implements ParticipantEventListeners {
23
- @override
24
- void onParticipantHandRaised(Participant participant) { // participant_event_listeners.dart:30
25
- // participant.uid, participant.name (both nullable)
26
- }
27
-
28
- @override
29
- void onParticipantHandLowered(Participant participant) { // :33
30
- // ...
31
- }
32
- // ... other ParticipantEventListeners methods (no-ops or pass-through)
33
- }
34
-
35
- // Register on the session singleton (inside joinSession.onSuccess):
36
- CallSession.getInstance()?.addParticipantEventListener(HandListener()); // :74
37
-
38
- // Settings flag — method on the (non-deprecated) SessionSettingsBuilder.
39
- final settings = (SessionSettingsBuilder()
40
- ..hideRaiseHandButton(true)) // session_settings.dart:215
41
- .build();
42
- ```
43
-
44
- ---
45
-
46
- ## GetX controller
47
-
48
- ```dart
49
- import 'package:get/get.dart';
50
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
51
-
52
- class RaisedParticipant {
53
- final String uid;
54
- final String name;
55
- final DateTime raisedAt;
56
- RaisedParticipant({required this.uid, required this.name, required this.raisedAt});
57
- }
58
-
59
- class RaiseHandController extends GetxController implements ParticipantEventListeners {
60
- final localRaised = false.obs;
61
- final raised = <RaisedParticipant>[].obs;
62
-
63
- void toggle() {
64
- if (localRaised.value) {
65
- CallSession.getInstance()?.lowerHand();
66
- } else {
67
- CallSession.getInstance()?.raiseHand();
68
- }
69
- localRaised.value = !localRaised.value;
70
- }
71
-
72
- @override
73
- void onParticipantHandRaised(Participant p) {
74
- // Participant.uid / .name are nullable in 5.x.
75
- final uid = p.uid ?? '';
76
- final entry = RaisedParticipant(
77
- uid: uid, name: p.name ?? uid, raisedAt: DateTime.now(),
78
- );
79
- raised.removeWhere((r) => r.uid == uid);
80
- raised.add(entry);
81
- raised.sort((a, b) => a.raisedAt.compareTo(b.raisedAt));
82
- }
83
-
84
- @override
85
- void onParticipantHandLowered(Participant p) {
86
- raised.removeWhere((r) => r.uid == (p.uid ?? ''));
87
- }
88
-
89
- // ... implement other ParticipantEventListeners methods (no-ops or pass-through)
90
- }
91
- ```
92
-
93
- `.obs` is GetX's reactive marker. UI rebuilds automatically when these mutate.
94
-
95
- ---
96
-
97
- ## Toggle button widget
98
-
99
- ```dart
100
- class RaiseHandButton extends StatelessWidget {
101
- const RaiseHandButton({super.key});
102
-
103
- @override
104
- Widget build(BuildContext context) {
105
- final ctrl = Get.find<RaiseHandController>();
106
- return Obx(() => GestureDetector(
107
- onTap: () {
108
- ctrl.toggle();
109
- // Announce for screen readers
110
- SemanticsService.announce(
111
- ctrl.localRaised.value ? 'Hand raised' : 'Hand lowered',
112
- TextDirection.ltr,
113
- );
114
- },
115
- child: Semantics(
116
- button: true,
117
- selected: ctrl.localRaised.value,
118
- label: ctrl.localRaised.value ? 'Lower hand' : 'Raise hand',
119
- child: Container(
120
- padding: const EdgeInsets.all(12),
121
- decoration: BoxDecoration(
122
- color: ctrl.localRaised.value
123
- ? const Color(0xFFFFD60A)
124
- : Colors.white24,
125
- borderRadius: BorderRadius.circular(32),
126
- ),
127
- child: Row(
128
- children: [
129
- const Text('✋'),
130
- const SizedBox(width: 4),
131
- Text(ctrl.localRaised.value ? 'Lower' : 'Raise'),
132
- ],
133
- ),
134
- ),
135
- ),
136
- ));
137
- }
138
- }
139
- ```
140
-
141
- `SemanticsService.announce` is the Flutter equivalent of `aria-live` / `UIAccessibility.post(.announcement, ...)` — TalkBack and VoiceOver pick up the announcement.
142
-
143
- `Semantics` wrapper sets `button: true`, `selected:`, `label:` — these map to platform a11y conventions.
144
-
145
- ---
146
-
147
- ## Raised-hands sheet (DraggableScrollableSheet)
148
-
149
- ```dart
150
- class RaisedHandsSheet extends StatelessWidget {
151
- const RaisedHandsSheet({super.key});
152
-
153
- @override
154
- Widget build(BuildContext context) {
155
- final ctrl = Get.find<RaiseHandController>();
156
- return DraggableScrollableSheet(
157
- initialChildSize: 0.1,
158
- minChildSize: 0.1,
159
- maxChildSize: 0.5,
160
- builder: (context, scrollController) => Container(
161
- decoration: const BoxDecoration(
162
- color: Colors.white,
163
- borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
164
- ),
165
- child: Obx(() => ListView(
166
- controller: scrollController,
167
- padding: const EdgeInsets.all(16),
168
- children: [
169
- Text(
170
- 'Raised hands (${ctrl.raised.length})',
171
- style: const TextStyle(fontWeight: FontWeight.w600),
172
- ),
173
- const SizedBox(height: 8),
174
- for (final p in ctrl.raised)
175
- ListTile(
176
- leading: const Text('✋', style: TextStyle(fontSize: 20)),
177
- title: Text(p.name),
178
- trailing: Text(
179
- '${DateTime.now().difference(p.raisedAt).inSeconds}s ago',
180
- style: const TextStyle(color: Colors.grey),
181
- ),
182
- ),
183
- ],
184
- )),
185
- ),
186
- );
187
- }
188
- }
189
- ```
190
-
191
- ---
192
-
193
- ## Wiring to the call session
194
-
195
- ```dart
196
- RaiseHandController? _handCtrl;
197
-
198
- @override
199
- void initState() {
200
- super.initState();
201
- _handCtrl = Get.put(RaiseHandController());
202
- // NOTE: attach the listener inside joinSession.onSuccess (CallSession.getInstance()
203
- // is null until the session exists). If this widget is mounted only after the
204
- // session is live, attach here:
205
- CallSession.getInstance()?.addParticipantEventListener(_handCtrl!); // call_session.dart:74
206
- }
207
-
208
- @override
209
- void dispose() {
210
- if (_handCtrl != null) {
211
- CallSession.getInstance()?.removeParticipantEventListener(_handCtrl!); // call_session.dart:78
212
- }
213
- Get.delete<RaiseHandController>();
214
- super.dispose();
215
- }
216
- ```
217
-
218
- The 5.x SDK identifies listeners by object identity (a `Set`), not a string ID — keep the same controller instance you registered and pass it to `removeParticipantEventListener` on dispose.
219
-
220
- ---
221
-
222
- ## Anti-patterns
223
-
224
- Web sister reference rules apply, plus Flutter V5-specific:
225
-
226
- 1. **Forgetting `Get.delete<RaiseHandController>()` on dispose.** GetX retains the controller across navigation — listeners survive past the call view, fire stale events.
227
- 2. **`Get.put(RaiseHandController(), permanent: true)` for the call.** Lifetime is too long; controller survives logout. Use scoped `Get.put` without permanent.
228
- 3. **Skipping `Semantics` wrapper on the button.** TalkBack reads the GestureDetector as untyped — bad a11y.
229
- 4. **`Obx` rebuilding the entire widget tree** when only one `.obs` field changes. Wrap minimally — the `Obx` should hug only the reactive part.
230
- 5. **DraggableScrollableSheet without `initialChildSize` < `minChildSize`** — sheet pops above the screen on render, looks broken.
231
-
232
- ---
233
-
234
- ## Verification checklist
235
-
236
- - [ ] `RaiseHandController` is a `GetxController`
237
- - [ ] `localRaised` and `raised` are `.obs` reactive
238
- - [ ] `Obx` wraps only reactive parts of the UI
239
- - [ ] `Semantics` wrapper on toggle button with `button: true, selected:, label:`
240
- - [ ] `SemanticsService.announce` on toggle
241
- - [ ] Same controller instance registered via `CallSession.getInstance()?.addParticipantEventListener(ctrl)` and removed via `removeParticipantEventListener(ctrl)` on dispose
242
- - [ ] `Get.delete<RaiseHandController>()` in `dispose()`
243
- - [ ] `SessionSettingsBuilder()..hideRaiseHandButton(true)` if custom UI
244
- - [ ] Real-device smoke: 3 devices (mix of iOS + Android), raise from 2 → host sees both
245
- - [ ] TalkBack / VoiceOver announces "Hand raised" / "Hand lowered" on toggle
246
-
247
- ---
248
-
249
- ## Pointers
250
-
251
- - `cometchat-react-calls/references/raise-hand.md` — sister reference (UX shape)
252
- - `cometchat-flutter-v5-calls` SKILL.md — V5 hard rules + GetX scope rules
253
- - `cometchat-flutter-v6-calls/references/raise-hand.md` — V6 sibling (Bloc-based — different state shape)
254
- - `cometchat-a11y` — Flutter Semantics + SemanticsService
255
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/raise-hand
@@ -1,196 +0,0 @@
1
- # Ringing — call signaling with custom UI (Flutter V5 / GetX)
2
-
3
- Same SDK shape as web/RN. Flutter-specific deltas: GetX-controlled state, flutter_callkit_incoming for OS-level backgrounded UI, just_audio for foreground ringtone.
4
-
5
- **Read first:** `cometchat-react-calls/references/ringing-integration.md` — full architecture, hard rules.
6
-
7
- ---
8
-
9
- ## SDK API + GetX controller
10
-
11
- ```dart
12
- import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
13
- import 'package:cometchat_sdk/cometchat_sdk.dart'; // Call, CallListener (Chat SDK signaling)
14
-
15
- class CallSignalingController extends GetxController implements CallListener {
16
- final incoming = Rx<Call?>(null);
17
- final outgoing = Rx<Call?>(null);
18
- final activeSessionId = Rx<String?>(null);
19
-
20
- static const _listenerId = 'app';
21
-
22
- @override
23
- void onInit() {
24
- super.onInit();
25
- CometChat.addCallListener(_listenerId, this);
26
- }
27
-
28
- @override
29
- void onIncomingCallReceived(Call call) {
30
- incoming.value = call;
31
- }
32
-
33
- @override
34
- void onOutgoingCallAccepted(Call call) {
35
- outgoing.value = null;
36
- activeSessionId.value = call.sessionId;
37
- }
38
-
39
- @override
40
- void onOutgoingCallRejected(Call call) {
41
- outgoing.value = null;
42
- }
43
-
44
- @override
45
- void onIncomingCallCancelled(Call call) {
46
- incoming.value = null;
47
- }
48
-
49
- @override
50
- void onCallEndedMessageReceived(Call call) {
51
- incoming.value = null;
52
- outgoing.value = null;
53
- activeSessionId.value = null;
54
- }
55
-
56
- Future<void> initiate(String receiverUid, {String type = 'video'}) async {
57
- final call = Call(
58
- receiverUid: receiverUid,
59
- type: type == 'video' ? CometChatCallType.video : CometChatCallType.audio, // ctor param is `type`, not `callType`
60
- receiverType: CometChatReceiverType.user,
61
- );
62
- // initiateCall is void + callback: the Call comes back in onSuccess, not via await.
63
- CometChat.initiateCall(call,
64
- onSuccess: (Call result) => outgoing.value = result,
65
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
66
- }
67
-
68
- Future<void> accept(Call call) async {
69
- // acceptCall takes the sessionID POSITIONALLY + onSuccess/onError; it returns void.
70
- CometChat.acceptCall(call.sessionId!,
71
- onSuccess: (Call result) {
72
- incoming.value = null;
73
- activeSessionId.value = result.sessionId;
74
- },
75
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
76
- }
77
-
78
- Future<void> reject(Call call) async {
79
- // rejectCall: positional sessionID + status String + onSuccess/onError (void).
80
- CometChat.rejectCall(call.sessionId!, CometChatCallStatus.rejected,
81
- onSuccess: (Call result) => incoming.value = null,
82
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
83
- }
84
-
85
- @override
86
- void onClose() {
87
- CometChat.removeCallListener(_listenerId);
88
- super.onClose();
89
- }
90
- }
91
- ```
92
-
93
- Initialize at app start via `Get.put(CallSignalingController(), permanent: true);` so the listener survives navigation.
94
-
95
- ---
96
-
97
- ## Incoming-call overlay
98
-
99
- ```dart
100
- class IncomingCallOverlay extends StatelessWidget {
101
- const IncomingCallOverlay({super.key});
102
-
103
- @override
104
- Widget build(BuildContext context) {
105
- final ctrl = Get.find<CallSignalingController>();
106
-
107
- return Obx(() {
108
- final call = ctrl.incoming.value;
109
- if (call == null) return const SizedBox.shrink();
110
-
111
- return Material(
112
- color: Colors.black.withOpacity(0.85),
113
- child: Center(
114
- child: Column(
115
- mainAxisSize: MainAxisSize.min,
116
- children: [
117
- CircleAvatar(
118
- radius: 60,
119
- backgroundImage: NetworkImage(call.callInitiator?.avatar ?? ''),
120
- ),
121
- const SizedBox(height: 16),
122
- Text(
123
- call.callInitiator?.name ?? 'Unknown',
124
- style: const TextStyle(color: Colors.white, fontSize: 24),
125
- ),
126
- Text('Incoming ${call.type} call', style: const TextStyle(color: Colors.white70)),
127
- const SizedBox(height: 32),
128
- Row(
129
- mainAxisAlignment: MainAxisAlignment.center,
130
- children: [
131
- Semantics(
132
- label: 'Decline call',
133
- button: true,
134
- child: FloatingActionButton(
135
- backgroundColor: Colors.red,
136
- onPressed: () => ctrl.reject(call),
137
- child: const Icon(Icons.call_end),
138
- ),
139
- ),
140
- const SizedBox(width: 32),
141
- Semantics(
142
- label: 'Accept call',
143
- button: true,
144
- child: FloatingActionButton(
145
- backgroundColor: Colors.green,
146
- onPressed: () => ctrl.accept(call),
147
- child: const Icon(Icons.call),
148
- ),
149
- ),
150
- ],
151
- ),
152
- ],
153
- ),
154
- ),
155
- );
156
- });
157
- }
158
- }
159
- ```
160
-
161
- Wrap above the navigator (typically in `MaterialApp.builder` or as a sibling Stack item) so it surfaces over any route.
162
-
163
- ---
164
-
165
- ## Backgrounded ring — flutter_callkit_incoming + push (mandatory)
166
-
167
- GetX listeners only fire while the app is alive. For backgrounded/killed ring, server fires push (APNs PushKit on iOS, FCM data-message on Android) → `flutter_callkit_incoming` shows OS-level UI. See `cometchat-flutter-v5-calls/references/server-push-bridge.md`.
168
-
169
- ---
170
-
171
- ## Anti-patterns
172
-
173
- Web sister rules apply, plus Flutter-specific:
174
-
175
- 1. **`Get.put` without `permanent: true`.** Controller disposed on route change → listener gone → backgrounded calls miss.
176
- 2. **`StatefulWidget` with `setState` instead of `Obx`.** Rx values won't trigger rebuild without `Obx` wrapper.
177
- 3. **JS-style ringtone via `audioplayers` during a CallKit ring.** Both play at once.
178
-
179
- ---
180
-
181
- ## Verification checklist
182
-
183
- - [ ] `Get.put(CallSignalingController(), permanent: true)` at app start
184
- - [ ] `IncomingCallOverlay` mounted in `MaterialApp.builder`
185
- - [ ] `removeCallListener` in `onClose`
186
- - [ ] `flutter_callkit_incoming` wired for backgrounded ring
187
- - [ ] Real-device smoke (iOS + Android): foreground, backgrounded, killed ring all surface UI
188
-
189
- ---
190
-
191
- ## Pointers
192
-
193
- - `cometchat-react-calls/references/ringing-integration.md` — canonical
194
- - `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture
195
- - `cometchat-flutter-v5-calls/references/server-push-bridge.md` — backgrounded ring
196
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/ringing