appwrite-cli 13.0.0-rc.1 → 13.0.0-rc.3

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 (430) hide show
  1. package/.github/workflows/publish.yml +68 -0
  2. package/CHANGELOG.md +10 -1
  3. package/LICENSE.md +1 -1
  4. package/README.md +3 -3
  5. package/cli.ts +152 -0
  6. package/dist/bundle.cjs +95813 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +145 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/index.d.ts +10 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +7 -142
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/client.d.ts +2 -3
  16. package/dist/lib/client.d.ts.map +1 -1
  17. package/dist/lib/client.js +57 -45
  18. package/dist/lib/client.js.map +1 -1
  19. package/dist/lib/commands/config.d.ts +562 -0
  20. package/dist/lib/commands/config.d.ts.map +1 -0
  21. package/dist/lib/commands/config.js +416 -0
  22. package/dist/lib/commands/config.js.map +1 -0
  23. package/dist/lib/commands/db.d.ts +34 -0
  24. package/dist/lib/commands/db.d.ts.map +1 -0
  25. package/dist/lib/commands/db.js +247 -0
  26. package/dist/lib/commands/db.js.map +1 -0
  27. package/dist/lib/commands/errors.d.ts +68 -0
  28. package/dist/lib/commands/errors.d.ts.map +1 -0
  29. package/dist/lib/commands/errors.js +72 -0
  30. package/dist/lib/commands/errors.js.map +1 -0
  31. package/dist/lib/commands/generic.d.ts +2 -2
  32. package/dist/lib/commands/generic.d.ts.map +1 -1
  33. package/dist/lib/commands/generic.js +170 -157
  34. package/dist/lib/commands/generic.js.map +1 -1
  35. package/dist/lib/commands/init.d.ts +1 -1
  36. package/dist/lib/commands/init.d.ts.map +1 -1
  37. package/dist/lib/commands/init.js +201 -192
  38. package/dist/lib/commands/init.js.map +1 -1
  39. package/dist/lib/commands/pull.d.ts +105 -3
  40. package/dist/lib/commands/pull.d.ts.map +1 -1
  41. package/dist/lib/commands/pull.js +530 -370
  42. package/dist/lib/commands/pull.js.map +1 -1
  43. package/dist/lib/commands/push.d.ts +106 -0
  44. package/dist/lib/commands/push.d.ts.map +1 -1
  45. package/dist/lib/commands/push.js +1432 -1830
  46. package/dist/lib/commands/push.js.map +1 -1
  47. package/dist/lib/commands/run.d.ts +1 -1
  48. package/dist/lib/commands/run.d.ts.map +1 -1
  49. package/dist/lib/commands/run.js +129 -127
  50. package/dist/lib/commands/run.js.map +1 -1
  51. package/dist/lib/commands/schema.d.ts +59 -0
  52. package/dist/lib/commands/schema.d.ts.map +1 -0
  53. package/dist/lib/commands/schema.js +86 -0
  54. package/dist/lib/commands/schema.js.map +1 -0
  55. package/dist/lib/commands/services/account.d.ts +3 -0
  56. package/dist/lib/commands/services/account.d.ts.map +1 -0
  57. package/dist/lib/commands/services/account.js +328 -0
  58. package/dist/lib/commands/services/account.js.map +1 -0
  59. package/dist/lib/commands/services/console.d.ts +3 -0
  60. package/dist/lib/commands/services/console.d.ts.map +1 -0
  61. package/dist/lib/commands/services/console.js +28 -0
  62. package/dist/lib/commands/services/console.js.map +1 -0
  63. package/dist/lib/commands/services/databases.d.ts +3 -0
  64. package/dist/lib/commands/services/databases.d.ts.map +1 -0
  65. package/dist/lib/commands/services/databases.js +620 -0
  66. package/dist/lib/commands/services/databases.js.map +1 -0
  67. package/dist/lib/commands/services/functions.d.ts +3 -0
  68. package/dist/lib/commands/services/functions.d.ts.map +1 -0
  69. package/dist/lib/commands/services/functions.js +266 -0
  70. package/dist/lib/commands/services/functions.js.map +1 -0
  71. package/dist/lib/commands/services/graphql.d.ts +3 -0
  72. package/dist/lib/commands/services/graphql.d.ts.map +1 -0
  73. package/dist/lib/commands/services/graphql.js +28 -0
  74. package/dist/lib/commands/services/graphql.js.map +1 -0
  75. package/dist/lib/commands/services/health.d.ts +3 -0
  76. package/dist/lib/commands/services/health.d.ts.map +1 -0
  77. package/dist/lib/commands/services/health.js +123 -0
  78. package/dist/lib/commands/services/health.js.map +1 -0
  79. package/dist/lib/commands/services/locale.d.ts +3 -0
  80. package/dist/lib/commands/services/locale.d.ts.map +1 -0
  81. package/dist/lib/commands/services/locale.js +52 -0
  82. package/dist/lib/commands/services/locale.js.map +1 -0
  83. package/dist/lib/commands/services/messaging.d.ts +3 -0
  84. package/dist/lib/commands/services/messaging.d.ts.map +1 -0
  85. package/dist/lib/commands/services/messaging.js +505 -0
  86. package/dist/lib/commands/services/messaging.js.map +1 -0
  87. package/dist/lib/commands/services/migrations.d.ts +3 -0
  88. package/dist/lib/commands/services/migrations.d.ts.map +1 -0
  89. package/dist/lib/commands/services/migrations.js +135 -0
  90. package/dist/lib/commands/services/migrations.js.map +1 -0
  91. package/dist/lib/commands/services/project.d.ts +3 -0
  92. package/dist/lib/commands/services/project.d.ts.map +1 -0
  93. package/dist/lib/commands/services/project.js +54 -0
  94. package/dist/lib/commands/services/project.js.map +1 -0
  95. package/dist/lib/commands/services/projects.d.ts +3 -0
  96. package/dist/lib/commands/services/projects.d.ts.map +1 -0
  97. package/dist/lib/commands/services/projects.js +415 -0
  98. package/dist/lib/commands/services/projects.js.map +1 -0
  99. package/dist/lib/commands/services/proxy.d.ts +3 -0
  100. package/dist/lib/commands/services/proxy.d.ts.map +1 -0
  101. package/dist/lib/commands/services/proxy.js +68 -0
  102. package/dist/lib/commands/services/proxy.js.map +1 -0
  103. package/dist/lib/commands/services/sites.d.ts +3 -0
  104. package/dist/lib/commands/services/sites.d.ts.map +1 -0
  105. package/dist/lib/commands/services/sites.js +250 -0
  106. package/dist/lib/commands/services/sites.js.map +1 -0
  107. package/dist/lib/commands/services/storage.d.ts +3 -0
  108. package/dist/lib/commands/services/storage.d.ts.map +1 -0
  109. package/dist/lib/commands/services/storage.js +175 -0
  110. package/dist/lib/commands/services/storage.js.map +1 -0
  111. package/dist/lib/commands/services/tables-db.d.ts +3 -0
  112. package/dist/lib/commands/services/tables-db.d.ts.map +1 -0
  113. package/dist/lib/commands/services/tables-db.js +613 -0
  114. package/dist/lib/commands/services/tables-db.js.map +1 -0
  115. package/dist/lib/commands/services/teams.d.ts +3 -0
  116. package/dist/lib/commands/services/teams.d.ts.map +1 -0
  117. package/dist/lib/commands/services/teams.js +123 -0
  118. package/dist/lib/commands/services/teams.js.map +1 -0
  119. package/dist/lib/commands/services/tokens.d.ts +3 -0
  120. package/dist/lib/commands/services/tokens.d.ts.map +1 -0
  121. package/dist/lib/commands/services/tokens.js +49 -0
  122. package/dist/lib/commands/services/tokens.js.map +1 -0
  123. package/dist/lib/commands/services/users.d.ts +3 -0
  124. package/dist/lib/commands/services/users.d.ts.map +1 -0
  125. package/dist/lib/commands/services/users.js +312 -0
  126. package/dist/lib/commands/services/users.js.map +1 -0
  127. package/dist/lib/commands/services/vcs.d.ts +3 -0
  128. package/dist/lib/commands/services/vcs.d.ts.map +1 -0
  129. package/dist/lib/commands/services/vcs.js +87 -0
  130. package/dist/lib/commands/services/vcs.js.map +1 -0
  131. package/dist/lib/commands/types.d.ts +1 -1
  132. package/dist/lib/commands/types.d.ts.map +1 -1
  133. package/dist/lib/commands/types.js +53 -57
  134. package/dist/lib/commands/types.js.map +1 -1
  135. package/dist/lib/commands/update.d.ts +1 -1
  136. package/dist/lib/commands/update.d.ts.map +1 -1
  137. package/dist/lib/commands/update.js +69 -69
  138. package/dist/lib/commands/update.js.map +1 -1
  139. package/dist/lib/commands/utils/attributes.d.ts +47 -0
  140. package/dist/lib/commands/utils/attributes.d.ts.map +1 -0
  141. package/dist/lib/commands/utils/attributes.js +514 -0
  142. package/dist/lib/commands/utils/attributes.js.map +1 -0
  143. package/dist/lib/commands/utils/change-approval.d.ts +25 -0
  144. package/dist/lib/commands/utils/change-approval.d.ts.map +1 -0
  145. package/dist/lib/commands/utils/change-approval.js +129 -0
  146. package/dist/lib/commands/utils/change-approval.js.map +1 -0
  147. package/dist/lib/commands/utils/database-sync.d.ts +10 -0
  148. package/dist/lib/commands/utils/database-sync.d.ts.map +1 -0
  149. package/dist/lib/commands/utils/database-sync.js +136 -0
  150. package/dist/lib/commands/utils/database-sync.js.map +1 -0
  151. package/dist/lib/commands/utils/deployment.d.ts +34 -0
  152. package/dist/lib/commands/utils/deployment.d.ts.map +1 -0
  153. package/dist/lib/commands/utils/deployment.js +109 -0
  154. package/dist/lib/commands/utils/deployment.js.map +1 -0
  155. package/dist/lib/commands/utils/error-formatter.d.ts +19 -0
  156. package/dist/lib/commands/utils/error-formatter.d.ts.map +1 -0
  157. package/dist/lib/commands/utils/error-formatter.js +333 -0
  158. package/dist/lib/commands/utils/error-formatter.js.map +1 -0
  159. package/dist/lib/commands/utils/pools.d.ts +16 -0
  160. package/dist/lib/commands/utils/pools.d.ts.map +1 -0
  161. package/dist/lib/commands/utils/pools.js +198 -0
  162. package/dist/lib/commands/utils/pools.js.map +1 -0
  163. package/dist/lib/config.d.ts +41 -40
  164. package/dist/lib/config.d.ts.map +1 -1
  165. package/dist/lib/config.js +264 -239
  166. package/dist/lib/config.js.map +1 -1
  167. package/dist/lib/constants.d.ts +14 -0
  168. package/dist/lib/constants.d.ts.map +1 -0
  169. package/dist/lib/constants.js +19 -0
  170. package/dist/lib/constants.js.map +1 -0
  171. package/dist/lib/emulation/docker.d.ts +4 -12
  172. package/dist/lib/emulation/docker.d.ts.map +1 -1
  173. package/dist/lib/emulation/docker.js +159 -142
  174. package/dist/lib/emulation/docker.js.map +1 -1
  175. package/dist/lib/emulation/utils.d.ts +1 -1
  176. package/dist/lib/emulation/utils.d.ts.map +1 -1
  177. package/dist/lib/emulation/utils.js +55 -58
  178. package/dist/lib/emulation/utils.js.map +1 -1
  179. package/dist/lib/id.d.ts +1 -1
  180. package/dist/lib/id.d.ts.map +1 -1
  181. package/dist/lib/id.js +13 -18
  182. package/dist/lib/id.js.map +1 -1
  183. package/dist/lib/paginate.d.ts +3 -4
  184. package/dist/lib/paginate.d.ts.map +1 -1
  185. package/dist/lib/paginate.js +7 -10
  186. package/dist/lib/paginate.js.map +1 -1
  187. package/dist/lib/parser.d.ts +1 -1
  188. package/dist/lib/parser.d.ts.map +1 -1
  189. package/dist/lib/parser.js +92 -103
  190. package/dist/lib/parser.js.map +1 -1
  191. package/dist/lib/questions.d.ts +1 -1
  192. package/dist/lib/questions.d.ts.map +1 -1
  193. package/dist/lib/questions.js +381 -385
  194. package/dist/lib/questions.js.map +1 -1
  195. package/dist/lib/sdks.d.ts +1 -1
  196. package/dist/lib/sdks.d.ts.map +1 -1
  197. package/dist/lib/sdks.js +39 -30
  198. package/dist/lib/sdks.js.map +1 -1
  199. package/dist/lib/services.d.ts +13 -0
  200. package/dist/lib/services.d.ts.map +1 -0
  201. package/dist/lib/services.js +47 -0
  202. package/dist/lib/services.js.map +1 -0
  203. package/dist/lib/spinner.d.ts +1 -1
  204. package/dist/lib/spinner.d.ts.map +1 -1
  205. package/dist/lib/spinner.js +25 -27
  206. package/dist/lib/spinner.js.map +1 -1
  207. package/dist/lib/type-generation/attribute.d.ts +1 -1
  208. package/dist/lib/type-generation/attribute.d.ts.map +1 -1
  209. package/dist/lib/type-generation/attribute.js +14 -17
  210. package/dist/lib/type-generation/attribute.js.map +1 -1
  211. package/dist/lib/type-generation/languages/csharp.d.ts +1 -1
  212. package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -1
  213. package/dist/lib/type-generation/languages/csharp.js +34 -34
  214. package/dist/lib/type-generation/languages/csharp.js.map +1 -1
  215. package/dist/lib/type-generation/languages/dart.d.ts +1 -1
  216. package/dist/lib/type-generation/languages/dart.d.ts.map +1 -1
  217. package/dist/lib/type-generation/languages/dart.js +57 -57
  218. package/dist/lib/type-generation/languages/dart.js.map +1 -1
  219. package/dist/lib/type-generation/languages/java.d.ts +1 -1
  220. package/dist/lib/type-generation/languages/java.d.ts.map +1 -1
  221. package/dist/lib/type-generation/languages/java.js +35 -35
  222. package/dist/lib/type-generation/languages/java.js.map +1 -1
  223. package/dist/lib/type-generation/languages/javascript.d.ts +1 -1
  224. package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -1
  225. package/dist/lib/type-generation/languages/javascript.js +45 -44
  226. package/dist/lib/type-generation/languages/javascript.js.map +1 -1
  227. package/dist/lib/type-generation/languages/kotlin.d.ts +1 -1
  228. package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -1
  229. package/dist/lib/type-generation/languages/kotlin.js +35 -35
  230. package/dist/lib/type-generation/languages/kotlin.js.map +1 -1
  231. package/dist/lib/type-generation/languages/language.d.ts.map +1 -1
  232. package/dist/lib/type-generation/languages/language.js +32 -37
  233. package/dist/lib/type-generation/languages/language.js.map +1 -1
  234. package/dist/lib/type-generation/languages/php.d.ts +1 -1
  235. package/dist/lib/type-generation/languages/php.d.ts.map +1 -1
  236. package/dist/lib/type-generation/languages/php.js +34 -34
  237. package/dist/lib/type-generation/languages/php.js.map +1 -1
  238. package/dist/lib/type-generation/languages/swift.d.ts +1 -1
  239. package/dist/lib/type-generation/languages/swift.d.ts.map +1 -1
  240. package/dist/lib/type-generation/languages/swift.js +35 -35
  241. package/dist/lib/type-generation/languages/swift.js.map +1 -1
  242. package/dist/lib/type-generation/languages/typescript.d.ts +1 -1
  243. package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -1
  244. package/dist/lib/type-generation/languages/typescript.js +49 -46
  245. package/dist/lib/type-generation/languages/typescript.js.map +1 -1
  246. package/dist/lib/types.d.ts +38 -108
  247. package/dist/lib/types.d.ts.map +1 -1
  248. package/dist/lib/types.js +1 -2
  249. package/dist/lib/utils.d.ts +3 -0
  250. package/dist/lib/utils.d.ts.map +1 -1
  251. package/dist/lib/utils.js +142 -98
  252. package/dist/lib/utils.js.map +1 -1
  253. package/dist/lib/validations.d.ts.map +1 -1
  254. package/dist/lib/validations.js +2 -6
  255. package/dist/lib/validations.js.map +1 -1
  256. package/dist/package.json +68 -0
  257. package/index.ts +25 -149
  258. package/install.ps1 +2 -2
  259. package/install.sh +1 -1
  260. package/lib/client.ts +261 -220
  261. package/lib/commands/config.ts +494 -0
  262. package/lib/commands/db.ts +324 -0
  263. package/lib/commands/errors.ts +93 -0
  264. package/lib/commands/generic.ts +371 -269
  265. package/lib/commands/init.ts +631 -519
  266. package/lib/commands/pull.ts +827 -453
  267. package/lib/commands/push.ts +2191 -2349
  268. package/lib/commands/run.ts +382 -302
  269. package/lib/commands/schema.ts +122 -0
  270. package/lib/commands/services/account.ts +647 -0
  271. package/lib/commands/services/console.ts +52 -0
  272. package/lib/commands/services/databases.ts +1163 -0
  273. package/lib/commands/services/functions.ts +536 -0
  274. package/lib/commands/services/graphql.ts +50 -0
  275. package/lib/commands/services/health.ts +260 -0
  276. package/lib/commands/services/locale.ts +102 -0
  277. package/lib/commands/services/messaging.ts +1052 -0
  278. package/lib/commands/services/migrations.ts +249 -0
  279. package/lib/commands/services/project.ts +112 -0
  280. package/lib/commands/services/projects.ts +785 -0
  281. package/lib/commands/services/proxy.ts +135 -0
  282. package/lib/commands/services/sites.ts +505 -0
  283. package/lib/commands/services/storage.ts +338 -0
  284. package/lib/commands/services/tables-db.ts +1150 -0
  285. package/lib/commands/services/teams.ts +232 -0
  286. package/lib/commands/services/tokens.ts +94 -0
  287. package/lib/commands/services/users.ts +616 -0
  288. package/lib/commands/services/vcs.ts +165 -0
  289. package/lib/commands/types.ts +145 -118
  290. package/lib/commands/update.ts +189 -159
  291. package/lib/commands/utils/attributes.ts +719 -0
  292. package/lib/commands/utils/change-approval.ts +186 -0
  293. package/lib/commands/utils/database-sync.ts +180 -0
  294. package/lib/commands/utils/deployment.ts +184 -0
  295. package/lib/commands/utils/error-formatter.ts +417 -0
  296. package/lib/commands/utils/pools.ts +355 -0
  297. package/lib/config.ts +766 -687
  298. package/lib/constants.ts +22 -0
  299. package/lib/emulation/docker.ts +277 -216
  300. package/lib/emulation/utils.ts +188 -174
  301. package/lib/id.ts +23 -23
  302. package/lib/paginate.ts +69 -55
  303. package/lib/parser.ts +220 -189
  304. package/lib/questions.ts +1024 -948
  305. package/lib/sdks.ts +84 -51
  306. package/lib/services.ts +72 -0
  307. package/lib/spinner.ts +112 -99
  308. package/lib/type-generation/attribute.ts +15 -14
  309. package/lib/type-generation/languages/csharp.ts +71 -60
  310. package/lib/type-generation/languages/dart.ts +106 -93
  311. package/lib/type-generation/languages/java.ts +69 -58
  312. package/lib/type-generation/languages/javascript.ts +84 -73
  313. package/lib/type-generation/languages/kotlin.ts +71 -60
  314. package/lib/type-generation/languages/language.ts +103 -95
  315. package/lib/type-generation/languages/php.ts +67 -56
  316. package/lib/type-generation/languages/swift.ts +71 -60
  317. package/lib/type-generation/languages/typescript.ts +93 -76
  318. package/lib/types.ts +50 -125
  319. package/lib/utils.ts +304 -233
  320. package/lib/validations.ts +17 -14
  321. package/package.json +31 -22
  322. package/scoop/appwrite.config.json +3 -3
  323. package/tsconfig.json +7 -13
  324. package/.github/workflows/autoclose.yml +0 -11
  325. package/.github/workflows/npm-publish.yml +0 -49
  326. package/dist/lib/commands/account.d.ts +0 -379
  327. package/dist/lib/commands/account.d.ts.map +0 -1
  328. package/dist/lib/commands/account.js +0 -1228
  329. package/dist/lib/commands/account.js.map +0 -1
  330. package/dist/lib/commands/console.d.ts +0 -20
  331. package/dist/lib/commands/console.d.ts.map +0 -1
  332. package/dist/lib/commands/console.js +0 -78
  333. package/dist/lib/commands/console.js.map +0 -1
  334. package/dist/lib/commands/databases.d.ts +0 -732
  335. package/dist/lib/commands/databases.d.ts.map +0 -1
  336. package/dist/lib/commands/databases.js +0 -2196
  337. package/dist/lib/commands/databases.js.map +0 -1
  338. package/dist/lib/commands/functions.d.ts +0 -310
  339. package/dist/lib/commands/functions.d.ts.map +0 -1
  340. package/dist/lib/commands/functions.js +0 -1100
  341. package/dist/lib/commands/functions.js.map +0 -1
  342. package/dist/lib/commands/graphql.d.ts +0 -19
  343. package/dist/lib/commands/graphql.d.ts.map +0 -1
  344. package/dist/lib/commands/graphql.js +0 -77
  345. package/dist/lib/commands/graphql.js.map +0 -1
  346. package/dist/lib/commands/health.d.ts +0 -153
  347. package/dist/lib/commands/health.d.ts.map +0 -1
  348. package/dist/lib/commands/health.js +0 -464
  349. package/dist/lib/commands/health.js.map +0 -1
  350. package/dist/lib/commands/locale.d.ts +0 -53
  351. package/dist/lib/commands/locale.d.ts.map +0 -1
  352. package/dist/lib/commands/locale.js +0 -165
  353. package/dist/lib/commands/locale.js.map +0 -1
  354. package/dist/lib/commands/messaging.d.ts +0 -588
  355. package/dist/lib/commands/messaging.d.ts.map +0 -1
  356. package/dist/lib/commands/messaging.js +0 -2042
  357. package/dist/lib/commands/messaging.js.map +0 -1
  358. package/dist/lib/commands/migrations.d.ts +0 -150
  359. package/dist/lib/commands/migrations.d.ts.map +0 -1
  360. package/dist/lib/commands/migrations.js +0 -524
  361. package/dist/lib/commands/migrations.js.map +0 -1
  362. package/dist/lib/commands/organizations.d.ts +0 -11
  363. package/dist/lib/commands/organizations.d.ts.map +0 -1
  364. package/dist/lib/commands/organizations.js +0 -31
  365. package/dist/lib/commands/organizations.js.map +0 -1
  366. package/dist/lib/commands/project.d.ts +0 -53
  367. package/dist/lib/commands/project.d.ts.map +0 -1
  368. package/dist/lib/commands/project.js +0 -176
  369. package/dist/lib/commands/project.js.map +0 -1
  370. package/dist/lib/commands/projects.d.ts +0 -516
  371. package/dist/lib/commands/projects.d.ts.map +0 -1
  372. package/dist/lib/commands/projects.js +0 -1590
  373. package/dist/lib/commands/projects.js.map +0 -1
  374. package/dist/lib/commands/proxy.d.ts +0 -71
  375. package/dist/lib/commands/proxy.d.ts.map +0 -1
  376. package/dist/lib/commands/proxy.js +0 -240
  377. package/dist/lib/commands/proxy.js.map +0 -1
  378. package/dist/lib/commands/sites.d.ts +0 -296
  379. package/dist/lib/commands/sites.d.ts.map +0 -1
  380. package/dist/lib/commands/sites.js +0 -1046
  381. package/dist/lib/commands/sites.js.map +0 -1
  382. package/dist/lib/commands/storage.d.ts +0 -170
  383. package/dist/lib/commands/storage.d.ts.map +0 -1
  384. package/dist/lib/commands/storage.js +0 -651
  385. package/dist/lib/commands/storage.js.map +0 -1
  386. package/dist/lib/commands/tables-db.d.ts +0 -728
  387. package/dist/lib/commands/tables-db.d.ts.map +0 -1
  388. package/dist/lib/commands/tables-db.js +0 -2198
  389. package/dist/lib/commands/tables-db.js.map +0 -1
  390. package/dist/lib/commands/teams.d.ts +0 -129
  391. package/dist/lib/commands/teams.d.ts.map +0 -1
  392. package/dist/lib/commands/teams.js +0 -403
  393. package/dist/lib/commands/teams.js.map +0 -1
  394. package/dist/lib/commands/tokens.d.ts +0 -48
  395. package/dist/lib/commands/tokens.d.ts.map +0 -1
  396. package/dist/lib/commands/tokens.js +0 -156
  397. package/dist/lib/commands/tokens.js.map +0 -1
  398. package/dist/lib/commands/users.d.ts +0 -382
  399. package/dist/lib/commands/users.d.ts.map +0 -1
  400. package/dist/lib/commands/users.js +0 -1195
  401. package/dist/lib/commands/users.js.map +0 -1
  402. package/dist/lib/commands/vcs.d.ts +0 -92
  403. package/dist/lib/commands/vcs.d.ts.map +0 -1
  404. package/dist/lib/commands/vcs.js +0 -276
  405. package/dist/lib/commands/vcs.js.map +0 -1
  406. package/dist/lib/exception.d.ts +0 -8
  407. package/dist/lib/exception.d.ts.map +0 -1
  408. package/dist/lib/exception.js +0 -16
  409. package/dist/lib/exception.js.map +0 -1
  410. package/lib/commands/account.ts +0 -1867
  411. package/lib/commands/console.ts +0 -112
  412. package/lib/commands/databases.ts +0 -3272
  413. package/lib/commands/functions.ts +0 -1587
  414. package/lib/commands/graphql.ts +0 -110
  415. package/lib/commands/health.ts +0 -753
  416. package/lib/commands/locale.ts +0 -270
  417. package/lib/commands/messaging.ts +0 -2878
  418. package/lib/commands/migrations.ts +0 -754
  419. package/lib/commands/organizations.ts +0 -46
  420. package/lib/commands/project.ts +0 -266
  421. package/lib/commands/projects.ts +0 -2370
  422. package/lib/commands/proxy.ts +0 -357
  423. package/lib/commands/sites.ts +0 -1514
  424. package/lib/commands/storage.ts +0 -919
  425. package/lib/commands/tables-db.ts +0 -3260
  426. package/lib/commands/teams.ts +0 -609
  427. package/lib/commands/tokens.ts +0 -232
  428. package/lib/commands/users.ts +0 -1804
  429. package/lib/commands/vcs.ts +0 -428
  430. package/lib/exception.ts +0 -20
@@ -0,0 +1,616 @@
1
+ import { Command } from "commander";
2
+ import { sdkForProject } from "../../sdks.js";
3
+ import {
4
+ actionRunner,
5
+ commandDescriptions,
6
+ success,
7
+ parse,
8
+ parseBool,
9
+ parseInteger,
10
+ } from "../../parser.js";
11
+ import {
12
+ Users,
13
+ PasswordHash,
14
+ UsageRange,
15
+ AuthenticatorType,
16
+ MessagingProviderType,
17
+ } from "@appwrite.io/console";
18
+
19
+ let usersClient: Users | null = null;
20
+
21
+ const getUsersClient = async (): Promise<Users> => {
22
+ if (!usersClient) {
23
+ const sdkClient = await sdkForProject();
24
+ usersClient = new Users(sdkClient);
25
+ }
26
+ return usersClient;
27
+ };
28
+
29
+ export const users = new Command("users")
30
+ .description(commandDescriptions["users"] ?? "")
31
+ .configureHelp({
32
+ helpWidth: process.stdout.columns || 80,
33
+ });
34
+
35
+ users
36
+ .command(`list`)
37
+ .description(`Get a list of all the project's users. You can use the query params to filter your results.`)
38
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels`)
39
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
40
+ .option(
41
+ `--total [value]`,
42
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
43
+ (value: string | undefined) =>
44
+ value === undefined ? true : parseBool(value),
45
+ )
46
+ .action(
47
+ actionRunner(
48
+ async ({ queries, search, total }) =>
49
+ parse(await (await getUsersClient()).list(queries, search, total)),
50
+ ),
51
+ );
52
+
53
+ users
54
+ .command(`create`)
55
+ .description(`Create a new user.`)
56
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
57
+ .option(`--email <email>`, `User email.`)
58
+ .option(`--phone <phone>`, `Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.`)
59
+ .option(`--password <password>`, `Plain text user password. Must be at least 8 chars.`)
60
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
61
+ .action(
62
+ actionRunner(
63
+ async ({ userId, email, phone, password, name }) =>
64
+ parse(await (await getUsersClient()).create(userId, email, phone, password, name)),
65
+ ),
66
+ );
67
+
68
+ users
69
+ .command(`create-argon-2-user`)
70
+ .description(`Create a new user. Password provided must be hashed with the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
71
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
72
+ .requiredOption(`--email <email>`, `User email.`)
73
+ .requiredOption(`--password <password>`, `User password hashed using Argon2.`)
74
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
75
+ .action(
76
+ actionRunner(
77
+ async ({ userId, email, password, name }) =>
78
+ parse(await (await getUsersClient()).createArgon2User(userId, email, password, name)),
79
+ ),
80
+ );
81
+
82
+ users
83
+ .command(`create-bcrypt-user`)
84
+ .description(`Create a new user. Password provided must be hashed with the [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
85
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
86
+ .requiredOption(`--email <email>`, `User email.`)
87
+ .requiredOption(`--password <password>`, `User password hashed using Bcrypt.`)
88
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
89
+ .action(
90
+ actionRunner(
91
+ async ({ userId, email, password, name }) =>
92
+ parse(await (await getUsersClient()).createBcryptUser(userId, email, password, name)),
93
+ ),
94
+ );
95
+
96
+ users
97
+ .command(`list-identities`)
98
+ .description(`Get identities for all users.`)
99
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry`)
100
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
101
+ .option(
102
+ `--total [value]`,
103
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
104
+ (value: string | undefined) =>
105
+ value === undefined ? true : parseBool(value),
106
+ )
107
+ .action(
108
+ actionRunner(
109
+ async ({ queries, search, total }) =>
110
+ parse(await (await getUsersClient()).listIdentities(queries, search, total)),
111
+ ),
112
+ );
113
+
114
+ users
115
+ .command(`delete-identity`)
116
+ .description(`Delete an identity by its unique ID.`)
117
+ .requiredOption(`--identity-id <identity-id>`, `Identity ID.`)
118
+ .action(
119
+ actionRunner(
120
+ async ({ identityId }) =>
121
+ parse(await (await getUsersClient()).deleteIdentity(identityId)),
122
+ ),
123
+ );
124
+
125
+ users
126
+ .command(`create-md-5-user`)
127
+ .description(`Create a new user. Password provided must be hashed with the [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
128
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
129
+ .requiredOption(`--email <email>`, `User email.`)
130
+ .requiredOption(`--password <password>`, `User password hashed using MD5.`)
131
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
132
+ .action(
133
+ actionRunner(
134
+ async ({ userId, email, password, name }) =>
135
+ parse(await (await getUsersClient()).createMD5User(userId, email, password, name)),
136
+ ),
137
+ );
138
+
139
+ users
140
+ .command(`create-ph-pass-user`)
141
+ .description(`Create a new user. Password provided must be hashed with the [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
142
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or pass the string \`ID.unique()\`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
143
+ .requiredOption(`--email <email>`, `User email.`)
144
+ .requiredOption(`--password <password>`, `User password hashed using PHPass.`)
145
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
146
+ .action(
147
+ actionRunner(
148
+ async ({ userId, email, password, name }) =>
149
+ parse(await (await getUsersClient()).createPHPassUser(userId, email, password, name)),
150
+ ),
151
+ );
152
+
153
+ users
154
+ .command(`create-scrypt-user`)
155
+ .description(`Create a new user. Password provided must be hashed with the [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
156
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
157
+ .requiredOption(`--email <email>`, `User email.`)
158
+ .requiredOption(`--password <password>`, `User password hashed using Scrypt.`)
159
+ .requiredOption(`--password-salt <password-salt>`, `Optional salt used to hash password.`)
160
+ .requiredOption(`--password-cpu <password-cpu>`, `Optional CPU cost used to hash password.`, parseInteger)
161
+ .requiredOption(`--password-memory <password-memory>`, `Optional memory cost used to hash password.`, parseInteger)
162
+ .requiredOption(`--password-parallel <password-parallel>`, `Optional parallelization cost used to hash password.`, parseInteger)
163
+ .requiredOption(`--password-length <password-length>`, `Optional hash length used to hash password.`, parseInteger)
164
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
165
+ .action(
166
+ actionRunner(
167
+ async ({ userId, email, password, passwordSalt, passwordCpu, passwordMemory, passwordParallel, passwordLength, name }) =>
168
+ parse(await (await getUsersClient()).createScryptUser(userId, email, password, passwordSalt, passwordCpu, passwordMemory, passwordParallel, passwordLength, name)),
169
+ ),
170
+ );
171
+
172
+ users
173
+ .command(`create-scrypt-modified-user`)
174
+ .description(`Create a new user. Password provided must be hashed with the [Scrypt Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
175
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
176
+ .requiredOption(`--email <email>`, `User email.`)
177
+ .requiredOption(`--password <password>`, `User password hashed using Scrypt Modified.`)
178
+ .requiredOption(`--password-salt <password-salt>`, `Salt used to hash password.`)
179
+ .requiredOption(`--password-salt-separator <password-salt-separator>`, `Salt separator used to hash password.`)
180
+ .requiredOption(`--password-signer-key <password-signer-key>`, `Signer key used to hash password.`)
181
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
182
+ .action(
183
+ actionRunner(
184
+ async ({ userId, email, password, passwordSalt, passwordSaltSeparator, passwordSignerKey, name }) =>
185
+ parse(await (await getUsersClient()).createScryptModifiedUser(userId, email, password, passwordSalt, passwordSaltSeparator, passwordSignerKey, name)),
186
+ ),
187
+ );
188
+
189
+ users
190
+ .command(`create-sha-user`)
191
+ .description(`Create a new user. Password provided must be hashed with the [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use the [POST /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
192
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
193
+ .requiredOption(`--email <email>`, `User email.`)
194
+ .requiredOption(`--password <password>`, `User password hashed using SHA.`)
195
+ .option(`--password-version <password-version>`, `Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512/224', 'sha512/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'`)
196
+ .option(`--name <name>`, `User name. Max length: 128 chars.`)
197
+ .action(
198
+ actionRunner(
199
+ async ({ userId, email, password, passwordVersion, name }) =>
200
+ parse(await (await getUsersClient()).createSHAUser(userId, email, password, passwordVersion as PasswordHash, name)),
201
+ ),
202
+ );
203
+
204
+ users
205
+ .command(`get-usage`)
206
+ .description(`Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.
207
+ `)
208
+ .option(`--range <range>`, `Date range.`)
209
+ .action(
210
+ actionRunner(
211
+ async ({ range }) =>
212
+ parse(await (await getUsersClient()).getUsage(range as UsageRange)),
213
+ ),
214
+ );
215
+
216
+ users
217
+ .command(`get`)
218
+ .description(`Get a user by its unique ID.`)
219
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
220
+ .action(
221
+ actionRunner(
222
+ async ({ userId }) =>
223
+ parse(await (await getUsersClient()).get(userId)),
224
+ ),
225
+ );
226
+
227
+ users
228
+ .command(`delete`)
229
+ .description(`Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https://appwrite.io/docs/server/users#usersUpdateStatus) endpoint instead.`)
230
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
231
+ .action(
232
+ actionRunner(
233
+ async ({ userId }) =>
234
+ parse(await (await getUsersClient()).delete(userId)),
235
+ ),
236
+ );
237
+
238
+ users
239
+ .command(`update-email`)
240
+ .description(`Update the user email by its unique ID.`)
241
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
242
+ .requiredOption(`--email <email>`, `User email.`)
243
+ .action(
244
+ actionRunner(
245
+ async ({ userId, email }) =>
246
+ parse(await (await getUsersClient()).updateEmail(userId, email)),
247
+ ),
248
+ );
249
+
250
+ users
251
+ .command(`create-jwt`)
252
+ .description(`Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.`)
253
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
254
+ .option(`--session-id <session-id>`, `Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.`)
255
+ .option(`--duration <duration>`, `Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.`, parseInteger)
256
+ .action(
257
+ actionRunner(
258
+ async ({ userId, sessionId, duration }) =>
259
+ parse(await (await getUsersClient()).createJWT(userId, sessionId, duration)),
260
+ ),
261
+ );
262
+
263
+ users
264
+ .command(`update-labels`)
265
+ .description(`Update the user labels by its unique ID.
266
+
267
+ Labels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appwrite.io/docs/permissions) for more info.`)
268
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
269
+ .requiredOption(`--labels [labels...]`, `Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.`)
270
+ .action(
271
+ actionRunner(
272
+ async ({ userId, labels }) =>
273
+ parse(await (await getUsersClient()).updateLabels(userId, labels)),
274
+ ),
275
+ );
276
+
277
+ users
278
+ .command(`list-logs`)
279
+ .description(`Get the user activity logs list by its unique ID.`)
280
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
281
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset`)
282
+ .option(
283
+ `--total [value]`,
284
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
285
+ (value: string | undefined) =>
286
+ value === undefined ? true : parseBool(value),
287
+ )
288
+ .action(
289
+ actionRunner(
290
+ async ({ userId, queries, total }) =>
291
+ parse(await (await getUsersClient()).listLogs(userId, queries, total)),
292
+ ),
293
+ );
294
+
295
+ users
296
+ .command(`list-memberships`)
297
+ .description(`Get the user membership list by its unique ID.`)
298
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
299
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles`)
300
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
301
+ .option(
302
+ `--total [value]`,
303
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
304
+ (value: string | undefined) =>
305
+ value === undefined ? true : parseBool(value),
306
+ )
307
+ .action(
308
+ actionRunner(
309
+ async ({ userId, queries, search, total }) =>
310
+ parse(await (await getUsersClient()).listMemberships(userId, queries, search, total)),
311
+ ),
312
+ );
313
+
314
+ users
315
+ .command(`update-mfa`)
316
+ .description(`Enable or disable MFA on a user account.`)
317
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
318
+ .requiredOption(`--mfa <mfa>`, `Enable or disable MFA.`, parseBool)
319
+ .action(
320
+ actionRunner(
321
+ async ({ userId, mfa }) =>
322
+ parse(await (await getUsersClient()).updateMfa(userId, mfa)),
323
+ ),
324
+ );
325
+
326
+ users
327
+ .command(`delete-mfa-authenticator`)
328
+ .description(`Delete an authenticator app.`)
329
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
330
+ .requiredOption(`--type <type>`, `Type of authenticator.`)
331
+ .action(
332
+ actionRunner(
333
+ async ({ userId, type }) =>
334
+ parse(await (await getUsersClient()).deleteMfaAuthenticator(userId, type as AuthenticatorType)),
335
+ ),
336
+ );
337
+
338
+ users
339
+ .command(`list-mfa-factors`)
340
+ .description(`List the factors available on the account to be used as a MFA challange.`)
341
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
342
+ .action(
343
+ actionRunner(
344
+ async ({ userId }) =>
345
+ parse(await (await getUsersClient()).listMfaFactors(userId)),
346
+ ),
347
+ );
348
+
349
+ users
350
+ .command(`get-mfa-recovery-codes`)
351
+ .description(`Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.`)
352
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
353
+ .action(
354
+ actionRunner(
355
+ async ({ userId }) =>
356
+ parse(await (await getUsersClient()).getMfaRecoveryCodes(userId)),
357
+ ),
358
+ );
359
+
360
+ users
361
+ .command(`update-mfa-recovery-codes`)
362
+ .description(`Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.`)
363
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
364
+ .action(
365
+ actionRunner(
366
+ async ({ userId }) =>
367
+ parse(await (await getUsersClient()).updateMfaRecoveryCodes(userId)),
368
+ ),
369
+ );
370
+
371
+ users
372
+ .command(`create-mfa-recovery-codes`)
373
+ .description(`Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method by client SDK.`)
374
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
375
+ .action(
376
+ actionRunner(
377
+ async ({ userId }) =>
378
+ parse(await (await getUsersClient()).createMfaRecoveryCodes(userId)),
379
+ ),
380
+ );
381
+
382
+ users
383
+ .command(`update-name`)
384
+ .description(`Update the user name by its unique ID.`)
385
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
386
+ .requiredOption(`--name <name>`, `User name. Max length: 128 chars.`)
387
+ .action(
388
+ actionRunner(
389
+ async ({ userId, name }) =>
390
+ parse(await (await getUsersClient()).updateName(userId, name)),
391
+ ),
392
+ );
393
+
394
+ users
395
+ .command(`update-password`)
396
+ .description(`Update the user password by its unique ID.`)
397
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
398
+ .requiredOption(`--password <password>`, `New user password. Must be at least 8 chars.`)
399
+ .action(
400
+ actionRunner(
401
+ async ({ userId, password }) =>
402
+ parse(await (await getUsersClient()).updatePassword(userId, password)),
403
+ ),
404
+ );
405
+
406
+ users
407
+ .command(`update-phone`)
408
+ .description(`Update the user phone by its unique ID.`)
409
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
410
+ .requiredOption(`--number <number>`, `User phone number.`)
411
+ .action(
412
+ actionRunner(
413
+ async ({ userId, number }) =>
414
+ parse(await (await getUsersClient()).updatePhone(userId, number)),
415
+ ),
416
+ );
417
+
418
+ users
419
+ .command(`get-prefs`)
420
+ .description(`Get the user preferences by its unique ID.`)
421
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
422
+ .action(
423
+ actionRunner(
424
+ async ({ userId }) =>
425
+ parse(await (await getUsersClient()).getPrefs(userId)),
426
+ ),
427
+ );
428
+
429
+ users
430
+ .command(`update-prefs`)
431
+ .description(`Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.`)
432
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
433
+ .requiredOption(`--prefs <prefs>`, `Prefs key-value JSON object.`)
434
+ .action(
435
+ actionRunner(
436
+ async ({ userId, prefs }) =>
437
+ parse(await (await getUsersClient()).updatePrefs(userId, JSON.parse(prefs))),
438
+ ),
439
+ );
440
+
441
+ users
442
+ .command(`list-sessions`)
443
+ .description(`Get the user sessions list by its unique ID.`)
444
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
445
+ .option(
446
+ `--total [value]`,
447
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
448
+ (value: string | undefined) =>
449
+ value === undefined ? true : parseBool(value),
450
+ )
451
+ .action(
452
+ actionRunner(
453
+ async ({ userId, total }) =>
454
+ parse(await (await getUsersClient()).listSessions(userId, total)),
455
+ ),
456
+ );
457
+
458
+ users
459
+ .command(`create-session`)
460
+ .description(`Creates a session for a user. Returns an immediately usable session object.
461
+
462
+ If you want to generate a token for a custom authentication flow, use the [POST /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken) endpoint.`)
463
+ .requiredOption(`--user-id <user-id>`, `User ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
464
+ .action(
465
+ actionRunner(
466
+ async ({ userId }) =>
467
+ parse(await (await getUsersClient()).createSession(userId)),
468
+ ),
469
+ );
470
+
471
+ users
472
+ .command(`delete-sessions`)
473
+ .description(`Delete all user's sessions by using the user's unique ID.`)
474
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
475
+ .action(
476
+ actionRunner(
477
+ async ({ userId }) =>
478
+ parse(await (await getUsersClient()).deleteSessions(userId)),
479
+ ),
480
+ );
481
+
482
+ users
483
+ .command(`delete-session`)
484
+ .description(`Delete a user sessions by its unique ID.`)
485
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
486
+ .requiredOption(`--session-id <session-id>`, `Session ID.`)
487
+ .action(
488
+ actionRunner(
489
+ async ({ userId, sessionId }) =>
490
+ parse(await (await getUsersClient()).deleteSession(userId, sessionId)),
491
+ ),
492
+ );
493
+
494
+ users
495
+ .command(`update-status`)
496
+ .description(`Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.`)
497
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
498
+ .requiredOption(`--status <status>`, `User Status. To activate the user pass \`true\` and to block the user pass \`false\`.`, parseBool)
499
+ .action(
500
+ actionRunner(
501
+ async ({ userId, status }) =>
502
+ parse(await (await getUsersClient()).updateStatus(userId, status)),
503
+ ),
504
+ );
505
+
506
+ users
507
+ .command(`list-targets`)
508
+ .description(`List the messaging targets that are associated with a user.`)
509
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
510
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType`)
511
+ .option(
512
+ `--total [value]`,
513
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
514
+ (value: string | undefined) =>
515
+ value === undefined ? true : parseBool(value),
516
+ )
517
+ .action(
518
+ actionRunner(
519
+ async ({ userId, queries, total }) =>
520
+ parse(await (await getUsersClient()).listTargets(userId, queries, total)),
521
+ ),
522
+ );
523
+
524
+ users
525
+ .command(`create-target`)
526
+ .description(`Create a messaging target.`)
527
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
528
+ .requiredOption(`--target-id <target-id>`, `Target ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
529
+ .requiredOption(`--provider-type <provider-type>`, `The target provider type. Can be one of the following: \`email\`, \`sms\` or \`push\`.`)
530
+ .requiredOption(`--identifier <identifier>`, `The target identifier (token, email, phone etc.)`)
531
+ .option(`--provider-id <provider-id>`, `Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.`)
532
+ .option(`--name <name>`, `Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.`)
533
+ .action(
534
+ actionRunner(
535
+ async ({ userId, targetId, providerType, identifier, providerId, name }) =>
536
+ parse(await (await getUsersClient()).createTarget(userId, targetId, providerType as MessagingProviderType, identifier, providerId, name)),
537
+ ),
538
+ );
539
+
540
+ users
541
+ .command(`get-target`)
542
+ .description(`Get a user's push notification target by ID.`)
543
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
544
+ .requiredOption(`--target-id <target-id>`, `Target ID.`)
545
+ .action(
546
+ actionRunner(
547
+ async ({ userId, targetId }) =>
548
+ parse(await (await getUsersClient()).getTarget(userId, targetId)),
549
+ ),
550
+ );
551
+
552
+ users
553
+ .command(`update-target`)
554
+ .description(`Update a messaging target.`)
555
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
556
+ .requiredOption(`--target-id <target-id>`, `Target ID.`)
557
+ .option(`--identifier <identifier>`, `The target identifier (token, email, phone etc.)`)
558
+ .option(`--provider-id <provider-id>`, `Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.`)
559
+ .option(`--name <name>`, `Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.`)
560
+ .action(
561
+ actionRunner(
562
+ async ({ userId, targetId, identifier, providerId, name }) =>
563
+ parse(await (await getUsersClient()).updateTarget(userId, targetId, identifier, providerId, name)),
564
+ ),
565
+ );
566
+
567
+ users
568
+ .command(`delete-target`)
569
+ .description(`Delete a messaging target.`)
570
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
571
+ .requiredOption(`--target-id <target-id>`, `Target ID.`)
572
+ .action(
573
+ actionRunner(
574
+ async ({ userId, targetId }) =>
575
+ parse(await (await getUsersClient()).deleteTarget(userId, targetId)),
576
+ ),
577
+ );
578
+
579
+ users
580
+ .command(`create-token`)
581
+ .description(`Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT /account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process.
582
+ `)
583
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
584
+ .option(`--length <length>`, `Token length in characters. The default length is 6 characters`, parseInteger)
585
+ .option(`--expire <expire>`, `Token expiration period in seconds. The default expiration is 15 minutes.`, parseInteger)
586
+ .action(
587
+ actionRunner(
588
+ async ({ userId, length, expire }) =>
589
+ parse(await (await getUsersClient()).createToken(userId, length, expire)),
590
+ ),
591
+ );
592
+
593
+ users
594
+ .command(`update-email-verification`)
595
+ .description(`Update the user email verification status by its unique ID.`)
596
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
597
+ .requiredOption(`--email-verification <email-verification>`, `User email verification status.`, parseBool)
598
+ .action(
599
+ actionRunner(
600
+ async ({ userId, emailVerification }) =>
601
+ parse(await (await getUsersClient()).updateEmailVerification(userId, emailVerification)),
602
+ ),
603
+ );
604
+
605
+ users
606
+ .command(`update-phone-verification`)
607
+ .description(`Update the user phone verification status by its unique ID.`)
608
+ .requiredOption(`--user-id <user-id>`, `User ID.`)
609
+ .requiredOption(`--phone-verification <phone-verification>`, `User phone verification status.`, parseBool)
610
+ .action(
611
+ actionRunner(
612
+ async ({ userId, phoneVerification }) =>
613
+ parse(await (await getUsersClient()).updatePhoneVerification(userId, phoneVerification)),
614
+ ),
615
+ );
616
+