appwrite-cli 12.0.1 → 13.0.0-rc.2

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 (801) hide show
  1. package/.github/workflows/build-verify.yml +71 -0
  2. package/.github/workflows/npm-publish.yml +41 -22
  3. package/CHANGELOG.md +108 -100
  4. package/LICENSE.md +1 -1
  5. package/README.md +58 -35
  6. package/bun.lock +625 -0
  7. package/dist/bundle.cjs +94853 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +145 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/lib/client.d.ts +88 -0
  13. package/dist/lib/client.d.ts.map +1 -0
  14. package/dist/lib/client.js +238 -0
  15. package/dist/lib/client.js.map +1 -0
  16. package/dist/lib/commands/generic.d.ts +17 -0
  17. package/dist/lib/commands/generic.d.ts.map +1 -0
  18. package/dist/lib/commands/generic.js +292 -0
  19. package/dist/lib/commands/generic.js.map +1 -0
  20. package/dist/lib/commands/init.d.ts +3 -0
  21. package/dist/lib/commands/init.d.ts.map +1 -0
  22. package/{lib → dist/lib}/commands/init.js +186 -270
  23. package/dist/lib/commands/init.js.map +1 -0
  24. package/dist/lib/commands/pull.d.ts +8 -0
  25. package/dist/lib/commands/pull.d.ts.map +1 -0
  26. package/{lib → dist/lib}/commands/pull.js +159 -280
  27. package/dist/lib/commands/pull.js.map +1 -0
  28. package/dist/lib/commands/push.d.ts +4 -0
  29. package/dist/lib/commands/push.d.ts.map +1 -0
  30. package/dist/lib/commands/push.js +2127 -0
  31. package/dist/lib/commands/push.js.map +1 -0
  32. package/dist/lib/commands/run.d.ts +3 -0
  33. package/dist/lib/commands/run.d.ts.map +1 -0
  34. package/{lib → dist/lib}/commands/run.js +146 -187
  35. package/dist/lib/commands/run.js.map +1 -0
  36. package/dist/lib/commands/services/account.d.ts +3 -0
  37. package/dist/lib/commands/services/account.d.ts.map +1 -0
  38. package/dist/lib/commands/services/account.js +306 -0
  39. package/dist/lib/commands/services/account.js.map +1 -0
  40. package/dist/lib/commands/services/avatars.d.ts +3 -0
  41. package/dist/lib/commands/services/avatars.d.ts.map +1 -0
  42. package/dist/lib/commands/services/avatars.js +118 -0
  43. package/dist/lib/commands/services/avatars.js.map +1 -0
  44. package/dist/lib/commands/services/console.d.ts +3 -0
  45. package/dist/lib/commands/services/console.d.ts.map +1 -0
  46. package/dist/lib/commands/services/console.js +41 -0
  47. package/dist/lib/commands/services/console.js.map +1 -0
  48. package/dist/lib/commands/services/databases.d.ts +3 -0
  49. package/dist/lib/commands/services/databases.d.ts.map +1 -0
  50. package/dist/lib/commands/services/databases.js +612 -0
  51. package/dist/lib/commands/services/databases.js.map +1 -0
  52. package/dist/lib/commands/services/functions.d.ts +3 -0
  53. package/dist/lib/commands/services/functions.d.ts.map +1 -0
  54. package/dist/lib/commands/services/functions.js +258 -0
  55. package/dist/lib/commands/services/functions.js.map +1 -0
  56. package/dist/lib/commands/services/graphql.d.ts +3 -0
  57. package/dist/lib/commands/services/graphql.d.ts.map +1 -0
  58. package/dist/lib/commands/services/graphql.js +28 -0
  59. package/dist/lib/commands/services/graphql.js.map +1 -0
  60. package/dist/lib/commands/services/health.d.ts +3 -0
  61. package/dist/lib/commands/services/health.d.ts.map +1 -0
  62. package/dist/lib/commands/services/health.js +123 -0
  63. package/dist/lib/commands/services/health.js.map +1 -0
  64. package/dist/lib/commands/services/locale.d.ts +3 -0
  65. package/dist/lib/commands/services/locale.d.ts.map +1 -0
  66. package/dist/lib/commands/services/locale.js +52 -0
  67. package/dist/lib/commands/services/locale.js.map +1 -0
  68. package/dist/lib/commands/services/messaging.d.ts +3 -0
  69. package/dist/lib/commands/services/messaging.d.ts.map +1 -0
  70. package/dist/lib/commands/services/messaging.js +505 -0
  71. package/dist/lib/commands/services/messaging.js.map +1 -0
  72. package/dist/lib/commands/services/migrations.d.ts +3 -0
  73. package/dist/lib/commands/services/migrations.d.ts.map +1 -0
  74. package/dist/lib/commands/services/migrations.js +135 -0
  75. package/dist/lib/commands/services/migrations.js.map +1 -0
  76. package/dist/lib/commands/services/project.d.ts +3 -0
  77. package/dist/lib/commands/services/project.d.ts.map +1 -0
  78. package/dist/lib/commands/services/project.js +54 -0
  79. package/dist/lib/commands/services/project.js.map +1 -0
  80. package/dist/lib/commands/services/projects.d.ts +3 -0
  81. package/dist/lib/commands/services/projects.d.ts.map +1 -0
  82. package/dist/lib/commands/services/projects.js +415 -0
  83. package/dist/lib/commands/services/projects.js.map +1 -0
  84. package/dist/lib/commands/services/proxy.d.ts +3 -0
  85. package/dist/lib/commands/services/proxy.d.ts.map +1 -0
  86. package/dist/lib/commands/services/proxy.js +68 -0
  87. package/dist/lib/commands/services/proxy.js.map +1 -0
  88. package/dist/lib/commands/services/sites.d.ts +3 -0
  89. package/dist/lib/commands/services/sites.d.ts.map +1 -0
  90. package/dist/lib/commands/services/sites.js +242 -0
  91. package/dist/lib/commands/services/sites.js.map +1 -0
  92. package/dist/lib/commands/services/storage.d.ts +3 -0
  93. package/dist/lib/commands/services/storage.d.ts.map +1 -0
  94. package/dist/lib/commands/services/storage.js +153 -0
  95. package/dist/lib/commands/services/storage.js.map +1 -0
  96. package/dist/lib/commands/services/tablesdb.d.ts +3 -0
  97. package/dist/lib/commands/services/tablesdb.d.ts.map +1 -0
  98. package/dist/lib/commands/services/tablesdb.js +605 -0
  99. package/dist/lib/commands/services/tablesdb.js.map +1 -0
  100. package/dist/lib/commands/services/teams.d.ts +3 -0
  101. package/dist/lib/commands/services/teams.d.ts.map +1 -0
  102. package/dist/lib/commands/services/teams.js +123 -0
  103. package/dist/lib/commands/services/teams.js.map +1 -0
  104. package/dist/lib/commands/services/tokens.d.ts +3 -0
  105. package/dist/lib/commands/services/tokens.d.ts.map +1 -0
  106. package/dist/lib/commands/services/tokens.js +49 -0
  107. package/dist/lib/commands/services/tokens.js.map +1 -0
  108. package/dist/lib/commands/services/users.d.ts +3 -0
  109. package/dist/lib/commands/services/users.d.ts.map +1 -0
  110. package/dist/lib/commands/services/users.js +312 -0
  111. package/dist/lib/commands/services/users.js.map +1 -0
  112. package/dist/lib/commands/services/vcs.d.ts +3 -0
  113. package/dist/lib/commands/services/vcs.d.ts.map +1 -0
  114. package/dist/lib/commands/services/vcs.js +87 -0
  115. package/dist/lib/commands/services/vcs.js.map +1 -0
  116. package/dist/lib/commands/types.d.ts +3 -0
  117. package/dist/lib/commands/types.d.ts.map +1 -0
  118. package/dist/lib/commands/types.js +151 -0
  119. package/dist/lib/commands/types.js.map +1 -0
  120. package/dist/lib/commands/update.d.ts +3 -0
  121. package/dist/lib/commands/update.d.ts.map +1 -0
  122. package/{lib → dist/lib}/commands/update.js +62 -79
  123. package/dist/lib/commands/update.js.map +1 -0
  124. package/dist/lib/config.d.ts +118 -0
  125. package/dist/lib/config.d.ts.map +1 -0
  126. package/{lib → dist/lib}/config.js +173 -232
  127. package/dist/lib/config.js.map +1 -0
  128. package/dist/lib/emulation/docker.d.ts +7 -0
  129. package/dist/lib/emulation/docker.d.ts.map +1 -0
  130. package/dist/lib/emulation/docker.js +224 -0
  131. package/dist/lib/emulation/docker.js.map +1 -0
  132. package/dist/lib/emulation/utils.d.ts +29 -0
  133. package/dist/lib/emulation/utils.d.ts.map +1 -0
  134. package/{lib → dist/lib}/emulation/utils.js +70 -91
  135. package/dist/lib/emulation/utils.js.map +1 -0
  136. package/dist/lib/id.d.ts +7 -0
  137. package/dist/lib/id.d.ts.map +1 -0
  138. package/{lib → dist/lib}/id.js +5 -8
  139. package/dist/lib/id.js.map +1 -0
  140. package/dist/lib/paginate.d.ts +9 -0
  141. package/dist/lib/paginate.d.ts.map +1 -0
  142. package/{lib → dist/lib}/paginate.js +10 -19
  143. package/dist/lib/paginate.js.map +1 -0
  144. package/dist/lib/parser.d.ts +18 -0
  145. package/dist/lib/parser.d.ts.map +1 -0
  146. package/dist/lib/parser.js +225 -0
  147. package/dist/lib/parser.js.map +1 -0
  148. package/dist/lib/questions.d.ts +59 -0
  149. package/dist/lib/questions.d.ts.map +1 -0
  150. package/{lib → dist/lib}/questions.js +393 -500
  151. package/dist/lib/questions.js.map +1 -0
  152. package/dist/lib/sdks.d.ts +4 -0
  153. package/dist/lib/sdks.d.ts.map +1 -0
  154. package/dist/lib/sdks.js +61 -0
  155. package/dist/lib/sdks.js.map +1 -0
  156. package/dist/lib/services.d.ts +13 -0
  157. package/dist/lib/services.d.ts.map +1 -0
  158. package/dist/lib/services.js +47 -0
  159. package/dist/lib/services.js.map +1 -0
  160. package/dist/lib/spinner.d.ts +28 -0
  161. package/dist/lib/spinner.d.ts.map +1 -0
  162. package/dist/lib/spinner.js +91 -0
  163. package/dist/lib/spinner.js.map +1 -0
  164. package/dist/lib/type-generation/attribute.d.ts +17 -0
  165. package/dist/lib/type-generation/attribute.d.ts.map +1 -0
  166. package/{lib → dist/lib}/type-generation/attribute.js +2 -5
  167. package/dist/lib/type-generation/attribute.js.map +1 -0
  168. package/dist/lib/type-generation/languages/csharp.d.ts +7 -0
  169. package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -0
  170. package/dist/lib/type-generation/languages/csharp.js +180 -0
  171. package/dist/lib/type-generation/languages/csharp.js.map +1 -0
  172. package/dist/lib/type-generation/languages/dart.d.ts +8 -0
  173. package/dist/lib/type-generation/languages/dart.d.ts.map +1 -0
  174. package/dist/lib/type-generation/languages/dart.js +197 -0
  175. package/dist/lib/type-generation/languages/dart.js.map +1 -0
  176. package/dist/lib/type-generation/languages/java.d.ts +7 -0
  177. package/dist/lib/type-generation/languages/java.d.ts.map +1 -0
  178. package/dist/lib/type-generation/languages/java.js +140 -0
  179. package/dist/lib/type-generation/languages/java.js.map +1 -0
  180. package/dist/lib/type-generation/languages/javascript.d.ts +9 -0
  181. package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -0
  182. package/dist/lib/type-generation/languages/javascript.js +109 -0
  183. package/dist/lib/type-generation/languages/javascript.js.map +1 -0
  184. package/dist/lib/type-generation/languages/kotlin.d.ts +7 -0
  185. package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -0
  186. package/dist/lib/type-generation/languages/kotlin.js +95 -0
  187. package/dist/lib/type-generation/languages/kotlin.js.map +1 -0
  188. package/dist/lib/type-generation/languages/language.d.ts +43 -0
  189. package/dist/lib/type-generation/languages/language.d.ts.map +1 -0
  190. package/dist/lib/type-generation/languages/language.js +77 -0
  191. package/dist/lib/type-generation/languages/language.js.map +1 -0
  192. package/dist/lib/type-generation/languages/php.d.ts +7 -0
  193. package/dist/lib/type-generation/languages/php.d.ts.map +1 -0
  194. package/dist/lib/type-generation/languages/php.js +116 -0
  195. package/dist/lib/type-generation/languages/php.js.map +1 -0
  196. package/dist/lib/type-generation/languages/swift.d.ts +7 -0
  197. package/dist/lib/type-generation/languages/swift.d.ts.map +1 -0
  198. package/dist/lib/type-generation/languages/swift.js +179 -0
  199. package/dist/lib/type-generation/languages/swift.js.map +1 -0
  200. package/dist/lib/type-generation/languages/typescript.d.ts +9 -0
  201. package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -0
  202. package/dist/lib/type-generation/languages/typescript.js +115 -0
  203. package/dist/lib/type-generation/languages/typescript.js.map +1 -0
  204. package/dist/lib/types.d.ts +277 -0
  205. package/dist/lib/types.d.ts.map +1 -0
  206. package/dist/lib/types.js +2 -0
  207. package/dist/lib/types.js.map +1 -0
  208. package/dist/lib/utils.d.ts +15 -0
  209. package/dist/lib/utils.d.ts.map +1 -0
  210. package/{lib → dist/lib}/utils.js +125 -167
  211. package/dist/lib/utils.js.map +1 -0
  212. package/dist/lib/validations.d.ts +2 -0
  213. package/dist/lib/validations.d.ts.map +1 -0
  214. package/dist/lib/validations.js +16 -0
  215. package/dist/lib/validations.js.map +1 -0
  216. package/dist/package.json +67 -0
  217. package/dist/scripts/generate-commands.d.ts +2 -0
  218. package/dist/scripts/generate-commands.d.ts.map +1 -0
  219. package/dist/scripts/generate-commands.js +398 -0
  220. package/dist/scripts/generate-commands.js.map +1 -0
  221. package/index.ts +168 -0
  222. package/install.ps1 +2 -5
  223. package/install.sh +1 -2
  224. package/lib/client.ts +292 -0
  225. package/lib/commands/generic.ts +440 -0
  226. package/lib/commands/init.ts +713 -0
  227. package/lib/commands/pull.ts +668 -0
  228. package/lib/commands/push.ts +3183 -0
  229. package/lib/commands/run.ts +416 -0
  230. package/lib/commands/services/account.ts +832 -0
  231. package/lib/commands/services/avatars.ts +400 -0
  232. package/lib/commands/services/console.ts +73 -0
  233. package/lib/commands/services/databases.ts +2080 -0
  234. package/lib/commands/services/functions.ts +855 -0
  235. package/lib/commands/services/graphql.ts +47 -0
  236. package/lib/commands/services/health.ts +322 -0
  237. package/lib/commands/services/locale.ts +99 -0
  238. package/lib/commands/services/messaging.ts +1871 -0
  239. package/lib/commands/services/migrations.ts +421 -0
  240. package/lib/commands/services/project.ts +116 -0
  241. package/lib/commands/services/projects.ts +1317 -0
  242. package/lib/commands/services/proxy.ts +163 -0
  243. package/lib/commands/services/sites.ts +777 -0
  244. package/lib/commands/services/storage.ts +547 -0
  245. package/lib/commands/services/tablesdb.ts +1928 -0
  246. package/lib/commands/services/teams.ts +294 -0
  247. package/lib/commands/services/tokens.ts +106 -0
  248. package/lib/commands/services/users.ts +886 -0
  249. package/lib/commands/services/vcs.ts +268 -0
  250. package/lib/commands/types.ts +220 -0
  251. package/lib/commands/update.ts +255 -0
  252. package/lib/config.ts +969 -0
  253. package/lib/emulation/docker.ts +312 -0
  254. package/lib/emulation/utils.ts +207 -0
  255. package/lib/id.ts +30 -0
  256. package/lib/paginate.ts +77 -0
  257. package/lib/parser.ts +264 -0
  258. package/lib/questions.ts +1167 -0
  259. package/lib/sdks.ts +84 -0
  260. package/lib/services.ts +72 -0
  261. package/lib/spinner.ts +131 -0
  262. package/lib/type-generation/attribute.ts +18 -0
  263. package/lib/type-generation/languages/{csharp.js → csharp.ts} +27 -14
  264. package/lib/type-generation/languages/{dart.js → dart.ts} +61 -46
  265. package/lib/type-generation/languages/{java.js → java.ts} +31 -18
  266. package/lib/type-generation/languages/{javascript.js → javascript.ts} +35 -24
  267. package/lib/type-generation/languages/{kotlin.js → kotlin.ts} +27 -14
  268. package/lib/type-generation/languages/{language.js → language.ts} +45 -43
  269. package/lib/type-generation/languages/{php.js → php.ts} +28 -15
  270. package/lib/type-generation/languages/{swift.js → swift.ts} +27 -14
  271. package/lib/type-generation/languages/{typescript.js → typescript.ts} +43 -26
  272. package/lib/types.ts +304 -0
  273. package/lib/utils.ts +352 -0
  274. package/lib/validations.ts +20 -0
  275. package/package.json +36 -19
  276. package/scoop/appwrite.config.json +19 -29
  277. package/scripts/generate-commands.ts +539 -0
  278. package/tsconfig.json +24 -0
  279. package/.github/workflows/autoclose.yml +0 -11
  280. package/docs/examples/account/create-anonymous-session.md +0 -1
  281. package/docs/examples/account/create-email-password-session.md +0 -3
  282. package/docs/examples/account/create-email-token.md +0 -3
  283. package/docs/examples/account/create-email-verification.md +0 -2
  284. package/docs/examples/account/create-jwt.md +0 -1
  285. package/docs/examples/account/create-magic-url-token.md +0 -3
  286. package/docs/examples/account/create-mfa-authenticator.md +0 -2
  287. package/docs/examples/account/create-mfa-challenge.md +0 -2
  288. package/docs/examples/account/create-mfa-recovery-codes.md +0 -1
  289. package/docs/examples/account/create-o-auth-2-session.md +0 -2
  290. package/docs/examples/account/create-o-auth-2-token.md +0 -2
  291. package/docs/examples/account/create-phone-token.md +0 -3
  292. package/docs/examples/account/create-phone-verification.md +0 -1
  293. package/docs/examples/account/create-push-target.md +0 -3
  294. package/docs/examples/account/create-recovery.md +0 -3
  295. package/docs/examples/account/create-session.md +0 -3
  296. package/docs/examples/account/create-verification.md +0 -2
  297. package/docs/examples/account/create.md +0 -4
  298. package/docs/examples/account/delete-identity.md +0 -2
  299. package/docs/examples/account/delete-mfa-authenticator.md +0 -2
  300. package/docs/examples/account/delete-push-target.md +0 -2
  301. package/docs/examples/account/delete-session.md +0 -2
  302. package/docs/examples/account/delete-sessions.md +0 -1
  303. package/docs/examples/account/delete.md +0 -1
  304. package/docs/examples/account/get-mfa-recovery-codes.md +0 -1
  305. package/docs/examples/account/get-prefs.md +0 -1
  306. package/docs/examples/account/get-session.md +0 -2
  307. package/docs/examples/account/get.md +0 -1
  308. package/docs/examples/account/list-identities.md +0 -1
  309. package/docs/examples/account/list-logs.md +0 -1
  310. package/docs/examples/account/list-mfa-factors.md +0 -1
  311. package/docs/examples/account/list-sessions.md +0 -1
  312. package/docs/examples/account/update-email-verification.md +0 -3
  313. package/docs/examples/account/update-email.md +0 -3
  314. package/docs/examples/account/update-magic-url-session.md +0 -3
  315. package/docs/examples/account/update-mfa-authenticator.md +0 -3
  316. package/docs/examples/account/update-mfa-challenge.md +0 -3
  317. package/docs/examples/account/update-mfa-recovery-codes.md +0 -1
  318. package/docs/examples/account/update-mfa.md +0 -2
  319. package/docs/examples/account/update-name.md +0 -2
  320. package/docs/examples/account/update-password.md +0 -2
  321. package/docs/examples/account/update-phone-session.md +0 -3
  322. package/docs/examples/account/update-phone-verification.md +0 -3
  323. package/docs/examples/account/update-phone.md +0 -3
  324. package/docs/examples/account/update-prefs.md +0 -2
  325. package/docs/examples/account/update-push-target.md +0 -3
  326. package/docs/examples/account/update-recovery.md +0 -4
  327. package/docs/examples/account/update-session.md +0 -2
  328. package/docs/examples/account/update-status.md +0 -1
  329. package/docs/examples/account/update-verification.md +0 -3
  330. package/docs/examples/console/get-resource.md +0 -3
  331. package/docs/examples/console/variables.md +0 -1
  332. package/docs/examples/databases/create-boolean-attribute.md +0 -5
  333. package/docs/examples/databases/create-collection.md +0 -4
  334. package/docs/examples/databases/create-datetime-attribute.md +0 -5
  335. package/docs/examples/databases/create-document.md +0 -5
  336. package/docs/examples/databases/create-documents.md +0 -4
  337. package/docs/examples/databases/create-email-attribute.md +0 -5
  338. package/docs/examples/databases/create-enum-attribute.md +0 -6
  339. package/docs/examples/databases/create-float-attribute.md +0 -5
  340. package/docs/examples/databases/create-index.md +0 -6
  341. package/docs/examples/databases/create-integer-attribute.md +0 -5
  342. package/docs/examples/databases/create-ip-attribute.md +0 -5
  343. package/docs/examples/databases/create-line-attribute.md +0 -5
  344. package/docs/examples/databases/create-operations.md +0 -2
  345. package/docs/examples/databases/create-point-attribute.md +0 -5
  346. package/docs/examples/databases/create-polygon-attribute.md +0 -5
  347. package/docs/examples/databases/create-relationship-attribute.md +0 -5
  348. package/docs/examples/databases/create-string-attribute.md +0 -6
  349. package/docs/examples/databases/create-transaction.md +0 -1
  350. package/docs/examples/databases/create-url-attribute.md +0 -5
  351. package/docs/examples/databases/create.md +0 -3
  352. package/docs/examples/databases/decrement-document-attribute.md +0 -5
  353. package/docs/examples/databases/delete-attribute.md +0 -4
  354. package/docs/examples/databases/delete-collection.md +0 -3
  355. package/docs/examples/databases/delete-document.md +0 -4
  356. package/docs/examples/databases/delete-documents.md +0 -3
  357. package/docs/examples/databases/delete-index.md +0 -4
  358. package/docs/examples/databases/delete-transaction.md +0 -2
  359. package/docs/examples/databases/delete.md +0 -2
  360. package/docs/examples/databases/get-attribute.md +0 -4
  361. package/docs/examples/databases/get-collection-usage.md +0 -3
  362. package/docs/examples/databases/get-collection.md +0 -3
  363. package/docs/examples/databases/get-document.md +0 -4
  364. package/docs/examples/databases/get-index.md +0 -4
  365. package/docs/examples/databases/get-transaction.md +0 -2
  366. package/docs/examples/databases/get-usage.md +0 -2
  367. package/docs/examples/databases/get.md +0 -2
  368. package/docs/examples/databases/increment-document-attribute.md +0 -5
  369. package/docs/examples/databases/list-attributes.md +0 -3
  370. package/docs/examples/databases/list-collection-logs.md +0 -3
  371. package/docs/examples/databases/list-collections.md +0 -2
  372. package/docs/examples/databases/list-document-logs.md +0 -4
  373. package/docs/examples/databases/list-documents.md +0 -3
  374. package/docs/examples/databases/list-indexes.md +0 -3
  375. package/docs/examples/databases/list-logs.md +0 -2
  376. package/docs/examples/databases/list-transactions.md +0 -1
  377. package/docs/examples/databases/list-usage.md +0 -1
  378. package/docs/examples/databases/list.md +0 -1
  379. package/docs/examples/databases/update-boolean-attribute.md +0 -6
  380. package/docs/examples/databases/update-collection.md +0 -4
  381. package/docs/examples/databases/update-datetime-attribute.md +0 -6
  382. package/docs/examples/databases/update-document.md +0 -4
  383. package/docs/examples/databases/update-documents.md +0 -3
  384. package/docs/examples/databases/update-email-attribute.md +0 -6
  385. package/docs/examples/databases/update-enum-attribute.md +0 -7
  386. package/docs/examples/databases/update-float-attribute.md +0 -6
  387. package/docs/examples/databases/update-integer-attribute.md +0 -6
  388. package/docs/examples/databases/update-ip-attribute.md +0 -6
  389. package/docs/examples/databases/update-line-attribute.md +0 -5
  390. package/docs/examples/databases/update-point-attribute.md +0 -5
  391. package/docs/examples/databases/update-polygon-attribute.md +0 -5
  392. package/docs/examples/databases/update-relationship-attribute.md +0 -4
  393. package/docs/examples/databases/update-string-attribute.md +0 -6
  394. package/docs/examples/databases/update-transaction.md +0 -2
  395. package/docs/examples/databases/update-url-attribute.md +0 -6
  396. package/docs/examples/databases/update.md +0 -3
  397. package/docs/examples/databases/upsert-document.md +0 -5
  398. package/docs/examples/databases/upsert-documents.md +0 -4
  399. package/docs/examples/functions/create-deployment.md +0 -4
  400. package/docs/examples/functions/create-duplicate-deployment.md +0 -3
  401. package/docs/examples/functions/create-execution.md +0 -2
  402. package/docs/examples/functions/create-template-deployment.md +0 -7
  403. package/docs/examples/functions/create-variable.md +0 -4
  404. package/docs/examples/functions/create-vcs-deployment.md +0 -4
  405. package/docs/examples/functions/create.md +0 -4
  406. package/docs/examples/functions/delete-deployment.md +0 -3
  407. package/docs/examples/functions/delete-execution.md +0 -3
  408. package/docs/examples/functions/delete-variable.md +0 -3
  409. package/docs/examples/functions/delete.md +0 -2
  410. package/docs/examples/functions/get-deployment-download.md +0 -3
  411. package/docs/examples/functions/get-deployment.md +0 -3
  412. package/docs/examples/functions/get-execution.md +0 -3
  413. package/docs/examples/functions/get-template.md +0 -2
  414. package/docs/examples/functions/get-usage.md +0 -2
  415. package/docs/examples/functions/get-variable.md +0 -3
  416. package/docs/examples/functions/get.md +0 -2
  417. package/docs/examples/functions/list-deployments.md +0 -2
  418. package/docs/examples/functions/list-executions.md +0 -2
  419. package/docs/examples/functions/list-runtimes.md +0 -1
  420. package/docs/examples/functions/list-specifications.md +0 -1
  421. package/docs/examples/functions/list-templates.md +0 -1
  422. package/docs/examples/functions/list-usage.md +0 -1
  423. package/docs/examples/functions/list-variables.md +0 -2
  424. package/docs/examples/functions/list.md +0 -1
  425. package/docs/examples/functions/update-deployment-status.md +0 -3
  426. package/docs/examples/functions/update-function-deployment.md +0 -3
  427. package/docs/examples/functions/update-variable.md +0 -4
  428. package/docs/examples/functions/update.md +0 -3
  429. package/docs/examples/graphql/mutation.md +0 -2
  430. package/docs/examples/graphql/query.md +0 -2
  431. package/docs/examples/health/get-antivirus.md +0 -1
  432. package/docs/examples/health/get-cache.md +0 -1
  433. package/docs/examples/health/get-certificate.md +0 -1
  434. package/docs/examples/health/get-db.md +0 -1
  435. package/docs/examples/health/get-failed-jobs.md +0 -2
  436. package/docs/examples/health/get-pub-sub.md +0 -1
  437. package/docs/examples/health/get-queue-builds.md +0 -1
  438. package/docs/examples/health/get-queue-certificates.md +0 -1
  439. package/docs/examples/health/get-queue-databases.md +0 -1
  440. package/docs/examples/health/get-queue-deletes.md +0 -1
  441. package/docs/examples/health/get-queue-functions.md +0 -1
  442. package/docs/examples/health/get-queue-logs.md +0 -1
  443. package/docs/examples/health/get-queue-mails.md +0 -1
  444. package/docs/examples/health/get-queue-messaging.md +0 -1
  445. package/docs/examples/health/get-queue-migrations.md +0 -1
  446. package/docs/examples/health/get-queue-stats-resources.md +0 -1
  447. package/docs/examples/health/get-queue-usage.md +0 -1
  448. package/docs/examples/health/get-queue-webhooks.md +0 -1
  449. package/docs/examples/health/get-storage-local.md +0 -1
  450. package/docs/examples/health/get-storage.md +0 -1
  451. package/docs/examples/health/get-time.md +0 -1
  452. package/docs/examples/health/get.md +0 -1
  453. package/docs/examples/locale/get.md +0 -1
  454. package/docs/examples/locale/list-codes.md +0 -1
  455. package/docs/examples/locale/list-continents.md +0 -1
  456. package/docs/examples/locale/list-countries-eu.md +0 -1
  457. package/docs/examples/locale/list-countries-phones.md +0 -1
  458. package/docs/examples/locale/list-countries.md +0 -1
  459. package/docs/examples/locale/list-currencies.md +0 -1
  460. package/docs/examples/locale/list-languages.md +0 -1
  461. package/docs/examples/messaging/create-apns-provider.md +0 -3
  462. package/docs/examples/messaging/create-email.md +0 -4
  463. package/docs/examples/messaging/create-fcm-provider.md +0 -3
  464. package/docs/examples/messaging/create-mailgun-provider.md +0 -3
  465. package/docs/examples/messaging/create-msg-91-provider.md +0 -3
  466. package/docs/examples/messaging/create-push.md +0 -2
  467. package/docs/examples/messaging/create-resend-provider.md +0 -3
  468. package/docs/examples/messaging/create-sendgrid-provider.md +0 -3
  469. package/docs/examples/messaging/create-sms.md +0 -3
  470. package/docs/examples/messaging/create-smtp-provider.md +0 -4
  471. package/docs/examples/messaging/create-subscriber.md +0 -4
  472. package/docs/examples/messaging/create-telesign-provider.md +0 -3
  473. package/docs/examples/messaging/create-textmagic-provider.md +0 -3
  474. package/docs/examples/messaging/create-topic.md +0 -3
  475. package/docs/examples/messaging/create-twilio-provider.md +0 -3
  476. package/docs/examples/messaging/create-vonage-provider.md +0 -3
  477. package/docs/examples/messaging/delete-provider.md +0 -2
  478. package/docs/examples/messaging/delete-subscriber.md +0 -3
  479. package/docs/examples/messaging/delete-topic.md +0 -2
  480. package/docs/examples/messaging/delete.md +0 -2
  481. package/docs/examples/messaging/get-message.md +0 -2
  482. package/docs/examples/messaging/get-provider.md +0 -2
  483. package/docs/examples/messaging/get-subscriber.md +0 -3
  484. package/docs/examples/messaging/get-topic.md +0 -2
  485. package/docs/examples/messaging/list-message-logs.md +0 -2
  486. package/docs/examples/messaging/list-messages.md +0 -1
  487. package/docs/examples/messaging/list-provider-logs.md +0 -2
  488. package/docs/examples/messaging/list-providers.md +0 -1
  489. package/docs/examples/messaging/list-subscriber-logs.md +0 -2
  490. package/docs/examples/messaging/list-subscribers.md +0 -2
  491. package/docs/examples/messaging/list-targets.md +0 -2
  492. package/docs/examples/messaging/list-topic-logs.md +0 -2
  493. package/docs/examples/messaging/list-topics.md +0 -1
  494. package/docs/examples/messaging/update-apns-provider.md +0 -2
  495. package/docs/examples/messaging/update-email.md +0 -2
  496. package/docs/examples/messaging/update-fcm-provider.md +0 -2
  497. package/docs/examples/messaging/update-mailgun-provider.md +0 -2
  498. package/docs/examples/messaging/update-msg-91-provider.md +0 -2
  499. package/docs/examples/messaging/update-push.md +0 -2
  500. package/docs/examples/messaging/update-resend-provider.md +0 -2
  501. package/docs/examples/messaging/update-sendgrid-provider.md +0 -2
  502. package/docs/examples/messaging/update-sms.md +0 -2
  503. package/docs/examples/messaging/update-smtp-provider.md +0 -2
  504. package/docs/examples/messaging/update-telesign-provider.md +0 -2
  505. package/docs/examples/messaging/update-textmagic-provider.md +0 -2
  506. package/docs/examples/messaging/update-topic.md +0 -2
  507. package/docs/examples/messaging/update-twilio-provider.md +0 -2
  508. package/docs/examples/messaging/update-vonage-provider.md +0 -2
  509. package/docs/examples/migrations/create-appwrite-migration.md +0 -5
  510. package/docs/examples/migrations/create-csv-export.md +0 -3
  511. package/docs/examples/migrations/create-csv-import.md +0 -4
  512. package/docs/examples/migrations/create-firebase-migration.md +0 -3
  513. package/docs/examples/migrations/create-n-host-migration.md +0 -8
  514. package/docs/examples/migrations/create-supabase-migration.md +0 -7
  515. package/docs/examples/migrations/delete.md +0 -2
  516. package/docs/examples/migrations/get-appwrite-report.md +0 -5
  517. package/docs/examples/migrations/get-firebase-report.md +0 -3
  518. package/docs/examples/migrations/get-n-host-report.md +0 -8
  519. package/docs/examples/migrations/get-supabase-report.md +0 -7
  520. package/docs/examples/migrations/get.md +0 -2
  521. package/docs/examples/migrations/list.md +0 -1
  522. package/docs/examples/migrations/retry.md +0 -2
  523. package/docs/examples/project/create-variable.md +0 -3
  524. package/docs/examples/project/delete-variable.md +0 -2
  525. package/docs/examples/project/get-usage.md +0 -3
  526. package/docs/examples/project/get-variable.md +0 -2
  527. package/docs/examples/project/list-variables.md +0 -1
  528. package/docs/examples/project/update-variable.md +0 -3
  529. package/docs/examples/projects/create-dev-key.md +0 -4
  530. package/docs/examples/projects/create-jwt.md +0 -3
  531. package/docs/examples/projects/create-key.md +0 -4
  532. package/docs/examples/projects/create-platform.md +0 -4
  533. package/docs/examples/projects/create-smtp-test.md +0 -6
  534. package/docs/examples/projects/create-webhook.md +0 -6
  535. package/docs/examples/projects/create.md +0 -4
  536. package/docs/examples/projects/delete-dev-key.md +0 -3
  537. package/docs/examples/projects/delete-email-template.md +0 -4
  538. package/docs/examples/projects/delete-key.md +0 -3
  539. package/docs/examples/projects/delete-platform.md +0 -3
  540. package/docs/examples/projects/delete-sms-template.md +0 -4
  541. package/docs/examples/projects/delete-webhook.md +0 -3
  542. package/docs/examples/projects/delete.md +0 -2
  543. package/docs/examples/projects/get-dev-key.md +0 -3
  544. package/docs/examples/projects/get-email-template.md +0 -4
  545. package/docs/examples/projects/get-key.md +0 -3
  546. package/docs/examples/projects/get-platform.md +0 -3
  547. package/docs/examples/projects/get-sms-template.md +0 -4
  548. package/docs/examples/projects/get-webhook.md +0 -3
  549. package/docs/examples/projects/get.md +0 -2
  550. package/docs/examples/projects/list-dev-keys.md +0 -2
  551. package/docs/examples/projects/list-keys.md +0 -2
  552. package/docs/examples/projects/list-platforms.md +0 -2
  553. package/docs/examples/projects/list-webhooks.md +0 -2
  554. package/docs/examples/projects/list.md +0 -1
  555. package/docs/examples/projects/update-api-status-all.md +0 -3
  556. package/docs/examples/projects/update-api-status.md +0 -4
  557. package/docs/examples/projects/update-auth-duration.md +0 -3
  558. package/docs/examples/projects/update-auth-limit.md +0 -3
  559. package/docs/examples/projects/update-auth-password-dictionary.md +0 -3
  560. package/docs/examples/projects/update-auth-password-history.md +0 -3
  561. package/docs/examples/projects/update-auth-sessions-limit.md +0 -3
  562. package/docs/examples/projects/update-auth-status.md +0 -4
  563. package/docs/examples/projects/update-dev-key.md +0 -5
  564. package/docs/examples/projects/update-email-template.md +0 -6
  565. package/docs/examples/projects/update-key.md +0 -5
  566. package/docs/examples/projects/update-memberships-privacy.md +0 -5
  567. package/docs/examples/projects/update-mock-numbers.md +0 -3
  568. package/docs/examples/projects/update-o-auth-2.md +0 -3
  569. package/docs/examples/projects/update-personal-data-check.md +0 -3
  570. package/docs/examples/projects/update-platform.md +0 -4
  571. package/docs/examples/projects/update-service-status-all.md +0 -3
  572. package/docs/examples/projects/update-service-status.md +0 -4
  573. package/docs/examples/projects/update-session-alerts.md +0 -3
  574. package/docs/examples/projects/update-session-invalidation.md +0 -3
  575. package/docs/examples/projects/update-sms-template.md +0 -5
  576. package/docs/examples/projects/update-smtp.md +0 -3
  577. package/docs/examples/projects/update-team.md +0 -3
  578. package/docs/examples/projects/update-webhook-signature.md +0 -3
  579. package/docs/examples/projects/update-webhook.md +0 -7
  580. package/docs/examples/projects/update.md +0 -3
  581. package/docs/examples/proxy/create-api-rule.md +0 -2
  582. package/docs/examples/proxy/create-function-rule.md +0 -3
  583. package/docs/examples/proxy/create-redirect-rule.md +0 -6
  584. package/docs/examples/proxy/create-site-rule.md +0 -3
  585. package/docs/examples/proxy/delete-rule.md +0 -2
  586. package/docs/examples/proxy/get-rule.md +0 -2
  587. package/docs/examples/proxy/list-rules.md +0 -1
  588. package/docs/examples/proxy/update-rule-verification.md +0 -2
  589. package/docs/examples/sites/create-deployment.md +0 -4
  590. package/docs/examples/sites/create-duplicate-deployment.md +0 -3
  591. package/docs/examples/sites/create-template-deployment.md +0 -7
  592. package/docs/examples/sites/create-variable.md +0 -4
  593. package/docs/examples/sites/create-vcs-deployment.md +0 -4
  594. package/docs/examples/sites/create.md +0 -5
  595. package/docs/examples/sites/delete-deployment.md +0 -3
  596. package/docs/examples/sites/delete-log.md +0 -3
  597. package/docs/examples/sites/delete-variable.md +0 -3
  598. package/docs/examples/sites/delete.md +0 -2
  599. package/docs/examples/sites/get-deployment-download.md +0 -3
  600. package/docs/examples/sites/get-deployment.md +0 -3
  601. package/docs/examples/sites/get-log.md +0 -3
  602. package/docs/examples/sites/get-template.md +0 -2
  603. package/docs/examples/sites/get-usage.md +0 -2
  604. package/docs/examples/sites/get-variable.md +0 -3
  605. package/docs/examples/sites/get.md +0 -2
  606. package/docs/examples/sites/list-deployments.md +0 -2
  607. package/docs/examples/sites/list-frameworks.md +0 -1
  608. package/docs/examples/sites/list-logs.md +0 -2
  609. package/docs/examples/sites/list-specifications.md +0 -1
  610. package/docs/examples/sites/list-templates.md +0 -1
  611. package/docs/examples/sites/list-usage.md +0 -1
  612. package/docs/examples/sites/list-variables.md +0 -2
  613. package/docs/examples/sites/list.md +0 -1
  614. package/docs/examples/sites/update-deployment-status.md +0 -3
  615. package/docs/examples/sites/update-site-deployment.md +0 -3
  616. package/docs/examples/sites/update-variable.md +0 -4
  617. package/docs/examples/sites/update.md +0 -4
  618. package/docs/examples/storage/create-bucket.md +0 -3
  619. package/docs/examples/storage/create-file.md +0 -4
  620. package/docs/examples/storage/delete-bucket.md +0 -2
  621. package/docs/examples/storage/delete-file.md +0 -3
  622. package/docs/examples/storage/get-bucket-usage.md +0 -2
  623. package/docs/examples/storage/get-bucket.md +0 -2
  624. package/docs/examples/storage/get-file-download.md +0 -3
  625. package/docs/examples/storage/get-file-preview.md +0 -3
  626. package/docs/examples/storage/get-file-view.md +0 -3
  627. package/docs/examples/storage/get-file.md +0 -3
  628. package/docs/examples/storage/get-usage.md +0 -1
  629. package/docs/examples/storage/list-buckets.md +0 -1
  630. package/docs/examples/storage/list-files.md +0 -2
  631. package/docs/examples/storage/update-bucket.md +0 -3
  632. package/docs/examples/storage/update-file.md +0 -3
  633. package/docs/examples/tablesdb/create-boolean-column.md +0 -5
  634. package/docs/examples/tablesdb/create-datetime-column.md +0 -5
  635. package/docs/examples/tablesdb/create-email-column.md +0 -5
  636. package/docs/examples/tablesdb/create-enum-column.md +0 -6
  637. package/docs/examples/tablesdb/create-float-column.md +0 -5
  638. package/docs/examples/tablesdb/create-index.md +0 -6
  639. package/docs/examples/tablesdb/create-integer-column.md +0 -5
  640. package/docs/examples/tablesdb/create-ip-column.md +0 -5
  641. package/docs/examples/tablesdb/create-line-column.md +0 -5
  642. package/docs/examples/tablesdb/create-operations.md +0 -2
  643. package/docs/examples/tablesdb/create-point-column.md +0 -5
  644. package/docs/examples/tablesdb/create-polygon-column.md +0 -5
  645. package/docs/examples/tablesdb/create-relationship-column.md +0 -5
  646. package/docs/examples/tablesdb/create-row.md +0 -5
  647. package/docs/examples/tablesdb/create-rows.md +0 -4
  648. package/docs/examples/tablesdb/create-string-column.md +0 -6
  649. package/docs/examples/tablesdb/create-table.md +0 -4
  650. package/docs/examples/tablesdb/create-transaction.md +0 -1
  651. package/docs/examples/tablesdb/create-url-column.md +0 -5
  652. package/docs/examples/tablesdb/create.md +0 -3
  653. package/docs/examples/tablesdb/decrement-row-column.md +0 -5
  654. package/docs/examples/tablesdb/delete-column.md +0 -4
  655. package/docs/examples/tablesdb/delete-index.md +0 -4
  656. package/docs/examples/tablesdb/delete-row.md +0 -4
  657. package/docs/examples/tablesdb/delete-rows.md +0 -3
  658. package/docs/examples/tablesdb/delete-table.md +0 -3
  659. package/docs/examples/tablesdb/delete-transaction.md +0 -2
  660. package/docs/examples/tablesdb/delete.md +0 -2
  661. package/docs/examples/tablesdb/get-column.md +0 -4
  662. package/docs/examples/tablesdb/get-index.md +0 -4
  663. package/docs/examples/tablesdb/get-row.md +0 -4
  664. package/docs/examples/tablesdb/get-table-usage.md +0 -3
  665. package/docs/examples/tablesdb/get-table.md +0 -3
  666. package/docs/examples/tablesdb/get-transaction.md +0 -2
  667. package/docs/examples/tablesdb/get-usage.md +0 -2
  668. package/docs/examples/tablesdb/get.md +0 -2
  669. package/docs/examples/tablesdb/increment-row-column.md +0 -5
  670. package/docs/examples/tablesdb/list-columns.md +0 -3
  671. package/docs/examples/tablesdb/list-indexes.md +0 -3
  672. package/docs/examples/tablesdb/list-row-logs.md +0 -4
  673. package/docs/examples/tablesdb/list-rows.md +0 -3
  674. package/docs/examples/tablesdb/list-table-logs.md +0 -3
  675. package/docs/examples/tablesdb/list-tables.md +0 -2
  676. package/docs/examples/tablesdb/list-transactions.md +0 -1
  677. package/docs/examples/tablesdb/list-usage.md +0 -1
  678. package/docs/examples/tablesdb/list.md +0 -1
  679. package/docs/examples/tablesdb/update-boolean-column.md +0 -6
  680. package/docs/examples/tablesdb/update-datetime-column.md +0 -6
  681. package/docs/examples/tablesdb/update-email-column.md +0 -6
  682. package/docs/examples/tablesdb/update-enum-column.md +0 -7
  683. package/docs/examples/tablesdb/update-float-column.md +0 -6
  684. package/docs/examples/tablesdb/update-integer-column.md +0 -6
  685. package/docs/examples/tablesdb/update-ip-column.md +0 -6
  686. package/docs/examples/tablesdb/update-line-column.md +0 -5
  687. package/docs/examples/tablesdb/update-point-column.md +0 -5
  688. package/docs/examples/tablesdb/update-polygon-column.md +0 -5
  689. package/docs/examples/tablesdb/update-relationship-column.md +0 -4
  690. package/docs/examples/tablesdb/update-row.md +0 -4
  691. package/docs/examples/tablesdb/update-rows.md +0 -3
  692. package/docs/examples/tablesdb/update-string-column.md +0 -6
  693. package/docs/examples/tablesdb/update-table.md +0 -4
  694. package/docs/examples/tablesdb/update-transaction.md +0 -2
  695. package/docs/examples/tablesdb/update-url-column.md +0 -6
  696. package/docs/examples/tablesdb/update.md +0 -3
  697. package/docs/examples/tablesdb/upsert-row.md +0 -4
  698. package/docs/examples/tablesdb/upsert-rows.md +0 -4
  699. package/docs/examples/teams/create-membership.md +0 -3
  700. package/docs/examples/teams/create.md +0 -3
  701. package/docs/examples/teams/delete-membership.md +0 -3
  702. package/docs/examples/teams/delete.md +0 -2
  703. package/docs/examples/teams/get-membership.md +0 -3
  704. package/docs/examples/teams/get-prefs.md +0 -2
  705. package/docs/examples/teams/get.md +0 -2
  706. package/docs/examples/teams/list-logs.md +0 -2
  707. package/docs/examples/teams/list-memberships.md +0 -2
  708. package/docs/examples/teams/list.md +0 -1
  709. package/docs/examples/teams/update-membership-status.md +0 -5
  710. package/docs/examples/teams/update-membership.md +0 -4
  711. package/docs/examples/teams/update-name.md +0 -3
  712. package/docs/examples/teams/update-prefs.md +0 -3
  713. package/docs/examples/tokens/create-file-token.md +0 -3
  714. package/docs/examples/tokens/delete.md +0 -2
  715. package/docs/examples/tokens/get.md +0 -2
  716. package/docs/examples/tokens/list.md +0 -3
  717. package/docs/examples/tokens/update.md +0 -2
  718. package/docs/examples/users/create-argon-2-user.md +0 -4
  719. package/docs/examples/users/create-bcrypt-user.md +0 -4
  720. package/docs/examples/users/create-jwt.md +0 -2
  721. package/docs/examples/users/create-md-5-user.md +0 -4
  722. package/docs/examples/users/create-mfa-recovery-codes.md +0 -2
  723. package/docs/examples/users/create-ph-pass-user.md +0 -4
  724. package/docs/examples/users/create-scrypt-modified-user.md +0 -7
  725. package/docs/examples/users/create-scrypt-user.md +0 -9
  726. package/docs/examples/users/create-session.md +0 -2
  727. package/docs/examples/users/create-sha-user.md +0 -4
  728. package/docs/examples/users/create-target.md +0 -5
  729. package/docs/examples/users/create-token.md +0 -2
  730. package/docs/examples/users/create.md +0 -2
  731. package/docs/examples/users/delete-identity.md +0 -2
  732. package/docs/examples/users/delete-mfa-authenticator.md +0 -3
  733. package/docs/examples/users/delete-session.md +0 -3
  734. package/docs/examples/users/delete-sessions.md +0 -2
  735. package/docs/examples/users/delete-target.md +0 -3
  736. package/docs/examples/users/delete.md +0 -2
  737. package/docs/examples/users/get-mfa-recovery-codes.md +0 -2
  738. package/docs/examples/users/get-prefs.md +0 -2
  739. package/docs/examples/users/get-target.md +0 -3
  740. package/docs/examples/users/get-usage.md +0 -1
  741. package/docs/examples/users/get.md +0 -2
  742. package/docs/examples/users/list-identities.md +0 -1
  743. package/docs/examples/users/list-logs.md +0 -2
  744. package/docs/examples/users/list-memberships.md +0 -2
  745. package/docs/examples/users/list-mfa-factors.md +0 -2
  746. package/docs/examples/users/list-sessions.md +0 -2
  747. package/docs/examples/users/list-targets.md +0 -2
  748. package/docs/examples/users/list.md +0 -1
  749. package/docs/examples/users/update-email-verification.md +0 -3
  750. package/docs/examples/users/update-email.md +0 -3
  751. package/docs/examples/users/update-labels.md +0 -3
  752. package/docs/examples/users/update-mfa-recovery-codes.md +0 -2
  753. package/docs/examples/users/update-mfa.md +0 -3
  754. package/docs/examples/users/update-name.md +0 -3
  755. package/docs/examples/users/update-password.md +0 -3
  756. package/docs/examples/users/update-phone-verification.md +0 -3
  757. package/docs/examples/users/update-phone.md +0 -3
  758. package/docs/examples/users/update-prefs.md +0 -3
  759. package/docs/examples/users/update-status.md +0 -3
  760. package/docs/examples/users/update-target.md +0 -3
  761. package/docs/examples/vcs/create-repository-detection.md +0 -4
  762. package/docs/examples/vcs/create-repository.md +0 -4
  763. package/docs/examples/vcs/delete-installation.md +0 -2
  764. package/docs/examples/vcs/get-installation.md +0 -2
  765. package/docs/examples/vcs/get-repository-contents.md +0 -3
  766. package/docs/examples/vcs/get-repository.md +0 -3
  767. package/docs/examples/vcs/list-installations.md +0 -1
  768. package/docs/examples/vcs/list-repositories.md +0 -3
  769. package/docs/examples/vcs/list-repository-branches.md +0 -3
  770. package/docs/examples/vcs/update-external-deployments.md +0 -4
  771. package/index.js +0 -147
  772. package/lib/client.js +0 -254
  773. package/lib/commands/account.js +0 -2121
  774. package/lib/commands/console.js +0 -127
  775. package/lib/commands/databases.js +0 -3590
  776. package/lib/commands/functions.js +0 -1732
  777. package/lib/commands/generic.js +0 -330
  778. package/lib/commands/graphql.js +0 -126
  779. package/lib/commands/health.js +0 -869
  780. package/lib/commands/locale.js +0 -316
  781. package/lib/commands/messaging.js +0 -3116
  782. package/lib/commands/migrations.js +0 -830
  783. package/lib/commands/organizations.js +0 -48
  784. package/lib/commands/project.js +0 -302
  785. package/lib/commands/projects.js +0 -2626
  786. package/lib/commands/proxy.js +0 -403
  787. package/lib/commands/push.js +0 -2570
  788. package/lib/commands/sites.js +0 -1654
  789. package/lib/commands/storage.js +0 -995
  790. package/lib/commands/tables-db.js +0 -3569
  791. package/lib/commands/teams.js +0 -683
  792. package/lib/commands/tokens.js +0 -261
  793. package/lib/commands/types.js +0 -191
  794. package/lib/commands/users.js +0 -2022
  795. package/lib/commands/vcs.js +0 -484
  796. package/lib/emulation/docker.js +0 -264
  797. package/lib/exception.js +0 -9
  798. package/lib/parser.js +0 -250
  799. package/lib/sdks.js +0 -60
  800. package/lib/spinner.js +0 -104
  801. package/lib/validations.js +0 -17
@@ -0,0 +1,1167 @@
1
+ import chalk from "chalk";
2
+ import { localConfig, globalConfig } from "./config.js";
3
+ import { sdkForConsole } from "./sdks.js";
4
+ import { validateRequired } from "./validations.js";
5
+ import { paginate } from "./paginate.js";
6
+ import { checkDeployConditions, isCloud } from "./utils.js";
7
+ import { Account, Client } from "@appwrite.io/console";
8
+ import {
9
+ getOrganizationsService,
10
+ getTeamsService,
11
+ getProjectsService,
12
+ getFunctionsService,
13
+ getSitesService,
14
+ getDatabasesService,
15
+ } from "./services.js";
16
+
17
+ interface Answers {
18
+ override?: boolean;
19
+ method?: string;
20
+ start?: string;
21
+ organization?: string;
22
+ [key: string]: any;
23
+ }
24
+
25
+ interface Choice {
26
+ name: string;
27
+ value: any;
28
+ disabled?: boolean | string;
29
+ current?: boolean;
30
+ }
31
+
32
+ interface Question {
33
+ type: string;
34
+ name: string;
35
+ message: string;
36
+ default?: any;
37
+ when?: ((answers: Answers) => boolean | Promise<boolean>) | boolean;
38
+ choices?:
39
+ | ((answers: Answers) => Promise<Choice[]> | Choice[])
40
+ | (() => Promise<Choice[]> | Choice[])
41
+ | Choice[]
42
+ | string[];
43
+ validate?: (value: any) => boolean | string | Promise<boolean | string>;
44
+ mask?: string;
45
+ }
46
+
47
+ const whenOverride = (answers: Answers): boolean =>
48
+ answers.override === undefined ? true : answers.override;
49
+
50
+ const getIgnores = (runtime: string): string[] => {
51
+ const languge = runtime.split("-").slice(0, -1).join("-");
52
+
53
+ switch (languge) {
54
+ case "cpp":
55
+ return ["build", "CMakeFiles", "CMakeCaches.txt"];
56
+ case "dart":
57
+ return [".packages", ".dart_tool"];
58
+ case "deno":
59
+ return [];
60
+ case "dotnet":
61
+ return ["bin", "obj", ".nuget"];
62
+ case "java":
63
+ case "kotlin":
64
+ return ["build"];
65
+ case "node":
66
+ case "bun":
67
+ return ["node_modules", ".npm"];
68
+ case "php":
69
+ return ["vendor"];
70
+ case "python":
71
+ case "python-ml":
72
+ return ["__pypackages__"];
73
+ case "ruby":
74
+ return ["vendor"];
75
+ case "rust":
76
+ return ["target", "debug", "*.rs.bk", "*.pdb"];
77
+ case "swift":
78
+ return [".build", ".swiftpm"];
79
+ }
80
+
81
+ return [];
82
+ };
83
+
84
+ const getEntrypoint = (runtime: string): string | undefined => {
85
+ const languge = runtime.split("-").slice(0, -1).join("-");
86
+
87
+ switch (languge) {
88
+ case "dart":
89
+ return "lib/main.dart";
90
+ case "deno":
91
+ return "src/main.ts";
92
+ case "node":
93
+ return "src/main.js";
94
+ case "bun":
95
+ return "src/main.ts";
96
+ case "php":
97
+ return "src/index.php";
98
+ case "python":
99
+ case "python-ml":
100
+ return "src/main.py";
101
+ case "ruby":
102
+ return "lib/main.rb";
103
+ case "rust":
104
+ return "main.rs";
105
+ case "swift":
106
+ return "Sources/index.swift";
107
+ case "cpp":
108
+ return "src/main.cc";
109
+ case "dotnet":
110
+ return "src/Index.cs";
111
+ case "java":
112
+ return "src/Main.java";
113
+ case "kotlin":
114
+ return "src/Main.kt";
115
+ case "go":
116
+ return "main.go";
117
+ }
118
+
119
+ return undefined;
120
+ };
121
+
122
+ const getInstallCommand = (runtime: string): string | undefined => {
123
+ const languge = runtime.split("-").slice(0, -1).join("-");
124
+
125
+ switch (languge) {
126
+ case "dart":
127
+ return "dart pub get";
128
+ case "deno":
129
+ return "deno cache src/main.ts";
130
+ case "node":
131
+ return "npm install";
132
+ case "bun":
133
+ return "bun install";
134
+ case "php":
135
+ return "composer install";
136
+ case "python":
137
+ case "python-ml":
138
+ return "pip install -r requirements.txt";
139
+ case "ruby":
140
+ return "bundle install";
141
+ case "rust":
142
+ return "cargo install";
143
+ case "dotnet":
144
+ return "dotnet restore";
145
+ case "swift":
146
+ case "java":
147
+ case "kotlin":
148
+ case "cpp":
149
+ return "";
150
+ }
151
+
152
+ return undefined;
153
+ };
154
+
155
+ export const questionsInitProject: Question[] = [
156
+ {
157
+ type: "confirm",
158
+ name: "override",
159
+ message: `An Appwrite project ( ${localConfig.getProject()["projectId"]} ) is already associated with the current directory. Would you like to override`,
160
+ when() {
161
+ return Object.keys(localConfig.getProject()).length !== 0;
162
+ },
163
+ },
164
+ {
165
+ type: "list",
166
+ name: "start",
167
+ when: whenOverride,
168
+ message: "How would you like to start?",
169
+ choices: [
170
+ {
171
+ name: "Create new project",
172
+ value: "new",
173
+ },
174
+ {
175
+ name: "Link directory to an existing project",
176
+ value: "existing",
177
+ },
178
+ ],
179
+ },
180
+ {
181
+ type: "search-list",
182
+ name: "organization",
183
+ message: "Choose your organization",
184
+ choices: async () => {
185
+ let client = await sdkForConsole(true);
186
+ const { teams } = isCloud()
187
+ ? await paginate(
188
+ async (opts: { sdk?: Client } = {}) =>
189
+ (await getOrganizationsService(opts.sdk)).list(),
190
+ { sdk: client },
191
+ 100,
192
+ "teams",
193
+ )
194
+ : await paginate(
195
+ async (opts: { sdk?: Client } = {}) =>
196
+ (await getTeamsService(opts.sdk)).list(),
197
+ { parseOutput: false, sdk: client },
198
+ 100,
199
+ "teams",
200
+ );
201
+
202
+ let choices = teams.map((team: any, idx: number) => {
203
+ return {
204
+ name: `${team.name} (${team["$id"]})`,
205
+ value: team["$id"],
206
+ };
207
+ });
208
+
209
+ if (choices.length == 0) {
210
+ throw new Error(
211
+ `No organizations found. Please create a new organization at ${globalConfig.getEndpoint().replace("/v1", "/console/onboarding")}`,
212
+ );
213
+ }
214
+
215
+ return choices;
216
+ },
217
+ when: whenOverride,
218
+ },
219
+ {
220
+ type: "input",
221
+ name: "project",
222
+ message: "What would you like to name your project?",
223
+ default: "My Awesome Project",
224
+ when: (answer: Answers) => answer.start !== "existing",
225
+ },
226
+ {
227
+ type: "input",
228
+ name: "id",
229
+ message: "What ID would you like to have for your project?",
230
+ default: "unique()",
231
+ when: (answer: Answers) => answer.start !== "existing",
232
+ },
233
+ {
234
+ type: "search-list",
235
+ name: "project",
236
+ message: "Choose your Appwrite project.",
237
+ choices: async (answers: Answers) => {
238
+ const queries = [
239
+ JSON.stringify({
240
+ method: "equal",
241
+ attribute: "teamId",
242
+ values: [answers.organization],
243
+ }),
244
+ JSON.stringify({ method: "orderDesc", attribute: "$id" }),
245
+ ];
246
+
247
+ const { projects } = await paginate(
248
+ async () => (await getProjectsService()).list(queries),
249
+ { parseOutput: false },
250
+ 100,
251
+ "projects",
252
+ queries,
253
+ );
254
+
255
+ let choices = projects.map((project: any) => {
256
+ return {
257
+ name: `${project.name} (${project["$id"]})`,
258
+ value: {
259
+ $id: project["$id"],
260
+ region: project.region || "",
261
+ },
262
+ };
263
+ });
264
+
265
+ if (choices.length === 0) {
266
+ throw new Error("No projects found. Please create a new project.");
267
+ }
268
+
269
+ return choices;
270
+ },
271
+ when: (answer: Answers) => answer.start === "existing",
272
+ },
273
+ {
274
+ type: "list",
275
+ name: "region",
276
+ message: "Select your Appwrite Cloud region",
277
+ choices: async () => {
278
+ let client = await sdkForConsole(true);
279
+ const endpoint =
280
+ globalConfig.getEndpoint() || "https://cloud.appwrite.io/v1";
281
+ let response = (await client.call(
282
+ "GET",
283
+ new URL(endpoint + "/console/regions"),
284
+ )) as { regions: any[] };
285
+ let regions = response.regions || [];
286
+ if (!regions.length) {
287
+ throw new Error(
288
+ "No regions found. Please check your network or Appwrite Cloud availability.",
289
+ );
290
+ }
291
+ return regions
292
+ .filter((region: any) => !region.disabled)
293
+ .map((region: any) => ({
294
+ name: `${region.name} (${region.$id})`,
295
+ value: region.$id,
296
+ }));
297
+ },
298
+ when: (answer: Answers) => {
299
+ if (answer.start === "existing") return false;
300
+ return isCloud();
301
+ },
302
+ },
303
+ ];
304
+
305
+ export const questionsInitProjectAutopull: Question[] = [
306
+ {
307
+ type: "confirm",
308
+ name: "autopull",
309
+ message: `Would you like to pull all resources from project you just linked?`,
310
+ },
311
+ ];
312
+
313
+ export const questionsPullResources: Question[] = [
314
+ {
315
+ type: "list",
316
+ name: "resource",
317
+ message: "Which resources would you like to pull?",
318
+ choices: [
319
+ { name: `Settings ${chalk.blackBright(`(Project)`)}`, value: "settings" },
320
+ {
321
+ name: `Functions ${chalk.blackBright(`(Deployment)`)}`,
322
+ value: "functions",
323
+ },
324
+ { name: `Tables ${chalk.blackBright(`(TablesDB)`)}`, value: "tables" },
325
+ { name: `Buckets ${chalk.blackBright(`(Storage)`)}`, value: "buckets" },
326
+ { name: `Teams ${chalk.blackBright(`(Auth)`)}`, value: "teams" },
327
+ { name: `Topics ${chalk.blackBright(`(Messaging)`)}`, value: "messages" },
328
+ {
329
+ name: `Collections ${chalk.blackBright(`(Legacy Databases)`)}`,
330
+ value: "collections",
331
+ },
332
+ ],
333
+ },
334
+ ];
335
+
336
+ export const questionsPullFunctions: Question[] = [
337
+ {
338
+ type: "checkbox",
339
+ name: "functions",
340
+ message: "Which functions would you like to pull?",
341
+ validate: (value: any) => validateRequired("function", value),
342
+ choices: async () => {
343
+ const { functions } = await paginate(
344
+ async () => (await getFunctionsService()).list(),
345
+ { parseOutput: false },
346
+ 100,
347
+ "functions",
348
+ );
349
+
350
+ if (functions.length === 0) {
351
+ throw "We couldn't find any functions in your Appwrite project";
352
+ }
353
+ return functions.map((func: any) => {
354
+ return {
355
+ name: `${func.name} (${func.$id})`,
356
+ value: { ...func },
357
+ };
358
+ });
359
+ },
360
+ },
361
+ ];
362
+
363
+ export const questionsPullFunctionsCode: Question[] = [
364
+ {
365
+ type: "confirm",
366
+ name: "override",
367
+ message: "Do you want to pull source code of the latest deployment?",
368
+ },
369
+ ];
370
+
371
+ export const questionsPullSites: Question[] = [
372
+ {
373
+ type: "checkbox",
374
+ name: "sites",
375
+ message: "Which sites would you like to pull?",
376
+ validate: (value: any) => validateRequired("site", value),
377
+ choices: async () => {
378
+ const { sites } = await paginate(
379
+ async () => (await getSitesService()).list(),
380
+ { parseOutput: false },
381
+ 100,
382
+ "sites",
383
+ );
384
+
385
+ if (sites.length === 0) {
386
+ throw "We couldn't find any sites in your Appwrite project";
387
+ }
388
+ return sites.map((site: any) => {
389
+ return {
390
+ name: `${site.name} (${site.$id})`,
391
+ value: { ...site },
392
+ };
393
+ });
394
+ },
395
+ },
396
+ ];
397
+
398
+ export const questionsPullSitesCode: Question[] = [
399
+ {
400
+ type: "confirm",
401
+ name: "override",
402
+ message: "Do you want to pull source code of the latest deployment?",
403
+ },
404
+ ];
405
+
406
+ export const questionsCreateFunction: Question[] = [
407
+ {
408
+ type: "input",
409
+ name: "name",
410
+ message: "What would you like to name your function?",
411
+ default: "My Awesome Function",
412
+ },
413
+ {
414
+ type: "input",
415
+ name: "id",
416
+ message: "What ID would you like to have for your function?",
417
+ default: "unique()",
418
+ },
419
+ {
420
+ type: "list",
421
+ name: "runtime",
422
+ message: "What runtime would you like to use?",
423
+ choices: async () => {
424
+ let response = await (await getFunctionsService()).listRuntimes();
425
+ let runtimes = response["runtimes"];
426
+ let choices = runtimes.map((runtime: any, idx: number) => {
427
+ return {
428
+ name: `${runtime.name} (${runtime["$id"]})`,
429
+ value: {
430
+ id: runtime["$id"],
431
+ name: runtime["$id"].split("-")[0],
432
+ entrypoint: getEntrypoint(runtime["$id"]),
433
+ ignore: getIgnores(runtime["$id"]),
434
+ commands: getInstallCommand(runtime["$id"]),
435
+ },
436
+ };
437
+ });
438
+ return choices;
439
+ },
440
+ },
441
+ {
442
+ type: "list",
443
+ name: "specification",
444
+ message: "What specification would you like to use?",
445
+ choices: async () => {
446
+ let response = await (await getFunctionsService()).listSpecifications();
447
+ let specifications = response["specifications"];
448
+ let choices = specifications.map((spec: any, idx: number) => {
449
+ return {
450
+ name: `${spec.cpus} CPU, ${spec.memory}MB RAM`,
451
+ value: spec.slug,
452
+ disabled: spec.enabled === false ? "Upgrade to use" : false,
453
+ };
454
+ });
455
+ return choices;
456
+ },
457
+ },
458
+ ];
459
+
460
+ export const questionsCreateFunctionSelectTemplate = (
461
+ templates: string[],
462
+ ): Question[] => {
463
+ return [
464
+ {
465
+ type: "search-list",
466
+ name: "template",
467
+ message: "What template would you like to use?",
468
+ choices: templates.map((template) => {
469
+ const name =
470
+ `${template[0].toUpperCase()}${template.split("").slice(1).join("")}`.replace(
471
+ /[-_]/g,
472
+ " ",
473
+ );
474
+
475
+ return { value: template, name };
476
+ }),
477
+ },
478
+ ];
479
+ };
480
+
481
+ export const questionsCreateBucket: Question[] = [
482
+ {
483
+ type: "input",
484
+ name: "bucket",
485
+ message: "What would you like to name your bucket?",
486
+ default: "My Awesome Bucket",
487
+ },
488
+ {
489
+ type: "input",
490
+ name: "id",
491
+ message: "What ID would you like to have for your bucket?",
492
+ default: "unique()",
493
+ },
494
+ {
495
+ type: "list",
496
+ name: "fileSecurity",
497
+ message: "Enable File-Security configuring permissions for individual file",
498
+ choices: ["No", "Yes"],
499
+ },
500
+ ];
501
+
502
+ export const questionsCreateTeam: Question[] = [
503
+ {
504
+ type: "input",
505
+ name: "bucket",
506
+ message: "What would you like to name your team?",
507
+ default: "My Awesome Team",
508
+ },
509
+ {
510
+ type: "input",
511
+ name: "id",
512
+ message: "What ID would you like to have for your team?",
513
+ default: "unique()",
514
+ },
515
+ ];
516
+
517
+ export const questionsCreateCollection: Question[] = [
518
+ {
519
+ type: "list",
520
+ name: "method",
521
+ message: "What database would you like to use for your collection",
522
+ choices: ["New", "Existing"],
523
+ when: async () => {
524
+ return localConfig.getDatabases().length !== 0;
525
+ },
526
+ },
527
+ {
528
+ type: "search-list",
529
+ name: "database",
530
+ message: "Choose the collection database",
531
+ choices: async () => {
532
+ const databases = localConfig.getDatabases();
533
+
534
+ let choices = databases.map((database: any, idx: number) => {
535
+ return {
536
+ name: `${database.name} (${database.$id})`,
537
+ value: database.$id,
538
+ };
539
+ });
540
+
541
+ if (choices.length === 0) {
542
+ throw new Error(
543
+ "No databases found. Please create one in project console.",
544
+ );
545
+ }
546
+
547
+ return choices;
548
+ },
549
+ when: (answers: Answers) =>
550
+ (answers.method ?? "").toLowerCase() === "existing",
551
+ },
552
+ {
553
+ type: "input",
554
+ name: "databaseName",
555
+ message: "What would you like to name your database?",
556
+ default: "My Awesome Database",
557
+ when: (answers: Answers) =>
558
+ (answers.method ?? "").toLowerCase() !== "existing",
559
+ },
560
+ {
561
+ type: "input",
562
+ name: "databaseId",
563
+ message: "What ID would you like to have for your database?",
564
+ default: "unique()",
565
+ when: (answers: Answers) =>
566
+ (answers.method ?? "").toLowerCase() !== "existing",
567
+ },
568
+ {
569
+ type: "input",
570
+ name: "collection",
571
+ message: "What would you like to name your collection?",
572
+ default: "My Awesome Collection",
573
+ },
574
+ {
575
+ type: "input",
576
+ name: "id",
577
+ message: "What ID would you like to have for your collection?",
578
+ default: "unique()",
579
+ },
580
+ {
581
+ type: "list",
582
+ name: "documentSecurity",
583
+ message:
584
+ "Enable document security for configuring permissions for individual documents",
585
+ choices: ["No", "Yes"],
586
+ },
587
+ ];
588
+
589
+ export const questionsCreateTable: Question[] = [
590
+ {
591
+ type: "list",
592
+ name: "method",
593
+ message: "What database would you like to use for your table?",
594
+ choices: ["New", "Existing"],
595
+ when: async () => {
596
+ return localConfig.getTablesDBs().length !== 0;
597
+ },
598
+ },
599
+ {
600
+ type: "search-list",
601
+ name: "database",
602
+ message: "Choose the table database",
603
+ choices: async () => {
604
+ const databases = localConfig.getTablesDBs();
605
+
606
+ let choices = databases.map((database: any, idx: number) => {
607
+ return {
608
+ name: `${database.name} (${database.$id})`,
609
+ value: database.$id,
610
+ };
611
+ });
612
+
613
+ if (choices.length === 0) {
614
+ throw new Error(
615
+ "No databases found. Please create one in project console.",
616
+ );
617
+ }
618
+
619
+ return choices;
620
+ },
621
+ when: (answers: Answers) =>
622
+ (answers.method ?? "").toLowerCase() === "existing",
623
+ },
624
+ {
625
+ type: "input",
626
+ name: "databaseName",
627
+ message: "What would you like to name your database?",
628
+ default: "My Awesome Database",
629
+ when: (answers: Answers) =>
630
+ (answers.method ?? "").toLowerCase() !== "existing",
631
+ },
632
+ {
633
+ type: "input",
634
+ name: "databaseId",
635
+ message: "What ID would you like to have for your database?",
636
+ default: "unique()",
637
+ when: (answers: Answers) =>
638
+ (answers.method ?? "").toLowerCase() !== "existing",
639
+ },
640
+ {
641
+ type: "input",
642
+ name: "table",
643
+ message: "What would you like to name your table?",
644
+ default: "My Awesome Table",
645
+ },
646
+ {
647
+ type: "input",
648
+ name: "id",
649
+ message: "What ID would you like to have for your table?",
650
+ default: "unique()",
651
+ },
652
+ {
653
+ type: "list",
654
+ name: "rowSecurity",
655
+ message:
656
+ "Enable row security for configuring permissions for individual rows",
657
+ choices: ["No", "Yes"],
658
+ },
659
+ ];
660
+
661
+ export const questionsCreateMessagingTopic: Question[] = [
662
+ {
663
+ type: "input",
664
+ name: "topic",
665
+ message: "What would you like to name your messaging topic?",
666
+ default: "My Awesome Topic",
667
+ },
668
+ {
669
+ type: "input",
670
+ name: "id",
671
+ message: "What ID would you like to have for your messaging topic?",
672
+ default: "unique()",
673
+ },
674
+ ];
675
+
676
+ export const questionsPullCollection: Question[] = [
677
+ {
678
+ type: "checkbox",
679
+ name: "databases",
680
+ message: "From which database would you like to pull collections?",
681
+ validate: (value: any) => validateRequired("collection", value),
682
+ choices: async () => {
683
+ let response = await (await getDatabasesService()).list();
684
+ let databases = response["databases"];
685
+
686
+ if (databases.length <= 0) {
687
+ throw new Error(
688
+ "No databases found. Please create one in project console.",
689
+ );
690
+ }
691
+ let choices = databases.map((database: any, idx: number) => {
692
+ return {
693
+ name: `${database.name} (${database.$id})`,
694
+ value: database.$id,
695
+ };
696
+ });
697
+ return choices;
698
+ },
699
+ },
700
+ ];
701
+
702
+ export const questionsLogin: Question[] = [
703
+ {
704
+ type: "list",
705
+ name: "method",
706
+ message: "What you like to do?",
707
+ choices: [
708
+ { name: "Login to an account", value: "login" },
709
+ { name: "Switch to an account", value: "select" },
710
+ ],
711
+ when: () => globalConfig.getSessions().length >= 2,
712
+ },
713
+ {
714
+ type: "input",
715
+ name: "email",
716
+ message: "Enter your email",
717
+ validate(value: string) {
718
+ if (!value) {
719
+ return "Please enter your email";
720
+ }
721
+ return true;
722
+ },
723
+ when: (answers: Answers) => answers.method !== "select",
724
+ },
725
+ {
726
+ type: "password",
727
+ name: "password",
728
+ message: "Enter your password",
729
+ mask: "*",
730
+ validate(value: string) {
731
+ if (!value) {
732
+ return "Please enter your password";
733
+ }
734
+ return true;
735
+ },
736
+ when: (answers: Answers) => answers.method !== "select",
737
+ },
738
+ {
739
+ type: "search-list",
740
+ name: "accountId",
741
+ message: "Select an account to use",
742
+ choices() {
743
+ const sessions = globalConfig.getSessions();
744
+ const current = globalConfig.getCurrentSession();
745
+
746
+ const data: Choice[] = [];
747
+
748
+ const longestEmail = sessions.reduce((prev: any, current: any) =>
749
+ prev && (prev.email ?? "").length > (current.email ?? "").length
750
+ ? prev
751
+ : current,
752
+ ).email.length;
753
+
754
+ sessions.forEach((session: any) => {
755
+ if (session.email) {
756
+ data.push({
757
+ current: current === session.id,
758
+ value: session.id,
759
+ name: `${session.email.padEnd(longestEmail)} ${current === session.id ? chalk.green.bold("current") : " ".repeat(6)} ${session.endpoint}`,
760
+ });
761
+ }
762
+ });
763
+
764
+ return data.sort((a, b) => Number(b.current) - Number(a.current));
765
+ },
766
+ when: (answers: Answers) => answers.method === "select",
767
+ },
768
+ ];
769
+
770
+ export const questionGetEndpoint: Question[] = [
771
+ {
772
+ type: "input",
773
+ name: "endpoint",
774
+ message: "Enter the endpoint of your Appwrite server",
775
+ default: "http://localhost/v1",
776
+ async validate(value: string) {
777
+ if (!value) {
778
+ return "Please enter a valid endpoint.";
779
+ }
780
+ let client = new Client().setEndpoint(value);
781
+ try {
782
+ let response = (await client.call(
783
+ "get",
784
+ new URL(value + "/health/version"),
785
+ )) as { version?: string };
786
+ if (response.version) {
787
+ return true;
788
+ } else {
789
+ throw new Error();
790
+ }
791
+ } catch (error) {
792
+ return "Invalid endpoint or your Appwrite server is not running as expected.";
793
+ }
794
+ },
795
+ },
796
+ ];
797
+
798
+ export const questionsLogout: Question[] = [
799
+ {
800
+ type: "checkbox",
801
+ name: "accounts",
802
+ message: "Select accounts to logout from",
803
+ validate: (value: any) => validateRequired("account", value),
804
+ choices() {
805
+ const sessions = globalConfig.getSessions();
806
+ const current = globalConfig.getCurrentSession();
807
+
808
+ const data: Choice[] = [];
809
+
810
+ const longestEmail = sessions.reduce((prev: any, current: any) =>
811
+ prev && (prev.email ?? "").length > (current.email ?? "").length
812
+ ? prev
813
+ : current,
814
+ ).email.length;
815
+
816
+ sessions.forEach((session: any) => {
817
+ if (session.email) {
818
+ data.push({
819
+ current: current === session.id,
820
+ value: session.id,
821
+ name: `${session.email.padEnd(longestEmail)} ${current === session.id ? chalk.green.bold("current") : " ".repeat(6)} ${session.endpoint}`,
822
+ });
823
+ }
824
+ });
825
+
826
+ return data.sort((a, b) => Number(b.current) - Number(a.current));
827
+ },
828
+ },
829
+ ];
830
+
831
+ export const questionsPushResources: Question[] = [
832
+ {
833
+ type: "list",
834
+ name: "resource",
835
+ message: "Which resources would you like to push?",
836
+ choices: [
837
+ { name: `Settings ${chalk.blackBright(`(Project)`)}`, value: "settings" },
838
+ {
839
+ name: `Functions ${chalk.blackBright(`(Deployment)`)}`,
840
+ value: "functions",
841
+ },
842
+ { name: `Tables ${chalk.blackBright(`(TablesDB)`)}`, value: "tables" },
843
+ { name: `Buckets ${chalk.blackBright(`(Storage)`)}`, value: "buckets" },
844
+ { name: `Teams ${chalk.blackBright(`(Auth)`)}`, value: "teams" },
845
+ { name: `Topics ${chalk.blackBright(`(Messaging)`)}`, value: "messages" },
846
+ {
847
+ name: `Collections ${chalk.blackBright(`(Legacy Databases)`)}`,
848
+ value: "collections",
849
+ },
850
+ ],
851
+ },
852
+ ];
853
+
854
+ export const questionsInitResources: Question[] = [
855
+ {
856
+ type: "list",
857
+ name: "resource",
858
+ message: "Which resource would you create?",
859
+ choices: [
860
+ { name: "Function", value: "function" },
861
+ { name: "Site", value: "site" },
862
+ { name: "Table", value: "table" },
863
+ { name: "Bucket", value: "bucket" },
864
+ { name: "Team", value: "team" },
865
+ { name: "Topic", value: "message" },
866
+ { name: "Collection", value: "collection" },
867
+ ],
868
+ },
869
+ ];
870
+
871
+ export const questionsPushSites: Question[] = [
872
+ {
873
+ type: "checkbox",
874
+ name: "sites",
875
+ message: "Which sites would you like to push?",
876
+ validate: (value: any) => validateRequired("site", value),
877
+ when: () => localConfig.getSites().length > 0,
878
+ choices: () => {
879
+ let sites = localConfig.getSites();
880
+ checkDeployConditions(localConfig);
881
+ let choices = sites.map((site: any, idx: number) => {
882
+ return {
883
+ name: `${site.name} (${site.$id})`,
884
+ value: site.$id,
885
+ };
886
+ });
887
+ return choices;
888
+ },
889
+ },
890
+ ];
891
+
892
+ export const questionsPushFunctions: Question[] = [
893
+ {
894
+ type: "checkbox",
895
+ name: "functions",
896
+ message: "Which functions would you like to push?",
897
+ validate: (value: any) => validateRequired("function", value),
898
+ when: () => localConfig.getFunctions().length > 0,
899
+ choices: () => {
900
+ let functions = localConfig.getFunctions();
901
+ checkDeployConditions(localConfig);
902
+ let choices = functions.map((func: any, idx: number) => {
903
+ return {
904
+ name: `${func.name} (${func.$id})`,
905
+ value: func.$id,
906
+ };
907
+ });
908
+ return choices;
909
+ },
910
+ },
911
+ ];
912
+
913
+ export const questionsPushCollections: Question[] = [
914
+ {
915
+ type: "checkbox",
916
+ name: "collections",
917
+ message: "Which collections would you like to push?",
918
+ validate: (value: any) => validateRequired("collection", value),
919
+ when: () => localConfig.getCollections().length > 0,
920
+ choices: () => {
921
+ let collections = localConfig.getCollections();
922
+ checkDeployConditions(localConfig);
923
+
924
+ return collections.map((collection: any) => {
925
+ return {
926
+ name: `${collection.name} (${collection["databaseId"]} - ${collection["$id"]})`,
927
+ value: `${collection["databaseId"]}|${collection["$id"]}`,
928
+ };
929
+ });
930
+ },
931
+ },
932
+ ];
933
+
934
+ export const questionsPushTables: Question[] = [
935
+ {
936
+ type: "checkbox",
937
+ name: "tables",
938
+ message: "Which tables would you like to push?",
939
+ validate: (value: any) => validateRequired("table", value),
940
+ when: () => localConfig.getTables().length > 0,
941
+ choices: () => {
942
+ let tables = localConfig.getTables();
943
+ checkDeployConditions(localConfig);
944
+
945
+ return tables.map((table: any) => {
946
+ return {
947
+ name: `${table.name} (${table["databaseId"]} - ${table["$id"]})`,
948
+ value: `${table["databaseId"]}|${table["$id"]}`,
949
+ };
950
+ });
951
+ },
952
+ },
953
+ ];
954
+
955
+ export const questionPushChanges: Question[] = [
956
+ {
957
+ type: "input",
958
+ name: "changes",
959
+ message: `Are you sure you want to apply these changes? (YES/NO)`,
960
+ },
961
+ ];
962
+
963
+ export const questionPushChangesConfirmation: Question[] = [
964
+ {
965
+ type: "input",
966
+ name: "changes",
967
+ message: `Please type 'YES' or 'NO':`,
968
+ },
969
+ ];
970
+
971
+ export const questionsPushBuckets: Question[] = [
972
+ {
973
+ type: "checkbox",
974
+ name: "buckets",
975
+ message: "Which buckets would you like to push?",
976
+ validate: (value: any) => validateRequired("bucket", value),
977
+ when: () => localConfig.getBuckets().length > 0,
978
+ choices: () => {
979
+ let buckets = localConfig.getBuckets();
980
+ checkDeployConditions(localConfig);
981
+
982
+ return buckets.map((bucket: any) => {
983
+ return {
984
+ name: `${bucket.name} (${bucket["$id"]})`,
985
+ value: bucket.$id,
986
+ };
987
+ });
988
+ },
989
+ },
990
+ ];
991
+
992
+ export const questionsPushMessagingTopics: Question[] = [
993
+ {
994
+ type: "checkbox",
995
+ name: "topics",
996
+ message: "Which messaging topic would you like to push?",
997
+ validate: (value: any) => validateRequired("topics", value),
998
+ when: () => localConfig.getMessagingTopics().length > 0,
999
+ choices: () => {
1000
+ let topics = localConfig.getMessagingTopics();
1001
+
1002
+ return topics.map((topic: any) => {
1003
+ return {
1004
+ name: `${topic.name} (${topic["$id"]})`,
1005
+ value: topic.$id,
1006
+ };
1007
+ });
1008
+ },
1009
+ },
1010
+ ];
1011
+
1012
+ export const questionsGetEntrypoint: Question[] = [
1013
+ {
1014
+ type: "input",
1015
+ name: "entrypoint",
1016
+ message: "Enter the entrypoint",
1017
+ default: null,
1018
+ validate(value: string) {
1019
+ if (!value) {
1020
+ return "Please enter your entrypoint";
1021
+ }
1022
+ return true;
1023
+ },
1024
+ },
1025
+ ];
1026
+
1027
+ export const questionsPushTeams: Question[] = [
1028
+ {
1029
+ type: "checkbox",
1030
+ name: "teams",
1031
+ message: "Which teams would you like to push?",
1032
+ validate: (value: any) => validateRequired("team", value),
1033
+ when: () => localConfig.getTeams().length > 0,
1034
+ choices: () => {
1035
+ let teams = localConfig.getTeams();
1036
+ checkDeployConditions(localConfig);
1037
+
1038
+ return teams.map((team: any) => {
1039
+ return {
1040
+ name: `${team.name} (${team["$id"]})`,
1041
+ value: team.$id,
1042
+ };
1043
+ });
1044
+ },
1045
+ },
1046
+ ];
1047
+
1048
+ export const questionsListFactors: Question[] = [
1049
+ {
1050
+ type: "list",
1051
+ name: "factor",
1052
+ message:
1053
+ "Your account is protected by multi-factor authentication. Please choose one for verification.",
1054
+ choices: async () => {
1055
+ let client = await sdkForConsole(false);
1056
+ const accountClient = new Account(client);
1057
+ const factors = await accountClient.listMfaFactors();
1058
+
1059
+ const choices = [
1060
+ {
1061
+ name: `Authenticator app (Get a code from a third-party authenticator app)`,
1062
+ value: "totp",
1063
+ },
1064
+ {
1065
+ name: `Email (Get a security code at your Appwrite email address)`,
1066
+ value: "email",
1067
+ },
1068
+ {
1069
+ name: `SMS (Get a security code on your Appwrite phone number)`,
1070
+ value: "phone",
1071
+ },
1072
+ {
1073
+ name: `Recovery code (Use one of your recovery codes for verification)`,
1074
+ value: "recoveryCode",
1075
+ },
1076
+ ].filter((ch) => factors[ch.value] === true);
1077
+
1078
+ return choices;
1079
+ },
1080
+ },
1081
+ ];
1082
+
1083
+ export const questionsMFAChallenge: Question[] = [
1084
+ {
1085
+ type: "input",
1086
+ name: "otp",
1087
+ message: "Enter OTP",
1088
+ validate(value: string) {
1089
+ if (!value) {
1090
+ return "Please enter OTP";
1091
+ }
1092
+ return true;
1093
+ },
1094
+ },
1095
+ ];
1096
+
1097
+ export const questionsRunFunctions: Question[] = [
1098
+ {
1099
+ type: "list",
1100
+ name: "function",
1101
+ message: "Which function would you like to develop locally?",
1102
+ validate: (value: any) => validateRequired("function", value),
1103
+ choices: () => {
1104
+ let functions = localConfig.getFunctions();
1105
+ if (functions.length === 0) {
1106
+ throw new Error(
1107
+ "No functions found. Use 'appwrite pull functions' to synchronize existing one, or use 'appwrite init function' to create a new one.",
1108
+ );
1109
+ }
1110
+ let choices = functions.map((func: any, idx: number) => {
1111
+ return {
1112
+ name: `${func.name} (${func.$id})`,
1113
+ value: func.$id,
1114
+ };
1115
+ });
1116
+ return choices;
1117
+ },
1118
+ },
1119
+ ];
1120
+
1121
+ export const questionsCreateSite: Question[] = [
1122
+ {
1123
+ type: "input",
1124
+ name: "name",
1125
+ message: "What would you like to name your site?",
1126
+ default: "My Awesome Site",
1127
+ },
1128
+ {
1129
+ type: "input",
1130
+ name: "id",
1131
+ message: "What ID would you like to have for your site?",
1132
+ default: "unique()",
1133
+ },
1134
+ {
1135
+ type: "list",
1136
+ name: "framework",
1137
+ message: "What framework would you like to use?",
1138
+ choices: async () => {
1139
+ let response = await (await getSitesService()).listFrameworks();
1140
+ let frameworks = response["frameworks"];
1141
+ let choices = frameworks.map((framework: any) => {
1142
+ return {
1143
+ name: `${framework.name} (${framework.key})`,
1144
+ value: framework,
1145
+ };
1146
+ });
1147
+ return choices;
1148
+ },
1149
+ },
1150
+ {
1151
+ type: "list",
1152
+ name: "specification",
1153
+ message: "What specification would you like to use?",
1154
+ choices: async () => {
1155
+ let response = await (await getSitesService()).listSpecifications();
1156
+ let specifications = response["specifications"];
1157
+ let choices = specifications.map((spec: any) => {
1158
+ return {
1159
+ name: `${spec.cpus} CPU, ${spec.memory}MB RAM`,
1160
+ value: spec.slug,
1161
+ disabled: spec.enabled === false ? "Upgrade to use" : false,
1162
+ };
1163
+ });
1164
+ return choices;
1165
+ },
1166
+ },
1167
+ ];