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,620 @@
1
+ import { Command } from "commander";
2
+ import { sdkForProject } from "../../sdks.js";
3
+ import { actionRunner, commandDescriptions, parse, parseBool, parseInteger, } from "../../parser.js";
4
+ import { Databases, } from "@appwrite.io/console";
5
+ let databasesClient = null;
6
+ const getDatabasesClient = async () => {
7
+ if (!databasesClient) {
8
+ const sdkClient = await sdkForProject();
9
+ databasesClient = new Databases(sdkClient);
10
+ }
11
+ return databasesClient;
12
+ };
13
+ export const databases = new Command("databases")
14
+ .description(commandDescriptions["databases"] ?? "")
15
+ .configureHelp({
16
+ helpWidth: process.stdout.columns || 80,
17
+ });
18
+ databases
19
+ .command(`list`)
20
+ .description(`Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.`)
21
+ .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`)
22
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
23
+ .option(`--total [value]`, `When set to false, the total count returned will be 0 and will not be calculated.`, (value) => value === undefined ? true : parseBool(value))
24
+ .action(actionRunner(async ({ queries, search, total }) => parse(await (await getDatabasesClient()).list(queries, search, total))));
25
+ databases
26
+ .command(`create`)
27
+ .description(`Create a new Database.
28
+ `)
29
+ .requiredOption(`--database-id <database-id>`, `Unique 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.`)
30
+ .requiredOption(`--name <name>`, `Database name. Max length: 128 chars.`)
31
+ .option(`--enabled [value]`, `Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.`, (value) => value === undefined ? true : parseBool(value))
32
+ .action(actionRunner(async ({ databaseId, name, enabled }) => parse(await (await getDatabasesClient()).create(databaseId, name, enabled))));
33
+ databases
34
+ .command(`list-transactions`)
35
+ .description(`List transactions across all databases.`)
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/queries).`)
37
+ .action(actionRunner(async ({ queries }) => parse(await (await getDatabasesClient()).listTransactions(queries))));
38
+ databases
39
+ .command(`create-transaction`)
40
+ .description(`Create a new transaction.`)
41
+ .option(`--ttl <ttl>`, `Seconds before the transaction expires.`, parseInteger)
42
+ .action(actionRunner(async ({ ttl }) => parse(await (await getDatabasesClient()).createTransaction(ttl))));
43
+ databases
44
+ .command(`get-transaction`)
45
+ .description(`Get a transaction by its unique ID.`)
46
+ .requiredOption(`--transaction-id <transaction-id>`, `Transaction ID.`)
47
+ .action(actionRunner(async ({ transactionId }) => parse(await (await getDatabasesClient()).getTransaction(transactionId))));
48
+ databases
49
+ .command(`update-transaction`)
50
+ .description(`Update a transaction, to either commit or roll back its operations.`)
51
+ .requiredOption(`--transaction-id <transaction-id>`, `Transaction ID.`)
52
+ .option(`--commit [value]`, `Commit transaction?`, (value) => value === undefined ? true : parseBool(value))
53
+ .option(`--rollback [value]`, `Rollback transaction?`, (value) => value === undefined ? true : parseBool(value))
54
+ .action(actionRunner(async ({ transactionId, commit, rollback }) => parse(await (await getDatabasesClient()).updateTransaction(transactionId, commit, rollback))));
55
+ databases
56
+ .command(`delete-transaction`)
57
+ .description(`Delete a transaction by its unique ID.`)
58
+ .requiredOption(`--transaction-id <transaction-id>`, `Transaction ID.`)
59
+ .action(actionRunner(async ({ transactionId }) => parse(await (await getDatabasesClient()).deleteTransaction(transactionId))));
60
+ databases
61
+ .command(`create-operations`)
62
+ .description(`Create multiple operations in a single transaction.`)
63
+ .requiredOption(`--transaction-id <transaction-id>`, `Transaction ID.`)
64
+ .option(`--operations [operations...]`, `Array of staged operations.`)
65
+ .action(actionRunner(async ({ transactionId, operations }) => parse(await (await getDatabasesClient()).createOperations(transactionId, operations))));
66
+ databases
67
+ .command(`list-usage`)
68
+ .description(`List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.`)
69
+ .option(`--range <range>`, `Date range.`)
70
+ .action(actionRunner(async ({ range }) => parse(await (await getDatabasesClient()).listUsage(range))));
71
+ databases
72
+ .command(`get`)
73
+ .description(`Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.`)
74
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
75
+ .action(actionRunner(async ({ databaseId }) => parse(await (await getDatabasesClient()).get(databaseId))));
76
+ databases
77
+ .command(`update`)
78
+ .description(`Update a database by its unique ID.`)
79
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
80
+ .requiredOption(`--name <name>`, `Database name. Max length: 128 chars.`)
81
+ .option(`--enabled [value]`, `Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.`, (value) => value === undefined ? true : parseBool(value))
82
+ .action(actionRunner(async ({ databaseId, name, enabled }) => parse(await (await getDatabasesClient()).update(databaseId, name, enabled))));
83
+ databases
84
+ .command(`delete`)
85
+ .description(`Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.`)
86
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
87
+ .action(actionRunner(async ({ databaseId }) => parse(await (await getDatabasesClient()).delete(databaseId))));
88
+ databases
89
+ .command(`list-collections`)
90
+ .description(`Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.`)
91
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
92
+ .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, documentSecurity`)
93
+ .option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
94
+ .option(`--total [value]`, `When set to false, the total count returned will be 0 and will not be calculated.`, (value) => value === undefined ? true : parseBool(value))
95
+ .action(actionRunner(async ({ databaseId, queries, search, total }) => parse(await (await getDatabasesClient()).listCollections(databaseId, queries, search, total))));
96
+ databases
97
+ .command(`create-collection`)
98
+ .description(`Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.`)
99
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
100
+ .requiredOption(`--collection-id <collection-id>`, `Unique 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.`)
101
+ .requiredOption(`--name <name>`, `Collection name. Max length: 128 chars.`)
102
+ .option(`--permissions [permissions...]`, `An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).`)
103
+ .option(`--document-security [value]`, `Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions).`, (value) => value === undefined ? true : parseBool(value))
104
+ .option(`--enabled [value]`, `Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.`, (value) => value === undefined ? true : parseBool(value))
105
+ .option(`--attributes [attributes...]`, `Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, integer, float, boolean, datetime), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.`)
106
+ .option(`--indexes [indexes...]`, `Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC/DESC, optional), and lengths (array of integers, optional).`)
107
+ .action(actionRunner(async ({ databaseId, collectionId, name, permissions, documentSecurity, enabled, attributes, indexes }) => parse(await (await getDatabasesClient()).createCollection(databaseId, collectionId, name, permissions, documentSecurity, enabled, attributes, indexes))));
108
+ databases
109
+ .command(`get-collection`)
110
+ .description(`Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.`)
111
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
112
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
113
+ .action(actionRunner(async ({ databaseId, collectionId }) => parse(await (await getDatabasesClient()).getCollection(databaseId, collectionId))));
114
+ databases
115
+ .command(`update-collection`)
116
+ .description(`Update a collection by its unique ID.`)
117
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
118
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
119
+ .requiredOption(`--name <name>`, `Collection name. Max length: 128 chars.`)
120
+ .option(`--permissions [permissions...]`, `An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).`)
121
+ .option(`--document-security [value]`, `Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions).`, (value) => value === undefined ? true : parseBool(value))
122
+ .option(`--enabled [value]`, `Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.`, (value) => value === undefined ? true : parseBool(value))
123
+ .action(actionRunner(async ({ databaseId, collectionId, name, permissions, documentSecurity, enabled }) => parse(await (await getDatabasesClient()).updateCollection(databaseId, collectionId, name, permissions, documentSecurity, enabled))));
124
+ databases
125
+ .command(`delete-collection`)
126
+ .description(`Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.`)
127
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
128
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
129
+ .action(actionRunner(async ({ databaseId, collectionId }) => parse(await (await getDatabasesClient()).deleteCollection(databaseId, collectionId))));
130
+ databases
131
+ .command(`list-attributes`)
132
+ .description(`List attributes in the collection.`)
133
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
134
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
135
+ .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: key, type, size, required, array, status, error`)
136
+ .option(`--total [value]`, `When set to false, the total count returned will be 0 and will not be calculated.`, (value) => value === undefined ? true : parseBool(value))
137
+ .action(actionRunner(async ({ databaseId, collectionId, queries, total }) => parse(await (await getDatabasesClient()).listAttributes(databaseId, collectionId, queries, total))));
138
+ databases
139
+ .command(`create-boolean-attribute`)
140
+ .description(`Create a boolean attribute.
141
+ `)
142
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
143
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
144
+ .requiredOption(`--key <key>`, `Attribute Key.`)
145
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
146
+ .option(`--xdefault [value]`, `Default value for attribute when not provided. Cannot be set when attribute is required.`, (value) => value === undefined ? true : parseBool(value))
147
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
148
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, array }) => parse(await (await getDatabasesClient()).createBooleanAttribute(databaseId, collectionId, key, required, xdefault, array))));
149
+ databases
150
+ .command(`update-boolean-attribute`)
151
+ .description(`Update a boolean attribute. Changing the \`default\` value will not update already existing documents.`)
152
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
153
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#createCollection).`)
154
+ .requiredOption(`--key <key>`, `Attribute Key.`)
155
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
156
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`, parseBool)
157
+ .option(`--new-key <new-key>`, `New attribute key.`)
158
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateBooleanAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
159
+ databases
160
+ .command(`create-datetime-attribute`)
161
+ .description(`Create a date time attribute according to the ISO 8601 standard.`)
162
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
163
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#createCollection).`)
164
+ .requiredOption(`--key <key>`, `Attribute Key.`)
165
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
166
+ .option(`--xdefault <xdefault>`, `Default value for the attribute in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.`)
167
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
168
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, array }) => parse(await (await getDatabasesClient()).createDatetimeAttribute(databaseId, collectionId, key, required, xdefault, array))));
169
+ databases
170
+ .command(`update-datetime-attribute`)
171
+ .description(`Update a date time attribute. Changing the \`default\` value will not update already existing documents.`)
172
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
173
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
174
+ .requiredOption(`--key <key>`, `Attribute Key.`)
175
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
176
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
177
+ .option(`--new-key <new-key>`, `New attribute key.`)
178
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateDatetimeAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
179
+ databases
180
+ .command(`create-email-attribute`)
181
+ .description(`Create an email attribute.
182
+ `)
183
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
184
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
185
+ .requiredOption(`--key <key>`, `Attribute Key.`)
186
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
187
+ .option(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
188
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
189
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, array }) => parse(await (await getDatabasesClient()).createEmailAttribute(databaseId, collectionId, key, required, xdefault, array))));
190
+ databases
191
+ .command(`update-email-attribute`)
192
+ .description(`Update an email attribute. Changing the \`default\` value will not update already existing documents.
193
+ `)
194
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
195
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
196
+ .requiredOption(`--key <key>`, `Attribute Key.`)
197
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
198
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
199
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
200
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateEmailAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
201
+ databases
202
+ .command(`create-enum-attribute`)
203
+ .description(`Create an enum attribute. The \`elements\` param acts as a white-list of accepted values for this attribute.
204
+ `)
205
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
206
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
207
+ .requiredOption(`--key <key>`, `Attribute Key.`)
208
+ .requiredOption(`--elements [elements...]`, `Array of enum values.`)
209
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
210
+ .option(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
211
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
212
+ .action(actionRunner(async ({ databaseId, collectionId, key, elements, required, xdefault, array }) => parse(await (await getDatabasesClient()).createEnumAttribute(databaseId, collectionId, key, elements, required, xdefault, array))));
213
+ databases
214
+ .command(`update-enum-attribute`)
215
+ .description(`Update an enum attribute. Changing the \`default\` value will not update already existing documents.
216
+ `)
217
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
218
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
219
+ .requiredOption(`--key <key>`, `Attribute Key.`)
220
+ .requiredOption(`--elements [elements...]`, `Updated list of enum values.`)
221
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
222
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
223
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
224
+ .action(actionRunner(async ({ databaseId, collectionId, key, elements, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateEnumAttribute(databaseId, collectionId, key, elements, required, xdefault, newKey))));
225
+ databases
226
+ .command(`create-float-attribute`)
227
+ .description(`Create a float attribute. Optionally, minimum and maximum values can be provided.
228
+ `)
229
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
230
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
231
+ .requiredOption(`--key <key>`, `Attribute Key.`)
232
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
233
+ .option(`--min <min>`, `Minimum value.`, parseInteger)
234
+ .option(`--max <max>`, `Maximum value.`, parseInteger)
235
+ .option(`--xdefault <xdefault>`, `Default value. Cannot be set when required.`, parseInteger)
236
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
237
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, min, max, xdefault, array }) => parse(await (await getDatabasesClient()).createFloatAttribute(databaseId, collectionId, key, required, min, max, xdefault, array))));
238
+ databases
239
+ .command(`update-float-attribute`)
240
+ .description(`Update a float attribute. Changing the \`default\` value will not update already existing documents.
241
+ `)
242
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
243
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
244
+ .requiredOption(`--key <key>`, `Attribute Key.`)
245
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
246
+ .requiredOption(`--xdefault <xdefault>`, `Default value. Cannot be set when required.`, parseInteger)
247
+ .option(`--min <min>`, `Minimum value.`, parseInteger)
248
+ .option(`--max <max>`, `Maximum value.`, parseInteger)
249
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
250
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, min, max, newKey }) => parse(await (await getDatabasesClient()).updateFloatAttribute(databaseId, collectionId, key, required, xdefault, min, max, newKey))));
251
+ databases
252
+ .command(`create-integer-attribute`)
253
+ .description(`Create an integer attribute. Optionally, minimum and maximum values can be provided.
254
+ `)
255
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
256
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
257
+ .requiredOption(`--key <key>`, `Attribute Key.`)
258
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
259
+ .option(`--min <min>`, `Minimum value`, parseInteger)
260
+ .option(`--max <max>`, `Maximum value`, parseInteger)
261
+ .option(`--xdefault <xdefault>`, `Default value. Cannot be set when attribute is required.`, parseInteger)
262
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
263
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, min, max, xdefault, array }) => parse(await (await getDatabasesClient()).createIntegerAttribute(databaseId, collectionId, key, required, min, max, xdefault, array))));
264
+ databases
265
+ .command(`update-integer-attribute`)
266
+ .description(`Update an integer attribute. Changing the \`default\` value will not update already existing documents.
267
+ `)
268
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
269
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
270
+ .requiredOption(`--key <key>`, `Attribute Key.`)
271
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
272
+ .requiredOption(`--xdefault <xdefault>`, `Default value. Cannot be set when attribute is required.`, parseInteger)
273
+ .option(`--min <min>`, `Minimum value`, parseInteger)
274
+ .option(`--max <max>`, `Maximum value`, parseInteger)
275
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
276
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, min, max, newKey }) => parse(await (await getDatabasesClient()).updateIntegerAttribute(databaseId, collectionId, key, required, xdefault, min, max, newKey))));
277
+ databases
278
+ .command(`create-ip-attribute`)
279
+ .description(`Create IP address attribute.
280
+ `)
281
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
282
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
283
+ .requiredOption(`--key <key>`, `Attribute Key.`)
284
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
285
+ .option(`--xdefault <xdefault>`, `Default value. Cannot be set when attribute is required.`)
286
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
287
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, array }) => parse(await (await getDatabasesClient()).createIpAttribute(databaseId, collectionId, key, required, xdefault, array))));
288
+ databases
289
+ .command(`update-ip-attribute`)
290
+ .description(`Update an ip attribute. Changing the \`default\` value will not update already existing documents.
291
+ `)
292
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
293
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
294
+ .requiredOption(`--key <key>`, `Attribute Key.`)
295
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
296
+ .requiredOption(`--xdefault <xdefault>`, `Default value. Cannot be set when attribute is required.`)
297
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
298
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateIpAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
299
+ databases
300
+ .command(`create-line-attribute`)
301
+ .description(`Create a geometric line attribute.`)
302
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
303
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
304
+ .requiredOption(`--key <key>`, `Attribute Key.`)
305
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
306
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when attribute is required.`)
307
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault }) => parse(await (await getDatabasesClient()).createLineAttribute(databaseId, collectionId, key, required, xdefault))));
308
+ databases
309
+ .command(`update-line-attribute`)
310
+ .description(`Update a line attribute. Changing the \`default\` value will not update already existing documents.`)
311
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
312
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#createCollection).`)
313
+ .requiredOption(`--key <key>`, `Attribute Key.`)
314
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
315
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when attribute is required.`)
316
+ .option(`--new-key <new-key>`, `New attribute key.`)
317
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateLineAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
318
+ databases
319
+ .command(`create-point-attribute`)
320
+ .description(`Create a geometric point attribute.`)
321
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
322
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
323
+ .requiredOption(`--key <key>`, `Attribute Key.`)
324
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
325
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.`)
326
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault }) => parse(await (await getDatabasesClient()).createPointAttribute(databaseId, collectionId, key, required, xdefault))));
327
+ databases
328
+ .command(`update-point-attribute`)
329
+ .description(`Update a point attribute. Changing the \`default\` value will not update already existing documents.`)
330
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
331
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#createCollection).`)
332
+ .requiredOption(`--key <key>`, `Attribute Key.`)
333
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
334
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.`)
335
+ .option(`--new-key <new-key>`, `New attribute key.`)
336
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updatePointAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
337
+ databases
338
+ .command(`create-polygon-attribute`)
339
+ .description(`Create a geometric polygon attribute.`)
340
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
341
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
342
+ .requiredOption(`--key <key>`, `Attribute Key.`)
343
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
344
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.`)
345
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault }) => parse(await (await getDatabasesClient()).createPolygonAttribute(databaseId, collectionId, key, required, xdefault))));
346
+ databases
347
+ .command(`update-polygon-attribute`)
348
+ .description(`Update a polygon attribute. Changing the \`default\` value will not update already existing documents.`)
349
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
350
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#createCollection).`)
351
+ .requiredOption(`--key <key>`, `Attribute Key.`)
352
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
353
+ .option(`--xdefault [xdefault...]`, `Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.`)
354
+ .option(`--new-key <new-key>`, `New attribute key.`)
355
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updatePolygonAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
356
+ databases
357
+ .command(`create-relationship-attribute`)
358
+ .description(`Create relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
359
+ `)
360
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
361
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
362
+ .requiredOption(`--related-collection-id <related-collection-id>`, `Related Collection ID.`)
363
+ .requiredOption(`--type <type>`, `Relation type`)
364
+ .option(`--two-way [value]`, `Is Two Way?`, (value) => value === undefined ? true : parseBool(value))
365
+ .option(`--key <key>`, `Attribute Key.`)
366
+ .option(`--two-way-key <two-way-key>`, `Two Way Attribute Key.`)
367
+ .option(`--on-delete <on-delete>`, `Constraints option`)
368
+ .action(actionRunner(async ({ databaseId, collectionId, relatedCollectionId, type, twoWay, key, twoWayKey, onDelete }) => parse(await (await getDatabasesClient()).createRelationshipAttribute(databaseId, collectionId, relatedCollectionId, type, twoWay, key, twoWayKey, onDelete))));
369
+ databases
370
+ .command(`create-string-attribute`)
371
+ .description(`Create a string attribute.
372
+ `)
373
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
374
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
375
+ .requiredOption(`--key <key>`, `Attribute Key.`)
376
+ .requiredOption(`--size <size>`, `Attribute size for text attributes, in number of characters.`, parseInteger)
377
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
378
+ .option(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
379
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
380
+ .option(`--encrypt [value]`, `Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.`, (value) => value === undefined ? true : parseBool(value))
381
+ .action(actionRunner(async ({ databaseId, collectionId, key, size, required, xdefault, array, encrypt }) => parse(await (await getDatabasesClient()).createStringAttribute(databaseId, collectionId, key, size, required, xdefault, array, encrypt))));
382
+ databases
383
+ .command(`update-string-attribute`)
384
+ .description(`Update a string attribute. Changing the \`default\` value will not update already existing documents.
385
+ `)
386
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
387
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
388
+ .requiredOption(`--key <key>`, `Attribute Key.`)
389
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
390
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
391
+ .option(`--size <size>`, `Maximum size of the string attribute.`, parseInteger)
392
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
393
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, size, newKey }) => parse(await (await getDatabasesClient()).updateStringAttribute(databaseId, collectionId, key, required, xdefault, size, newKey))));
394
+ databases
395
+ .command(`create-url-attribute`)
396
+ .description(`Create a URL attribute.
397
+ `)
398
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
399
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
400
+ .requiredOption(`--key <key>`, `Attribute Key.`)
401
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
402
+ .option(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
403
+ .option(`--array [value]`, `Is attribute an array?`, (value) => value === undefined ? true : parseBool(value))
404
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, array }) => parse(await (await getDatabasesClient()).createUrlAttribute(databaseId, collectionId, key, required, xdefault, array))));
405
+ databases
406
+ .command(`update-url-attribute`)
407
+ .description(`Update an url attribute. Changing the \`default\` value will not update already existing documents.
408
+ `)
409
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
410
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
411
+ .requiredOption(`--key <key>`, `Attribute Key.`)
412
+ .requiredOption(`--required <required>`, `Is attribute required?`, parseBool)
413
+ .requiredOption(`--xdefault <xdefault>`, `Default value for attribute when not provided. Cannot be set when attribute is required.`)
414
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
415
+ .action(actionRunner(async ({ databaseId, collectionId, key, required, xdefault, newKey }) => parse(await (await getDatabasesClient()).updateUrlAttribute(databaseId, collectionId, key, required, xdefault, newKey))));
416
+ databases
417
+ .command(`get-attribute`)
418
+ .description(`Get attribute by ID.`)
419
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
420
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
421
+ .requiredOption(`--key <key>`, `Attribute Key.`)
422
+ .action(actionRunner(async ({ databaseId, collectionId, key }) => parse(await (await getDatabasesClient()).getAttribute(databaseId, collectionId, key))));
423
+ databases
424
+ .command(`delete-attribute`)
425
+ .description(`Deletes an attribute.`)
426
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
427
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
428
+ .requiredOption(`--key <key>`, `Attribute Key.`)
429
+ .action(actionRunner(async ({ databaseId, collectionId, key }) => parse(await (await getDatabasesClient()).deleteAttribute(databaseId, collectionId, key))));
430
+ databases
431
+ .command(`update-relationship-attribute`)
432
+ .description(`Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
433
+ `)
434
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
435
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
436
+ .requiredOption(`--key <key>`, `Attribute Key.`)
437
+ .option(`--on-delete <on-delete>`, `Constraints option`)
438
+ .option(`--new-key <new-key>`, `New Attribute Key.`)
439
+ .action(actionRunner(async ({ databaseId, collectionId, key, onDelete, newKey }) => parse(await (await getDatabasesClient()).updateRelationshipAttribute(databaseId, collectionId, key, onDelete, newKey))));
440
+ databases
441
+ .command(`list-documents`)
442
+ .description(`Get a list of all the user's documents in a given collection. You can use the query params to filter your results.`)
443
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
444
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
445
+ .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.`)
446
+ .option(`--transaction-id <transaction-id>`, `Transaction ID to read uncommitted changes within the transaction.`)
447
+ .option(`--total [value]`, `When set to false, the total count returned will be 0 and will not be calculated.`, (value) => value === undefined ? true : parseBool(value))
448
+ .action(actionRunner(async ({ databaseId, collectionId, queries, transactionId, total }) => parse(await (await getDatabasesClient()).listDocuments(databaseId, collectionId, queries, transactionId, total))));
449
+ databases
450
+ .command(`create-document`)
451
+ .description(`Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.`)
452
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
453
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents.`)
454
+ .requiredOption(`--document-id <document-id>`, `Document 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.`)
455
+ .requiredOption(`--data <data>`, `Document data as JSON object.`)
456
+ .option(`--permissions [permissions...]`, `An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).`)
457
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
458
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, data, permissions, transactionId }) => parse(await (await getDatabasesClient()).createDocument(databaseId, collectionId, documentId, JSON.parse(data), permissions, transactionId))));
459
+ databases
460
+ .command(`create-documents`)
461
+ .description(`Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.`)
462
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
463
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents.`)
464
+ .requiredOption(`--documents [documents...]`, `Array of documents data as JSON objects.`)
465
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
466
+ .action(actionRunner(async ({ databaseId, collectionId, documents, transactionId }) => parse(await (await getDatabasesClient()).createDocuments(databaseId, collectionId, documents, transactionId))));
467
+ databases
468
+ .command(`upsert-documents`)
469
+ .description(`Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
470
+ `)
471
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
472
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
473
+ .requiredOption(`--documents [documents...]`, `Array of document data as JSON objects. May contain partial documents.`)
474
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
475
+ .action(actionRunner(async ({ databaseId, collectionId, documents, transactionId }) => parse(await (await getDatabasesClient()).upsertDocuments(databaseId, collectionId, documents, transactionId))));
476
+ databases
477
+ .command(`update-documents`)
478
+ .description(`Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.`)
479
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
480
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
481
+ .option(`--data <data>`, `Document data as JSON object. Include only attribute and value pairs to be updated.`)
482
+ .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.`)
483
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
484
+ .action(actionRunner(async ({ databaseId, collectionId, data, queries, transactionId }) => parse(await (await getDatabasesClient()).updateDocuments(databaseId, collectionId, JSON.parse(data), queries, transactionId))));
485
+ databases
486
+ .command(`delete-documents`)
487
+ .description(`Bulk delete documents using queries, if no queries are passed then all documents are deleted.`)
488
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
489
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
490
+ .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.`)
491
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
492
+ .action(actionRunner(async ({ databaseId, collectionId, queries, transactionId }) => parse(await (await getDatabasesClient()).deleteDocuments(databaseId, collectionId, queries, transactionId))));
493
+ databases
494
+ .command(`get-document`)
495
+ .description(`Get a document by its unique ID. This endpoint response returns a JSON object with the document data.`)
496
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
497
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
498
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
499
+ .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.`)
500
+ .option(`--transaction-id <transaction-id>`, `Transaction ID to read uncommitted changes within the transaction.`)
501
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, queries, transactionId }) => parse(await (await getDatabasesClient()).getDocument(databaseId, collectionId, documentId, queries, transactionId))));
502
+ databases
503
+ .command(`upsert-document`)
504
+ .description(`Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.`)
505
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
506
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
507
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
508
+ .option(`--data <data>`, `Document data as JSON object. Include all required attributes of the document to be created or updated.`)
509
+ .option(`--permissions [permissions...]`, `An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).`)
510
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
511
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, data, permissions, transactionId }) => parse(await (await getDatabasesClient()).upsertDocument(databaseId, collectionId, documentId, JSON.parse(data), permissions, transactionId))));
512
+ databases
513
+ .command(`update-document`)
514
+ .description(`Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.`)
515
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
516
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
517
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
518
+ .option(`--data <data>`, `Document data as JSON object. Include only attribute and value pairs to be updated.`)
519
+ .option(`--permissions [permissions...]`, `An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).`)
520
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
521
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, data, permissions, transactionId }) => parse(await (await getDatabasesClient()).updateDocument(databaseId, collectionId, documentId, JSON.parse(data), permissions, transactionId))));
522
+ databases
523
+ .command(`delete-document`)
524
+ .description(`Delete a document by its unique ID.`)
525
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
526
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
527
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
528
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
529
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, transactionId }) => parse(await (await getDatabasesClient()).deleteDocument(databaseId, collectionId, documentId, transactionId))));
530
+ databases
531
+ .command(`list-document-logs`)
532
+ .description(`Get the document activity logs list by its unique ID.`)
533
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
534
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
535
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
536
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset`)
537
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, queries }) => parse(await (await getDatabasesClient()).listDocumentLogs(databaseId, collectionId, documentId, queries))));
538
+ databases
539
+ .command(`decrement-document-attribute`)
540
+ .description(`Decrement a specific attribute of a document by a given value.`)
541
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
542
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
543
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
544
+ .requiredOption(`--attribute <attribute>`, `Attribute key.`)
545
+ .option(`--value <value>`, `Value to increment the attribute by. The value must be a number.`, parseInteger)
546
+ .option(`--min <min>`, `Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.`, parseInteger)
547
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
548
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, attribute, value, min, transactionId }) => parse(await (await getDatabasesClient()).decrementDocumentAttribute(databaseId, collectionId, documentId, attribute, value, min, transactionId))));
549
+ databases
550
+ .command(`increment-document-attribute`)
551
+ .description(`Increment a specific attribute of a document by a given value.`)
552
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
553
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
554
+ .requiredOption(`--document-id <document-id>`, `Document ID.`)
555
+ .requiredOption(`--attribute <attribute>`, `Attribute key.`)
556
+ .option(`--value <value>`, `Value to increment the attribute by. The value must be a number.`, parseInteger)
557
+ .option(`--max <max>`, `Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.`, parseInteger)
558
+ .option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`)
559
+ .action(actionRunner(async ({ databaseId, collectionId, documentId, attribute, value, max, transactionId }) => parse(await (await getDatabasesClient()).incrementDocumentAttribute(databaseId, collectionId, documentId, attribute, value, max, transactionId))));
560
+ databases
561
+ .command(`list-indexes`)
562
+ .description(`List indexes in the collection.`)
563
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
564
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
565
+ .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: key, type, status, attributes, error`)
566
+ .option(`--total [value]`, `When set to false, the total count returned will be 0 and will not be calculated.`, (value) => value === undefined ? true : parseBool(value))
567
+ .action(actionRunner(async ({ databaseId, collectionId, queries, total }) => parse(await (await getDatabasesClient()).listIndexes(databaseId, collectionId, queries, total))));
568
+ databases
569
+ .command(`create-index`)
570
+ .description(`Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.
571
+ Attributes can be \`key\`, \`fulltext\`, and \`unique\`.`)
572
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
573
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
574
+ .requiredOption(`--key <key>`, `Index Key.`)
575
+ .requiredOption(`--type <type>`, `Index type.`)
576
+ .requiredOption(`--attributes [attributes...]`, `Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.`)
577
+ .option(`--orders [orders...]`, `Array of index orders. Maximum of 100 orders are allowed.`)
578
+ .option(`--lengths [lengths...]`, `Length of index. Maximum of 100`)
579
+ .action(actionRunner(async ({ databaseId, collectionId, key, type, attributes, orders, lengths }) => parse(await (await getDatabasesClient()).createIndex(databaseId, collectionId, key, type, attributes, orders, lengths))));
580
+ databases
581
+ .command(`get-index`)
582
+ .description(`Get an index by its unique ID.`)
583
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
584
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
585
+ .requiredOption(`--key <key>`, `Index Key.`)
586
+ .action(actionRunner(async ({ databaseId, collectionId, key }) => parse(await (await getDatabasesClient()).getIndex(databaseId, collectionId, key))));
587
+ databases
588
+ .command(`delete-index`)
589
+ .description(`Delete an index.`)
590
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
591
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).`)
592
+ .requiredOption(`--key <key>`, `Index Key.`)
593
+ .action(actionRunner(async ({ databaseId, collectionId, key }) => parse(await (await getDatabasesClient()).deleteIndex(databaseId, collectionId, key))));
594
+ databases
595
+ .command(`list-collection-logs`)
596
+ .description(`Get the collection activity logs list by its unique ID.`)
597
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
598
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
599
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset`)
600
+ .action(actionRunner(async ({ databaseId, collectionId, queries }) => parse(await (await getDatabasesClient()).listCollectionLogs(databaseId, collectionId, queries))));
601
+ databases
602
+ .command(`get-collection-usage`)
603
+ .description(`Get usage metrics and statistics for a collection. Returning the total number of documents. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.`)
604
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
605
+ .requiredOption(`--collection-id <collection-id>`, `Collection ID.`)
606
+ .option(`--range <range>`, `Date range.`)
607
+ .action(actionRunner(async ({ databaseId, collectionId, range }) => parse(await (await getDatabasesClient()).getCollectionUsage(databaseId, collectionId, range))));
608
+ databases
609
+ .command(`list-logs`)
610
+ .description(`Get the database activity logs list by its unique ID.`)
611
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
612
+ .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset`)
613
+ .action(actionRunner(async ({ databaseId, queries }) => parse(await (await getDatabasesClient()).listLogs(databaseId, queries))));
614
+ databases
615
+ .command(`get-usage`)
616
+ .description(`Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.`)
617
+ .requiredOption(`--database-id <database-id>`, `Database ID.`)
618
+ .option(`--range <range>`, `Date range.`)
619
+ .action(actionRunner(async ({ databaseId, range }) => parse(await (await getDatabasesClient()).getUsage(databaseId, range))));
620
+ //# sourceMappingURL=databases.js.map