@appwrite.io/console 2.2.0 → 2.3.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 (716) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/sdk.js +412 -202
  4. package/dist/cjs/sdk.js.map +1 -1
  5. package/dist/esm/sdk.js +412 -203
  6. package/dist/esm/sdk.js.map +1 -1
  7. package/dist/iife/sdk.js +412 -202
  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/activities/get-event.md +15 -0
  78. package/docs/examples/activities/list-events.md +15 -0
  79. package/docs/examples/assistant/chat.md +2 -0
  80. package/docs/examples/avatars/get-browser.md +2 -0
  81. package/docs/examples/avatars/get-credit-card.md +2 -0
  82. package/docs/examples/avatars/get-favicon.md +2 -0
  83. package/docs/examples/avatars/get-flag.md +2 -0
  84. package/docs/examples/avatars/get-image.md +2 -0
  85. package/docs/examples/avatars/get-initials.md +2 -0
  86. package/docs/examples/avatars/get-qr.md +2 -0
  87. package/docs/examples/avatars/get-screenshot.md +2 -0
  88. package/docs/examples/backups/create-archive.md +4 -2
  89. package/docs/examples/backups/create-policy.md +4 -2
  90. package/docs/examples/backups/create-restoration.md +4 -2
  91. package/docs/examples/backups/delete-archive.md +2 -0
  92. package/docs/examples/backups/delete-policy.md +2 -0
  93. package/docs/examples/backups/get-archive.md +2 -0
  94. package/docs/examples/backups/get-policy.md +2 -0
  95. package/docs/examples/backups/get-restoration.md +2 -0
  96. package/docs/examples/backups/list-archives.md +2 -0
  97. package/docs/examples/backups/list-policies.md +2 -0
  98. package/docs/examples/backups/list-restorations.md +2 -0
  99. package/docs/examples/backups/update-policy.md +2 -0
  100. package/docs/examples/console/create-program-membership.md +2 -0
  101. package/docs/examples/console/create-source.md +2 -0
  102. package/docs/examples/console/get-campaign.md +2 -0
  103. package/docs/examples/console/get-coupon.md +2 -0
  104. package/docs/examples/console/get-plan.md +2 -0
  105. package/docs/examples/console/get-plans.md +2 -0
  106. package/docs/examples/console/get-program.md +2 -0
  107. package/docs/examples/console/get-resource.md +2 -0
  108. package/docs/examples/console/list-regions.md +2 -0
  109. package/docs/examples/console/suggest-columns.md +2 -0
  110. package/docs/examples/console/suggest-indexes.md +2 -0
  111. package/docs/examples/console/variables.md +2 -0
  112. package/docs/examples/databases/create-boolean-attribute.md +2 -0
  113. package/docs/examples/databases/create-collection.md +2 -0
  114. package/docs/examples/databases/create-datetime-attribute.md +2 -0
  115. package/docs/examples/databases/create-document.md +2 -0
  116. package/docs/examples/databases/create-documents.md +2 -0
  117. package/docs/examples/databases/create-email-attribute.md +2 -0
  118. package/docs/examples/databases/create-enum-attribute.md +2 -0
  119. package/docs/examples/databases/create-float-attribute.md +2 -0
  120. package/docs/examples/databases/create-index.md +2 -0
  121. package/docs/examples/databases/create-integer-attribute.md +2 -0
  122. package/docs/examples/databases/create-ip-attribute.md +2 -0
  123. package/docs/examples/databases/create-line-attribute.md +2 -0
  124. package/docs/examples/databases/create-longtext-attribute.md +4 -1
  125. package/docs/examples/databases/create-mediumtext-attribute.md +4 -1
  126. package/docs/examples/databases/create-operations.md +2 -0
  127. package/docs/examples/databases/create-point-attribute.md +2 -0
  128. package/docs/examples/databases/create-polygon-attribute.md +2 -0
  129. package/docs/examples/databases/create-relationship-attribute.md +2 -0
  130. package/docs/examples/databases/create-string-attribute.md +2 -0
  131. package/docs/examples/databases/create-text-attribute.md +4 -1
  132. package/docs/examples/databases/create-transaction.md +2 -0
  133. package/docs/examples/databases/create-url-attribute.md +2 -0
  134. package/docs/examples/databases/create-varchar-attribute.md +4 -1
  135. package/docs/examples/databases/create.md +2 -0
  136. package/docs/examples/databases/decrement-document-attribute.md +2 -0
  137. package/docs/examples/databases/delete-attribute.md +2 -0
  138. package/docs/examples/databases/delete-collection.md +2 -0
  139. package/docs/examples/databases/delete-document.md +2 -0
  140. package/docs/examples/databases/delete-documents.md +2 -0
  141. package/docs/examples/databases/delete-index.md +2 -0
  142. package/docs/examples/databases/delete-transaction.md +2 -0
  143. package/docs/examples/databases/delete.md +2 -0
  144. package/docs/examples/databases/get-attribute.md +2 -0
  145. package/docs/examples/databases/get-collection-usage.md +2 -0
  146. package/docs/examples/databases/get-collection.md +2 -0
  147. package/docs/examples/databases/get-document.md +2 -0
  148. package/docs/examples/databases/get-index.md +2 -0
  149. package/docs/examples/databases/get-transaction.md +2 -0
  150. package/docs/examples/databases/get-usage.md +2 -0
  151. package/docs/examples/databases/get.md +2 -0
  152. package/docs/examples/databases/increment-document-attribute.md +2 -0
  153. package/docs/examples/databases/list-attributes.md +2 -0
  154. package/docs/examples/databases/list-collection-logs.md +2 -0
  155. package/docs/examples/databases/list-collections.md +2 -0
  156. package/docs/examples/databases/list-document-logs.md +2 -0
  157. package/docs/examples/databases/list-documents.md +2 -0
  158. package/docs/examples/databases/list-indexes.md +2 -0
  159. package/docs/examples/databases/list-logs.md +2 -0
  160. package/docs/examples/databases/list-transactions.md +2 -0
  161. package/docs/examples/databases/list-usage.md +2 -0
  162. package/docs/examples/databases/list.md +2 -0
  163. package/docs/examples/databases/update-boolean-attribute.md +2 -0
  164. package/docs/examples/databases/update-collection.md +2 -0
  165. package/docs/examples/databases/update-datetime-attribute.md +2 -0
  166. package/docs/examples/databases/update-document.md +2 -0
  167. package/docs/examples/databases/update-documents.md +2 -0
  168. package/docs/examples/databases/update-email-attribute.md +2 -0
  169. package/docs/examples/databases/update-enum-attribute.md +2 -0
  170. package/docs/examples/databases/update-float-attribute.md +2 -0
  171. package/docs/examples/databases/update-integer-attribute.md +2 -0
  172. package/docs/examples/databases/update-ip-attribute.md +2 -0
  173. package/docs/examples/databases/update-line-attribute.md +2 -0
  174. package/docs/examples/databases/update-longtext-attribute.md +2 -0
  175. package/docs/examples/databases/update-mediumtext-attribute.md +2 -0
  176. package/docs/examples/databases/update-point-attribute.md +2 -0
  177. package/docs/examples/databases/update-polygon-attribute.md +2 -0
  178. package/docs/examples/databases/update-relationship-attribute.md +2 -0
  179. package/docs/examples/databases/update-string-attribute.md +2 -0
  180. package/docs/examples/databases/update-text-attribute.md +2 -0
  181. package/docs/examples/databases/update-transaction.md +2 -0
  182. package/docs/examples/databases/update-url-attribute.md +2 -0
  183. package/docs/examples/databases/update-varchar-attribute.md +2 -0
  184. package/docs/examples/databases/update.md +2 -0
  185. package/docs/examples/databases/upsert-document.md +2 -0
  186. package/docs/examples/databases/upsert-documents.md +2 -0
  187. package/docs/examples/domains/create-preset-google-workspace.md +2 -0
  188. package/docs/examples/domains/create-preset-i-cloud.md +2 -0
  189. package/docs/examples/domains/create-preset-mailgun.md +2 -0
  190. package/docs/examples/domains/create-preset-outlook.md +2 -0
  191. package/docs/examples/domains/create-preset-proton-mail.md +2 -0
  192. package/docs/examples/domains/create-preset-zoho.md +2 -0
  193. package/docs/examples/domains/create-record-a.md +2 -0
  194. package/docs/examples/domains/create-record-aaaa.md +2 -0
  195. package/docs/examples/domains/create-record-alias.md +2 -0
  196. package/docs/examples/domains/create-record-caa.md +2 -0
  197. package/docs/examples/domains/create-record-cname.md +2 -0
  198. package/docs/examples/domains/create-record-https.md +2 -0
  199. package/docs/examples/domains/create-record-mx.md +2 -0
  200. package/docs/examples/domains/create-record-ns.md +2 -0
  201. package/docs/examples/domains/create-record-srv.md +2 -0
  202. package/docs/examples/domains/create-record-txt.md +2 -0
  203. package/docs/examples/domains/create.md +2 -0
  204. package/docs/examples/domains/delete-record.md +2 -0
  205. package/docs/examples/domains/delete.md +2 -0
  206. package/docs/examples/domains/get-preset-google-workspace.md +2 -0
  207. package/docs/examples/domains/get-preset-i-cloud.md +2 -0
  208. package/docs/examples/domains/get-preset-mailgun.md +2 -0
  209. package/docs/examples/domains/get-preset-outlook.md +2 -0
  210. package/docs/examples/domains/get-preset-proton-mail.md +2 -0
  211. package/docs/examples/domains/get-preset-zoho.md +2 -0
  212. package/docs/examples/domains/get-price.md +17 -0
  213. package/docs/examples/domains/get-record.md +2 -0
  214. package/docs/examples/domains/get-zone.md +2 -0
  215. package/docs/examples/domains/get.md +2 -0
  216. package/docs/examples/domains/list-records.md +2 -0
  217. package/docs/examples/domains/list-suggestions.md +2 -0
  218. package/docs/examples/domains/list.md +2 -0
  219. package/docs/examples/domains/update-nameservers.md +2 -0
  220. package/docs/examples/domains/update-record-a.md +2 -0
  221. package/docs/examples/domains/update-record-aaaa.md +2 -0
  222. package/docs/examples/domains/update-record-alias.md +2 -0
  223. package/docs/examples/domains/update-record-caa.md +2 -0
  224. package/docs/examples/domains/update-record-cname.md +2 -0
  225. package/docs/examples/domains/update-record-https.md +2 -0
  226. package/docs/examples/domains/update-record-mx.md +2 -0
  227. package/docs/examples/domains/update-record-ns.md +2 -0
  228. package/docs/examples/domains/update-record-srv.md +2 -0
  229. package/docs/examples/domains/update-record-txt.md +2 -0
  230. package/docs/examples/domains/update-team.md +2 -0
  231. package/docs/examples/domains/update-zone.md +2 -0
  232. package/docs/examples/functions/create-deployment.md +2 -0
  233. package/docs/examples/functions/create-duplicate-deployment.md +2 -0
  234. package/docs/examples/functions/create-execution.md +2 -0
  235. package/docs/examples/functions/create-template-deployment.md +2 -0
  236. package/docs/examples/functions/create-variable.md +2 -0
  237. package/docs/examples/functions/create-vcs-deployment.md +2 -0
  238. package/docs/examples/functions/create.md +2 -0
  239. package/docs/examples/functions/delete-deployment.md +2 -0
  240. package/docs/examples/functions/delete-execution.md +2 -0
  241. package/docs/examples/functions/delete-variable.md +2 -0
  242. package/docs/examples/functions/delete.md +2 -0
  243. package/docs/examples/functions/get-deployment-download.md +2 -0
  244. package/docs/examples/functions/get-deployment.md +2 -0
  245. package/docs/examples/functions/get-execution.md +2 -0
  246. package/docs/examples/functions/get-template.md +2 -0
  247. package/docs/examples/functions/get-usage.md +2 -0
  248. package/docs/examples/functions/get-variable.md +2 -0
  249. package/docs/examples/functions/get.md +2 -0
  250. package/docs/examples/functions/list-deployments.md +2 -0
  251. package/docs/examples/functions/list-executions.md +2 -0
  252. package/docs/examples/functions/list-runtimes.md +2 -0
  253. package/docs/examples/functions/list-specifications.md +2 -0
  254. package/docs/examples/functions/list-templates.md +2 -0
  255. package/docs/examples/functions/list-usage.md +2 -0
  256. package/docs/examples/functions/list-variables.md +2 -0
  257. package/docs/examples/functions/list.md +2 -0
  258. package/docs/examples/functions/update-deployment-status.md +2 -0
  259. package/docs/examples/functions/update-function-deployment.md +2 -0
  260. package/docs/examples/functions/update-variable.md +2 -0
  261. package/docs/examples/functions/update.md +2 -0
  262. package/docs/examples/graphql/mutation.md +2 -0
  263. package/docs/examples/graphql/query.md +2 -0
  264. package/docs/examples/health/get-antivirus.md +2 -0
  265. package/docs/examples/health/get-cache.md +2 -0
  266. package/docs/examples/health/get-certificate.md +2 -0
  267. package/docs/examples/health/get-db.md +2 -0
  268. package/docs/examples/health/get-failed-jobs.md +2 -0
  269. package/docs/examples/health/get-pub-sub.md +2 -0
  270. package/docs/examples/health/get-queue-audits.md +2 -0
  271. package/docs/examples/health/get-queue-billing-project-aggregation.md +2 -0
  272. package/docs/examples/health/get-queue-billing-team-aggregation.md +2 -0
  273. package/docs/examples/health/get-queue-builds.md +2 -0
  274. package/docs/examples/health/get-queue-certificates.md +2 -0
  275. package/docs/examples/health/get-queue-databases.md +2 -0
  276. package/docs/examples/health/get-queue-deletes.md +2 -0
  277. package/docs/examples/health/get-queue-functions.md +2 -0
  278. package/docs/examples/health/get-queue-logs.md +2 -0
  279. package/docs/examples/health/get-queue-mails.md +2 -0
  280. package/docs/examples/health/get-queue-messaging.md +2 -0
  281. package/docs/examples/health/get-queue-migrations.md +2 -0
  282. package/docs/examples/health/get-queue-priority-builds.md +2 -0
  283. package/docs/examples/health/get-queue-region-manager.md +2 -0
  284. package/docs/examples/health/get-queue-stats-resources.md +2 -0
  285. package/docs/examples/health/get-queue-threats.md +2 -0
  286. package/docs/examples/health/get-queue-usage.md +2 -0
  287. package/docs/examples/health/get-queue-webhooks.md +2 -0
  288. package/docs/examples/health/get-storage-local.md +2 -0
  289. package/docs/examples/health/get-storage.md +2 -0
  290. package/docs/examples/health/get-time.md +2 -0
  291. package/docs/examples/health/get.md +2 -0
  292. package/docs/examples/locale/get.md +2 -0
  293. package/docs/examples/locale/list-codes.md +2 -0
  294. package/docs/examples/locale/list-continents.md +2 -0
  295. package/docs/examples/locale/list-countries-eu.md +2 -0
  296. package/docs/examples/locale/list-countries-phones.md +2 -0
  297. package/docs/examples/locale/list-countries.md +2 -0
  298. package/docs/examples/locale/list-currencies.md +2 -0
  299. package/docs/examples/locale/list-languages.md +2 -0
  300. package/docs/examples/messaging/create-apns-provider.md +2 -0
  301. package/docs/examples/messaging/create-email.md +2 -0
  302. package/docs/examples/messaging/create-fcm-provider.md +2 -0
  303. package/docs/examples/messaging/create-mailgun-provider.md +2 -0
  304. package/docs/examples/messaging/create-msg-91-provider.md +2 -0
  305. package/docs/examples/messaging/create-push.md +2 -0
  306. package/docs/examples/messaging/create-resend-provider.md +2 -0
  307. package/docs/examples/messaging/create-sendgrid-provider.md +2 -0
  308. package/docs/examples/messaging/create-sms.md +2 -0
  309. package/docs/examples/messaging/create-smtp-provider.md +2 -0
  310. package/docs/examples/messaging/create-subscriber.md +2 -0
  311. package/docs/examples/messaging/create-telesign-provider.md +2 -0
  312. package/docs/examples/messaging/create-textmagic-provider.md +2 -0
  313. package/docs/examples/messaging/create-topic.md +2 -0
  314. package/docs/examples/messaging/create-twilio-provider.md +2 -0
  315. package/docs/examples/messaging/create-vonage-provider.md +2 -0
  316. package/docs/examples/messaging/delete-provider.md +2 -0
  317. package/docs/examples/messaging/delete-subscriber.md +2 -0
  318. package/docs/examples/messaging/delete-topic.md +2 -0
  319. package/docs/examples/messaging/delete.md +2 -0
  320. package/docs/examples/messaging/get-message.md +2 -0
  321. package/docs/examples/messaging/get-provider.md +2 -0
  322. package/docs/examples/messaging/get-subscriber.md +2 -0
  323. package/docs/examples/messaging/get-topic.md +2 -0
  324. package/docs/examples/messaging/list-message-logs.md +2 -0
  325. package/docs/examples/messaging/list-messages.md +2 -0
  326. package/docs/examples/messaging/list-provider-logs.md +2 -0
  327. package/docs/examples/messaging/list-providers.md +2 -0
  328. package/docs/examples/messaging/list-subscriber-logs.md +2 -0
  329. package/docs/examples/messaging/list-subscribers.md +2 -0
  330. package/docs/examples/messaging/list-targets.md +2 -0
  331. package/docs/examples/messaging/list-topic-logs.md +2 -0
  332. package/docs/examples/messaging/list-topics.md +2 -0
  333. package/docs/examples/messaging/update-apns-provider.md +2 -0
  334. package/docs/examples/messaging/update-email.md +2 -0
  335. package/docs/examples/messaging/update-fcm-provider.md +2 -0
  336. package/docs/examples/messaging/update-mailgun-provider.md +2 -0
  337. package/docs/examples/messaging/update-msg-91-provider.md +2 -0
  338. package/docs/examples/messaging/update-push.md +2 -0
  339. package/docs/examples/messaging/update-resend-provider.md +2 -0
  340. package/docs/examples/messaging/update-sendgrid-provider.md +2 -0
  341. package/docs/examples/messaging/update-sms.md +2 -0
  342. package/docs/examples/messaging/update-smtp-provider.md +2 -0
  343. package/docs/examples/messaging/update-telesign-provider.md +2 -0
  344. package/docs/examples/messaging/update-textmagic-provider.md +2 -0
  345. package/docs/examples/messaging/update-topic.md +2 -0
  346. package/docs/examples/messaging/update-twilio-provider.md +2 -0
  347. package/docs/examples/messaging/update-vonage-provider.md +2 -0
  348. package/docs/examples/migrations/create-appwrite-migration.md +2 -0
  349. package/docs/examples/migrations/create-csv-export.md +2 -0
  350. package/docs/examples/migrations/create-csv-import.md +2 -0
  351. package/docs/examples/migrations/create-firebase-migration.md +2 -0
  352. package/docs/examples/migrations/create-n-host-migration.md +2 -0
  353. package/docs/examples/migrations/create-supabase-migration.md +2 -0
  354. package/docs/examples/migrations/delete.md +2 -0
  355. package/docs/examples/migrations/get-appwrite-report.md +2 -0
  356. package/docs/examples/migrations/get-firebase-report.md +2 -0
  357. package/docs/examples/migrations/get-n-host-report.md +2 -0
  358. package/docs/examples/migrations/get-supabase-report.md +2 -0
  359. package/docs/examples/migrations/get.md +2 -0
  360. package/docs/examples/migrations/list.md +2 -0
  361. package/docs/examples/migrations/retry.md +2 -0
  362. package/docs/examples/organizations/add-credit.md +2 -0
  363. package/docs/examples/organizations/cancel-downgrade.md +2 -0
  364. package/docs/examples/organizations/create-downgrade-feedback.md +2 -0
  365. package/docs/examples/organizations/create-invoice-payment.md +2 -0
  366. package/docs/examples/organizations/create-key.md +2 -0
  367. package/docs/examples/organizations/create.md +2 -0
  368. package/docs/examples/organizations/delete-backup-payment-method.md +2 -0
  369. package/docs/examples/organizations/delete-billing-address.md +2 -0
  370. package/docs/examples/organizations/delete-default-payment-method.md +2 -0
  371. package/docs/examples/organizations/delete-key.md +2 -0
  372. package/docs/examples/organizations/delete.md +2 -0
  373. package/docs/examples/organizations/estimation-create-organization.md +2 -0
  374. package/docs/examples/organizations/estimation-delete-organization.md +2 -0
  375. package/docs/examples/organizations/estimation-update-plan.md +2 -0
  376. package/docs/examples/organizations/get-aggregation.md +2 -0
  377. package/docs/examples/organizations/get-available-credits.md +2 -0
  378. package/docs/examples/organizations/get-billing-address.md +2 -0
  379. package/docs/examples/organizations/get-credit.md +2 -0
  380. package/docs/examples/organizations/get-invoice-download.md +2 -0
  381. package/docs/examples/organizations/get-invoice-view.md +2 -0
  382. package/docs/examples/organizations/get-invoice.md +2 -0
  383. package/docs/examples/organizations/get-key.md +2 -0
  384. package/docs/examples/organizations/get-payment-method.md +2 -0
  385. package/docs/examples/organizations/get-plan.md +2 -0
  386. package/docs/examples/organizations/get-scopes.md +2 -0
  387. package/docs/examples/organizations/get-usage.md +2 -0
  388. package/docs/examples/organizations/list-aggregations.md +2 -0
  389. package/docs/examples/organizations/list-credits.md +2 -0
  390. package/docs/examples/organizations/list-invoices.md +2 -0
  391. package/docs/examples/organizations/list-keys.md +2 -0
  392. package/docs/examples/organizations/list-regions.md +2 -0
  393. package/docs/examples/organizations/list.md +2 -0
  394. package/docs/examples/organizations/set-backup-payment-method.md +2 -0
  395. package/docs/examples/organizations/set-billing-address.md +2 -0
  396. package/docs/examples/organizations/set-billing-email.md +2 -0
  397. package/docs/examples/organizations/set-billing-tax-id.md +2 -0
  398. package/docs/examples/organizations/set-default-payment-method.md +2 -0
  399. package/docs/examples/organizations/update-budget.md +2 -0
  400. package/docs/examples/organizations/update-key.md +2 -0
  401. package/docs/examples/organizations/update-plan.md +2 -0
  402. package/docs/examples/organizations/validate-invoice.md +2 -0
  403. package/docs/examples/organizations/validate-payment.md +2 -0
  404. package/docs/examples/project/create-variable.md +2 -0
  405. package/docs/examples/project/delete-variable.md +2 -0
  406. package/docs/examples/project/get-usage.md +2 -0
  407. package/docs/examples/project/get-variable.md +2 -0
  408. package/docs/examples/project/list-variables.md +2 -0
  409. package/docs/examples/project/update-variable.md +2 -0
  410. package/docs/examples/projects/create-dev-key.md +2 -0
  411. package/docs/examples/projects/create-jwt.md +2 -0
  412. package/docs/examples/projects/create-key.md +3 -0
  413. package/docs/examples/projects/create-platform.md +2 -0
  414. package/docs/examples/projects/create-smtp-test.md +2 -0
  415. package/docs/examples/projects/create-webhook.md +2 -0
  416. package/docs/examples/projects/create.md +2 -0
  417. package/docs/examples/projects/delete-dev-key.md +2 -0
  418. package/docs/examples/projects/delete-email-template.md +2 -0
  419. package/docs/examples/projects/delete-key.md +2 -0
  420. package/docs/examples/projects/delete-platform.md +2 -0
  421. package/docs/examples/projects/delete-sms-template.md +2 -0
  422. package/docs/examples/projects/delete-webhook.md +2 -0
  423. package/docs/examples/projects/delete.md +2 -0
  424. package/docs/examples/projects/get-dev-key.md +2 -0
  425. package/docs/examples/projects/get-email-template.md +2 -0
  426. package/docs/examples/projects/get-key.md +2 -0
  427. package/docs/examples/projects/get-platform.md +2 -0
  428. package/docs/examples/projects/get-sms-template.md +2 -0
  429. package/docs/examples/projects/get-webhook.md +2 -0
  430. package/docs/examples/projects/get.md +2 -0
  431. package/docs/examples/projects/list-dev-keys.md +2 -0
  432. package/docs/examples/projects/list-keys.md +3 -0
  433. package/docs/examples/projects/list-platforms.md +2 -0
  434. package/docs/examples/projects/list-webhooks.md +2 -0
  435. package/docs/examples/projects/list.md +2 -0
  436. package/docs/examples/projects/update-api-status-all.md +2 -0
  437. package/docs/examples/projects/update-api-status.md +2 -0
  438. package/docs/examples/projects/update-auth-duration.md +2 -0
  439. package/docs/examples/projects/update-auth-limit.md +2 -0
  440. package/docs/examples/projects/update-auth-password-dictionary.md +2 -0
  441. package/docs/examples/projects/update-auth-password-history.md +2 -0
  442. package/docs/examples/projects/update-auth-sessions-limit.md +2 -0
  443. package/docs/examples/projects/update-auth-status.md +2 -0
  444. package/docs/examples/projects/update-dev-key.md +2 -0
  445. package/docs/examples/projects/update-email-template.md +2 -0
  446. package/docs/examples/projects/update-key.md +2 -0
  447. package/docs/examples/projects/update-labels.md +2 -0
  448. package/docs/examples/projects/update-memberships-privacy.md +2 -0
  449. package/docs/examples/projects/update-mock-numbers.md +2 -0
  450. package/docs/examples/projects/update-o-auth-2.md +2 -0
  451. package/docs/examples/projects/update-personal-data-check.md +2 -0
  452. package/docs/examples/projects/update-platform.md +2 -0
  453. package/docs/examples/projects/update-service-status-all.md +2 -0
  454. package/docs/examples/projects/update-service-status.md +2 -0
  455. package/docs/examples/projects/update-session-alerts.md +2 -0
  456. package/docs/examples/projects/update-session-invalidation.md +2 -0
  457. package/docs/examples/projects/update-sms-template.md +2 -0
  458. package/docs/examples/projects/update-smtp.md +2 -0
  459. package/docs/examples/projects/update-team.md +2 -0
  460. package/docs/examples/projects/update-webhook-signature.md +2 -0
  461. package/docs/examples/projects/update-webhook.md +2 -0
  462. package/docs/examples/projects/update.md +2 -0
  463. package/docs/examples/proxy/create-api-rule.md +2 -0
  464. package/docs/examples/proxy/create-function-rule.md +2 -0
  465. package/docs/examples/proxy/create-redirect-rule.md +2 -0
  466. package/docs/examples/proxy/create-site-rule.md +2 -0
  467. package/docs/examples/proxy/delete-rule.md +2 -0
  468. package/docs/examples/proxy/get-rule.md +2 -0
  469. package/docs/examples/proxy/list-rules.md +2 -0
  470. package/docs/examples/proxy/update-rule-verification.md +2 -0
  471. package/docs/examples/sites/create-deployment.md +2 -0
  472. package/docs/examples/sites/create-duplicate-deployment.md +2 -0
  473. package/docs/examples/sites/create-template-deployment.md +2 -0
  474. package/docs/examples/sites/create-variable.md +2 -0
  475. package/docs/examples/sites/create-vcs-deployment.md +2 -0
  476. package/docs/examples/sites/create.md +2 -0
  477. package/docs/examples/sites/delete-deployment.md +2 -0
  478. package/docs/examples/sites/delete-log.md +2 -0
  479. package/docs/examples/sites/delete-variable.md +2 -0
  480. package/docs/examples/sites/delete.md +2 -0
  481. package/docs/examples/sites/get-deployment-download.md +2 -0
  482. package/docs/examples/sites/get-deployment.md +2 -0
  483. package/docs/examples/sites/get-log.md +2 -0
  484. package/docs/examples/sites/get-template.md +2 -0
  485. package/docs/examples/sites/get-usage.md +2 -0
  486. package/docs/examples/sites/get-variable.md +2 -0
  487. package/docs/examples/sites/get.md +2 -0
  488. package/docs/examples/sites/list-deployments.md +2 -0
  489. package/docs/examples/sites/list-frameworks.md +2 -0
  490. package/docs/examples/sites/list-logs.md +2 -0
  491. package/docs/examples/sites/list-specifications.md +2 -0
  492. package/docs/examples/sites/list-templates.md +2 -0
  493. package/docs/examples/sites/list-usage.md +2 -0
  494. package/docs/examples/sites/list-variables.md +2 -0
  495. package/docs/examples/sites/list.md +2 -0
  496. package/docs/examples/sites/update-deployment-status.md +2 -0
  497. package/docs/examples/sites/update-site-deployment.md +2 -0
  498. package/docs/examples/sites/update-variable.md +2 -0
  499. package/docs/examples/sites/update.md +2 -0
  500. package/docs/examples/storage/create-bucket.md +2 -0
  501. package/docs/examples/storage/create-file.md +2 -0
  502. package/docs/examples/storage/delete-bucket.md +2 -0
  503. package/docs/examples/storage/delete-file.md +2 -0
  504. package/docs/examples/storage/get-bucket-usage.md +2 -0
  505. package/docs/examples/storage/get-bucket.md +2 -0
  506. package/docs/examples/storage/get-file-download.md +2 -0
  507. package/docs/examples/storage/get-file-preview.md +2 -0
  508. package/docs/examples/storage/get-file-view.md +2 -0
  509. package/docs/examples/storage/get-file.md +2 -0
  510. package/docs/examples/storage/get-usage.md +2 -0
  511. package/docs/examples/storage/list-buckets.md +2 -0
  512. package/docs/examples/storage/list-files.md +2 -0
  513. package/docs/examples/storage/update-bucket.md +2 -0
  514. package/docs/examples/storage/update-file.md +2 -0
  515. package/docs/examples/tablesdb/create-boolean-column.md +2 -0
  516. package/docs/examples/tablesdb/create-datetime-column.md +2 -0
  517. package/docs/examples/tablesdb/create-email-column.md +2 -0
  518. package/docs/examples/tablesdb/create-enum-column.md +2 -0
  519. package/docs/examples/tablesdb/create-float-column.md +2 -0
  520. package/docs/examples/tablesdb/create-index.md +2 -0
  521. package/docs/examples/tablesdb/create-integer-column.md +2 -0
  522. package/docs/examples/tablesdb/create-ip-column.md +2 -0
  523. package/docs/examples/tablesdb/create-line-column.md +2 -0
  524. package/docs/examples/tablesdb/create-longtext-column.md +4 -1
  525. package/docs/examples/tablesdb/create-mediumtext-column.md +4 -1
  526. package/docs/examples/tablesdb/create-operations.md +2 -0
  527. package/docs/examples/tablesdb/create-point-column.md +2 -0
  528. package/docs/examples/tablesdb/create-polygon-column.md +2 -0
  529. package/docs/examples/tablesdb/create-relationship-column.md +2 -0
  530. package/docs/examples/tablesdb/create-row.md +2 -0
  531. package/docs/examples/tablesdb/create-rows.md +2 -0
  532. package/docs/examples/tablesdb/create-string-column.md +2 -0
  533. package/docs/examples/tablesdb/create-table.md +2 -0
  534. package/docs/examples/tablesdb/create-text-column.md +4 -1
  535. package/docs/examples/tablesdb/create-transaction.md +2 -0
  536. package/docs/examples/tablesdb/create-url-column.md +2 -0
  537. package/docs/examples/tablesdb/create-varchar-column.md +4 -1
  538. package/docs/examples/tablesdb/create.md +2 -0
  539. package/docs/examples/tablesdb/decrement-row-column.md +2 -0
  540. package/docs/examples/tablesdb/delete-column.md +2 -0
  541. package/docs/examples/tablesdb/delete-index.md +2 -0
  542. package/docs/examples/tablesdb/delete-row.md +2 -0
  543. package/docs/examples/tablesdb/delete-rows.md +2 -0
  544. package/docs/examples/tablesdb/delete-table.md +2 -0
  545. package/docs/examples/tablesdb/delete-transaction.md +2 -0
  546. package/docs/examples/tablesdb/delete.md +2 -0
  547. package/docs/examples/tablesdb/get-column.md +2 -0
  548. package/docs/examples/tablesdb/get-index.md +2 -0
  549. package/docs/examples/tablesdb/get-row.md +2 -0
  550. package/docs/examples/tablesdb/get-table-usage.md +2 -0
  551. package/docs/examples/tablesdb/get-table.md +2 -0
  552. package/docs/examples/tablesdb/get-transaction.md +2 -0
  553. package/docs/examples/tablesdb/get-usage.md +2 -0
  554. package/docs/examples/tablesdb/get.md +2 -0
  555. package/docs/examples/tablesdb/increment-row-column.md +2 -0
  556. package/docs/examples/tablesdb/list-columns.md +2 -0
  557. package/docs/examples/tablesdb/list-indexes.md +2 -0
  558. package/docs/examples/tablesdb/list-row-logs.md +2 -0
  559. package/docs/examples/tablesdb/list-rows.md +2 -0
  560. package/docs/examples/tablesdb/list-table-logs.md +2 -0
  561. package/docs/examples/tablesdb/list-tables.md +2 -0
  562. package/docs/examples/tablesdb/list-transactions.md +2 -0
  563. package/docs/examples/tablesdb/list-usage.md +2 -0
  564. package/docs/examples/tablesdb/list.md +2 -0
  565. package/docs/examples/tablesdb/update-boolean-column.md +2 -0
  566. package/docs/examples/tablesdb/update-datetime-column.md +2 -0
  567. package/docs/examples/tablesdb/update-email-column.md +2 -0
  568. package/docs/examples/tablesdb/update-enum-column.md +2 -0
  569. package/docs/examples/tablesdb/update-float-column.md +2 -0
  570. package/docs/examples/tablesdb/update-integer-column.md +2 -0
  571. package/docs/examples/tablesdb/update-ip-column.md +2 -0
  572. package/docs/examples/tablesdb/update-line-column.md +2 -0
  573. package/docs/examples/tablesdb/update-longtext-column.md +2 -0
  574. package/docs/examples/tablesdb/update-mediumtext-column.md +2 -0
  575. package/docs/examples/tablesdb/update-point-column.md +2 -0
  576. package/docs/examples/tablesdb/update-polygon-column.md +2 -0
  577. package/docs/examples/tablesdb/update-relationship-column.md +2 -0
  578. package/docs/examples/tablesdb/update-row.md +2 -0
  579. package/docs/examples/tablesdb/update-rows.md +2 -0
  580. package/docs/examples/tablesdb/update-string-column.md +2 -0
  581. package/docs/examples/tablesdb/update-table.md +2 -0
  582. package/docs/examples/tablesdb/update-text-column.md +2 -0
  583. package/docs/examples/tablesdb/update-transaction.md +2 -0
  584. package/docs/examples/tablesdb/update-url-column.md +2 -0
  585. package/docs/examples/tablesdb/update-varchar-column.md +2 -0
  586. package/docs/examples/tablesdb/update.md +2 -0
  587. package/docs/examples/tablesdb/upsert-row.md +2 -0
  588. package/docs/examples/tablesdb/upsert-rows.md +2 -0
  589. package/docs/examples/teams/create-membership.md +4 -2
  590. package/docs/examples/teams/create.md +2 -0
  591. package/docs/examples/teams/delete-membership.md +2 -0
  592. package/docs/examples/teams/delete.md +2 -0
  593. package/docs/examples/teams/get-membership.md +2 -0
  594. package/docs/examples/teams/get-prefs.md +2 -0
  595. package/docs/examples/teams/get.md +2 -0
  596. package/docs/examples/teams/list-logs.md +2 -0
  597. package/docs/examples/teams/list-memberships.md +2 -0
  598. package/docs/examples/teams/list.md +2 -0
  599. package/docs/examples/teams/update-membership-status.md +2 -0
  600. package/docs/examples/teams/update-membership.md +4 -2
  601. package/docs/examples/teams/update-name.md +2 -0
  602. package/docs/examples/teams/update-prefs.md +2 -0
  603. package/docs/examples/tokens/create-file-token.md +2 -0
  604. package/docs/examples/tokens/delete.md +2 -0
  605. package/docs/examples/tokens/get.md +2 -0
  606. package/docs/examples/tokens/list.md +2 -0
  607. package/docs/examples/tokens/update.md +2 -0
  608. package/docs/examples/users/create-argon-2-user.md +2 -0
  609. package/docs/examples/users/create-bcrypt-user.md +2 -0
  610. package/docs/examples/users/create-jwt.md +2 -0
  611. package/docs/examples/users/create-md-5-user.md +2 -0
  612. package/docs/examples/users/create-mfa-recovery-codes.md +2 -0
  613. package/docs/examples/users/create-ph-pass-user.md +2 -0
  614. package/docs/examples/users/create-scrypt-modified-user.md +2 -0
  615. package/docs/examples/users/create-scrypt-user.md +2 -0
  616. package/docs/examples/users/create-session.md +2 -0
  617. package/docs/examples/users/create-sha-user.md +2 -0
  618. package/docs/examples/users/create-target.md +2 -0
  619. package/docs/examples/users/create-token.md +2 -0
  620. package/docs/examples/users/create.md +2 -0
  621. package/docs/examples/users/delete-identity.md +2 -0
  622. package/docs/examples/users/delete-mfa-authenticator.md +2 -0
  623. package/docs/examples/users/delete-session.md +2 -0
  624. package/docs/examples/users/delete-sessions.md +2 -0
  625. package/docs/examples/users/delete-target.md +2 -0
  626. package/docs/examples/users/delete.md +2 -0
  627. package/docs/examples/users/get-mfa-recovery-codes.md +2 -0
  628. package/docs/examples/users/get-prefs.md +2 -0
  629. package/docs/examples/users/get-target.md +2 -0
  630. package/docs/examples/users/get-usage.md +2 -0
  631. package/docs/examples/users/get.md +2 -0
  632. package/docs/examples/users/list-identities.md +2 -0
  633. package/docs/examples/users/list-logs.md +2 -0
  634. package/docs/examples/users/list-memberships.md +2 -0
  635. package/docs/examples/users/list-mfa-factors.md +2 -0
  636. package/docs/examples/users/list-sessions.md +2 -0
  637. package/docs/examples/users/list-targets.md +2 -0
  638. package/docs/examples/users/list.md +2 -0
  639. package/docs/examples/users/update-email-verification.md +2 -0
  640. package/docs/examples/users/update-email.md +2 -0
  641. package/docs/examples/users/update-labels.md +2 -0
  642. package/docs/examples/users/update-mfa-recovery-codes.md +2 -0
  643. package/docs/examples/users/update-mfa.md +2 -0
  644. package/docs/examples/users/update-name.md +2 -0
  645. package/docs/examples/users/update-password.md +2 -0
  646. package/docs/examples/users/update-phone-verification.md +2 -0
  647. package/docs/examples/users/update-phone.md +2 -0
  648. package/docs/examples/users/update-prefs.md +2 -0
  649. package/docs/examples/users/update-status.md +2 -0
  650. package/docs/examples/users/update-target.md +2 -0
  651. package/docs/examples/vcs/create-repository-detection.md +2 -0
  652. package/docs/examples/vcs/create-repository.md +2 -0
  653. package/docs/examples/vcs/delete-installation.md +2 -0
  654. package/docs/examples/vcs/get-installation.md +2 -0
  655. package/docs/examples/vcs/get-repository-contents.md +2 -0
  656. package/docs/examples/vcs/get-repository.md +2 -0
  657. package/docs/examples/vcs/list-installations.md +2 -0
  658. package/docs/examples/vcs/list-repositories.md +2 -0
  659. package/docs/examples/vcs/list-repository-branches.md +2 -0
  660. package/docs/examples/vcs/update-external-deployments.md +2 -0
  661. package/package.json +1 -1
  662. package/src/channel.ts +30 -18
  663. package/src/client.ts +108 -22
  664. package/src/enums/{services.ts → backup-services.ts} +1 -1
  665. package/src/enums/build-runtime.ts +2 -0
  666. package/src/enums/registration-type.ts +6 -0
  667. package/src/enums/runtime.ts +2 -0
  668. package/src/enums/runtimes.ts +2 -0
  669. package/src/enums/scopes.ts +1 -0
  670. package/src/index.ts +3 -3
  671. package/src/models.ts +227 -5
  672. package/src/services/account.ts +11 -11
  673. package/src/services/activities.ts +116 -0
  674. package/src/services/avatars.ts +3 -3
  675. package/src/services/backups.ts +28 -28
  676. package/src/services/console.ts +1 -1
  677. package/src/services/databases.ts +57 -29
  678. package/src/services/domains.ts +70 -0
  679. package/src/services/functions.ts +2 -2
  680. package/src/services/graphql.ts +2 -2
  681. package/src/services/health.ts +1 -1
  682. package/src/services/migrations.ts +10 -10
  683. package/src/services/organizations.ts +0 -60
  684. package/src/services/projects.ts +28 -78
  685. package/src/services/realtime.ts +135 -58
  686. package/src/services/sites.ts +2 -2
  687. package/src/services/storage.ts +1 -1
  688. package/src/services/tables-db.ts +57 -29
  689. package/src/services/teams.ts +18 -19
  690. package/src/services/users.ts +1 -1
  691. package/types/channel.d.ts +4 -3
  692. package/types/client.d.ts +7 -2
  693. package/types/enums/{services.d.ts → backup-services.d.ts} +1 -1
  694. package/types/enums/build-runtime.d.ts +3 -1
  695. package/types/enums/registration-type.d.ts +6 -0
  696. package/types/enums/runtime.d.ts +3 -1
  697. package/types/enums/runtimes.d.ts +3 -1
  698. package/types/enums/scopes.d.ts +2 -1
  699. package/types/index.d.ts +3 -3
  700. package/types/models.d.ts +224 -5
  701. package/types/services/activities.d.ts +46 -0
  702. package/types/services/backups.d.ts +13 -13
  703. package/types/services/databases.d.ts +16 -4
  704. package/types/services/domains.d.ts +26 -0
  705. package/types/services/migrations.d.ts +2 -2
  706. package/types/services/organizations.d.ts +0 -22
  707. package/types/services/projects.d.ts +8 -25
  708. package/types/services/realtime.d.ts +13 -6
  709. package/types/services/tables-db.d.ts +16 -4
  710. package/types/services/teams.d.ts +8 -9
  711. package/docs/examples/organizations/update-projects.md +0 -14
  712. package/docs/examples/projects/update-status.md +0 -14
  713. package/src/enums/roles.ts +0 -7
  714. package/src/enums/status.ts +0 -4
  715. package/types/enums/roles.d.ts +0 -7
  716. 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 = {
@@ -2771,10 +2771,11 @@ export class TablesDB {
2771
2771
  * @param {boolean} params.required - Is column required?
2772
2772
  * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.
2773
2773
  * @param {boolean} params.array - Is column an array?
2774
+ * @param {boolean} params.encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
2774
2775
  * @throws {AppwriteException}
2775
2776
  * @returns {Promise<Models.ColumnLongtext>}
2776
2777
  */
2777
- createLongtextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnLongtext>;
2778
+ createLongtextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean }): Promise<Models.ColumnLongtext>;
2778
2779
  /**
2779
2780
  * Create a longtext column.
2780
2781
  *
@@ -2785,19 +2786,20 @@ export class TablesDB {
2785
2786
  * @param {boolean} required - Is column required?
2786
2787
  * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.
2787
2788
  * @param {boolean} array - Is column an array?
2789
+ * @param {boolean} encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
2788
2790
  * @throws {AppwriteException}
2789
2791
  * @returns {Promise<Models.ColumnLongtext>}
2790
2792
  * @deprecated Use the object parameter style method for a better developer experience.
2791
2793
  */
2792
- createLongtextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnLongtext>;
2794
+ createLongtextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.ColumnLongtext>;
2793
2795
  createLongtextColumn(
2794
- paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,
2795
- ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?]
2796
+ paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean } | string,
2797
+ ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?, (boolean)?]
2796
2798
  ): Promise<Models.ColumnLongtext> {
2797
- let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
2799
+ let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
2798
2800
 
2799
2801
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
2800
- params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
2802
+ params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
2801
2803
  } else {
2802
2804
  params = {
2803
2805
  databaseId: paramsOrFirst as string,
@@ -2805,7 +2807,8 @@ export class TablesDB {
2805
2807
  key: rest[1] as string,
2806
2808
  required: rest[2] as boolean,
2807
2809
  xdefault: rest[3] as string,
2808
- array: rest[4] as boolean
2810
+ array: rest[4] as boolean,
2811
+ encrypt: rest[5] as boolean
2809
2812
  };
2810
2813
  }
2811
2814
 
@@ -2815,6 +2818,7 @@ export class TablesDB {
2815
2818
  const required = params.required;
2816
2819
  const xdefault = params.xdefault;
2817
2820
  const array = params.array;
2821
+ const encrypt = params.encrypt;
2818
2822
 
2819
2823
  if (typeof databaseId === 'undefined') {
2820
2824
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -2843,6 +2847,9 @@ export class TablesDB {
2843
2847
  if (typeof array !== 'undefined') {
2844
2848
  payload['array'] = array;
2845
2849
  }
2850
+ if (typeof encrypt !== 'undefined') {
2851
+ payload['encrypt'] = encrypt;
2852
+ }
2846
2853
  const uri = new URL(this.client.config.endpoint + apiPath);
2847
2854
 
2848
2855
  const apiHeaders: { [header: string]: string } = {
@@ -2963,10 +2970,11 @@ export class TablesDB {
2963
2970
  * @param {boolean} params.required - Is column required?
2964
2971
  * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.
2965
2972
  * @param {boolean} params.array - Is column an array?
2973
+ * @param {boolean} params.encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
2966
2974
  * @throws {AppwriteException}
2967
2975
  * @returns {Promise<Models.ColumnMediumtext>}
2968
2976
  */
2969
- createMediumtextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnMediumtext>;
2977
+ createMediumtextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean }): Promise<Models.ColumnMediumtext>;
2970
2978
  /**
2971
2979
  * Create a mediumtext column.
2972
2980
  *
@@ -2977,19 +2985,20 @@ export class TablesDB {
2977
2985
  * @param {boolean} required - Is column required?
2978
2986
  * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.
2979
2987
  * @param {boolean} array - Is column an array?
2988
+ * @param {boolean} encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
2980
2989
  * @throws {AppwriteException}
2981
2990
  * @returns {Promise<Models.ColumnMediumtext>}
2982
2991
  * @deprecated Use the object parameter style method for a better developer experience.
2983
2992
  */
2984
- createMediumtextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnMediumtext>;
2993
+ createMediumtextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.ColumnMediumtext>;
2985
2994
  createMediumtextColumn(
2986
- paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,
2987
- ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?]
2995
+ paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean } | string,
2996
+ ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?, (boolean)?]
2988
2997
  ): Promise<Models.ColumnMediumtext> {
2989
- let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
2998
+ let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
2990
2999
 
2991
3000
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
2992
- params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
3001
+ params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
2993
3002
  } else {
2994
3003
  params = {
2995
3004
  databaseId: paramsOrFirst as string,
@@ -2997,7 +3006,8 @@ export class TablesDB {
2997
3006
  key: rest[1] as string,
2998
3007
  required: rest[2] as boolean,
2999
3008
  xdefault: rest[3] as string,
3000
- array: rest[4] as boolean
3009
+ array: rest[4] as boolean,
3010
+ encrypt: rest[5] as boolean
3001
3011
  };
3002
3012
  }
3003
3013
 
@@ -3007,6 +3017,7 @@ export class TablesDB {
3007
3017
  const required = params.required;
3008
3018
  const xdefault = params.xdefault;
3009
3019
  const array = params.array;
3020
+ const encrypt = params.encrypt;
3010
3021
 
3011
3022
  if (typeof databaseId === 'undefined') {
3012
3023
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -3035,6 +3046,9 @@ export class TablesDB {
3035
3046
  if (typeof array !== 'undefined') {
3036
3047
  payload['array'] = array;
3037
3048
  }
3049
+ if (typeof encrypt !== 'undefined') {
3050
+ payload['encrypt'] = encrypt;
3051
+ }
3038
3052
  const uri = new URL(this.client.config.endpoint + apiPath);
3039
3053
 
3040
3054
  const apiHeaders: { [header: string]: string } = {
@@ -3839,10 +3853,11 @@ export class TablesDB {
3839
3853
  * @param {boolean} params.required - Is column required?
3840
3854
  * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.
3841
3855
  * @param {boolean} params.array - Is column an array?
3856
+ * @param {boolean} params.encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
3842
3857
  * @throws {AppwriteException}
3843
3858
  * @returns {Promise<Models.ColumnText>}
3844
3859
  */
3845
- createTextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnText>;
3860
+ createTextColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean }): Promise<Models.ColumnText>;
3846
3861
  /**
3847
3862
  * Create a text column.
3848
3863
  *
@@ -3853,19 +3868,20 @@ export class TablesDB {
3853
3868
  * @param {boolean} required - Is column required?
3854
3869
  * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.
3855
3870
  * @param {boolean} array - Is column an array?
3871
+ * @param {boolean} encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
3856
3872
  * @throws {AppwriteException}
3857
3873
  * @returns {Promise<Models.ColumnText>}
3858
3874
  * @deprecated Use the object parameter style method for a better developer experience.
3859
3875
  */
3860
- createTextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnText>;
3876
+ createTextColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.ColumnText>;
3861
3877
  createTextColumn(
3862
- paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,
3863
- ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?]
3878
+ paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean } | string,
3879
+ ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?, (boolean)?]
3864
3880
  ): Promise<Models.ColumnText> {
3865
- let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
3881
+ let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
3866
3882
 
3867
3883
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
3868
- params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };
3884
+ params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
3869
3885
  } else {
3870
3886
  params = {
3871
3887
  databaseId: paramsOrFirst as string,
@@ -3873,7 +3889,8 @@ export class TablesDB {
3873
3889
  key: rest[1] as string,
3874
3890
  required: rest[2] as boolean,
3875
3891
  xdefault: rest[3] as string,
3876
- array: rest[4] as boolean
3892
+ array: rest[4] as boolean,
3893
+ encrypt: rest[5] as boolean
3877
3894
  };
3878
3895
  }
3879
3896
 
@@ -3883,6 +3900,7 @@ export class TablesDB {
3883
3900
  const required = params.required;
3884
3901
  const xdefault = params.xdefault;
3885
3902
  const array = params.array;
3903
+ const encrypt = params.encrypt;
3886
3904
 
3887
3905
  if (typeof databaseId === 'undefined') {
3888
3906
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -3911,6 +3929,9 @@ export class TablesDB {
3911
3929
  if (typeof array !== 'undefined') {
3912
3930
  payload['array'] = array;
3913
3931
  }
3932
+ if (typeof encrypt !== 'undefined') {
3933
+ payload['encrypt'] = encrypt;
3934
+ }
3914
3935
  const uri = new URL(this.client.config.endpoint + apiPath);
3915
3936
 
3916
3937
  const apiHeaders: { [header: string]: string } = {
@@ -4224,10 +4245,11 @@ export class TablesDB {
4224
4245
  * @param {boolean} params.required - Is column required?
4225
4246
  * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.
4226
4247
  * @param {boolean} params.array - Is column an array?
4248
+ * @param {boolean} params.encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
4227
4249
  * @throws {AppwriteException}
4228
4250
  * @returns {Promise<Models.ColumnVarchar>}
4229
4251
  */
4230
- createVarcharColumn(params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnVarchar>;
4252
+ createVarcharColumn(params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean }): Promise<Models.ColumnVarchar>;
4231
4253
  /**
4232
4254
  * Create a varchar column.
4233
4255
  *
@@ -4239,19 +4261,20 @@ export class TablesDB {
4239
4261
  * @param {boolean} required - Is column required?
4240
4262
  * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.
4241
4263
  * @param {boolean} array - Is column an array?
4264
+ * @param {boolean} encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.
4242
4265
  * @throws {AppwriteException}
4243
4266
  * @returns {Promise<Models.ColumnVarchar>}
4244
4267
  * @deprecated Use the object parameter style method for a better developer experience.
4245
4268
  */
4246
- createVarcharColumn(databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnVarchar>;
4269
+ createVarcharColumn(databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.ColumnVarchar>;
4247
4270
  createVarcharColumn(
4248
- paramsOrFirst: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean } | string,
4249
- ...rest: [(string)?, (string)?, (number)?, (boolean)?, (string)?, (boolean)?]
4271
+ paramsOrFirst: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean } | string,
4272
+ ...rest: [(string)?, (string)?, (number)?, (boolean)?, (string)?, (boolean)?, (boolean)?]
4250
4273
  ): Promise<Models.ColumnVarchar> {
4251
- let params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean };
4274
+ let params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
4252
4275
 
4253
4276
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
4254
- params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean };
4277
+ params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };
4255
4278
  } else {
4256
4279
  params = {
4257
4280
  databaseId: paramsOrFirst as string,
@@ -4260,7 +4283,8 @@ export class TablesDB {
4260
4283
  size: rest[2] as number,
4261
4284
  required: rest[3] as boolean,
4262
4285
  xdefault: rest[4] as string,
4263
- array: rest[5] as boolean
4286
+ array: rest[5] as boolean,
4287
+ encrypt: rest[6] as boolean
4264
4288
  };
4265
4289
  }
4266
4290
 
@@ -4271,6 +4295,7 @@ export class TablesDB {
4271
4295
  const required = params.required;
4272
4296
  const xdefault = params.xdefault;
4273
4297
  const array = params.array;
4298
+ const encrypt = params.encrypt;
4274
4299
 
4275
4300
  if (typeof databaseId === 'undefined') {
4276
4301
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -4305,6 +4330,9 @@ export class TablesDB {
4305
4330
  if (typeof array !== 'undefined') {
4306
4331
  payload['array'] = array;
4307
4332
  }
4333
+ if (typeof encrypt !== 'undefined') {
4334
+ payload['encrypt'] = encrypt;
4335
+ }
4308
4336
  const uri = new URL(this.client.config.endpoint + apiPath);
4309
4337
 
4310
4338
  const apiHeaders: { [header: string]: string } = {