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,135 @@
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
+ Proxy,
13
+ StatusCode,
14
+ ProxyResourceType,
15
+ } from "@appwrite.io/console";
16
+
17
+ let proxyClient: Proxy | null = null;
18
+
19
+ const getProxyClient = async (): Promise<Proxy> => {
20
+ if (!proxyClient) {
21
+ const sdkClient = await sdkForProject();
22
+ proxyClient = new Proxy(sdkClient);
23
+ }
24
+ return proxyClient;
25
+ };
26
+
27
+ export const proxy = new Command("proxy")
28
+ .description(commandDescriptions["proxy"] ?? "")
29
+ .configureHelp({
30
+ helpWidth: process.stdout.columns || 80,
31
+ });
32
+
33
+ proxy
34
+ .command(`list-rules`)
35
+ .description(`Get a list of all the proxy rules. You can use the query params to filter your results.`)
36
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch`)
37
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
38
+ .option(
39
+ `--total [value]`,
40
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
41
+ (value: string | undefined) =>
42
+ value === undefined ? true : parseBool(value),
43
+ )
44
+ .action(
45
+ actionRunner(
46
+ async ({ queries, search, total }) =>
47
+ parse(await (await getProxyClient()).listRules(queries, search, total)),
48
+ ),
49
+ );
50
+
51
+ proxy
52
+ .command(`create-api-rule`)
53
+ .description(`Create a new proxy rule for serving Appwrite's API on custom domain.`)
54
+ .requiredOption(`--domain <domain>`, `Domain name.`)
55
+ .action(
56
+ actionRunner(
57
+ async ({ domain }) =>
58
+ parse(await (await getProxyClient()).createAPIRule(domain)),
59
+ ),
60
+ );
61
+
62
+ proxy
63
+ .command(`create-function-rule`)
64
+ .description(`Create a new proxy rule for executing Appwrite Function on custom domain.`)
65
+ .requiredOption(`--domain <domain>`, `Domain name.`)
66
+ .requiredOption(`--function-id <function-id>`, `ID of function to be executed.`)
67
+ .option(`--branch <branch>`, `Name of VCS branch to deploy changes automatically`)
68
+ .action(
69
+ actionRunner(
70
+ async ({ domain, functionId, branch }) =>
71
+ parse(await (await getProxyClient()).createFunctionRule(domain, functionId, branch)),
72
+ ),
73
+ );
74
+
75
+ proxy
76
+ .command(`create-redirect-rule`)
77
+ .description(`Create a new proxy rule for to redirect from custom domain to another domain.`)
78
+ .requiredOption(`--domain <domain>`, `Domain name.`)
79
+ .requiredOption(`--url <url>`, `Target URL of redirection`)
80
+ .requiredOption(`--status-code <status-code>`, `Status code of redirection`)
81
+ .requiredOption(`--resource-id <resource-id>`, `ID of parent resource.`)
82
+ .requiredOption(`--resource-type <resource-type>`, `Type of parent resource.`)
83
+ .action(
84
+ actionRunner(
85
+ async ({ domain, url, statusCode, resourceId, resourceType }) =>
86
+ parse(await (await getProxyClient()).createRedirectRule(domain, url, statusCode as StatusCode, resourceId, resourceType as ProxyResourceType)),
87
+ ),
88
+ );
89
+
90
+ proxy
91
+ .command(`create-site-rule`)
92
+ .description(`Create a new proxy rule for serving Appwrite Site on custom domain.`)
93
+ .requiredOption(`--domain <domain>`, `Domain name.`)
94
+ .requiredOption(`--site-id <site-id>`, `ID of site to be executed.`)
95
+ .option(`--branch <branch>`, `Name of VCS branch to deploy changes automatically`)
96
+ .action(
97
+ actionRunner(
98
+ async ({ domain, siteId, branch }) =>
99
+ parse(await (await getProxyClient()).createSiteRule(domain, siteId, branch)),
100
+ ),
101
+ );
102
+
103
+ proxy
104
+ .command(`get-rule`)
105
+ .description(`Get a proxy rule by its unique ID.`)
106
+ .requiredOption(`--rule-id <rule-id>`, `Rule ID.`)
107
+ .action(
108
+ actionRunner(
109
+ async ({ ruleId }) =>
110
+ parse(await (await getProxyClient()).getRule(ruleId)),
111
+ ),
112
+ );
113
+
114
+ proxy
115
+ .command(`delete-rule`)
116
+ .description(`Delete a proxy rule by its unique ID.`)
117
+ .requiredOption(`--rule-id <rule-id>`, `Rule ID.`)
118
+ .action(
119
+ actionRunner(
120
+ async ({ ruleId }) =>
121
+ parse(await (await getProxyClient()).deleteRule(ruleId)),
122
+ ),
123
+ );
124
+
125
+ proxy
126
+ .command(`update-rule-verification`)
127
+ .description(`Retry getting verification process of a proxy rule. This endpoint triggers domain verification by checking DNS records (CNAME) against the configured target domain. If verification is successful, a TLS certificate will be automatically provisioned for the domain.`)
128
+ .requiredOption(`--rule-id <rule-id>`, `Rule ID.`)
129
+ .action(
130
+ actionRunner(
131
+ async ({ ruleId }) =>
132
+ parse(await (await getProxyClient()).updateRuleVerification(ruleId)),
133
+ ),
134
+ );
135
+
@@ -0,0 +1,505 @@
1
+ import { Command } from "commander";
2
+ import fs from "fs";
3
+ import { sdkForProject } from "../../sdks.js";
4
+ import {
5
+ actionRunner,
6
+ commandDescriptions,
7
+ success,
8
+ parse,
9
+ parseBool,
10
+ parseInteger,
11
+ } from "../../parser.js";
12
+ import {
13
+ Sites,
14
+ Framework,
15
+ BuildRuntime,
16
+ Adapter,
17
+ UsageRange,
18
+ TemplateReferenceType,
19
+ VCSReferenceType,
20
+ DeploymentDownloadType,
21
+ } from "@appwrite.io/console";
22
+
23
+ let sitesClient: Sites | null = null;
24
+
25
+ const getSitesClient = async (): Promise<Sites> => {
26
+ if (!sitesClient) {
27
+ const sdkClient = await sdkForProject();
28
+ sitesClient = new Sites(sdkClient);
29
+ }
30
+ return sitesClient;
31
+ };
32
+
33
+ export const sites = new Command("sites")
34
+ .description(commandDescriptions["sites"] ?? "")
35
+ .configureHelp({
36
+ helpWidth: process.stdout.columns || 80,
37
+ });
38
+
39
+ sites
40
+ .command(`list`)
41
+ .description(`Get a list of all the project's sites. You can use the query params to filter your results.`)
42
+ .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, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId`)
43
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
44
+ .option(
45
+ `--total [value]`,
46
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
47
+ (value: string | undefined) =>
48
+ value === undefined ? true : parseBool(value),
49
+ )
50
+ .action(
51
+ actionRunner(
52
+ async ({ queries, search, total }) =>
53
+ parse(await (await getSitesClient()).list(queries, search, total)),
54
+ ),
55
+ );
56
+
57
+ sites
58
+ .command(`create`)
59
+ .description(`Create a new site.`)
60
+ .requiredOption(`--site-id <site-id>`, `Site 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.`)
61
+ .requiredOption(`--name <name>`, `Site name. Max length: 128 chars.`)
62
+ .requiredOption(`--framework <framework>`, `Sites framework.`)
63
+ .requiredOption(`--build-runtime <build-runtime>`, `Runtime to use during build step.`)
64
+ .option(
65
+ `--enabled [value]`,
66
+ `Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.`,
67
+ (value: string | undefined) =>
68
+ value === undefined ? true : parseBool(value),
69
+ )
70
+ .option(
71
+ `--logging [value]`,
72
+ `When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.`,
73
+ (value: string | undefined) =>
74
+ value === undefined ? true : parseBool(value),
75
+ )
76
+ .option(`--timeout <timeout>`, `Maximum request time in seconds.`, parseInteger)
77
+ .option(`--install-command <install-command>`, `Install Command.`)
78
+ .option(`--build-command <build-command>`, `Build Command.`)
79
+ .option(`--output-directory <output-directory>`, `Output Directory for site.`)
80
+ .option(`--adapter <adapter>`, `Framework adapter defining rendering strategy. Allowed values are: static, ssr`)
81
+ .option(`--installation-id <installation-id>`, `Appwrite Installation ID for VCS (Version Control System) deployment.`)
82
+ .option(`--fallback-file <fallback-file>`, `Fallback file for single page application sites.`)
83
+ .option(`--provider-repository-id <provider-repository-id>`, `Repository ID of the repo linked to the site.`)
84
+ .option(`--provider-branch <provider-branch>`, `Production branch for the repo linked to the site.`)
85
+ .option(
86
+ `--provider-silent-mode [value]`,
87
+ `Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.`,
88
+ (value: string | undefined) =>
89
+ value === undefined ? true : parseBool(value),
90
+ )
91
+ .option(`--provider-root-directory <provider-root-directory>`, `Path to site code in the linked repo.`)
92
+ .option(`--specification <specification>`, `Framework specification for the site and builds.`)
93
+ .action(
94
+ actionRunner(
95
+ async ({ siteId, name, framework, buildRuntime, enabled, logging, timeout, installCommand, buildCommand, outputDirectory, adapter, installationId, fallbackFile, providerRepositoryId, providerBranch, providerSilentMode, providerRootDirectory, specification }) =>
96
+ parse(await (await getSitesClient()).create(siteId, name, framework as Framework, buildRuntime as BuildRuntime, enabled, logging, timeout, installCommand, buildCommand, outputDirectory, adapter as Adapter, installationId, fallbackFile, providerRepositoryId, providerBranch, providerSilentMode, providerRootDirectory, specification)),
97
+ ),
98
+ );
99
+
100
+ sites
101
+ .command(`list-frameworks`)
102
+ .description(`Get a list of all frameworks that are currently available on the server instance.`)
103
+ .action(
104
+ actionRunner(
105
+ async () => parse(await (await getSitesClient()).listFrameworks()),
106
+ ),
107
+ );
108
+
109
+ sites
110
+ .command(`list-specifications`)
111
+ .description(`List allowed site specifications for this instance.`)
112
+ .action(
113
+ actionRunner(
114
+ async () => parse(await (await getSitesClient()).listSpecifications()),
115
+ ),
116
+ );
117
+
118
+ sites
119
+ .command(`list-templates`)
120
+ .description(`List available site templates. You can use template details in [createSite](/docs/references/cloud/server-nodejs/sites#create) method.`)
121
+ .option(`--frameworks [frameworks...]`, `List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.`)
122
+ .option(`--use-cases [use-cases...]`, `List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.`)
123
+ .option(`--limit <limit>`, `Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.`, parseInteger)
124
+ .option(`--offset <offset>`, `Offset the list of returned templates. Maximum offset is 5000.`, parseInteger)
125
+ .action(
126
+ actionRunner(
127
+ async ({ frameworks, useCases, limit, offset }) =>
128
+ parse(await (await getSitesClient()).listTemplates(frameworks, useCases, limit, offset)),
129
+ ),
130
+ );
131
+
132
+ sites
133
+ .command(`get-template`)
134
+ .description(`Get a site template using ID. You can use template details in [createSite](/docs/references/cloud/server-nodejs/sites#create) method.`)
135
+ .requiredOption(`--template-id <template-id>`, `Template ID.`)
136
+ .action(
137
+ actionRunner(
138
+ async ({ templateId }) =>
139
+ parse(await (await getSitesClient()).getTemplate(templateId)),
140
+ ),
141
+ );
142
+
143
+ sites
144
+ .command(`list-usage`)
145
+ .description(`Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. 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, defaults to 30 days.`)
146
+ .option(`--range <range>`, `Date range.`)
147
+ .action(
148
+ actionRunner(
149
+ async ({ range }) =>
150
+ parse(await (await getSitesClient()).listUsage(range as UsageRange)),
151
+ ),
152
+ );
153
+
154
+ sites
155
+ .command(`get`)
156
+ .description(`Get a site by its unique ID.`)
157
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
158
+ .action(
159
+ actionRunner(
160
+ async ({ siteId }) =>
161
+ parse(await (await getSitesClient()).get(siteId)),
162
+ ),
163
+ );
164
+
165
+ sites
166
+ .command(`update`)
167
+ .description(`Update site by its unique ID.`)
168
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
169
+ .requiredOption(`--name <name>`, `Site name. Max length: 128 chars.`)
170
+ .requiredOption(`--framework <framework>`, `Sites framework.`)
171
+ .option(
172
+ `--enabled [value]`,
173
+ `Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.`,
174
+ (value: string | undefined) =>
175
+ value === undefined ? true : parseBool(value),
176
+ )
177
+ .option(
178
+ `--logging [value]`,
179
+ `When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.`,
180
+ (value: string | undefined) =>
181
+ value === undefined ? true : parseBool(value),
182
+ )
183
+ .option(`--timeout <timeout>`, `Maximum request time in seconds.`, parseInteger)
184
+ .option(`--install-command <install-command>`, `Install Command.`)
185
+ .option(`--build-command <build-command>`, `Build Command.`)
186
+ .option(`--output-directory <output-directory>`, `Output Directory for site.`)
187
+ .option(`--build-runtime <build-runtime>`, `Runtime to use during build step.`)
188
+ .option(`--adapter <adapter>`, `Framework adapter defining rendering strategy. Allowed values are: static, ssr`)
189
+ .option(`--fallback-file <fallback-file>`, `Fallback file for single page application sites.`)
190
+ .option(`--installation-id <installation-id>`, `Appwrite Installation ID for VCS (Version Control System) deployment.`)
191
+ .option(`--provider-repository-id <provider-repository-id>`, `Repository ID of the repo linked to the site.`)
192
+ .option(`--provider-branch <provider-branch>`, `Production branch for the repo linked to the site.`)
193
+ .option(
194
+ `--provider-silent-mode [value]`,
195
+ `Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.`,
196
+ (value: string | undefined) =>
197
+ value === undefined ? true : parseBool(value),
198
+ )
199
+ .option(`--provider-root-directory <provider-root-directory>`, `Path to site code in the linked repo.`)
200
+ .option(`--specification <specification>`, `Framework specification for the site and builds.`)
201
+ .action(
202
+ actionRunner(
203
+ async ({ siteId, name, framework, enabled, logging, timeout, installCommand, buildCommand, outputDirectory, buildRuntime, adapter, fallbackFile, installationId, providerRepositoryId, providerBranch, providerSilentMode, providerRootDirectory, specification }) =>
204
+ parse(await (await getSitesClient()).update(siteId, name, framework as Framework, enabled, logging, timeout, installCommand, buildCommand, outputDirectory, buildRuntime as BuildRuntime, adapter as Adapter, fallbackFile, installationId, providerRepositoryId, providerBranch, providerSilentMode, providerRootDirectory, specification)),
205
+ ),
206
+ );
207
+
208
+ sites
209
+ .command(`delete`)
210
+ .description(`Delete a site by its unique ID.`)
211
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
212
+ .action(
213
+ actionRunner(
214
+ async ({ siteId }) =>
215
+ parse(await (await getSitesClient()).delete(siteId)),
216
+ ),
217
+ );
218
+
219
+ sites
220
+ .command(`update-site-deployment`)
221
+ .description(`Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.`)
222
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
223
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
224
+ .action(
225
+ actionRunner(
226
+ async ({ siteId, deploymentId }) =>
227
+ parse(await (await getSitesClient()).updateSiteDeployment(siteId, deploymentId)),
228
+ ),
229
+ );
230
+
231
+ sites
232
+ .command(`list-deployments`)
233
+ .description(`Get a list of all the site's code deployments. You can use the query params to filter your results.`)
234
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
235
+ .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: buildSize, sourceSize, totalSize, buildDuration, status, activate, type`)
236
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
237
+ .option(
238
+ `--total [value]`,
239
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
240
+ (value: string | undefined) =>
241
+ value === undefined ? true : parseBool(value),
242
+ )
243
+ .action(
244
+ actionRunner(
245
+ async ({ siteId, queries, search, total }) =>
246
+ parse(await (await getSitesClient()).listDeployments(siteId, queries, search, total)),
247
+ ),
248
+ );
249
+
250
+ sites
251
+ .command(`create-deployment`)
252
+ .description(`Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.`)
253
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
254
+ .requiredOption(`--code <code>`, `Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.`)
255
+ .requiredOption(`--activate <activate>`, `Automatically activate the deployment when it is finished building.`, parseBool)
256
+ .option(`--install-command <install-command>`, `Install Commands.`)
257
+ .option(`--build-command <build-command>`, `Build Commands.`)
258
+ .option(`--output-directory <output-directory>`, `Output Directory.`)
259
+ .action(
260
+ actionRunner(
261
+ async ({ siteId, code, activate, installCommand, buildCommand, outputDirectory }) =>
262
+ parse(await (await getSitesClient()).createDeployment(siteId, code, activate, installCommand, buildCommand, outputDirectory)),
263
+ ),
264
+ );
265
+
266
+ sites
267
+ .command(`create-duplicate-deployment`)
268
+ .description(`Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.`)
269
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
270
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
271
+ .action(
272
+ actionRunner(
273
+ async ({ siteId, deploymentId }) =>
274
+ parse(await (await getSitesClient()).createDuplicateDeployment(siteId, deploymentId)),
275
+ ),
276
+ );
277
+
278
+ sites
279
+ .command(`create-template-deployment`)
280
+ .description(`Create a deployment based on a template.
281
+
282
+ Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/products/sites/templates) to find the template details.`)
283
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
284
+ .requiredOption(`--repository <repository>`, `Repository name of the template.`)
285
+ .requiredOption(`--owner <owner>`, `The name of the owner of the template.`)
286
+ .requiredOption(`--root-directory <root-directory>`, `Path to site code in the template repo.`)
287
+ .requiredOption(`--type <type>`, `Type for the reference provided. Can be commit, branch, or tag`)
288
+ .requiredOption(`--reference <reference>`, `Reference value, can be a commit hash, branch name, or release tag`)
289
+ .option(
290
+ `--activate [value]`,
291
+ `Automatically activate the deployment when it is finished building.`,
292
+ (value: string | undefined) =>
293
+ value === undefined ? true : parseBool(value),
294
+ )
295
+ .action(
296
+ actionRunner(
297
+ async ({ siteId, repository, owner, rootDirectory, type, reference, activate }) =>
298
+ parse(await (await getSitesClient()).createTemplateDeployment(siteId, repository, owner, rootDirectory, type as TemplateReferenceType, reference, activate)),
299
+ ),
300
+ );
301
+
302
+ sites
303
+ .command(`create-vcs-deployment`)
304
+ .description(`Create a deployment when a site is connected to VCS.
305
+
306
+ This endpoint lets you create deployment from a branch, commit, or a tag.`)
307
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
308
+ .requiredOption(`--type <type>`, `Type of reference passed. Allowed values are: branch, commit`)
309
+ .requiredOption(`--reference <reference>`, `VCS reference to create deployment from. Depending on type this can be: branch name, commit hash`)
310
+ .option(
311
+ `--activate [value]`,
312
+ `Automatically activate the deployment when it is finished building.`,
313
+ (value: string | undefined) =>
314
+ value === undefined ? true : parseBool(value),
315
+ )
316
+ .action(
317
+ actionRunner(
318
+ async ({ siteId, type, reference, activate }) =>
319
+ parse(await (await getSitesClient()).createVcsDeployment(siteId, type as VCSReferenceType, reference, activate)),
320
+ ),
321
+ );
322
+
323
+ sites
324
+ .command(`get-deployment`)
325
+ .description(`Get a site deployment by its unique ID.`)
326
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
327
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
328
+ .action(
329
+ actionRunner(
330
+ async ({ siteId, deploymentId }) =>
331
+ parse(await (await getSitesClient()).getDeployment(siteId, deploymentId)),
332
+ ),
333
+ );
334
+
335
+ sites
336
+ .command(`delete-deployment`)
337
+ .description(`Delete a site deployment by its unique ID.`)
338
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
339
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
340
+ .action(
341
+ actionRunner(
342
+ async ({ siteId, deploymentId }) =>
343
+ parse(await (await getSitesClient()).deleteDeployment(siteId, deploymentId)),
344
+ ),
345
+ );
346
+
347
+ sites
348
+ .command(`get-deployment-download`)
349
+ .description(`Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.`)
350
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
351
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
352
+ .option(`--type <type>`, `Deployment file to download. Can be: "source", "output".`)
353
+ .requiredOption(`--destination <destination>`, `Path to save the file to.`)
354
+ .action(
355
+ actionRunner(
356
+ async ({ siteId, deploymentId, type, destination }) => {
357
+ const url = await (await getSitesClient()).getDeploymentDownload(siteId, deploymentId, type as DeploymentDownloadType);
358
+ const response = await fetch(url);
359
+ const buffer = Buffer.from(await response.arrayBuffer());
360
+ fs.writeFileSync(destination, buffer);
361
+ success(`File saved to ${destination}`);
362
+ },
363
+ ),
364
+ );
365
+
366
+ sites
367
+ .command(`update-deployment-status`)
368
+ .description(`Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.`)
369
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
370
+ .requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`)
371
+ .action(
372
+ actionRunner(
373
+ async ({ siteId, deploymentId }) =>
374
+ parse(await (await getSitesClient()).updateDeploymentStatus(siteId, deploymentId)),
375
+ ),
376
+ );
377
+
378
+ sites
379
+ .command(`list-logs`)
380
+ .description(`Get a list of all site logs. You can use the query params to filter your results.`)
381
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
382
+ .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: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId`)
383
+ .option(
384
+ `--total [value]`,
385
+ `When set to false, the total count returned will be 0 and will not be calculated.`,
386
+ (value: string | undefined) =>
387
+ value === undefined ? true : parseBool(value),
388
+ )
389
+ .action(
390
+ actionRunner(
391
+ async ({ siteId, queries, total }) =>
392
+ parse(await (await getSitesClient()).listLogs(siteId, queries, total)),
393
+ ),
394
+ );
395
+
396
+ sites
397
+ .command(`get-log`)
398
+ .description(`Get a site request log by its unique ID.`)
399
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
400
+ .requiredOption(`--log-id <log-id>`, `Log ID.`)
401
+ .action(
402
+ actionRunner(
403
+ async ({ siteId, logId }) =>
404
+ parse(await (await getSitesClient()).getLog(siteId, logId)),
405
+ ),
406
+ );
407
+
408
+ sites
409
+ .command(`delete-log`)
410
+ .description(`Delete a site log by its unique ID.`)
411
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
412
+ .requiredOption(`--log-id <log-id>`, `Log ID.`)
413
+ .action(
414
+ actionRunner(
415
+ async ({ siteId, logId }) =>
416
+ parse(await (await getSitesClient()).deleteLog(siteId, logId)),
417
+ ),
418
+ );
419
+
420
+ sites
421
+ .command(`get-usage`)
422
+ .description(`Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. 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, defaults to 30 days.`)
423
+ .requiredOption(`--site-id <site-id>`, `Site ID.`)
424
+ .option(`--range <range>`, `Date range.`)
425
+ .action(
426
+ actionRunner(
427
+ async ({ siteId, range }) =>
428
+ parse(await (await getSitesClient()).getUsage(siteId, range as UsageRange)),
429
+ ),
430
+ );
431
+
432
+ sites
433
+ .command(`list-variables`)
434
+ .description(`Get a list of all variables of a specific site.`)
435
+ .requiredOption(`--site-id <site-id>`, `Site unique ID.`)
436
+ .action(
437
+ actionRunner(
438
+ async ({ siteId }) =>
439
+ parse(await (await getSitesClient()).listVariables(siteId)),
440
+ ),
441
+ );
442
+
443
+ sites
444
+ .command(`create-variable`)
445
+ .description(`Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.`)
446
+ .requiredOption(`--site-id <site-id>`, `Site unique ID.`)
447
+ .requiredOption(`--key <key>`, `Variable key. Max length: 255 chars.`)
448
+ .requiredOption(`--value <value>`, `Variable value. Max length: 8192 chars.`)
449
+ .option(
450
+ `--secret [value]`,
451
+ `Secret variables can be updated or deleted, but only sites can read them during build and runtime.`,
452
+ (value: string | undefined) =>
453
+ value === undefined ? true : parseBool(value),
454
+ )
455
+ .action(
456
+ actionRunner(
457
+ async ({ siteId, key, value, secret }) =>
458
+ parse(await (await getSitesClient()).createVariable(siteId, key, value, secret)),
459
+ ),
460
+ );
461
+
462
+ sites
463
+ .command(`get-variable`)
464
+ .description(`Get a variable by its unique ID.`)
465
+ .requiredOption(`--site-id <site-id>`, `Site unique ID.`)
466
+ .requiredOption(`--variable-id <variable-id>`, `Variable unique ID.`)
467
+ .action(
468
+ actionRunner(
469
+ async ({ siteId, variableId }) =>
470
+ parse(await (await getSitesClient()).getVariable(siteId, variableId)),
471
+ ),
472
+ );
473
+
474
+ sites
475
+ .command(`update-variable`)
476
+ .description(`Update variable by its unique ID.`)
477
+ .requiredOption(`--site-id <site-id>`, `Site unique ID.`)
478
+ .requiredOption(`--variable-id <variable-id>`, `Variable unique ID.`)
479
+ .requiredOption(`--key <key>`, `Variable key. Max length: 255 chars.`)
480
+ .option(`--value <value>`, `Variable value. Max length: 8192 chars.`)
481
+ .option(
482
+ `--secret [value]`,
483
+ `Secret variables can be updated or deleted, but only sites can read them during build and runtime.`,
484
+ (value: string | undefined) =>
485
+ value === undefined ? true : parseBool(value),
486
+ )
487
+ .action(
488
+ actionRunner(
489
+ async ({ siteId, variableId, key, value, secret }) =>
490
+ parse(await (await getSitesClient()).updateVariable(siteId, variableId, key, value, secret)),
491
+ ),
492
+ );
493
+
494
+ sites
495
+ .command(`delete-variable`)
496
+ .description(`Delete a variable by its unique ID.`)
497
+ .requiredOption(`--site-id <site-id>`, `Site unique ID.`)
498
+ .requiredOption(`--variable-id <variable-id>`, `Variable unique ID.`)
499
+ .action(
500
+ actionRunner(
501
+ async ({ siteId, variableId }) =>
502
+ parse(await (await getSitesClient()).deleteVariable(siteId, variableId)),
503
+ ),
504
+ );
505
+