@appwrite.io/console 2.2.0 → 2.3.0

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 (709) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/sdk.js +326 -194
  4. package/dist/cjs/sdk.js.map +1 -1
  5. package/dist/esm/sdk.js +327 -195
  6. package/dist/esm/sdk.js.map +1 -1
  7. package/dist/iife/sdk.js +326 -194
  8. package/docs/examples/account/create-anonymous-session.md +2 -0
  9. package/docs/examples/account/create-billing-address.md +2 -0
  10. package/docs/examples/account/create-email-password-session.md +2 -0
  11. package/docs/examples/account/create-email-token.md +2 -0
  12. package/docs/examples/account/create-email-verification.md +2 -0
  13. package/docs/examples/account/create-jwt.md +2 -0
  14. package/docs/examples/account/create-key.md +2 -0
  15. package/docs/examples/account/create-magic-url-token.md +2 -0
  16. package/docs/examples/account/create-mfa-authenticator.md +2 -0
  17. package/docs/examples/account/create-mfa-challenge.md +2 -0
  18. package/docs/examples/account/create-mfa-recovery-codes.md +2 -0
  19. package/docs/examples/account/create-o-auth-2-session.md +2 -0
  20. package/docs/examples/account/create-o-auth-2-token.md +2 -0
  21. package/docs/examples/account/create-payment-method.md +2 -0
  22. package/docs/examples/account/create-phone-token.md +2 -0
  23. package/docs/examples/account/create-phone-verification.md +2 -0
  24. package/docs/examples/account/create-push-target.md +2 -0
  25. package/docs/examples/account/create-recovery.md +2 -0
  26. package/docs/examples/account/create-session.md +2 -0
  27. package/docs/examples/account/create-verification.md +2 -0
  28. package/docs/examples/account/create.md +2 -0
  29. package/docs/examples/account/delete-billing-address.md +2 -0
  30. package/docs/examples/account/delete-identity.md +2 -0
  31. package/docs/examples/account/delete-key.md +2 -0
  32. package/docs/examples/account/delete-mfa-authenticator.md +2 -0
  33. package/docs/examples/account/delete-payment-method.md +2 -0
  34. package/docs/examples/account/delete-push-target.md +2 -0
  35. package/docs/examples/account/delete-session.md +2 -0
  36. package/docs/examples/account/delete-sessions.md +2 -0
  37. package/docs/examples/account/delete.md +2 -0
  38. package/docs/examples/account/get-billing-address.md +2 -0
  39. package/docs/examples/account/get-coupon.md +2 -0
  40. package/docs/examples/account/get-key.md +2 -0
  41. package/docs/examples/account/get-mfa-recovery-codes.md +2 -0
  42. package/docs/examples/account/get-payment-method.md +2 -0
  43. package/docs/examples/account/get-prefs.md +2 -0
  44. package/docs/examples/account/get-session.md +2 -0
  45. package/docs/examples/account/get.md +2 -0
  46. package/docs/examples/account/list-billing-addresses.md +2 -0
  47. package/docs/examples/account/list-identities.md +2 -0
  48. package/docs/examples/account/list-invoices.md +2 -0
  49. package/docs/examples/account/list-keys.md +2 -0
  50. package/docs/examples/account/list-logs.md +2 -0
  51. package/docs/examples/account/list-mfa-factors.md +2 -0
  52. package/docs/examples/account/list-payment-methods.md +2 -0
  53. package/docs/examples/account/list-sessions.md +2 -0
  54. package/docs/examples/account/update-billing-address.md +2 -0
  55. package/docs/examples/account/update-email-verification.md +2 -0
  56. package/docs/examples/account/update-email.md +2 -0
  57. package/docs/examples/account/update-key.md +2 -0
  58. package/docs/examples/account/update-magic-url-session.md +2 -0
  59. package/docs/examples/account/update-mfa-authenticator.md +2 -0
  60. package/docs/examples/account/update-mfa-challenge.md +2 -0
  61. package/docs/examples/account/update-mfa-recovery-codes.md +2 -0
  62. package/docs/examples/account/update-mfa.md +2 -0
  63. package/docs/examples/account/update-name.md +2 -0
  64. package/docs/examples/account/update-password.md +2 -0
  65. package/docs/examples/account/update-payment-method-mandate-options.md +2 -0
  66. package/docs/examples/account/update-payment-method-provider.md +2 -0
  67. package/docs/examples/account/update-payment-method.md +2 -0
  68. package/docs/examples/account/update-phone-session.md +2 -0
  69. package/docs/examples/account/update-phone-verification.md +2 -0
  70. package/docs/examples/account/update-phone.md +2 -0
  71. package/docs/examples/account/update-prefs.md +2 -0
  72. package/docs/examples/account/update-push-target.md +2 -0
  73. package/docs/examples/account/update-recovery.md +2 -0
  74. package/docs/examples/account/update-session.md +2 -0
  75. package/docs/examples/account/update-status.md +2 -0
  76. package/docs/examples/account/update-verification.md +2 -0
  77. package/docs/examples/assistant/chat.md +2 -0
  78. package/docs/examples/avatars/get-browser.md +2 -0
  79. package/docs/examples/avatars/get-credit-card.md +2 -0
  80. package/docs/examples/avatars/get-favicon.md +2 -0
  81. package/docs/examples/avatars/get-flag.md +2 -0
  82. package/docs/examples/avatars/get-image.md +2 -0
  83. package/docs/examples/avatars/get-initials.md +2 -0
  84. package/docs/examples/avatars/get-qr.md +2 -0
  85. package/docs/examples/avatars/get-screenshot.md +2 -0
  86. package/docs/examples/backups/create-archive.md +4 -2
  87. package/docs/examples/backups/create-policy.md +4 -2
  88. package/docs/examples/backups/create-restoration.md +4 -2
  89. package/docs/examples/backups/delete-archive.md +2 -0
  90. package/docs/examples/backups/delete-policy.md +2 -0
  91. package/docs/examples/backups/get-archive.md +2 -0
  92. package/docs/examples/backups/get-policy.md +2 -0
  93. package/docs/examples/backups/get-restoration.md +2 -0
  94. package/docs/examples/backups/list-archives.md +2 -0
  95. package/docs/examples/backups/list-policies.md +2 -0
  96. package/docs/examples/backups/list-restorations.md +2 -0
  97. package/docs/examples/backups/update-policy.md +2 -0
  98. package/docs/examples/console/create-program-membership.md +2 -0
  99. package/docs/examples/console/create-source.md +2 -0
  100. package/docs/examples/console/get-campaign.md +2 -0
  101. package/docs/examples/console/get-coupon.md +2 -0
  102. package/docs/examples/console/get-plan.md +2 -0
  103. package/docs/examples/console/get-plans.md +2 -0
  104. package/docs/examples/console/get-program.md +2 -0
  105. package/docs/examples/console/get-resource.md +2 -0
  106. package/docs/examples/console/list-regions.md +2 -0
  107. package/docs/examples/console/suggest-columns.md +2 -0
  108. package/docs/examples/console/suggest-indexes.md +2 -0
  109. package/docs/examples/console/variables.md +2 -0
  110. package/docs/examples/databases/create-boolean-attribute.md +2 -0
  111. package/docs/examples/databases/create-collection.md +2 -0
  112. package/docs/examples/databases/create-datetime-attribute.md +2 -0
  113. package/docs/examples/databases/create-document.md +2 -0
  114. package/docs/examples/databases/create-documents.md +2 -0
  115. package/docs/examples/databases/create-email-attribute.md +2 -0
  116. package/docs/examples/databases/create-enum-attribute.md +2 -0
  117. package/docs/examples/databases/create-float-attribute.md +2 -0
  118. package/docs/examples/databases/create-index.md +2 -0
  119. package/docs/examples/databases/create-integer-attribute.md +2 -0
  120. package/docs/examples/databases/create-ip-attribute.md +2 -0
  121. package/docs/examples/databases/create-line-attribute.md +2 -0
  122. package/docs/examples/databases/create-longtext-attribute.md +2 -0
  123. package/docs/examples/databases/create-mediumtext-attribute.md +2 -0
  124. package/docs/examples/databases/create-operations.md +2 -0
  125. package/docs/examples/databases/create-point-attribute.md +2 -0
  126. package/docs/examples/databases/create-polygon-attribute.md +2 -0
  127. package/docs/examples/databases/create-relationship-attribute.md +2 -0
  128. package/docs/examples/databases/create-string-attribute.md +2 -0
  129. package/docs/examples/databases/create-text-attribute.md +2 -0
  130. package/docs/examples/databases/create-transaction.md +2 -0
  131. package/docs/examples/databases/create-url-attribute.md +2 -0
  132. package/docs/examples/databases/create-varchar-attribute.md +2 -0
  133. package/docs/examples/databases/create.md +2 -0
  134. package/docs/examples/databases/decrement-document-attribute.md +2 -0
  135. package/docs/examples/databases/delete-attribute.md +2 -0
  136. package/docs/examples/databases/delete-collection.md +2 -0
  137. package/docs/examples/databases/delete-document.md +2 -0
  138. package/docs/examples/databases/delete-documents.md +2 -0
  139. package/docs/examples/databases/delete-index.md +2 -0
  140. package/docs/examples/databases/delete-transaction.md +2 -0
  141. package/docs/examples/databases/delete.md +2 -0
  142. package/docs/examples/databases/get-attribute.md +2 -0
  143. package/docs/examples/databases/get-collection-usage.md +2 -0
  144. package/docs/examples/databases/get-collection.md +2 -0
  145. package/docs/examples/databases/get-document.md +2 -0
  146. package/docs/examples/databases/get-index.md +2 -0
  147. package/docs/examples/databases/get-transaction.md +2 -0
  148. package/docs/examples/databases/get-usage.md +2 -0
  149. package/docs/examples/databases/get.md +2 -0
  150. package/docs/examples/databases/increment-document-attribute.md +2 -0
  151. package/docs/examples/databases/list-attributes.md +2 -0
  152. package/docs/examples/databases/list-collection-logs.md +2 -0
  153. package/docs/examples/databases/list-collections.md +2 -0
  154. package/docs/examples/databases/list-document-logs.md +2 -0
  155. package/docs/examples/databases/list-documents.md +2 -0
  156. package/docs/examples/databases/list-indexes.md +2 -0
  157. package/docs/examples/databases/list-logs.md +2 -0
  158. package/docs/examples/databases/list-transactions.md +2 -0
  159. package/docs/examples/databases/list-usage.md +2 -0
  160. package/docs/examples/databases/list.md +2 -0
  161. package/docs/examples/databases/update-boolean-attribute.md +2 -0
  162. package/docs/examples/databases/update-collection.md +2 -0
  163. package/docs/examples/databases/update-datetime-attribute.md +2 -0
  164. package/docs/examples/databases/update-document.md +2 -0
  165. package/docs/examples/databases/update-documents.md +2 -0
  166. package/docs/examples/databases/update-email-attribute.md +2 -0
  167. package/docs/examples/databases/update-enum-attribute.md +2 -0
  168. package/docs/examples/databases/update-float-attribute.md +2 -0
  169. package/docs/examples/databases/update-integer-attribute.md +2 -0
  170. package/docs/examples/databases/update-ip-attribute.md +2 -0
  171. package/docs/examples/databases/update-line-attribute.md +2 -0
  172. package/docs/examples/databases/update-longtext-attribute.md +2 -0
  173. package/docs/examples/databases/update-mediumtext-attribute.md +2 -0
  174. package/docs/examples/databases/update-point-attribute.md +2 -0
  175. package/docs/examples/databases/update-polygon-attribute.md +2 -0
  176. package/docs/examples/databases/update-relationship-attribute.md +2 -0
  177. package/docs/examples/databases/update-string-attribute.md +2 -0
  178. package/docs/examples/databases/update-text-attribute.md +2 -0
  179. package/docs/examples/databases/update-transaction.md +2 -0
  180. package/docs/examples/databases/update-url-attribute.md +2 -0
  181. package/docs/examples/databases/update-varchar-attribute.md +2 -0
  182. package/docs/examples/databases/update.md +2 -0
  183. package/docs/examples/databases/upsert-document.md +2 -0
  184. package/docs/examples/databases/upsert-documents.md +2 -0
  185. package/docs/examples/domains/create-preset-google-workspace.md +2 -0
  186. package/docs/examples/domains/create-preset-i-cloud.md +2 -0
  187. package/docs/examples/domains/create-preset-mailgun.md +2 -0
  188. package/docs/examples/domains/create-preset-outlook.md +2 -0
  189. package/docs/examples/domains/create-preset-proton-mail.md +2 -0
  190. package/docs/examples/domains/create-preset-zoho.md +2 -0
  191. package/docs/examples/domains/create-record-a.md +2 -0
  192. package/docs/examples/domains/create-record-aaaa.md +2 -0
  193. package/docs/examples/domains/create-record-alias.md +2 -0
  194. package/docs/examples/domains/create-record-caa.md +2 -0
  195. package/docs/examples/domains/create-record-cname.md +2 -0
  196. package/docs/examples/domains/create-record-https.md +2 -0
  197. package/docs/examples/domains/create-record-mx.md +2 -0
  198. package/docs/examples/domains/create-record-ns.md +2 -0
  199. package/docs/examples/domains/create-record-srv.md +2 -0
  200. package/docs/examples/domains/create-record-txt.md +2 -0
  201. package/docs/examples/domains/create.md +2 -0
  202. package/docs/examples/domains/delete-record.md +2 -0
  203. package/docs/examples/domains/delete.md +2 -0
  204. package/docs/examples/domains/get-preset-google-workspace.md +2 -0
  205. package/docs/examples/domains/get-preset-i-cloud.md +2 -0
  206. package/docs/examples/domains/get-preset-mailgun.md +2 -0
  207. package/docs/examples/domains/get-preset-outlook.md +2 -0
  208. package/docs/examples/domains/get-preset-proton-mail.md +2 -0
  209. package/docs/examples/domains/get-preset-zoho.md +2 -0
  210. package/docs/examples/domains/get-price.md +17 -0
  211. package/docs/examples/domains/get-record.md +2 -0
  212. package/docs/examples/domains/get-zone.md +2 -0
  213. package/docs/examples/domains/get.md +2 -0
  214. package/docs/examples/domains/list-records.md +2 -0
  215. package/docs/examples/domains/list-suggestions.md +2 -0
  216. package/docs/examples/domains/list.md +2 -0
  217. package/docs/examples/domains/update-nameservers.md +2 -0
  218. package/docs/examples/domains/update-record-a.md +2 -0
  219. package/docs/examples/domains/update-record-aaaa.md +2 -0
  220. package/docs/examples/domains/update-record-alias.md +2 -0
  221. package/docs/examples/domains/update-record-caa.md +2 -0
  222. package/docs/examples/domains/update-record-cname.md +2 -0
  223. package/docs/examples/domains/update-record-https.md +2 -0
  224. package/docs/examples/domains/update-record-mx.md +2 -0
  225. package/docs/examples/domains/update-record-ns.md +2 -0
  226. package/docs/examples/domains/update-record-srv.md +2 -0
  227. package/docs/examples/domains/update-record-txt.md +2 -0
  228. package/docs/examples/domains/update-team.md +2 -0
  229. package/docs/examples/domains/update-zone.md +2 -0
  230. package/docs/examples/functions/create-deployment.md +2 -0
  231. package/docs/examples/functions/create-duplicate-deployment.md +2 -0
  232. package/docs/examples/functions/create-execution.md +2 -0
  233. package/docs/examples/functions/create-template-deployment.md +2 -0
  234. package/docs/examples/functions/create-variable.md +2 -0
  235. package/docs/examples/functions/create-vcs-deployment.md +2 -0
  236. package/docs/examples/functions/create.md +2 -0
  237. package/docs/examples/functions/delete-deployment.md +2 -0
  238. package/docs/examples/functions/delete-execution.md +2 -0
  239. package/docs/examples/functions/delete-variable.md +2 -0
  240. package/docs/examples/functions/delete.md +2 -0
  241. package/docs/examples/functions/get-deployment-download.md +2 -0
  242. package/docs/examples/functions/get-deployment.md +2 -0
  243. package/docs/examples/functions/get-execution.md +2 -0
  244. package/docs/examples/functions/get-template.md +2 -0
  245. package/docs/examples/functions/get-usage.md +2 -0
  246. package/docs/examples/functions/get-variable.md +2 -0
  247. package/docs/examples/functions/get.md +2 -0
  248. package/docs/examples/functions/list-deployments.md +2 -0
  249. package/docs/examples/functions/list-executions.md +2 -0
  250. package/docs/examples/functions/list-runtimes.md +2 -0
  251. package/docs/examples/functions/list-specifications.md +2 -0
  252. package/docs/examples/functions/list-templates.md +2 -0
  253. package/docs/examples/functions/list-usage.md +2 -0
  254. package/docs/examples/functions/list-variables.md +2 -0
  255. package/docs/examples/functions/list.md +2 -0
  256. package/docs/examples/functions/update-deployment-status.md +2 -0
  257. package/docs/examples/functions/update-function-deployment.md +2 -0
  258. package/docs/examples/functions/update-variable.md +2 -0
  259. package/docs/examples/functions/update.md +2 -0
  260. package/docs/examples/graphql/mutation.md +2 -0
  261. package/docs/examples/graphql/query.md +2 -0
  262. package/docs/examples/health/get-antivirus.md +2 -0
  263. package/docs/examples/health/get-cache.md +2 -0
  264. package/docs/examples/health/get-certificate.md +2 -0
  265. package/docs/examples/health/get-db.md +2 -0
  266. package/docs/examples/health/get-failed-jobs.md +2 -0
  267. package/docs/examples/health/get-pub-sub.md +2 -0
  268. package/docs/examples/health/get-queue-audits.md +2 -0
  269. package/docs/examples/health/get-queue-billing-project-aggregation.md +2 -0
  270. package/docs/examples/health/get-queue-billing-team-aggregation.md +2 -0
  271. package/docs/examples/health/get-queue-builds.md +2 -0
  272. package/docs/examples/health/get-queue-certificates.md +2 -0
  273. package/docs/examples/health/get-queue-databases.md +2 -0
  274. package/docs/examples/health/get-queue-deletes.md +2 -0
  275. package/docs/examples/health/get-queue-functions.md +2 -0
  276. package/docs/examples/health/get-queue-logs.md +2 -0
  277. package/docs/examples/health/get-queue-mails.md +2 -0
  278. package/docs/examples/health/get-queue-messaging.md +2 -0
  279. package/docs/examples/health/get-queue-migrations.md +2 -0
  280. package/docs/examples/health/get-queue-priority-builds.md +2 -0
  281. package/docs/examples/health/get-queue-region-manager.md +2 -0
  282. package/docs/examples/health/get-queue-stats-resources.md +2 -0
  283. package/docs/examples/health/get-queue-threats.md +2 -0
  284. package/docs/examples/health/get-queue-usage.md +2 -0
  285. package/docs/examples/health/get-queue-webhooks.md +2 -0
  286. package/docs/examples/health/get-storage-local.md +2 -0
  287. package/docs/examples/health/get-storage.md +2 -0
  288. package/docs/examples/health/get-time.md +2 -0
  289. package/docs/examples/health/get.md +2 -0
  290. package/docs/examples/locale/get.md +2 -0
  291. package/docs/examples/locale/list-codes.md +2 -0
  292. package/docs/examples/locale/list-continents.md +2 -0
  293. package/docs/examples/locale/list-countries-eu.md +2 -0
  294. package/docs/examples/locale/list-countries-phones.md +2 -0
  295. package/docs/examples/locale/list-countries.md +2 -0
  296. package/docs/examples/locale/list-currencies.md +2 -0
  297. package/docs/examples/locale/list-languages.md +2 -0
  298. package/docs/examples/messaging/create-apns-provider.md +2 -0
  299. package/docs/examples/messaging/create-email.md +2 -0
  300. package/docs/examples/messaging/create-fcm-provider.md +2 -0
  301. package/docs/examples/messaging/create-mailgun-provider.md +2 -0
  302. package/docs/examples/messaging/create-msg-91-provider.md +2 -0
  303. package/docs/examples/messaging/create-push.md +2 -0
  304. package/docs/examples/messaging/create-resend-provider.md +2 -0
  305. package/docs/examples/messaging/create-sendgrid-provider.md +2 -0
  306. package/docs/examples/messaging/create-sms.md +2 -0
  307. package/docs/examples/messaging/create-smtp-provider.md +2 -0
  308. package/docs/examples/messaging/create-subscriber.md +2 -0
  309. package/docs/examples/messaging/create-telesign-provider.md +2 -0
  310. package/docs/examples/messaging/create-textmagic-provider.md +2 -0
  311. package/docs/examples/messaging/create-topic.md +2 -0
  312. package/docs/examples/messaging/create-twilio-provider.md +2 -0
  313. package/docs/examples/messaging/create-vonage-provider.md +2 -0
  314. package/docs/examples/messaging/delete-provider.md +2 -0
  315. package/docs/examples/messaging/delete-subscriber.md +2 -0
  316. package/docs/examples/messaging/delete-topic.md +2 -0
  317. package/docs/examples/messaging/delete.md +2 -0
  318. package/docs/examples/messaging/get-message.md +2 -0
  319. package/docs/examples/messaging/get-provider.md +2 -0
  320. package/docs/examples/messaging/get-subscriber.md +2 -0
  321. package/docs/examples/messaging/get-topic.md +2 -0
  322. package/docs/examples/messaging/list-message-logs.md +2 -0
  323. package/docs/examples/messaging/list-messages.md +2 -0
  324. package/docs/examples/messaging/list-provider-logs.md +2 -0
  325. package/docs/examples/messaging/list-providers.md +2 -0
  326. package/docs/examples/messaging/list-subscriber-logs.md +2 -0
  327. package/docs/examples/messaging/list-subscribers.md +2 -0
  328. package/docs/examples/messaging/list-targets.md +2 -0
  329. package/docs/examples/messaging/list-topic-logs.md +2 -0
  330. package/docs/examples/messaging/list-topics.md +2 -0
  331. package/docs/examples/messaging/update-apns-provider.md +2 -0
  332. package/docs/examples/messaging/update-email.md +2 -0
  333. package/docs/examples/messaging/update-fcm-provider.md +2 -0
  334. package/docs/examples/messaging/update-mailgun-provider.md +2 -0
  335. package/docs/examples/messaging/update-msg-91-provider.md +2 -0
  336. package/docs/examples/messaging/update-push.md +2 -0
  337. package/docs/examples/messaging/update-resend-provider.md +2 -0
  338. package/docs/examples/messaging/update-sendgrid-provider.md +2 -0
  339. package/docs/examples/messaging/update-sms.md +2 -0
  340. package/docs/examples/messaging/update-smtp-provider.md +2 -0
  341. package/docs/examples/messaging/update-telesign-provider.md +2 -0
  342. package/docs/examples/messaging/update-textmagic-provider.md +2 -0
  343. package/docs/examples/messaging/update-topic.md +2 -0
  344. package/docs/examples/messaging/update-twilio-provider.md +2 -0
  345. package/docs/examples/messaging/update-vonage-provider.md +2 -0
  346. package/docs/examples/migrations/create-appwrite-migration.md +2 -0
  347. package/docs/examples/migrations/create-csv-export.md +2 -0
  348. package/docs/examples/migrations/create-csv-import.md +2 -0
  349. package/docs/examples/migrations/create-firebase-migration.md +2 -0
  350. package/docs/examples/migrations/create-n-host-migration.md +2 -0
  351. package/docs/examples/migrations/create-supabase-migration.md +2 -0
  352. package/docs/examples/migrations/delete.md +2 -0
  353. package/docs/examples/migrations/get-appwrite-report.md +2 -0
  354. package/docs/examples/migrations/get-firebase-report.md +2 -0
  355. package/docs/examples/migrations/get-n-host-report.md +2 -0
  356. package/docs/examples/migrations/get-supabase-report.md +2 -0
  357. package/docs/examples/migrations/get.md +2 -0
  358. package/docs/examples/migrations/list.md +2 -0
  359. package/docs/examples/migrations/retry.md +2 -0
  360. package/docs/examples/organizations/add-credit.md +2 -0
  361. package/docs/examples/organizations/cancel-downgrade.md +2 -0
  362. package/docs/examples/organizations/create-downgrade-feedback.md +2 -0
  363. package/docs/examples/organizations/create-invoice-payment.md +2 -0
  364. package/docs/examples/organizations/create-key.md +2 -0
  365. package/docs/examples/organizations/create.md +2 -0
  366. package/docs/examples/organizations/delete-backup-payment-method.md +2 -0
  367. package/docs/examples/organizations/delete-billing-address.md +2 -0
  368. package/docs/examples/organizations/delete-default-payment-method.md +2 -0
  369. package/docs/examples/organizations/delete-key.md +2 -0
  370. package/docs/examples/organizations/delete.md +2 -0
  371. package/docs/examples/organizations/estimation-create-organization.md +2 -0
  372. package/docs/examples/organizations/estimation-delete-organization.md +2 -0
  373. package/docs/examples/organizations/estimation-update-plan.md +2 -0
  374. package/docs/examples/organizations/get-aggregation.md +2 -0
  375. package/docs/examples/organizations/get-available-credits.md +2 -0
  376. package/docs/examples/organizations/get-billing-address.md +2 -0
  377. package/docs/examples/organizations/get-credit.md +2 -0
  378. package/docs/examples/organizations/get-invoice-download.md +2 -0
  379. package/docs/examples/organizations/get-invoice-view.md +2 -0
  380. package/docs/examples/organizations/get-invoice.md +2 -0
  381. package/docs/examples/organizations/get-key.md +2 -0
  382. package/docs/examples/organizations/get-payment-method.md +2 -0
  383. package/docs/examples/organizations/get-plan.md +2 -0
  384. package/docs/examples/organizations/get-scopes.md +2 -0
  385. package/docs/examples/organizations/get-usage.md +2 -0
  386. package/docs/examples/organizations/list-aggregations.md +2 -0
  387. package/docs/examples/organizations/list-credits.md +2 -0
  388. package/docs/examples/organizations/list-invoices.md +2 -0
  389. package/docs/examples/organizations/list-keys.md +2 -0
  390. package/docs/examples/organizations/list-regions.md +2 -0
  391. package/docs/examples/organizations/list.md +2 -0
  392. package/docs/examples/organizations/set-backup-payment-method.md +2 -0
  393. package/docs/examples/organizations/set-billing-address.md +2 -0
  394. package/docs/examples/organizations/set-billing-email.md +2 -0
  395. package/docs/examples/organizations/set-billing-tax-id.md +2 -0
  396. package/docs/examples/organizations/set-default-payment-method.md +2 -0
  397. package/docs/examples/organizations/update-budget.md +2 -0
  398. package/docs/examples/organizations/update-key.md +2 -0
  399. package/docs/examples/organizations/update-plan.md +2 -0
  400. package/docs/examples/organizations/validate-invoice.md +2 -0
  401. package/docs/examples/organizations/validate-payment.md +2 -0
  402. package/docs/examples/project/create-variable.md +2 -0
  403. package/docs/examples/project/delete-variable.md +2 -0
  404. package/docs/examples/project/get-usage.md +2 -0
  405. package/docs/examples/project/get-variable.md +2 -0
  406. package/docs/examples/project/list-variables.md +2 -0
  407. package/docs/examples/project/update-variable.md +2 -0
  408. package/docs/examples/projects/create-dev-key.md +2 -0
  409. package/docs/examples/projects/create-jwt.md +2 -0
  410. package/docs/examples/projects/create-key.md +3 -0
  411. package/docs/examples/projects/create-platform.md +2 -0
  412. package/docs/examples/projects/create-smtp-test.md +2 -0
  413. package/docs/examples/projects/create-webhook.md +2 -0
  414. package/docs/examples/projects/create.md +2 -0
  415. package/docs/examples/projects/delete-dev-key.md +2 -0
  416. package/docs/examples/projects/delete-email-template.md +2 -0
  417. package/docs/examples/projects/delete-key.md +2 -0
  418. package/docs/examples/projects/delete-platform.md +2 -0
  419. package/docs/examples/projects/delete-sms-template.md +2 -0
  420. package/docs/examples/projects/delete-webhook.md +2 -0
  421. package/docs/examples/projects/delete.md +2 -0
  422. package/docs/examples/projects/get-dev-key.md +2 -0
  423. package/docs/examples/projects/get-email-template.md +2 -0
  424. package/docs/examples/projects/get-key.md +2 -0
  425. package/docs/examples/projects/get-platform.md +2 -0
  426. package/docs/examples/projects/get-sms-template.md +2 -0
  427. package/docs/examples/projects/get-webhook.md +2 -0
  428. package/docs/examples/projects/get.md +2 -0
  429. package/docs/examples/projects/list-dev-keys.md +2 -0
  430. package/docs/examples/projects/list-keys.md +3 -0
  431. package/docs/examples/projects/list-platforms.md +2 -0
  432. package/docs/examples/projects/list-webhooks.md +2 -0
  433. package/docs/examples/projects/list.md +2 -0
  434. package/docs/examples/projects/update-api-status-all.md +2 -0
  435. package/docs/examples/projects/update-api-status.md +2 -0
  436. package/docs/examples/projects/update-auth-duration.md +2 -0
  437. package/docs/examples/projects/update-auth-limit.md +2 -0
  438. package/docs/examples/projects/update-auth-password-dictionary.md +2 -0
  439. package/docs/examples/projects/update-auth-password-history.md +2 -0
  440. package/docs/examples/projects/update-auth-sessions-limit.md +2 -0
  441. package/docs/examples/projects/update-auth-status.md +2 -0
  442. package/docs/examples/projects/update-dev-key.md +2 -0
  443. package/docs/examples/projects/update-email-template.md +2 -0
  444. package/docs/examples/projects/update-key.md +2 -0
  445. package/docs/examples/projects/update-labels.md +2 -0
  446. package/docs/examples/projects/update-memberships-privacy.md +2 -0
  447. package/docs/examples/projects/update-mock-numbers.md +2 -0
  448. package/docs/examples/projects/update-o-auth-2.md +2 -0
  449. package/docs/examples/projects/update-personal-data-check.md +2 -0
  450. package/docs/examples/projects/update-platform.md +2 -0
  451. package/docs/examples/projects/update-service-status-all.md +2 -0
  452. package/docs/examples/projects/update-service-status.md +2 -0
  453. package/docs/examples/projects/update-session-alerts.md +2 -0
  454. package/docs/examples/projects/update-session-invalidation.md +2 -0
  455. package/docs/examples/projects/update-sms-template.md +2 -0
  456. package/docs/examples/projects/update-smtp.md +2 -0
  457. package/docs/examples/projects/update-team.md +2 -0
  458. package/docs/examples/projects/update-webhook-signature.md +2 -0
  459. package/docs/examples/projects/update-webhook.md +2 -0
  460. package/docs/examples/projects/update.md +2 -0
  461. package/docs/examples/proxy/create-api-rule.md +2 -0
  462. package/docs/examples/proxy/create-function-rule.md +2 -0
  463. package/docs/examples/proxy/create-redirect-rule.md +2 -0
  464. package/docs/examples/proxy/create-site-rule.md +2 -0
  465. package/docs/examples/proxy/delete-rule.md +2 -0
  466. package/docs/examples/proxy/get-rule.md +2 -0
  467. package/docs/examples/proxy/list-rules.md +2 -0
  468. package/docs/examples/proxy/update-rule-verification.md +2 -0
  469. package/docs/examples/sites/create-deployment.md +2 -0
  470. package/docs/examples/sites/create-duplicate-deployment.md +2 -0
  471. package/docs/examples/sites/create-template-deployment.md +2 -0
  472. package/docs/examples/sites/create-variable.md +2 -0
  473. package/docs/examples/sites/create-vcs-deployment.md +2 -0
  474. package/docs/examples/sites/create.md +2 -0
  475. package/docs/examples/sites/delete-deployment.md +2 -0
  476. package/docs/examples/sites/delete-log.md +2 -0
  477. package/docs/examples/sites/delete-variable.md +2 -0
  478. package/docs/examples/sites/delete.md +2 -0
  479. package/docs/examples/sites/get-deployment-download.md +2 -0
  480. package/docs/examples/sites/get-deployment.md +2 -0
  481. package/docs/examples/sites/get-log.md +2 -0
  482. package/docs/examples/sites/get-template.md +2 -0
  483. package/docs/examples/sites/get-usage.md +2 -0
  484. package/docs/examples/sites/get-variable.md +2 -0
  485. package/docs/examples/sites/get.md +2 -0
  486. package/docs/examples/sites/list-deployments.md +2 -0
  487. package/docs/examples/sites/list-frameworks.md +2 -0
  488. package/docs/examples/sites/list-logs.md +2 -0
  489. package/docs/examples/sites/list-specifications.md +2 -0
  490. package/docs/examples/sites/list-templates.md +2 -0
  491. package/docs/examples/sites/list-usage.md +2 -0
  492. package/docs/examples/sites/list-variables.md +2 -0
  493. package/docs/examples/sites/list.md +2 -0
  494. package/docs/examples/sites/update-deployment-status.md +2 -0
  495. package/docs/examples/sites/update-site-deployment.md +2 -0
  496. package/docs/examples/sites/update-variable.md +2 -0
  497. package/docs/examples/sites/update.md +2 -0
  498. package/docs/examples/storage/create-bucket.md +2 -0
  499. package/docs/examples/storage/create-file.md +2 -0
  500. package/docs/examples/storage/delete-bucket.md +2 -0
  501. package/docs/examples/storage/delete-file.md +2 -0
  502. package/docs/examples/storage/get-bucket-usage.md +2 -0
  503. package/docs/examples/storage/get-bucket.md +2 -0
  504. package/docs/examples/storage/get-file-download.md +2 -0
  505. package/docs/examples/storage/get-file-preview.md +2 -0
  506. package/docs/examples/storage/get-file-view.md +2 -0
  507. package/docs/examples/storage/get-file.md +2 -0
  508. package/docs/examples/storage/get-usage.md +2 -0
  509. package/docs/examples/storage/list-buckets.md +2 -0
  510. package/docs/examples/storage/list-files.md +2 -0
  511. package/docs/examples/storage/update-bucket.md +2 -0
  512. package/docs/examples/storage/update-file.md +2 -0
  513. package/docs/examples/tablesdb/create-boolean-column.md +2 -0
  514. package/docs/examples/tablesdb/create-datetime-column.md +2 -0
  515. package/docs/examples/tablesdb/create-email-column.md +2 -0
  516. package/docs/examples/tablesdb/create-enum-column.md +2 -0
  517. package/docs/examples/tablesdb/create-float-column.md +2 -0
  518. package/docs/examples/tablesdb/create-index.md +2 -0
  519. package/docs/examples/tablesdb/create-integer-column.md +2 -0
  520. package/docs/examples/tablesdb/create-ip-column.md +2 -0
  521. package/docs/examples/tablesdb/create-line-column.md +2 -0
  522. package/docs/examples/tablesdb/create-longtext-column.md +2 -0
  523. package/docs/examples/tablesdb/create-mediumtext-column.md +2 -0
  524. package/docs/examples/tablesdb/create-operations.md +2 -0
  525. package/docs/examples/tablesdb/create-point-column.md +2 -0
  526. package/docs/examples/tablesdb/create-polygon-column.md +2 -0
  527. package/docs/examples/tablesdb/create-relationship-column.md +2 -0
  528. package/docs/examples/tablesdb/create-row.md +2 -0
  529. package/docs/examples/tablesdb/create-rows.md +2 -0
  530. package/docs/examples/tablesdb/create-string-column.md +2 -0
  531. package/docs/examples/tablesdb/create-table.md +2 -0
  532. package/docs/examples/tablesdb/create-text-column.md +2 -0
  533. package/docs/examples/tablesdb/create-transaction.md +2 -0
  534. package/docs/examples/tablesdb/create-url-column.md +2 -0
  535. package/docs/examples/tablesdb/create-varchar-column.md +2 -0
  536. package/docs/examples/tablesdb/create.md +2 -0
  537. package/docs/examples/tablesdb/decrement-row-column.md +2 -0
  538. package/docs/examples/tablesdb/delete-column.md +2 -0
  539. package/docs/examples/tablesdb/delete-index.md +2 -0
  540. package/docs/examples/tablesdb/delete-row.md +2 -0
  541. package/docs/examples/tablesdb/delete-rows.md +2 -0
  542. package/docs/examples/tablesdb/delete-table.md +2 -0
  543. package/docs/examples/tablesdb/delete-transaction.md +2 -0
  544. package/docs/examples/tablesdb/delete.md +2 -0
  545. package/docs/examples/tablesdb/get-column.md +2 -0
  546. package/docs/examples/tablesdb/get-index.md +2 -0
  547. package/docs/examples/tablesdb/get-row.md +2 -0
  548. package/docs/examples/tablesdb/get-table-usage.md +2 -0
  549. package/docs/examples/tablesdb/get-table.md +2 -0
  550. package/docs/examples/tablesdb/get-transaction.md +2 -0
  551. package/docs/examples/tablesdb/get-usage.md +2 -0
  552. package/docs/examples/tablesdb/get.md +2 -0
  553. package/docs/examples/tablesdb/increment-row-column.md +2 -0
  554. package/docs/examples/tablesdb/list-columns.md +2 -0
  555. package/docs/examples/tablesdb/list-indexes.md +2 -0
  556. package/docs/examples/tablesdb/list-row-logs.md +2 -0
  557. package/docs/examples/tablesdb/list-rows.md +2 -0
  558. package/docs/examples/tablesdb/list-table-logs.md +2 -0
  559. package/docs/examples/tablesdb/list-tables.md +2 -0
  560. package/docs/examples/tablesdb/list-transactions.md +2 -0
  561. package/docs/examples/tablesdb/list-usage.md +2 -0
  562. package/docs/examples/tablesdb/list.md +2 -0
  563. package/docs/examples/tablesdb/update-boolean-column.md +2 -0
  564. package/docs/examples/tablesdb/update-datetime-column.md +2 -0
  565. package/docs/examples/tablesdb/update-email-column.md +2 -0
  566. package/docs/examples/tablesdb/update-enum-column.md +2 -0
  567. package/docs/examples/tablesdb/update-float-column.md +2 -0
  568. package/docs/examples/tablesdb/update-integer-column.md +2 -0
  569. package/docs/examples/tablesdb/update-ip-column.md +2 -0
  570. package/docs/examples/tablesdb/update-line-column.md +2 -0
  571. package/docs/examples/tablesdb/update-longtext-column.md +2 -0
  572. package/docs/examples/tablesdb/update-mediumtext-column.md +2 -0
  573. package/docs/examples/tablesdb/update-point-column.md +2 -0
  574. package/docs/examples/tablesdb/update-polygon-column.md +2 -0
  575. package/docs/examples/tablesdb/update-relationship-column.md +2 -0
  576. package/docs/examples/tablesdb/update-row.md +2 -0
  577. package/docs/examples/tablesdb/update-rows.md +2 -0
  578. package/docs/examples/tablesdb/update-string-column.md +2 -0
  579. package/docs/examples/tablesdb/update-table.md +2 -0
  580. package/docs/examples/tablesdb/update-text-column.md +2 -0
  581. package/docs/examples/tablesdb/update-transaction.md +2 -0
  582. package/docs/examples/tablesdb/update-url-column.md +2 -0
  583. package/docs/examples/tablesdb/update-varchar-column.md +2 -0
  584. package/docs/examples/tablesdb/update.md +2 -0
  585. package/docs/examples/tablesdb/upsert-row.md +2 -0
  586. package/docs/examples/tablesdb/upsert-rows.md +2 -0
  587. package/docs/examples/teams/create-membership.md +4 -2
  588. package/docs/examples/teams/create.md +2 -0
  589. package/docs/examples/teams/delete-membership.md +2 -0
  590. package/docs/examples/teams/delete.md +2 -0
  591. package/docs/examples/teams/get-membership.md +2 -0
  592. package/docs/examples/teams/get-prefs.md +2 -0
  593. package/docs/examples/teams/get.md +2 -0
  594. package/docs/examples/teams/list-logs.md +2 -0
  595. package/docs/examples/teams/list-memberships.md +2 -0
  596. package/docs/examples/teams/list.md +2 -0
  597. package/docs/examples/teams/update-membership-status.md +2 -0
  598. package/docs/examples/teams/update-membership.md +4 -2
  599. package/docs/examples/teams/update-name.md +2 -0
  600. package/docs/examples/teams/update-prefs.md +2 -0
  601. package/docs/examples/tokens/create-file-token.md +2 -0
  602. package/docs/examples/tokens/delete.md +2 -0
  603. package/docs/examples/tokens/get.md +2 -0
  604. package/docs/examples/tokens/list.md +2 -0
  605. package/docs/examples/tokens/update.md +2 -0
  606. package/docs/examples/users/create-argon-2-user.md +2 -0
  607. package/docs/examples/users/create-bcrypt-user.md +2 -0
  608. package/docs/examples/users/create-jwt.md +2 -0
  609. package/docs/examples/users/create-md-5-user.md +2 -0
  610. package/docs/examples/users/create-mfa-recovery-codes.md +2 -0
  611. package/docs/examples/users/create-ph-pass-user.md +2 -0
  612. package/docs/examples/users/create-scrypt-modified-user.md +2 -0
  613. package/docs/examples/users/create-scrypt-user.md +2 -0
  614. package/docs/examples/users/create-session.md +2 -0
  615. package/docs/examples/users/create-sha-user.md +2 -0
  616. package/docs/examples/users/create-target.md +2 -0
  617. package/docs/examples/users/create-token.md +2 -0
  618. package/docs/examples/users/create.md +2 -0
  619. package/docs/examples/users/delete-identity.md +2 -0
  620. package/docs/examples/users/delete-mfa-authenticator.md +2 -0
  621. package/docs/examples/users/delete-session.md +2 -0
  622. package/docs/examples/users/delete-sessions.md +2 -0
  623. package/docs/examples/users/delete-target.md +2 -0
  624. package/docs/examples/users/delete.md +2 -0
  625. package/docs/examples/users/get-mfa-recovery-codes.md +2 -0
  626. package/docs/examples/users/get-prefs.md +2 -0
  627. package/docs/examples/users/get-target.md +2 -0
  628. package/docs/examples/users/get-usage.md +2 -0
  629. package/docs/examples/users/get.md +2 -0
  630. package/docs/examples/users/list-identities.md +2 -0
  631. package/docs/examples/users/list-logs.md +2 -0
  632. package/docs/examples/users/list-memberships.md +2 -0
  633. package/docs/examples/users/list-mfa-factors.md +2 -0
  634. package/docs/examples/users/list-sessions.md +2 -0
  635. package/docs/examples/users/list-targets.md +2 -0
  636. package/docs/examples/users/list.md +2 -0
  637. package/docs/examples/users/update-email-verification.md +2 -0
  638. package/docs/examples/users/update-email.md +2 -0
  639. package/docs/examples/users/update-labels.md +2 -0
  640. package/docs/examples/users/update-mfa-recovery-codes.md +2 -0
  641. package/docs/examples/users/update-mfa.md +2 -0
  642. package/docs/examples/users/update-name.md +2 -0
  643. package/docs/examples/users/update-password.md +2 -0
  644. package/docs/examples/users/update-phone-verification.md +2 -0
  645. package/docs/examples/users/update-phone.md +2 -0
  646. package/docs/examples/users/update-prefs.md +2 -0
  647. package/docs/examples/users/update-status.md +2 -0
  648. package/docs/examples/users/update-target.md +2 -0
  649. package/docs/examples/vcs/create-repository-detection.md +2 -0
  650. package/docs/examples/vcs/create-repository.md +2 -0
  651. package/docs/examples/vcs/delete-installation.md +2 -0
  652. package/docs/examples/vcs/get-installation.md +2 -0
  653. package/docs/examples/vcs/get-repository-contents.md +2 -0
  654. package/docs/examples/vcs/get-repository.md +2 -0
  655. package/docs/examples/vcs/list-installations.md +2 -0
  656. package/docs/examples/vcs/list-repositories.md +2 -0
  657. package/docs/examples/vcs/list-repository-branches.md +2 -0
  658. package/docs/examples/vcs/update-external-deployments.md +2 -0
  659. package/package.json +1 -1
  660. package/src/channel.ts +30 -18
  661. package/src/client.ts +108 -22
  662. package/src/enums/{services.ts → backup-services.ts} +1 -1
  663. package/src/enums/build-runtime.ts +5 -0
  664. package/src/enums/registration-type.ts +6 -0
  665. package/src/enums/runtime.ts +5 -0
  666. package/src/enums/runtimes.ts +5 -0
  667. package/src/enums/scopes.ts +1 -0
  668. package/src/index.ts +2 -3
  669. package/src/models.ts +45 -3
  670. package/src/services/account.ts +11 -11
  671. package/src/services/avatars.ts +3 -3
  672. package/src/services/backups.ts +28 -28
  673. package/src/services/console.ts +1 -1
  674. package/src/services/databases.ts +1 -1
  675. package/src/services/domains.ts +70 -0
  676. package/src/services/functions.ts +2 -2
  677. package/src/services/graphql.ts +2 -2
  678. package/src/services/health.ts +1 -1
  679. package/src/services/migrations.ts +8 -8
  680. package/src/services/organizations.ts +0 -60
  681. package/src/services/projects.ts +28 -78
  682. package/src/services/realtime.ts +135 -58
  683. package/src/services/sites.ts +2 -2
  684. package/src/services/storage.ts +1 -1
  685. package/src/services/tables-db.ts +1 -1
  686. package/src/services/teams.ts +18 -19
  687. package/src/services/users.ts +1 -1
  688. package/types/channel.d.ts +4 -3
  689. package/types/client.d.ts +7 -2
  690. package/types/enums/{services.d.ts → backup-services.d.ts} +1 -1
  691. package/types/enums/build-runtime.d.ts +6 -1
  692. package/types/enums/registration-type.d.ts +6 -0
  693. package/types/enums/runtime.d.ts +6 -1
  694. package/types/enums/runtimes.d.ts +6 -1
  695. package/types/enums/scopes.d.ts +2 -1
  696. package/types/index.d.ts +2 -3
  697. package/types/models.d.ts +44 -3
  698. package/types/services/backups.d.ts +13 -13
  699. package/types/services/domains.d.ts +26 -0
  700. package/types/services/organizations.d.ts +0 -22
  701. package/types/services/projects.d.ts +8 -25
  702. package/types/services/realtime.d.ts +13 -6
  703. package/types/services/teams.d.ts +8 -9
  704. package/docs/examples/organizations/update-projects.md +0 -14
  705. package/docs/examples/projects/update-status.md +0 -14
  706. package/src/enums/roles.ts +0 -7
  707. package/src/enums/status.ts +0 -4
  708. package/types/enums/roles.d.ts +0 -7
  709. package/types/enums/status.d.ts +0 -4
@@ -1,5 +1,6 @@
1
1
  import { AppwriteException, Client } from '../client';
2
2
  import { Channel, ActionableChannel, ResolvedChannel } from '../channel';
3
+ import { Query } from '../query';
3
4
 
4
5
  export type RealtimeSubscription = {
5
6
  close: () => Promise<void>;
@@ -7,6 +8,7 @@ export type RealtimeSubscription = {
7
8
 
8
9
  export type RealtimeCallback<T = any> = {
9
10
  channels: Set<string>;
11
+ queries: string[]; // Array of query strings
10
12
  callback: (event: RealtimeResponseEvent<T>) => void;
11
13
  }
12
14
 
@@ -20,11 +22,13 @@ export type RealtimeResponseEvent<T = any> = {
20
22
  channels: string[];
21
23
  timestamp: string;
22
24
  payload: T;
25
+ subscriptions: string[]; // Backend-provided subscription IDs
23
26
  }
24
27
 
25
28
  export type RealtimeResponseConnected = {
26
29
  channels: string[];
27
30
  user?: object;
31
+ subscriptions?: { [slot: string]: string }; // Map slot index -> subscriptionId
28
32
  }
29
33
 
30
34
  export type RealtimeRequest = {
@@ -50,13 +54,18 @@ export class Realtime {
50
54
 
51
55
  private client: Client;
52
56
  private socket?: WebSocket;
53
- private activeChannels = new Set<string>();
57
+ // Slot-centric state: Map<slot, { channels: Set<string>, queries: string[], callback: Function }>
54
58
  private activeSubscriptions = new Map<number, RealtimeCallback<any>>();
59
+ // Map slot index -> subscriptionId (from backend)
60
+ private slotToSubscriptionId = new Map<number, string>();
61
+ // Inverse map: subscriptionId -> slot index (for O(1) lookup)
62
+ private subscriptionIdToSlot = new Map<string, number>();
55
63
  private heartbeatTimer?: number;
56
64
 
57
65
  private subCallDepth = 0;
58
66
  private reconnectAttempts = 0;
59
67
  private subscriptionsCounter = 0;
68
+ private connectionId = 0;
60
69
  private reconnect = true;
61
70
 
62
71
  private onErrorCallbacks: Array<(error?: Error, statusCode?: number) => void> = [];
@@ -114,7 +123,7 @@ export class Realtime {
114
123
  }
115
124
 
116
125
  private async createSocket(): Promise<void> {
117
- if (this.activeChannels.size === 0) {
126
+ if (this.activeSubscriptions.size === 0) {
118
127
  this.reconnect = false;
119
128
  await this.closeSocket();
120
129
  return;
@@ -125,11 +134,40 @@ export class Realtime {
125
134
  throw new AppwriteException('Missing project ID');
126
135
  }
127
136
 
137
+ // Collect all unique channels from all slots
138
+ const allChannels = new Set<string>();
139
+ for (const subscription of this.activeSubscriptions.values()) {
140
+ for (const channel of subscription.channels) {
141
+ allChannels.add(channel);
142
+ }
143
+ }
144
+
128
145
  let queryParams = `project=${projectId}`;
129
- for (const channel of this.activeChannels) {
146
+ for (const channel of allChannels) {
130
147
  queryParams += `&channels[]=${encodeURIComponent(channel)}`;
131
148
  }
132
149
 
150
+ // Build query string from slots → channels → queries
151
+ // Format: channel[slot][]=query
152
+ // For each slot, repeat its queries under each channel it subscribes to
153
+ // Example: slot 1 → channels [tests, prod], queries [q1, q2]
154
+ // Produces: tests[1][]=q1&tests[1][]=q2&prod[1][]=q1&prod[1][]=q2
155
+ const selectAllQuery = Query.select(['*']).toString();
156
+ for (const [slot, subscription] of this.activeSubscriptions) {
157
+ // queries is string[] - iterate over each query string
158
+ const queries = subscription.queries.length === 0
159
+ ? [selectAllQuery]
160
+ : subscription.queries;
161
+
162
+ // Repeat this slot's queries under each channel it subscribes to
163
+ // Each query is sent as a separate parameter: channel[slot][]=q1&channel[slot][]=q2
164
+ for (const channel of subscription.channels) {
165
+ for (const query of queries) {
166
+ queryParams += `&${encodeURIComponent(channel)}[${slot}][]=${encodeURIComponent(query)}`;
167
+ }
168
+ }
169
+ }
170
+
133
171
  const endpoint =
134
172
  this.client.config.endpointRealtime !== ''
135
173
  ? this.client.config.endpointRealtime
@@ -141,21 +179,32 @@ export class Realtime {
141
179
 
142
180
  if (this.socket) {
143
181
  this.reconnect = false;
144
- await this.closeSocket();
182
+ if (this.socket.readyState < WebSocket.CLOSING) {
183
+ await this.closeSocket();
184
+ }
185
+ // Ensure reconnect isn't stuck false if close event was missed.
186
+ this.reconnect = true;
145
187
  }
146
188
 
147
189
  return new Promise((resolve, reject) => {
148
190
  try {
149
- this.socket = new WebSocket(url);
191
+ const connectionId = ++this.connectionId;
192
+ const socket = (this.socket = new WebSocket(url));
150
193
 
151
- this.socket.addEventListener('open', () => {
194
+ socket.addEventListener('open', () => {
195
+ if (connectionId !== this.connectionId) {
196
+ return;
197
+ }
152
198
  this.reconnectAttempts = 0;
153
199
  this.onOpenCallbacks.forEach(callback => callback());
154
200
  this.startHeartbeat();
155
201
  resolve();
156
202
  });
157
203
 
158
- this.socket.addEventListener('message', (event: MessageEvent) => {
204
+ socket.addEventListener('message', (event: MessageEvent) => {
205
+ if (connectionId !== this.connectionId) {
206
+ return;
207
+ }
159
208
  try {
160
209
  const message = JSON.parse(event.data) as RealtimeResponse;
161
210
  this.handleMessage(message);
@@ -164,7 +213,10 @@ export class Realtime {
164
213
  }
165
214
  });
166
215
 
167
- this.socket.addEventListener('close', async (event: CloseEvent) => {
216
+ socket.addEventListener('close', async (event: CloseEvent) => {
217
+ if (connectionId !== this.connectionId || socket !== this.socket) {
218
+ return;
219
+ }
168
220
  this.stopHeartbeat();
169
221
  this.onCloseCallbacks.forEach(callback => callback());
170
222
 
@@ -186,7 +238,10 @@ export class Realtime {
186
238
  }
187
239
  });
188
240
 
189
- this.socket.addEventListener('error', (event: Event) => {
241
+ socket.addEventListener('error', (event: Event) => {
242
+ if (connectionId !== this.connectionId || socket !== this.socket) {
243
+ return;
244
+ }
190
245
  this.stopHeartbeat();
191
246
  const error = new Error('WebSocket error');
192
247
  console.error('WebSocket error:', error.message);
@@ -265,7 +320,8 @@ export class Realtime {
265
320
  */
266
321
  public async subscribe(
267
322
  channel: string | Channel<any> | ActionableChannel | ResolvedChannel,
268
- callback: (event: RealtimeResponseEvent<any>) => void
323
+ callback: (event: RealtimeResponseEvent<any>) => void,
324
+ queries?: (string | Query)[]
269
325
  ): Promise<RealtimeSubscription>;
270
326
 
271
327
  /**
@@ -277,7 +333,8 @@ export class Realtime {
277
333
  */
278
334
  public async subscribe(
279
335
  channels: (string | Channel<any> | ActionableChannel | ResolvedChannel)[],
280
- callback: (event: RealtimeResponseEvent<any>) => void
336
+ callback: (event: RealtimeResponseEvent<any>) => void,
337
+ queries?: (string | Query)[]
281
338
  ): Promise<RealtimeSubscription>;
282
339
 
283
340
  /**
@@ -289,7 +346,8 @@ export class Realtime {
289
346
  */
290
347
  public async subscribe<T>(
291
348
  channel: string | Channel<any> | ActionableChannel | ResolvedChannel,
292
- callback: (event: RealtimeResponseEvent<T>) => void
349
+ callback: (event: RealtimeResponseEvent<T>) => void,
350
+ queries?: (string | Query)[]
293
351
  ): Promise<RealtimeSubscription>;
294
352
 
295
353
  /**
@@ -301,12 +359,14 @@ export class Realtime {
301
359
  */
302
360
  public async subscribe<T>(
303
361
  channels: (string | Channel<any> | ActionableChannel | ResolvedChannel)[],
304
- callback: (event: RealtimeResponseEvent<T>) => void
362
+ callback: (event: RealtimeResponseEvent<T>) => void,
363
+ queries?: (string | Query)[]
305
364
  ): Promise<RealtimeSubscription>;
306
365
 
307
366
  public async subscribe<T = any>(
308
367
  channelsOrChannel: string | Channel<any> | ActionableChannel | ResolvedChannel | (string | Channel<any> | ActionableChannel | ResolvedChannel)[],
309
- callback: (event: RealtimeResponseEvent<T>) => void
368
+ callback: (event: RealtimeResponseEvent<T>) => void,
369
+ queries: (string | Query)[] = []
310
370
  ): Promise<RealtimeSubscription> {
311
371
  const channelArray = Array.isArray(channelsOrChannel)
312
372
  ? channelsOrChannel
@@ -316,15 +376,30 @@ export class Realtime {
316
376
  const channelStrings = channelArray.map(ch => this.channelToString(ch));
317
377
  const channels = new Set(channelStrings);
318
378
 
319
- this.subscriptionsCounter++;
320
- const count = this.subscriptionsCounter;
321
-
322
- for (const channel of channels) {
323
- this.activeChannels.add(channel);
379
+ // Convert queries to array of strings
380
+ // Ensure each query is a separate string in the array
381
+ const queryStrings: string[] = [];
382
+ for (const q of (queries ?? [])) {
383
+ if (Array.isArray(q)) {
384
+ // Handle nested arrays: [[q1, q2]] -> [q1, q2]
385
+ for (const inner of q) {
386
+ queryStrings.push(typeof inner === 'string' ? inner : inner.toString());
387
+ }
388
+ } else {
389
+ queryStrings.push(typeof q === 'string' ? q : q.toString());
390
+ }
324
391
  }
325
392
 
326
- this.activeSubscriptions.set(count, {
393
+ // Allocate a new slot index
394
+ this.subscriptionsCounter++;
395
+ const slot = this.subscriptionsCounter;
396
+
397
+ // Store slot-centric data: channels, queries, and callback belong to the slot
398
+ // queries is stored as string[] (array of query strings)
399
+ // No channel mutation occurs here - channels are derived from slots in createSocket()
400
+ this.activeSubscriptions.set(slot, {
327
401
  channels,
402
+ queries: queryStrings,
328
403
  callback
329
404
  });
330
405
 
@@ -340,27 +415,19 @@ export class Realtime {
340
415
 
341
416
  return {
342
417
  close: async () => {
343
- this.activeSubscriptions.delete(count);
344
- this.cleanUp(channels);
418
+ const subscriptionId = this.slotToSubscriptionId.get(slot);
419
+ this.activeSubscriptions.delete(slot);
420
+ this.slotToSubscriptionId.delete(slot);
421
+ if (subscriptionId) {
422
+ this.subscriptionIdToSlot.delete(subscriptionId);
423
+ }
345
424
  await this.createSocket();
346
425
  }
347
426
  };
348
427
  }
349
428
 
350
- private cleanUp(channels: Set<string>): void {
351
- this.activeChannels = new Set(
352
- Array.from(this.activeChannels).filter(channel => {
353
- if (!channels.has(channel)) {
354
- return true;
355
- }
356
-
357
- const subsWithChannel = Array.from(this.activeSubscriptions.values())
358
- .filter(sub => sub.channels.has(channel));
359
-
360
- return subsWithChannel.length > 0;
361
- })
362
- );
363
- }
429
+ // cleanUp is no longer needed - slots are removed directly in subscribe().close()
430
+ // Channels are automatically rebuilt from remaining slots in createSocket()
364
431
 
365
432
  private handleMessage(message: RealtimeResponse): void {
366
433
  if (!message.type) {
@@ -390,6 +457,20 @@ export class Realtime {
390
457
 
391
458
  const messageData = message.data as RealtimeResponseConnected;
392
459
 
460
+ // Store subscription ID mappings from backend
461
+ // Format: { "0": "sub_a1f9", "1": "sub_b83c", ... }
462
+ if (messageData.subscriptions) {
463
+ this.slotToSubscriptionId.clear();
464
+ this.subscriptionIdToSlot.clear();
465
+ for (const [slotStr, subscriptionId] of Object.entries(messageData.subscriptions)) {
466
+ const slot = Number(slotStr);
467
+ if (!isNaN(slot)) {
468
+ this.slotToSubscriptionId.set(slot, subscriptionId);
469
+ this.subscriptionIdToSlot.set(subscriptionId, slot);
470
+ }
471
+ }
472
+ }
473
+
393
474
  let session = this.client.config.session;
394
475
  if (!session) {
395
476
  try {
@@ -428,32 +509,28 @@ export class Realtime {
428
509
  const events = data.events as string[];
429
510
  const payload = data.payload;
430
511
  const timestamp = data.timestamp as string;
512
+ const subscriptions = data.subscriptions as string[] | undefined;
431
513
 
432
- if (!channels || !events || !payload) {
514
+ if (!channels || !events || !payload || !subscriptions || subscriptions.length === 0) {
433
515
  return;
434
516
  }
435
517
 
436
- const hasActiveChannel = channels.some(channel =>
437
- this.activeChannels.has(channel)
438
- );
439
-
440
- if (!hasActiveChannel) {
441
- return;
442
- }
443
-
444
- for (const [_, subscription] of this.activeSubscriptions) {
445
- const hasSubscribedChannel = channels.some(channel =>
446
- subscription.channels.has(channel)
447
- );
448
-
449
- if (hasSubscribedChannel) {
450
- const response: RealtimeResponseEvent<any> = {
451
- events,
452
- channels,
453
- timestamp,
454
- payload
455
- };
456
- subscription.callback(response);
518
+ // Iterate over all matching subscriptionIds and call callback for each
519
+ for (const subscriptionId of subscriptions) {
520
+ // O(1) lookup using subscriptionId
521
+ const slot = this.subscriptionIdToSlot.get(subscriptionId);
522
+ if (slot !== undefined) {
523
+ const subscription = this.activeSubscriptions.get(slot);
524
+ if (subscription) {
525
+ const response: RealtimeResponseEvent<any> = {
526
+ events,
527
+ channels,
528
+ timestamp,
529
+ payload,
530
+ subscriptions
531
+ };
532
+ subscription.callback(response);
533
+ }
457
534
  }
458
535
  }
459
536
  }
@@ -344,7 +344,7 @@ export class Sites {
344
344
  ): Promise<Models.TemplateSiteList> {
345
345
  let params: { frameworks?: Frameworks[], useCases?: UseCases[], limit?: number, offset?: number };
346
346
 
347
- if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'frameworks' in paramsOrFirst)) {
347
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('frameworks' in paramsOrFirst || 'useCases' in paramsOrFirst || 'limit' in paramsOrFirst || 'offset' in paramsOrFirst))) {
348
348
  params = (paramsOrFirst || {}) as { frameworks?: Frameworks[], useCases?: UseCases[], limit?: number, offset?: number };
349
349
  } else {
350
350
  params = {
@@ -461,7 +461,7 @@ export class Sites {
461
461
  ): Promise<Models.UsageSites> {
462
462
  let params: { range?: UsageRange };
463
463
 
464
- if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'range' in paramsOrFirst)) {
464
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('range' in paramsOrFirst))) {
465
465
  params = (paramsOrFirst || {}) as { range?: UsageRange };
466
466
  } else {
467
467
  params = {
@@ -1104,7 +1104,7 @@ export class Storage {
1104
1104
  ): Promise<Models.UsageStorage> {
1105
1105
  let params: { range?: UsageRange };
1106
1106
 
1107
- if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'range' in paramsOrFirst)) {
1107
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('range' in paramsOrFirst))) {
1108
1108
  params = (paramsOrFirst || {}) as { range?: UsageRange };
1109
1109
  } else {
1110
1110
  params = {
@@ -511,7 +511,7 @@ export class TablesDB {
511
511
  ): Promise<Models.UsageDatabases> {
512
512
  let params: { range?: UsageRange };
513
513
 
514
- if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'range' in paramsOrFirst)) {
514
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('range' in paramsOrFirst))) {
515
515
  params = (paramsOrFirst || {}) as { range?: UsageRange };
516
516
  } else {
517
517
  params = {
@@ -2,7 +2,6 @@ import { Service } from '../service';
2
2
  import { AppwriteException, Client, type Payload, UploadProgress } from '../client';
3
3
  import type { Models } from '../models';
4
4
 
5
- import { Roles } from '../enums/roles';
6
5
 
7
6
  export class Teams {
8
7
  client: Client;
@@ -466,7 +465,7 @@ export class Teams {
466
465
  *
467
466
  *
468
467
  * @param {string} params.teamId - Team ID.
469
- * @param {Roles[]} params.roles - Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
468
+ * @param {string[]} params.roles - Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
470
469
  * @param {string} params.email - Email of the new team member.
471
470
  * @param {string} params.userId - ID of the user to be added to a team.
472
471
  * @param {string} params.phone - Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
@@ -475,7 +474,7 @@ export class Teams {
475
474
  * @throws {AppwriteException}
476
475
  * @returns {Promise<Models.Membership>}
477
476
  */
478
- createMembership(params: { teamId: string, roles: Roles[], email?: string, userId?: string, phone?: string, url?: string, name?: string }): Promise<Models.Membership>;
477
+ createMembership(params: { teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string }): Promise<Models.Membership>;
479
478
  /**
480
479
  * Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.
481
480
  *
@@ -487,7 +486,7 @@ export class Teams {
487
486
  *
488
487
  *
489
488
  * @param {string} teamId - Team ID.
490
- * @param {Roles[]} roles - Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
489
+ * @param {string[]} roles - Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
491
490
  * @param {string} email - Email of the new team member.
492
491
  * @param {string} userId - ID of the user to be added to a team.
493
492
  * @param {string} phone - Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
@@ -497,19 +496,19 @@ export class Teams {
497
496
  * @returns {Promise<Models.Membership>}
498
497
  * @deprecated Use the object parameter style method for a better developer experience.
499
498
  */
500
- createMembership(teamId: string, roles: Roles[], email?: string, userId?: string, phone?: string, url?: string, name?: string): Promise<Models.Membership>;
499
+ createMembership(teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string): Promise<Models.Membership>;
501
500
  createMembership(
502
- paramsOrFirst: { teamId: string, roles: Roles[], email?: string, userId?: string, phone?: string, url?: string, name?: string } | string,
503
- ...rest: [(Roles[])?, (string)?, (string)?, (string)?, (string)?, (string)?]
501
+ paramsOrFirst: { teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string } | string,
502
+ ...rest: [(string[])?, (string)?, (string)?, (string)?, (string)?, (string)?]
504
503
  ): Promise<Models.Membership> {
505
- let params: { teamId: string, roles: Roles[], email?: string, userId?: string, phone?: string, url?: string, name?: string };
504
+ let params: { teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string };
506
505
 
507
506
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
508
- params = (paramsOrFirst || {}) as { teamId: string, roles: Roles[], email?: string, userId?: string, phone?: string, url?: string, name?: string };
507
+ params = (paramsOrFirst || {}) as { teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string };
509
508
  } else {
510
509
  params = {
511
510
  teamId: paramsOrFirst as string,
512
- roles: rest[0] as Roles[],
511
+ roles: rest[0] as string[],
513
512
  email: rest[1] as string,
514
513
  userId: rest[2] as string,
515
514
  phone: rest[3] as string,
@@ -632,36 +631,36 @@ export class Teams {
632
631
  *
633
632
  * @param {string} params.teamId - Team ID.
634
633
  * @param {string} params.membershipId - Membership ID.
635
- * @param {Roles[]} params.roles - An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
634
+ * @param {string[]} params.roles - An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
636
635
  * @throws {AppwriteException}
637
636
  * @returns {Promise<Models.Membership>}
638
637
  */
639
- updateMembership(params: { teamId: string, membershipId: string, roles: Roles[] }): Promise<Models.Membership>;
638
+ updateMembership(params: { teamId: string, membershipId: string, roles: string[] }): Promise<Models.Membership>;
640
639
  /**
641
640
  * Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https://appwrite.io/docs/permissions).
642
641
  *
643
642
  *
644
643
  * @param {string} teamId - Team ID.
645
644
  * @param {string} membershipId - Membership ID.
646
- * @param {Roles[]} roles - An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
645
+ * @param {string[]} roles - An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long.
647
646
  * @throws {AppwriteException}
648
647
  * @returns {Promise<Models.Membership>}
649
648
  * @deprecated Use the object parameter style method for a better developer experience.
650
649
  */
651
- updateMembership(teamId: string, membershipId: string, roles: Roles[]): Promise<Models.Membership>;
650
+ updateMembership(teamId: string, membershipId: string, roles: string[]): Promise<Models.Membership>;
652
651
  updateMembership(
653
- paramsOrFirst: { teamId: string, membershipId: string, roles: Roles[] } | string,
654
- ...rest: [(string)?, (Roles[])?]
652
+ paramsOrFirst: { teamId: string, membershipId: string, roles: string[] } | string,
653
+ ...rest: [(string)?, (string[])?]
655
654
  ): Promise<Models.Membership> {
656
- let params: { teamId: string, membershipId: string, roles: Roles[] };
655
+ let params: { teamId: string, membershipId: string, roles: string[] };
657
656
 
658
657
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
659
- params = (paramsOrFirst || {}) as { teamId: string, membershipId: string, roles: Roles[] };
658
+ params = (paramsOrFirst || {}) as { teamId: string, membershipId: string, roles: string[] };
660
659
  } else {
661
660
  params = {
662
661
  teamId: paramsOrFirst as string,
663
662
  membershipId: rest[0] as string,
664
- roles: rest[1] as Roles[]
663
+ roles: rest[1] as string[]
665
664
  };
666
665
  }
667
666
 
@@ -974,7 +974,7 @@ export class Users {
974
974
  ): Promise<Models.UsageUsers> {
975
975
  let params: { range?: UsageRange };
976
976
 
977
- if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'range' in paramsOrFirst)) {
977
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('range' in paramsOrFirst))) {
978
978
  params = (paramsOrFirst || {}) as { range?: UsageRange };
979
979
  } else {
980
980
  params = {
@@ -37,7 +37,7 @@ interface Membership {
37
37
  interface Resolved {
38
38
  _res: any;
39
39
  }
40
- declare type Actionable = Document | Row | File | Execution | Team | Membership;
40
+ declare type Actionable = Document | Row | File | Team | Membership;
41
41
  export declare class Channel<T> {
42
42
  private readonly segments;
43
43
  _type: T;
@@ -50,22 +50,23 @@ export declare class Channel<T> {
50
50
  table(this: Channel<TablesDB>, id?: string): Channel<Table>;
51
51
  row(this: Channel<Table>, id?: string): Channel<Row>;
52
52
  file(this: Channel<Bucket>, id?: string): Channel<File>;
53
- execution(this: Channel<Func>, id?: string): Channel<Execution>;
54
53
  create(this: Channel<Actionable>): Channel<Resolved>;
55
54
  update(this: Channel<Actionable>): Channel<Resolved>;
56
55
  delete(this: Channel<Actionable>): Channel<Resolved>;
57
56
  static database(id?: string): Channel<Database>;
57
+ static execution(id?: string): Channel<Execution>;
58
58
  static tablesdb(id?: string): Channel<TablesDB>;
59
59
  static bucket(id?: string): Channel<Bucket>;
60
60
  static function(id?: string): Channel<Func>;
61
61
  static team(id?: string): Channel<Team>;
62
62
  static membership(id?: string): Channel<Membership>;
63
- static account(userId?: string): string;
63
+ static account(): string;
64
64
  static documents(): string;
65
65
  static rows(): string;
66
66
  static files(): string;
67
67
  static executions(): string;
68
68
  static teams(): string;
69
+ static memberships(): string;
69
70
  }
70
71
  export declare type ActionableChannel = Channel<Document> | Channel<Row> | Channel<File> | Channel<Execution> | Channel<Team> | Channel<Membership>;
71
72
  export declare type ResolvedChannel = Channel<Resolved>;
package/types/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Models } from './models';
2
2
  import { Channel, ActionableChannel, ResolvedChannel } from './channel';
3
+ import { Query } from './query';
3
4
  /**
4
5
  * Payload type representing a key-value pair with string keys and any values.
5
6
  */
@@ -27,11 +28,15 @@ declare type RealtimeResponseEvent<T extends unknown> = {
27
28
  /**
28
29
  * Timestamp indicating the time of the event.
29
30
  */
30
- timestamp: number;
31
+ timestamp: string;
31
32
  /**
32
33
  * Payload containing event-specific data.
33
34
  */
34
35
  payload: T;
36
+ /**
37
+ * Subscription IDs this event matches (from backend, optional).
38
+ */
39
+ subscriptions?: string[];
35
40
  };
36
41
  /**
37
42
  * Type representing upload progress information.
@@ -238,7 +243,7 @@ declare class Client {
238
243
  * @param {(payload: RealtimeMessage) => void} callback Is called on every realtime update.
239
244
  * @returns {() => void} Unsubscribes from events.
240
245
  */
241
- subscribe<T extends unknown>(channels: string | string[] | Channel<any> | ActionableChannel | ResolvedChannel | (Channel<any> | ActionableChannel | ResolvedChannel)[], callback: (payload: RealtimeResponseEvent<T>) => void): () => void;
246
+ subscribe<T extends unknown>(channels: string | string[] | Channel<any> | ActionableChannel | ResolvedChannel | (Channel<any> | ActionableChannel | ResolvedChannel)[], callback: (payload: RealtimeResponseEvent<T>) => void, queries?: (string | Query)[]): () => void;
242
247
  prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
243
248
  uri: string;
244
249
  options: RequestInit;
@@ -1,4 +1,4 @@
1
- export declare enum Services {
1
+ export declare enum BackupServices {
2
2
  Databases = "databases",
3
3
  Functions = "functions",
4
4
  Storage = "storage"
@@ -21,6 +21,9 @@ export declare enum BuildRuntime {
21
21
  Python312 = "python-3.12",
22
22
  Pythonml311 = "python-ml-3.11",
23
23
  Pythonml312 = "python-ml-3.12",
24
+ Deno121 = "deno-1.21",
25
+ Deno124 = "deno-1.24",
26
+ Deno135 = "deno-1.35",
24
27
  Deno140 = "deno-1.40",
25
28
  Deno146 = "deno-1.46",
26
29
  Deno20 = "deno-2.0",
@@ -35,6 +38,7 @@ export declare enum BuildRuntime {
35
38
  Dart35 = "dart-3.5",
36
39
  Dart38 = "dart-3.8",
37
40
  Dart39 = "dart-3.9",
41
+ Dart310 = "dart-3.10",
38
42
  Dotnet60 = "dotnet-6.0",
39
43
  Dotnet70 = "dotnet-7.0",
40
44
  Dotnet80 = "dotnet-8.0",
@@ -62,5 +66,6 @@ export declare enum BuildRuntime {
62
66
  Flutter327 = "flutter-3.27",
63
67
  Flutter329 = "flutter-3.29",
64
68
  Flutter332 = "flutter-3.32",
65
- Flutter335 = "flutter-3.35"
69
+ Flutter335 = "flutter-3.35",
70
+ Flutter338 = "flutter-3.38"
66
71
  }
@@ -0,0 +1,6 @@
1
+ export declare enum RegistrationType {
2
+ New = "new",
3
+ Transfer = "transfer",
4
+ Renewal = "renewal",
5
+ Trade = "trade"
6
+ }
@@ -21,6 +21,9 @@ export declare enum Runtime {
21
21
  Python312 = "python-3.12",
22
22
  Pythonml311 = "python-ml-3.11",
23
23
  Pythonml312 = "python-ml-3.12",
24
+ Deno121 = "deno-1.21",
25
+ Deno124 = "deno-1.24",
26
+ Deno135 = "deno-1.35",
24
27
  Deno140 = "deno-1.40",
25
28
  Deno146 = "deno-1.46",
26
29
  Deno20 = "deno-2.0",
@@ -35,6 +38,7 @@ export declare enum Runtime {
35
38
  Dart35 = "dart-3.5",
36
39
  Dart38 = "dart-3.8",
37
40
  Dart39 = "dart-3.9",
41
+ Dart310 = "dart-3.10",
38
42
  Dotnet60 = "dotnet-6.0",
39
43
  Dotnet70 = "dotnet-7.0",
40
44
  Dotnet80 = "dotnet-8.0",
@@ -62,5 +66,6 @@ export declare enum Runtime {
62
66
  Flutter327 = "flutter-3.27",
63
67
  Flutter329 = "flutter-3.29",
64
68
  Flutter332 = "flutter-3.32",
65
- Flutter335 = "flutter-3.35"
69
+ Flutter335 = "flutter-3.35",
70
+ Flutter338 = "flutter-3.38"
66
71
  }