appwrite-cli 12.0.1 → 13.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (801) hide show
  1. package/.github/workflows/build-verify.yml +71 -0
  2. package/.github/workflows/npm-publish.yml +41 -22
  3. package/CHANGELOG.md +108 -100
  4. package/LICENSE.md +1 -1
  5. package/README.md +58 -35
  6. package/bun.lock +625 -0
  7. package/dist/bundle.cjs +94853 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +145 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/lib/client.d.ts +88 -0
  13. package/dist/lib/client.d.ts.map +1 -0
  14. package/dist/lib/client.js +238 -0
  15. package/dist/lib/client.js.map +1 -0
  16. package/dist/lib/commands/generic.d.ts +17 -0
  17. package/dist/lib/commands/generic.d.ts.map +1 -0
  18. package/dist/lib/commands/generic.js +292 -0
  19. package/dist/lib/commands/generic.js.map +1 -0
  20. package/dist/lib/commands/init.d.ts +3 -0
  21. package/dist/lib/commands/init.d.ts.map +1 -0
  22. package/{lib → dist/lib}/commands/init.js +186 -270
  23. package/dist/lib/commands/init.js.map +1 -0
  24. package/dist/lib/commands/pull.d.ts +8 -0
  25. package/dist/lib/commands/pull.d.ts.map +1 -0
  26. package/{lib → dist/lib}/commands/pull.js +159 -280
  27. package/dist/lib/commands/pull.js.map +1 -0
  28. package/dist/lib/commands/push.d.ts +4 -0
  29. package/dist/lib/commands/push.d.ts.map +1 -0
  30. package/dist/lib/commands/push.js +2127 -0
  31. package/dist/lib/commands/push.js.map +1 -0
  32. package/dist/lib/commands/run.d.ts +3 -0
  33. package/dist/lib/commands/run.d.ts.map +1 -0
  34. package/{lib → dist/lib}/commands/run.js +146 -187
  35. package/dist/lib/commands/run.js.map +1 -0
  36. package/dist/lib/commands/services/account.d.ts +3 -0
  37. package/dist/lib/commands/services/account.d.ts.map +1 -0
  38. package/dist/lib/commands/services/account.js +306 -0
  39. package/dist/lib/commands/services/account.js.map +1 -0
  40. package/dist/lib/commands/services/avatars.d.ts +3 -0
  41. package/dist/lib/commands/services/avatars.d.ts.map +1 -0
  42. package/dist/lib/commands/services/avatars.js +118 -0
  43. package/dist/lib/commands/services/avatars.js.map +1 -0
  44. package/dist/lib/commands/services/console.d.ts +3 -0
  45. package/dist/lib/commands/services/console.d.ts.map +1 -0
  46. package/dist/lib/commands/services/console.js +41 -0
  47. package/dist/lib/commands/services/console.js.map +1 -0
  48. package/dist/lib/commands/services/databases.d.ts +3 -0
  49. package/dist/lib/commands/services/databases.d.ts.map +1 -0
  50. package/dist/lib/commands/services/databases.js +612 -0
  51. package/dist/lib/commands/services/databases.js.map +1 -0
  52. package/dist/lib/commands/services/functions.d.ts +3 -0
  53. package/dist/lib/commands/services/functions.d.ts.map +1 -0
  54. package/dist/lib/commands/services/functions.js +258 -0
  55. package/dist/lib/commands/services/functions.js.map +1 -0
  56. package/dist/lib/commands/services/graphql.d.ts +3 -0
  57. package/dist/lib/commands/services/graphql.d.ts.map +1 -0
  58. package/dist/lib/commands/services/graphql.js +28 -0
  59. package/dist/lib/commands/services/graphql.js.map +1 -0
  60. package/dist/lib/commands/services/health.d.ts +3 -0
  61. package/dist/lib/commands/services/health.d.ts.map +1 -0
  62. package/dist/lib/commands/services/health.js +123 -0
  63. package/dist/lib/commands/services/health.js.map +1 -0
  64. package/dist/lib/commands/services/locale.d.ts +3 -0
  65. package/dist/lib/commands/services/locale.d.ts.map +1 -0
  66. package/dist/lib/commands/services/locale.js +52 -0
  67. package/dist/lib/commands/services/locale.js.map +1 -0
  68. package/dist/lib/commands/services/messaging.d.ts +3 -0
  69. package/dist/lib/commands/services/messaging.d.ts.map +1 -0
  70. package/dist/lib/commands/services/messaging.js +505 -0
  71. package/dist/lib/commands/services/messaging.js.map +1 -0
  72. package/dist/lib/commands/services/migrations.d.ts +3 -0
  73. package/dist/lib/commands/services/migrations.d.ts.map +1 -0
  74. package/dist/lib/commands/services/migrations.js +135 -0
  75. package/dist/lib/commands/services/migrations.js.map +1 -0
  76. package/dist/lib/commands/services/project.d.ts +3 -0
  77. package/dist/lib/commands/services/project.d.ts.map +1 -0
  78. package/dist/lib/commands/services/project.js +54 -0
  79. package/dist/lib/commands/services/project.js.map +1 -0
  80. package/dist/lib/commands/services/projects.d.ts +3 -0
  81. package/dist/lib/commands/services/projects.d.ts.map +1 -0
  82. package/dist/lib/commands/services/projects.js +415 -0
  83. package/dist/lib/commands/services/projects.js.map +1 -0
  84. package/dist/lib/commands/services/proxy.d.ts +3 -0
  85. package/dist/lib/commands/services/proxy.d.ts.map +1 -0
  86. package/dist/lib/commands/services/proxy.js +68 -0
  87. package/dist/lib/commands/services/proxy.js.map +1 -0
  88. package/dist/lib/commands/services/sites.d.ts +3 -0
  89. package/dist/lib/commands/services/sites.d.ts.map +1 -0
  90. package/dist/lib/commands/services/sites.js +242 -0
  91. package/dist/lib/commands/services/sites.js.map +1 -0
  92. package/dist/lib/commands/services/storage.d.ts +3 -0
  93. package/dist/lib/commands/services/storage.d.ts.map +1 -0
  94. package/dist/lib/commands/services/storage.js +153 -0
  95. package/dist/lib/commands/services/storage.js.map +1 -0
  96. package/dist/lib/commands/services/tablesdb.d.ts +3 -0
  97. package/dist/lib/commands/services/tablesdb.d.ts.map +1 -0
  98. package/dist/lib/commands/services/tablesdb.js +605 -0
  99. package/dist/lib/commands/services/tablesdb.js.map +1 -0
  100. package/dist/lib/commands/services/teams.d.ts +3 -0
  101. package/dist/lib/commands/services/teams.d.ts.map +1 -0
  102. package/dist/lib/commands/services/teams.js +123 -0
  103. package/dist/lib/commands/services/teams.js.map +1 -0
  104. package/dist/lib/commands/services/tokens.d.ts +3 -0
  105. package/dist/lib/commands/services/tokens.d.ts.map +1 -0
  106. package/dist/lib/commands/services/tokens.js +49 -0
  107. package/dist/lib/commands/services/tokens.js.map +1 -0
  108. package/dist/lib/commands/services/users.d.ts +3 -0
  109. package/dist/lib/commands/services/users.d.ts.map +1 -0
  110. package/dist/lib/commands/services/users.js +312 -0
  111. package/dist/lib/commands/services/users.js.map +1 -0
  112. package/dist/lib/commands/services/vcs.d.ts +3 -0
  113. package/dist/lib/commands/services/vcs.d.ts.map +1 -0
  114. package/dist/lib/commands/services/vcs.js +87 -0
  115. package/dist/lib/commands/services/vcs.js.map +1 -0
  116. package/dist/lib/commands/types.d.ts +3 -0
  117. package/dist/lib/commands/types.d.ts.map +1 -0
  118. package/dist/lib/commands/types.js +151 -0
  119. package/dist/lib/commands/types.js.map +1 -0
  120. package/dist/lib/commands/update.d.ts +3 -0
  121. package/dist/lib/commands/update.d.ts.map +1 -0
  122. package/{lib → dist/lib}/commands/update.js +62 -79
  123. package/dist/lib/commands/update.js.map +1 -0
  124. package/dist/lib/config.d.ts +118 -0
  125. package/dist/lib/config.d.ts.map +1 -0
  126. package/{lib → dist/lib}/config.js +173 -232
  127. package/dist/lib/config.js.map +1 -0
  128. package/dist/lib/emulation/docker.d.ts +7 -0
  129. package/dist/lib/emulation/docker.d.ts.map +1 -0
  130. package/dist/lib/emulation/docker.js +224 -0
  131. package/dist/lib/emulation/docker.js.map +1 -0
  132. package/dist/lib/emulation/utils.d.ts +29 -0
  133. package/dist/lib/emulation/utils.d.ts.map +1 -0
  134. package/{lib → dist/lib}/emulation/utils.js +70 -91
  135. package/dist/lib/emulation/utils.js.map +1 -0
  136. package/dist/lib/id.d.ts +7 -0
  137. package/dist/lib/id.d.ts.map +1 -0
  138. package/{lib → dist/lib}/id.js +5 -8
  139. package/dist/lib/id.js.map +1 -0
  140. package/dist/lib/paginate.d.ts +9 -0
  141. package/dist/lib/paginate.d.ts.map +1 -0
  142. package/{lib → dist/lib}/paginate.js +10 -19
  143. package/dist/lib/paginate.js.map +1 -0
  144. package/dist/lib/parser.d.ts +18 -0
  145. package/dist/lib/parser.d.ts.map +1 -0
  146. package/dist/lib/parser.js +225 -0
  147. package/dist/lib/parser.js.map +1 -0
  148. package/dist/lib/questions.d.ts +59 -0
  149. package/dist/lib/questions.d.ts.map +1 -0
  150. package/{lib → dist/lib}/questions.js +393 -500
  151. package/dist/lib/questions.js.map +1 -0
  152. package/dist/lib/sdks.d.ts +4 -0
  153. package/dist/lib/sdks.d.ts.map +1 -0
  154. package/dist/lib/sdks.js +61 -0
  155. package/dist/lib/sdks.js.map +1 -0
  156. package/dist/lib/services.d.ts +13 -0
  157. package/dist/lib/services.d.ts.map +1 -0
  158. package/dist/lib/services.js +47 -0
  159. package/dist/lib/services.js.map +1 -0
  160. package/dist/lib/spinner.d.ts +28 -0
  161. package/dist/lib/spinner.d.ts.map +1 -0
  162. package/dist/lib/spinner.js +91 -0
  163. package/dist/lib/spinner.js.map +1 -0
  164. package/dist/lib/type-generation/attribute.d.ts +17 -0
  165. package/dist/lib/type-generation/attribute.d.ts.map +1 -0
  166. package/{lib → dist/lib}/type-generation/attribute.js +2 -5
  167. package/dist/lib/type-generation/attribute.js.map +1 -0
  168. package/dist/lib/type-generation/languages/csharp.d.ts +7 -0
  169. package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -0
  170. package/dist/lib/type-generation/languages/csharp.js +180 -0
  171. package/dist/lib/type-generation/languages/csharp.js.map +1 -0
  172. package/dist/lib/type-generation/languages/dart.d.ts +8 -0
  173. package/dist/lib/type-generation/languages/dart.d.ts.map +1 -0
  174. package/dist/lib/type-generation/languages/dart.js +197 -0
  175. package/dist/lib/type-generation/languages/dart.js.map +1 -0
  176. package/dist/lib/type-generation/languages/java.d.ts +7 -0
  177. package/dist/lib/type-generation/languages/java.d.ts.map +1 -0
  178. package/dist/lib/type-generation/languages/java.js +140 -0
  179. package/dist/lib/type-generation/languages/java.js.map +1 -0
  180. package/dist/lib/type-generation/languages/javascript.d.ts +9 -0
  181. package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -0
  182. package/dist/lib/type-generation/languages/javascript.js +109 -0
  183. package/dist/lib/type-generation/languages/javascript.js.map +1 -0
  184. package/dist/lib/type-generation/languages/kotlin.d.ts +7 -0
  185. package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -0
  186. package/dist/lib/type-generation/languages/kotlin.js +95 -0
  187. package/dist/lib/type-generation/languages/kotlin.js.map +1 -0
  188. package/dist/lib/type-generation/languages/language.d.ts +43 -0
  189. package/dist/lib/type-generation/languages/language.d.ts.map +1 -0
  190. package/dist/lib/type-generation/languages/language.js +77 -0
  191. package/dist/lib/type-generation/languages/language.js.map +1 -0
  192. package/dist/lib/type-generation/languages/php.d.ts +7 -0
  193. package/dist/lib/type-generation/languages/php.d.ts.map +1 -0
  194. package/dist/lib/type-generation/languages/php.js +116 -0
  195. package/dist/lib/type-generation/languages/php.js.map +1 -0
  196. package/dist/lib/type-generation/languages/swift.d.ts +7 -0
  197. package/dist/lib/type-generation/languages/swift.d.ts.map +1 -0
  198. package/dist/lib/type-generation/languages/swift.js +179 -0
  199. package/dist/lib/type-generation/languages/swift.js.map +1 -0
  200. package/dist/lib/type-generation/languages/typescript.d.ts +9 -0
  201. package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -0
  202. package/dist/lib/type-generation/languages/typescript.js +115 -0
  203. package/dist/lib/type-generation/languages/typescript.js.map +1 -0
  204. package/dist/lib/types.d.ts +277 -0
  205. package/dist/lib/types.d.ts.map +1 -0
  206. package/dist/lib/types.js +2 -0
  207. package/dist/lib/types.js.map +1 -0
  208. package/dist/lib/utils.d.ts +15 -0
  209. package/dist/lib/utils.d.ts.map +1 -0
  210. package/{lib → dist/lib}/utils.js +125 -167
  211. package/dist/lib/utils.js.map +1 -0
  212. package/dist/lib/validations.d.ts +2 -0
  213. package/dist/lib/validations.d.ts.map +1 -0
  214. package/dist/lib/validations.js +16 -0
  215. package/dist/lib/validations.js.map +1 -0
  216. package/dist/package.json +67 -0
  217. package/dist/scripts/generate-commands.d.ts +2 -0
  218. package/dist/scripts/generate-commands.d.ts.map +1 -0
  219. package/dist/scripts/generate-commands.js +398 -0
  220. package/dist/scripts/generate-commands.js.map +1 -0
  221. package/index.ts +168 -0
  222. package/install.ps1 +2 -5
  223. package/install.sh +1 -2
  224. package/lib/client.ts +292 -0
  225. package/lib/commands/generic.ts +440 -0
  226. package/lib/commands/init.ts +713 -0
  227. package/lib/commands/pull.ts +668 -0
  228. package/lib/commands/push.ts +3183 -0
  229. package/lib/commands/run.ts +416 -0
  230. package/lib/commands/services/account.ts +832 -0
  231. package/lib/commands/services/avatars.ts +400 -0
  232. package/lib/commands/services/console.ts +73 -0
  233. package/lib/commands/services/databases.ts +2080 -0
  234. package/lib/commands/services/functions.ts +855 -0
  235. package/lib/commands/services/graphql.ts +47 -0
  236. package/lib/commands/services/health.ts +322 -0
  237. package/lib/commands/services/locale.ts +99 -0
  238. package/lib/commands/services/messaging.ts +1871 -0
  239. package/lib/commands/services/migrations.ts +421 -0
  240. package/lib/commands/services/project.ts +116 -0
  241. package/lib/commands/services/projects.ts +1317 -0
  242. package/lib/commands/services/proxy.ts +163 -0
  243. package/lib/commands/services/sites.ts +777 -0
  244. package/lib/commands/services/storage.ts +547 -0
  245. package/lib/commands/services/tablesdb.ts +1928 -0
  246. package/lib/commands/services/teams.ts +294 -0
  247. package/lib/commands/services/tokens.ts +106 -0
  248. package/lib/commands/services/users.ts +886 -0
  249. package/lib/commands/services/vcs.ts +268 -0
  250. package/lib/commands/types.ts +220 -0
  251. package/lib/commands/update.ts +255 -0
  252. package/lib/config.ts +969 -0
  253. package/lib/emulation/docker.ts +312 -0
  254. package/lib/emulation/utils.ts +207 -0
  255. package/lib/id.ts +30 -0
  256. package/lib/paginate.ts +77 -0
  257. package/lib/parser.ts +264 -0
  258. package/lib/questions.ts +1167 -0
  259. package/lib/sdks.ts +84 -0
  260. package/lib/services.ts +72 -0
  261. package/lib/spinner.ts +131 -0
  262. package/lib/type-generation/attribute.ts +18 -0
  263. package/lib/type-generation/languages/{csharp.js → csharp.ts} +27 -14
  264. package/lib/type-generation/languages/{dart.js → dart.ts} +61 -46
  265. package/lib/type-generation/languages/{java.js → java.ts} +31 -18
  266. package/lib/type-generation/languages/{javascript.js → javascript.ts} +35 -24
  267. package/lib/type-generation/languages/{kotlin.js → kotlin.ts} +27 -14
  268. package/lib/type-generation/languages/{language.js → language.ts} +45 -43
  269. package/lib/type-generation/languages/{php.js → php.ts} +28 -15
  270. package/lib/type-generation/languages/{swift.js → swift.ts} +27 -14
  271. package/lib/type-generation/languages/{typescript.js → typescript.ts} +43 -26
  272. package/lib/types.ts +304 -0
  273. package/lib/utils.ts +352 -0
  274. package/lib/validations.ts +20 -0
  275. package/package.json +36 -19
  276. package/scoop/appwrite.config.json +19 -29
  277. package/scripts/generate-commands.ts +539 -0
  278. package/tsconfig.json +24 -0
  279. package/.github/workflows/autoclose.yml +0 -11
  280. package/docs/examples/account/create-anonymous-session.md +0 -1
  281. package/docs/examples/account/create-email-password-session.md +0 -3
  282. package/docs/examples/account/create-email-token.md +0 -3
  283. package/docs/examples/account/create-email-verification.md +0 -2
  284. package/docs/examples/account/create-jwt.md +0 -1
  285. package/docs/examples/account/create-magic-url-token.md +0 -3
  286. package/docs/examples/account/create-mfa-authenticator.md +0 -2
  287. package/docs/examples/account/create-mfa-challenge.md +0 -2
  288. package/docs/examples/account/create-mfa-recovery-codes.md +0 -1
  289. package/docs/examples/account/create-o-auth-2-session.md +0 -2
  290. package/docs/examples/account/create-o-auth-2-token.md +0 -2
  291. package/docs/examples/account/create-phone-token.md +0 -3
  292. package/docs/examples/account/create-phone-verification.md +0 -1
  293. package/docs/examples/account/create-push-target.md +0 -3
  294. package/docs/examples/account/create-recovery.md +0 -3
  295. package/docs/examples/account/create-session.md +0 -3
  296. package/docs/examples/account/create-verification.md +0 -2
  297. package/docs/examples/account/create.md +0 -4
  298. package/docs/examples/account/delete-identity.md +0 -2
  299. package/docs/examples/account/delete-mfa-authenticator.md +0 -2
  300. package/docs/examples/account/delete-push-target.md +0 -2
  301. package/docs/examples/account/delete-session.md +0 -2
  302. package/docs/examples/account/delete-sessions.md +0 -1
  303. package/docs/examples/account/delete.md +0 -1
  304. package/docs/examples/account/get-mfa-recovery-codes.md +0 -1
  305. package/docs/examples/account/get-prefs.md +0 -1
  306. package/docs/examples/account/get-session.md +0 -2
  307. package/docs/examples/account/get.md +0 -1
  308. package/docs/examples/account/list-identities.md +0 -1
  309. package/docs/examples/account/list-logs.md +0 -1
  310. package/docs/examples/account/list-mfa-factors.md +0 -1
  311. package/docs/examples/account/list-sessions.md +0 -1
  312. package/docs/examples/account/update-email-verification.md +0 -3
  313. package/docs/examples/account/update-email.md +0 -3
  314. package/docs/examples/account/update-magic-url-session.md +0 -3
  315. package/docs/examples/account/update-mfa-authenticator.md +0 -3
  316. package/docs/examples/account/update-mfa-challenge.md +0 -3
  317. package/docs/examples/account/update-mfa-recovery-codes.md +0 -1
  318. package/docs/examples/account/update-mfa.md +0 -2
  319. package/docs/examples/account/update-name.md +0 -2
  320. package/docs/examples/account/update-password.md +0 -2
  321. package/docs/examples/account/update-phone-session.md +0 -3
  322. package/docs/examples/account/update-phone-verification.md +0 -3
  323. package/docs/examples/account/update-phone.md +0 -3
  324. package/docs/examples/account/update-prefs.md +0 -2
  325. package/docs/examples/account/update-push-target.md +0 -3
  326. package/docs/examples/account/update-recovery.md +0 -4
  327. package/docs/examples/account/update-session.md +0 -2
  328. package/docs/examples/account/update-status.md +0 -1
  329. package/docs/examples/account/update-verification.md +0 -3
  330. package/docs/examples/console/get-resource.md +0 -3
  331. package/docs/examples/console/variables.md +0 -1
  332. package/docs/examples/databases/create-boolean-attribute.md +0 -5
  333. package/docs/examples/databases/create-collection.md +0 -4
  334. package/docs/examples/databases/create-datetime-attribute.md +0 -5
  335. package/docs/examples/databases/create-document.md +0 -5
  336. package/docs/examples/databases/create-documents.md +0 -4
  337. package/docs/examples/databases/create-email-attribute.md +0 -5
  338. package/docs/examples/databases/create-enum-attribute.md +0 -6
  339. package/docs/examples/databases/create-float-attribute.md +0 -5
  340. package/docs/examples/databases/create-index.md +0 -6
  341. package/docs/examples/databases/create-integer-attribute.md +0 -5
  342. package/docs/examples/databases/create-ip-attribute.md +0 -5
  343. package/docs/examples/databases/create-line-attribute.md +0 -5
  344. package/docs/examples/databases/create-operations.md +0 -2
  345. package/docs/examples/databases/create-point-attribute.md +0 -5
  346. package/docs/examples/databases/create-polygon-attribute.md +0 -5
  347. package/docs/examples/databases/create-relationship-attribute.md +0 -5
  348. package/docs/examples/databases/create-string-attribute.md +0 -6
  349. package/docs/examples/databases/create-transaction.md +0 -1
  350. package/docs/examples/databases/create-url-attribute.md +0 -5
  351. package/docs/examples/databases/create.md +0 -3
  352. package/docs/examples/databases/decrement-document-attribute.md +0 -5
  353. package/docs/examples/databases/delete-attribute.md +0 -4
  354. package/docs/examples/databases/delete-collection.md +0 -3
  355. package/docs/examples/databases/delete-document.md +0 -4
  356. package/docs/examples/databases/delete-documents.md +0 -3
  357. package/docs/examples/databases/delete-index.md +0 -4
  358. package/docs/examples/databases/delete-transaction.md +0 -2
  359. package/docs/examples/databases/delete.md +0 -2
  360. package/docs/examples/databases/get-attribute.md +0 -4
  361. package/docs/examples/databases/get-collection-usage.md +0 -3
  362. package/docs/examples/databases/get-collection.md +0 -3
  363. package/docs/examples/databases/get-document.md +0 -4
  364. package/docs/examples/databases/get-index.md +0 -4
  365. package/docs/examples/databases/get-transaction.md +0 -2
  366. package/docs/examples/databases/get-usage.md +0 -2
  367. package/docs/examples/databases/get.md +0 -2
  368. package/docs/examples/databases/increment-document-attribute.md +0 -5
  369. package/docs/examples/databases/list-attributes.md +0 -3
  370. package/docs/examples/databases/list-collection-logs.md +0 -3
  371. package/docs/examples/databases/list-collections.md +0 -2
  372. package/docs/examples/databases/list-document-logs.md +0 -4
  373. package/docs/examples/databases/list-documents.md +0 -3
  374. package/docs/examples/databases/list-indexes.md +0 -3
  375. package/docs/examples/databases/list-logs.md +0 -2
  376. package/docs/examples/databases/list-transactions.md +0 -1
  377. package/docs/examples/databases/list-usage.md +0 -1
  378. package/docs/examples/databases/list.md +0 -1
  379. package/docs/examples/databases/update-boolean-attribute.md +0 -6
  380. package/docs/examples/databases/update-collection.md +0 -4
  381. package/docs/examples/databases/update-datetime-attribute.md +0 -6
  382. package/docs/examples/databases/update-document.md +0 -4
  383. package/docs/examples/databases/update-documents.md +0 -3
  384. package/docs/examples/databases/update-email-attribute.md +0 -6
  385. package/docs/examples/databases/update-enum-attribute.md +0 -7
  386. package/docs/examples/databases/update-float-attribute.md +0 -6
  387. package/docs/examples/databases/update-integer-attribute.md +0 -6
  388. package/docs/examples/databases/update-ip-attribute.md +0 -6
  389. package/docs/examples/databases/update-line-attribute.md +0 -5
  390. package/docs/examples/databases/update-point-attribute.md +0 -5
  391. package/docs/examples/databases/update-polygon-attribute.md +0 -5
  392. package/docs/examples/databases/update-relationship-attribute.md +0 -4
  393. package/docs/examples/databases/update-string-attribute.md +0 -6
  394. package/docs/examples/databases/update-transaction.md +0 -2
  395. package/docs/examples/databases/update-url-attribute.md +0 -6
  396. package/docs/examples/databases/update.md +0 -3
  397. package/docs/examples/databases/upsert-document.md +0 -5
  398. package/docs/examples/databases/upsert-documents.md +0 -4
  399. package/docs/examples/functions/create-deployment.md +0 -4
  400. package/docs/examples/functions/create-duplicate-deployment.md +0 -3
  401. package/docs/examples/functions/create-execution.md +0 -2
  402. package/docs/examples/functions/create-template-deployment.md +0 -7
  403. package/docs/examples/functions/create-variable.md +0 -4
  404. package/docs/examples/functions/create-vcs-deployment.md +0 -4
  405. package/docs/examples/functions/create.md +0 -4
  406. package/docs/examples/functions/delete-deployment.md +0 -3
  407. package/docs/examples/functions/delete-execution.md +0 -3
  408. package/docs/examples/functions/delete-variable.md +0 -3
  409. package/docs/examples/functions/delete.md +0 -2
  410. package/docs/examples/functions/get-deployment-download.md +0 -3
  411. package/docs/examples/functions/get-deployment.md +0 -3
  412. package/docs/examples/functions/get-execution.md +0 -3
  413. package/docs/examples/functions/get-template.md +0 -2
  414. package/docs/examples/functions/get-usage.md +0 -2
  415. package/docs/examples/functions/get-variable.md +0 -3
  416. package/docs/examples/functions/get.md +0 -2
  417. package/docs/examples/functions/list-deployments.md +0 -2
  418. package/docs/examples/functions/list-executions.md +0 -2
  419. package/docs/examples/functions/list-runtimes.md +0 -1
  420. package/docs/examples/functions/list-specifications.md +0 -1
  421. package/docs/examples/functions/list-templates.md +0 -1
  422. package/docs/examples/functions/list-usage.md +0 -1
  423. package/docs/examples/functions/list-variables.md +0 -2
  424. package/docs/examples/functions/list.md +0 -1
  425. package/docs/examples/functions/update-deployment-status.md +0 -3
  426. package/docs/examples/functions/update-function-deployment.md +0 -3
  427. package/docs/examples/functions/update-variable.md +0 -4
  428. package/docs/examples/functions/update.md +0 -3
  429. package/docs/examples/graphql/mutation.md +0 -2
  430. package/docs/examples/graphql/query.md +0 -2
  431. package/docs/examples/health/get-antivirus.md +0 -1
  432. package/docs/examples/health/get-cache.md +0 -1
  433. package/docs/examples/health/get-certificate.md +0 -1
  434. package/docs/examples/health/get-db.md +0 -1
  435. package/docs/examples/health/get-failed-jobs.md +0 -2
  436. package/docs/examples/health/get-pub-sub.md +0 -1
  437. package/docs/examples/health/get-queue-builds.md +0 -1
  438. package/docs/examples/health/get-queue-certificates.md +0 -1
  439. package/docs/examples/health/get-queue-databases.md +0 -1
  440. package/docs/examples/health/get-queue-deletes.md +0 -1
  441. package/docs/examples/health/get-queue-functions.md +0 -1
  442. package/docs/examples/health/get-queue-logs.md +0 -1
  443. package/docs/examples/health/get-queue-mails.md +0 -1
  444. package/docs/examples/health/get-queue-messaging.md +0 -1
  445. package/docs/examples/health/get-queue-migrations.md +0 -1
  446. package/docs/examples/health/get-queue-stats-resources.md +0 -1
  447. package/docs/examples/health/get-queue-usage.md +0 -1
  448. package/docs/examples/health/get-queue-webhooks.md +0 -1
  449. package/docs/examples/health/get-storage-local.md +0 -1
  450. package/docs/examples/health/get-storage.md +0 -1
  451. package/docs/examples/health/get-time.md +0 -1
  452. package/docs/examples/health/get.md +0 -1
  453. package/docs/examples/locale/get.md +0 -1
  454. package/docs/examples/locale/list-codes.md +0 -1
  455. package/docs/examples/locale/list-continents.md +0 -1
  456. package/docs/examples/locale/list-countries-eu.md +0 -1
  457. package/docs/examples/locale/list-countries-phones.md +0 -1
  458. package/docs/examples/locale/list-countries.md +0 -1
  459. package/docs/examples/locale/list-currencies.md +0 -1
  460. package/docs/examples/locale/list-languages.md +0 -1
  461. package/docs/examples/messaging/create-apns-provider.md +0 -3
  462. package/docs/examples/messaging/create-email.md +0 -4
  463. package/docs/examples/messaging/create-fcm-provider.md +0 -3
  464. package/docs/examples/messaging/create-mailgun-provider.md +0 -3
  465. package/docs/examples/messaging/create-msg-91-provider.md +0 -3
  466. package/docs/examples/messaging/create-push.md +0 -2
  467. package/docs/examples/messaging/create-resend-provider.md +0 -3
  468. package/docs/examples/messaging/create-sendgrid-provider.md +0 -3
  469. package/docs/examples/messaging/create-sms.md +0 -3
  470. package/docs/examples/messaging/create-smtp-provider.md +0 -4
  471. package/docs/examples/messaging/create-subscriber.md +0 -4
  472. package/docs/examples/messaging/create-telesign-provider.md +0 -3
  473. package/docs/examples/messaging/create-textmagic-provider.md +0 -3
  474. package/docs/examples/messaging/create-topic.md +0 -3
  475. package/docs/examples/messaging/create-twilio-provider.md +0 -3
  476. package/docs/examples/messaging/create-vonage-provider.md +0 -3
  477. package/docs/examples/messaging/delete-provider.md +0 -2
  478. package/docs/examples/messaging/delete-subscriber.md +0 -3
  479. package/docs/examples/messaging/delete-topic.md +0 -2
  480. package/docs/examples/messaging/delete.md +0 -2
  481. package/docs/examples/messaging/get-message.md +0 -2
  482. package/docs/examples/messaging/get-provider.md +0 -2
  483. package/docs/examples/messaging/get-subscriber.md +0 -3
  484. package/docs/examples/messaging/get-topic.md +0 -2
  485. package/docs/examples/messaging/list-message-logs.md +0 -2
  486. package/docs/examples/messaging/list-messages.md +0 -1
  487. package/docs/examples/messaging/list-provider-logs.md +0 -2
  488. package/docs/examples/messaging/list-providers.md +0 -1
  489. package/docs/examples/messaging/list-subscriber-logs.md +0 -2
  490. package/docs/examples/messaging/list-subscribers.md +0 -2
  491. package/docs/examples/messaging/list-targets.md +0 -2
  492. package/docs/examples/messaging/list-topic-logs.md +0 -2
  493. package/docs/examples/messaging/list-topics.md +0 -1
  494. package/docs/examples/messaging/update-apns-provider.md +0 -2
  495. package/docs/examples/messaging/update-email.md +0 -2
  496. package/docs/examples/messaging/update-fcm-provider.md +0 -2
  497. package/docs/examples/messaging/update-mailgun-provider.md +0 -2
  498. package/docs/examples/messaging/update-msg-91-provider.md +0 -2
  499. package/docs/examples/messaging/update-push.md +0 -2
  500. package/docs/examples/messaging/update-resend-provider.md +0 -2
  501. package/docs/examples/messaging/update-sendgrid-provider.md +0 -2
  502. package/docs/examples/messaging/update-sms.md +0 -2
  503. package/docs/examples/messaging/update-smtp-provider.md +0 -2
  504. package/docs/examples/messaging/update-telesign-provider.md +0 -2
  505. package/docs/examples/messaging/update-textmagic-provider.md +0 -2
  506. package/docs/examples/messaging/update-topic.md +0 -2
  507. package/docs/examples/messaging/update-twilio-provider.md +0 -2
  508. package/docs/examples/messaging/update-vonage-provider.md +0 -2
  509. package/docs/examples/migrations/create-appwrite-migration.md +0 -5
  510. package/docs/examples/migrations/create-csv-export.md +0 -3
  511. package/docs/examples/migrations/create-csv-import.md +0 -4
  512. package/docs/examples/migrations/create-firebase-migration.md +0 -3
  513. package/docs/examples/migrations/create-n-host-migration.md +0 -8
  514. package/docs/examples/migrations/create-supabase-migration.md +0 -7
  515. package/docs/examples/migrations/delete.md +0 -2
  516. package/docs/examples/migrations/get-appwrite-report.md +0 -5
  517. package/docs/examples/migrations/get-firebase-report.md +0 -3
  518. package/docs/examples/migrations/get-n-host-report.md +0 -8
  519. package/docs/examples/migrations/get-supabase-report.md +0 -7
  520. package/docs/examples/migrations/get.md +0 -2
  521. package/docs/examples/migrations/list.md +0 -1
  522. package/docs/examples/migrations/retry.md +0 -2
  523. package/docs/examples/project/create-variable.md +0 -3
  524. package/docs/examples/project/delete-variable.md +0 -2
  525. package/docs/examples/project/get-usage.md +0 -3
  526. package/docs/examples/project/get-variable.md +0 -2
  527. package/docs/examples/project/list-variables.md +0 -1
  528. package/docs/examples/project/update-variable.md +0 -3
  529. package/docs/examples/projects/create-dev-key.md +0 -4
  530. package/docs/examples/projects/create-jwt.md +0 -3
  531. package/docs/examples/projects/create-key.md +0 -4
  532. package/docs/examples/projects/create-platform.md +0 -4
  533. package/docs/examples/projects/create-smtp-test.md +0 -6
  534. package/docs/examples/projects/create-webhook.md +0 -6
  535. package/docs/examples/projects/create.md +0 -4
  536. package/docs/examples/projects/delete-dev-key.md +0 -3
  537. package/docs/examples/projects/delete-email-template.md +0 -4
  538. package/docs/examples/projects/delete-key.md +0 -3
  539. package/docs/examples/projects/delete-platform.md +0 -3
  540. package/docs/examples/projects/delete-sms-template.md +0 -4
  541. package/docs/examples/projects/delete-webhook.md +0 -3
  542. package/docs/examples/projects/delete.md +0 -2
  543. package/docs/examples/projects/get-dev-key.md +0 -3
  544. package/docs/examples/projects/get-email-template.md +0 -4
  545. package/docs/examples/projects/get-key.md +0 -3
  546. package/docs/examples/projects/get-platform.md +0 -3
  547. package/docs/examples/projects/get-sms-template.md +0 -4
  548. package/docs/examples/projects/get-webhook.md +0 -3
  549. package/docs/examples/projects/get.md +0 -2
  550. package/docs/examples/projects/list-dev-keys.md +0 -2
  551. package/docs/examples/projects/list-keys.md +0 -2
  552. package/docs/examples/projects/list-platforms.md +0 -2
  553. package/docs/examples/projects/list-webhooks.md +0 -2
  554. package/docs/examples/projects/list.md +0 -1
  555. package/docs/examples/projects/update-api-status-all.md +0 -3
  556. package/docs/examples/projects/update-api-status.md +0 -4
  557. package/docs/examples/projects/update-auth-duration.md +0 -3
  558. package/docs/examples/projects/update-auth-limit.md +0 -3
  559. package/docs/examples/projects/update-auth-password-dictionary.md +0 -3
  560. package/docs/examples/projects/update-auth-password-history.md +0 -3
  561. package/docs/examples/projects/update-auth-sessions-limit.md +0 -3
  562. package/docs/examples/projects/update-auth-status.md +0 -4
  563. package/docs/examples/projects/update-dev-key.md +0 -5
  564. package/docs/examples/projects/update-email-template.md +0 -6
  565. package/docs/examples/projects/update-key.md +0 -5
  566. package/docs/examples/projects/update-memberships-privacy.md +0 -5
  567. package/docs/examples/projects/update-mock-numbers.md +0 -3
  568. package/docs/examples/projects/update-o-auth-2.md +0 -3
  569. package/docs/examples/projects/update-personal-data-check.md +0 -3
  570. package/docs/examples/projects/update-platform.md +0 -4
  571. package/docs/examples/projects/update-service-status-all.md +0 -3
  572. package/docs/examples/projects/update-service-status.md +0 -4
  573. package/docs/examples/projects/update-session-alerts.md +0 -3
  574. package/docs/examples/projects/update-session-invalidation.md +0 -3
  575. package/docs/examples/projects/update-sms-template.md +0 -5
  576. package/docs/examples/projects/update-smtp.md +0 -3
  577. package/docs/examples/projects/update-team.md +0 -3
  578. package/docs/examples/projects/update-webhook-signature.md +0 -3
  579. package/docs/examples/projects/update-webhook.md +0 -7
  580. package/docs/examples/projects/update.md +0 -3
  581. package/docs/examples/proxy/create-api-rule.md +0 -2
  582. package/docs/examples/proxy/create-function-rule.md +0 -3
  583. package/docs/examples/proxy/create-redirect-rule.md +0 -6
  584. package/docs/examples/proxy/create-site-rule.md +0 -3
  585. package/docs/examples/proxy/delete-rule.md +0 -2
  586. package/docs/examples/proxy/get-rule.md +0 -2
  587. package/docs/examples/proxy/list-rules.md +0 -1
  588. package/docs/examples/proxy/update-rule-verification.md +0 -2
  589. package/docs/examples/sites/create-deployment.md +0 -4
  590. package/docs/examples/sites/create-duplicate-deployment.md +0 -3
  591. package/docs/examples/sites/create-template-deployment.md +0 -7
  592. package/docs/examples/sites/create-variable.md +0 -4
  593. package/docs/examples/sites/create-vcs-deployment.md +0 -4
  594. package/docs/examples/sites/create.md +0 -5
  595. package/docs/examples/sites/delete-deployment.md +0 -3
  596. package/docs/examples/sites/delete-log.md +0 -3
  597. package/docs/examples/sites/delete-variable.md +0 -3
  598. package/docs/examples/sites/delete.md +0 -2
  599. package/docs/examples/sites/get-deployment-download.md +0 -3
  600. package/docs/examples/sites/get-deployment.md +0 -3
  601. package/docs/examples/sites/get-log.md +0 -3
  602. package/docs/examples/sites/get-template.md +0 -2
  603. package/docs/examples/sites/get-usage.md +0 -2
  604. package/docs/examples/sites/get-variable.md +0 -3
  605. package/docs/examples/sites/get.md +0 -2
  606. package/docs/examples/sites/list-deployments.md +0 -2
  607. package/docs/examples/sites/list-frameworks.md +0 -1
  608. package/docs/examples/sites/list-logs.md +0 -2
  609. package/docs/examples/sites/list-specifications.md +0 -1
  610. package/docs/examples/sites/list-templates.md +0 -1
  611. package/docs/examples/sites/list-usage.md +0 -1
  612. package/docs/examples/sites/list-variables.md +0 -2
  613. package/docs/examples/sites/list.md +0 -1
  614. package/docs/examples/sites/update-deployment-status.md +0 -3
  615. package/docs/examples/sites/update-site-deployment.md +0 -3
  616. package/docs/examples/sites/update-variable.md +0 -4
  617. package/docs/examples/sites/update.md +0 -4
  618. package/docs/examples/storage/create-bucket.md +0 -3
  619. package/docs/examples/storage/create-file.md +0 -4
  620. package/docs/examples/storage/delete-bucket.md +0 -2
  621. package/docs/examples/storage/delete-file.md +0 -3
  622. package/docs/examples/storage/get-bucket-usage.md +0 -2
  623. package/docs/examples/storage/get-bucket.md +0 -2
  624. package/docs/examples/storage/get-file-download.md +0 -3
  625. package/docs/examples/storage/get-file-preview.md +0 -3
  626. package/docs/examples/storage/get-file-view.md +0 -3
  627. package/docs/examples/storage/get-file.md +0 -3
  628. package/docs/examples/storage/get-usage.md +0 -1
  629. package/docs/examples/storage/list-buckets.md +0 -1
  630. package/docs/examples/storage/list-files.md +0 -2
  631. package/docs/examples/storage/update-bucket.md +0 -3
  632. package/docs/examples/storage/update-file.md +0 -3
  633. package/docs/examples/tablesdb/create-boolean-column.md +0 -5
  634. package/docs/examples/tablesdb/create-datetime-column.md +0 -5
  635. package/docs/examples/tablesdb/create-email-column.md +0 -5
  636. package/docs/examples/tablesdb/create-enum-column.md +0 -6
  637. package/docs/examples/tablesdb/create-float-column.md +0 -5
  638. package/docs/examples/tablesdb/create-index.md +0 -6
  639. package/docs/examples/tablesdb/create-integer-column.md +0 -5
  640. package/docs/examples/tablesdb/create-ip-column.md +0 -5
  641. package/docs/examples/tablesdb/create-line-column.md +0 -5
  642. package/docs/examples/tablesdb/create-operations.md +0 -2
  643. package/docs/examples/tablesdb/create-point-column.md +0 -5
  644. package/docs/examples/tablesdb/create-polygon-column.md +0 -5
  645. package/docs/examples/tablesdb/create-relationship-column.md +0 -5
  646. package/docs/examples/tablesdb/create-row.md +0 -5
  647. package/docs/examples/tablesdb/create-rows.md +0 -4
  648. package/docs/examples/tablesdb/create-string-column.md +0 -6
  649. package/docs/examples/tablesdb/create-table.md +0 -4
  650. package/docs/examples/tablesdb/create-transaction.md +0 -1
  651. package/docs/examples/tablesdb/create-url-column.md +0 -5
  652. package/docs/examples/tablesdb/create.md +0 -3
  653. package/docs/examples/tablesdb/decrement-row-column.md +0 -5
  654. package/docs/examples/tablesdb/delete-column.md +0 -4
  655. package/docs/examples/tablesdb/delete-index.md +0 -4
  656. package/docs/examples/tablesdb/delete-row.md +0 -4
  657. package/docs/examples/tablesdb/delete-rows.md +0 -3
  658. package/docs/examples/tablesdb/delete-table.md +0 -3
  659. package/docs/examples/tablesdb/delete-transaction.md +0 -2
  660. package/docs/examples/tablesdb/delete.md +0 -2
  661. package/docs/examples/tablesdb/get-column.md +0 -4
  662. package/docs/examples/tablesdb/get-index.md +0 -4
  663. package/docs/examples/tablesdb/get-row.md +0 -4
  664. package/docs/examples/tablesdb/get-table-usage.md +0 -3
  665. package/docs/examples/tablesdb/get-table.md +0 -3
  666. package/docs/examples/tablesdb/get-transaction.md +0 -2
  667. package/docs/examples/tablesdb/get-usage.md +0 -2
  668. package/docs/examples/tablesdb/get.md +0 -2
  669. package/docs/examples/tablesdb/increment-row-column.md +0 -5
  670. package/docs/examples/tablesdb/list-columns.md +0 -3
  671. package/docs/examples/tablesdb/list-indexes.md +0 -3
  672. package/docs/examples/tablesdb/list-row-logs.md +0 -4
  673. package/docs/examples/tablesdb/list-rows.md +0 -3
  674. package/docs/examples/tablesdb/list-table-logs.md +0 -3
  675. package/docs/examples/tablesdb/list-tables.md +0 -2
  676. package/docs/examples/tablesdb/list-transactions.md +0 -1
  677. package/docs/examples/tablesdb/list-usage.md +0 -1
  678. package/docs/examples/tablesdb/list.md +0 -1
  679. package/docs/examples/tablesdb/update-boolean-column.md +0 -6
  680. package/docs/examples/tablesdb/update-datetime-column.md +0 -6
  681. package/docs/examples/tablesdb/update-email-column.md +0 -6
  682. package/docs/examples/tablesdb/update-enum-column.md +0 -7
  683. package/docs/examples/tablesdb/update-float-column.md +0 -6
  684. package/docs/examples/tablesdb/update-integer-column.md +0 -6
  685. package/docs/examples/tablesdb/update-ip-column.md +0 -6
  686. package/docs/examples/tablesdb/update-line-column.md +0 -5
  687. package/docs/examples/tablesdb/update-point-column.md +0 -5
  688. package/docs/examples/tablesdb/update-polygon-column.md +0 -5
  689. package/docs/examples/tablesdb/update-relationship-column.md +0 -4
  690. package/docs/examples/tablesdb/update-row.md +0 -4
  691. package/docs/examples/tablesdb/update-rows.md +0 -3
  692. package/docs/examples/tablesdb/update-string-column.md +0 -6
  693. package/docs/examples/tablesdb/update-table.md +0 -4
  694. package/docs/examples/tablesdb/update-transaction.md +0 -2
  695. package/docs/examples/tablesdb/update-url-column.md +0 -6
  696. package/docs/examples/tablesdb/update.md +0 -3
  697. package/docs/examples/tablesdb/upsert-row.md +0 -4
  698. package/docs/examples/tablesdb/upsert-rows.md +0 -4
  699. package/docs/examples/teams/create-membership.md +0 -3
  700. package/docs/examples/teams/create.md +0 -3
  701. package/docs/examples/teams/delete-membership.md +0 -3
  702. package/docs/examples/teams/delete.md +0 -2
  703. package/docs/examples/teams/get-membership.md +0 -3
  704. package/docs/examples/teams/get-prefs.md +0 -2
  705. package/docs/examples/teams/get.md +0 -2
  706. package/docs/examples/teams/list-logs.md +0 -2
  707. package/docs/examples/teams/list-memberships.md +0 -2
  708. package/docs/examples/teams/list.md +0 -1
  709. package/docs/examples/teams/update-membership-status.md +0 -5
  710. package/docs/examples/teams/update-membership.md +0 -4
  711. package/docs/examples/teams/update-name.md +0 -3
  712. package/docs/examples/teams/update-prefs.md +0 -3
  713. package/docs/examples/tokens/create-file-token.md +0 -3
  714. package/docs/examples/tokens/delete.md +0 -2
  715. package/docs/examples/tokens/get.md +0 -2
  716. package/docs/examples/tokens/list.md +0 -3
  717. package/docs/examples/tokens/update.md +0 -2
  718. package/docs/examples/users/create-argon-2-user.md +0 -4
  719. package/docs/examples/users/create-bcrypt-user.md +0 -4
  720. package/docs/examples/users/create-jwt.md +0 -2
  721. package/docs/examples/users/create-md-5-user.md +0 -4
  722. package/docs/examples/users/create-mfa-recovery-codes.md +0 -2
  723. package/docs/examples/users/create-ph-pass-user.md +0 -4
  724. package/docs/examples/users/create-scrypt-modified-user.md +0 -7
  725. package/docs/examples/users/create-scrypt-user.md +0 -9
  726. package/docs/examples/users/create-session.md +0 -2
  727. package/docs/examples/users/create-sha-user.md +0 -4
  728. package/docs/examples/users/create-target.md +0 -5
  729. package/docs/examples/users/create-token.md +0 -2
  730. package/docs/examples/users/create.md +0 -2
  731. package/docs/examples/users/delete-identity.md +0 -2
  732. package/docs/examples/users/delete-mfa-authenticator.md +0 -3
  733. package/docs/examples/users/delete-session.md +0 -3
  734. package/docs/examples/users/delete-sessions.md +0 -2
  735. package/docs/examples/users/delete-target.md +0 -3
  736. package/docs/examples/users/delete.md +0 -2
  737. package/docs/examples/users/get-mfa-recovery-codes.md +0 -2
  738. package/docs/examples/users/get-prefs.md +0 -2
  739. package/docs/examples/users/get-target.md +0 -3
  740. package/docs/examples/users/get-usage.md +0 -1
  741. package/docs/examples/users/get.md +0 -2
  742. package/docs/examples/users/list-identities.md +0 -1
  743. package/docs/examples/users/list-logs.md +0 -2
  744. package/docs/examples/users/list-memberships.md +0 -2
  745. package/docs/examples/users/list-mfa-factors.md +0 -2
  746. package/docs/examples/users/list-sessions.md +0 -2
  747. package/docs/examples/users/list-targets.md +0 -2
  748. package/docs/examples/users/list.md +0 -1
  749. package/docs/examples/users/update-email-verification.md +0 -3
  750. package/docs/examples/users/update-email.md +0 -3
  751. package/docs/examples/users/update-labels.md +0 -3
  752. package/docs/examples/users/update-mfa-recovery-codes.md +0 -2
  753. package/docs/examples/users/update-mfa.md +0 -3
  754. package/docs/examples/users/update-name.md +0 -3
  755. package/docs/examples/users/update-password.md +0 -3
  756. package/docs/examples/users/update-phone-verification.md +0 -3
  757. package/docs/examples/users/update-phone.md +0 -3
  758. package/docs/examples/users/update-prefs.md +0 -3
  759. package/docs/examples/users/update-status.md +0 -3
  760. package/docs/examples/users/update-target.md +0 -3
  761. package/docs/examples/vcs/create-repository-detection.md +0 -4
  762. package/docs/examples/vcs/create-repository.md +0 -4
  763. package/docs/examples/vcs/delete-installation.md +0 -2
  764. package/docs/examples/vcs/get-installation.md +0 -2
  765. package/docs/examples/vcs/get-repository-contents.md +0 -3
  766. package/docs/examples/vcs/get-repository.md +0 -3
  767. package/docs/examples/vcs/list-installations.md +0 -1
  768. package/docs/examples/vcs/list-repositories.md +0 -3
  769. package/docs/examples/vcs/list-repository-branches.md +0 -3
  770. package/docs/examples/vcs/update-external-deployments.md +0 -4
  771. package/index.js +0 -147
  772. package/lib/client.js +0 -254
  773. package/lib/commands/account.js +0 -2121
  774. package/lib/commands/console.js +0 -127
  775. package/lib/commands/databases.js +0 -3590
  776. package/lib/commands/functions.js +0 -1732
  777. package/lib/commands/generic.js +0 -330
  778. package/lib/commands/graphql.js +0 -126
  779. package/lib/commands/health.js +0 -869
  780. package/lib/commands/locale.js +0 -316
  781. package/lib/commands/messaging.js +0 -3116
  782. package/lib/commands/migrations.js +0 -830
  783. package/lib/commands/organizations.js +0 -48
  784. package/lib/commands/project.js +0 -302
  785. package/lib/commands/projects.js +0 -2626
  786. package/lib/commands/proxy.js +0 -403
  787. package/lib/commands/push.js +0 -2570
  788. package/lib/commands/sites.js +0 -1654
  789. package/lib/commands/storage.js +0 -995
  790. package/lib/commands/tables-db.js +0 -3569
  791. package/lib/commands/teams.js +0 -683
  792. package/lib/commands/tokens.js +0 -261
  793. package/lib/commands/types.js +0 -191
  794. package/lib/commands/users.js +0 -2022
  795. package/lib/commands/vcs.js +0 -484
  796. package/lib/emulation/docker.js +0 -264
  797. package/lib/exception.js +0 -9
  798. package/lib/parser.js +0 -250
  799. package/lib/sdks.js +0 -60
  800. package/lib/spinner.js +0 -104
  801. package/lib/validations.js +0 -17
package/lib/config.ts ADDED
@@ -0,0 +1,969 @@
1
+ import os from "os";
2
+ import fs from "fs";
3
+ import _path from "path";
4
+ import process from "process";
5
+ import JSONbig from "json-bigint";
6
+ import type {
7
+ BucketConfig,
8
+ CollectionConfig,
9
+ ConfigData,
10
+ Entity,
11
+ FunctionConfig,
12
+ GlobalConfigData,
13
+ ProjectConfigData,
14
+ ProjectSettings,
15
+ RawProjectSettings,
16
+ SessionData,
17
+ SiteConfig,
18
+ TableConfig,
19
+ TeamConfig,
20
+ TopicConfig,
21
+ } from "./types.js";
22
+
23
+ const JSONBigInt = JSONbig({ storeAsString: false });
24
+
25
+ const KeysVars = new Set(["key", "value"]);
26
+ const KeysSite = new Set([
27
+ "path",
28
+ "$id",
29
+ "name",
30
+ "enabled",
31
+ "logging",
32
+ "timeout",
33
+ "framework",
34
+ "buildRuntime",
35
+ "adapter",
36
+ "installCommand",
37
+ "buildCommand",
38
+ "outputDirectory",
39
+ "fallbackFile",
40
+ "specification",
41
+ "vars",
42
+ ]);
43
+ const KeysFunction = new Set([
44
+ "path",
45
+ "$id",
46
+ "execute",
47
+ "name",
48
+ "enabled",
49
+ "logging",
50
+ "runtime",
51
+ "specification",
52
+ "scopes",
53
+ "events",
54
+ "schedule",
55
+ "timeout",
56
+ "entrypoint",
57
+ "commands",
58
+ "vars",
59
+ ]);
60
+ const KeysDatabase = new Set(["$id", "name", "enabled"]);
61
+ const KeysCollection = new Set([
62
+ "$id",
63
+ "$permissions",
64
+ "databaseId",
65
+ "name",
66
+ "enabled",
67
+ "documentSecurity",
68
+ "attributes",
69
+ "indexes",
70
+ ]);
71
+ const KeysTable = new Set([
72
+ "$id",
73
+ "$permissions",
74
+ "databaseId",
75
+ "name",
76
+ "enabled",
77
+ "rowSecurity",
78
+ "columns",
79
+ "indexes",
80
+ ]);
81
+ const KeysStorage = new Set([
82
+ "$id",
83
+ "$permissions",
84
+ "fileSecurity",
85
+ "name",
86
+ "enabled",
87
+ "maximumFileSize",
88
+ "allowedFileExtensions",
89
+ "compression",
90
+ "encryption",
91
+ "antivirus",
92
+ ]);
93
+ const KeysTopics = new Set(["$id", "name", "subscribe"]);
94
+ const KeysTeams = new Set(["$id", "name"]);
95
+ const KeysAttributes = new Set([
96
+ "key",
97
+ "type",
98
+ "required",
99
+ "array",
100
+ "size",
101
+ "default",
102
+ // integer and float
103
+ "min",
104
+ "max",
105
+ // email, enum, URL, IP, and datetime
106
+ "format",
107
+ // enum
108
+ "elements",
109
+ // relationship
110
+ "relatedCollection",
111
+ "relationType",
112
+ "twoWay",
113
+ "twoWayKey",
114
+ "onDelete",
115
+ "side",
116
+ // Indexes
117
+ "attributes",
118
+ "orders",
119
+ // Strings
120
+ "encrypt",
121
+ ]);
122
+ const KeysColumns = new Set([
123
+ "key",
124
+ "type",
125
+ "required",
126
+ "array",
127
+ "size",
128
+ "default",
129
+ // integer and float
130
+ "min",
131
+ "max",
132
+ // email, enum, URL, IP, and datetime
133
+ "format",
134
+ // enum
135
+ "elements",
136
+ // relationship
137
+ "relatedTable",
138
+ "relationType",
139
+ "twoWay",
140
+ "twoWayKey",
141
+ "onDelete",
142
+ "side",
143
+ // Indexes
144
+ "columns",
145
+ "orders",
146
+ // Strings
147
+ "encrypt",
148
+ ]);
149
+ const KeyIndexes = new Set(["key", "type", "status", "attributes", "orders"]);
150
+ const KeyIndexesColumns = new Set([
151
+ "key",
152
+ "type",
153
+ "status",
154
+ "columns",
155
+ "orders",
156
+ ]);
157
+
158
+ function whitelistKeys<T = any>(
159
+ value: T,
160
+ keys: Set<string>,
161
+ nestedKeys: Record<string, Set<string>> = {},
162
+ ): T {
163
+ if (Array.isArray(value)) {
164
+ const newValue: any[] = [];
165
+
166
+ for (const item of value) {
167
+ newValue.push(whitelistKeys(item, keys, nestedKeys));
168
+ }
169
+
170
+ return newValue as T;
171
+ }
172
+
173
+ const newValue: Record<string, any> = {};
174
+ Object.keys(value as any).forEach((key) => {
175
+ if (keys.has(key)) {
176
+ if (nestedKeys[key]) {
177
+ newValue[key] = whitelistKeys((value as any)[key], nestedKeys[key]);
178
+ } else {
179
+ newValue[key] = (value as any)[key];
180
+ }
181
+ }
182
+ });
183
+ return newValue as T;
184
+ }
185
+
186
+ class Config<T extends ConfigData = ConfigData> {
187
+ readonly path: string;
188
+ protected data: T;
189
+
190
+ constructor(path: string) {
191
+ this.path = path;
192
+ this.data = {} as T;
193
+ this.read();
194
+ }
195
+
196
+ read(): void {
197
+ try {
198
+ const file = fs.readFileSync(this.path).toString();
199
+ this.data = JSONBigInt.parse(file);
200
+ } catch (e) {
201
+ this.data = {} as T;
202
+ }
203
+ }
204
+
205
+ write(): void {
206
+ const dir = _path.dirname(this.path);
207
+ if (!fs.existsSync(dir)) {
208
+ fs.mkdirSync(dir, { recursive: true });
209
+ }
210
+ fs.writeFileSync(this.path, JSONBigInt.stringify(this.data, null, 4), {
211
+ mode: 0o600,
212
+ });
213
+ }
214
+
215
+ get<K extends keyof T>(key: K): T[K];
216
+ get(key: string): any {
217
+ return this.data[key as keyof T];
218
+ }
219
+
220
+ set<K extends keyof T>(key: K, value: T[K]): void;
221
+ set(key: string, value: any): void {
222
+ (this.data as any)[key] = value;
223
+ this.write();
224
+ }
225
+
226
+ delete(key: string): void {
227
+ delete (this.data as any)[key];
228
+ this.write();
229
+ }
230
+
231
+ clear(): void {
232
+ this.data = {} as T;
233
+ this.write();
234
+ }
235
+
236
+ has(key: string): boolean {
237
+ return this.data[key as keyof T] !== undefined;
238
+ }
239
+
240
+ keys(): string[] {
241
+ return Object.keys(this.data);
242
+ }
243
+
244
+ values(): unknown[] {
245
+ return Object.values(this.data);
246
+ }
247
+
248
+ toString(): string {
249
+ return JSONBigInt.stringify(this.data, null, 4);
250
+ }
251
+
252
+ protected _getDBEntities(entityType: string): Entity[] {
253
+ if (!this.has(entityType)) {
254
+ return [];
255
+ }
256
+ return this.get(entityType) as Entity[];
257
+ }
258
+
259
+ protected _getDBEntity(
260
+ entityType: string,
261
+ $id: string,
262
+ ): Entity | Record<string, never> {
263
+ if (!this.has(entityType)) {
264
+ return {};
265
+ }
266
+
267
+ const entities = this.get(entityType) as Entity[];
268
+ for (let i = 0; i < entities.length; i++) {
269
+ if (entities[i]["$id"] == $id) {
270
+ return entities[i];
271
+ }
272
+ }
273
+
274
+ return {};
275
+ }
276
+
277
+ protected _addDBEntity(
278
+ entityType: string,
279
+ props: Entity,
280
+ keysSet: Set<string>,
281
+ nestedKeys: Record<string, Set<string>> = {},
282
+ ): void {
283
+ props = whitelistKeys(props, keysSet, nestedKeys);
284
+
285
+ if (!this.has(entityType)) {
286
+ (this.set as (key: string, value: Entity[]) => void)(entityType, []);
287
+ }
288
+
289
+ const entities = this.get(entityType) as Entity[];
290
+ for (let i = 0; i < entities.length; i++) {
291
+ if (entities[i]["$id"] == props["$id"]) {
292
+ entities[i] = props;
293
+ (this.set as (key: string, value: Entity[]) => void)(
294
+ entityType,
295
+ entities,
296
+ );
297
+ return;
298
+ }
299
+ }
300
+ entities.push(props);
301
+ (this.set as (key: string, value: Entity[]) => void)(entityType, entities);
302
+ }
303
+ }
304
+
305
+ class Local extends Config<ProjectConfigData> {
306
+ static CONFIG_FILE_PATH = "appwrite.config.json";
307
+ static CONFIG_FILE_PATH_LEGACY = "appwrite.json";
308
+ configDirectoryPath = "";
309
+
310
+ constructor(
311
+ path: string = Local.CONFIG_FILE_PATH,
312
+ legacyPath: string = Local.CONFIG_FILE_PATH_LEGACY,
313
+ ) {
314
+ let absolutePath =
315
+ Local.findConfigFile(path) || Local.findConfigFile(legacyPath);
316
+
317
+ if (!absolutePath) {
318
+ absolutePath = `${process.cwd()}/${path}`;
319
+ }
320
+
321
+ super(absolutePath);
322
+ this.configDirectoryPath = _path.dirname(absolutePath);
323
+ }
324
+
325
+ static findConfigFile(filename: string): string | null {
326
+ let currentPath = process.cwd();
327
+
328
+ while (true) {
329
+ const filePath = `${currentPath}/${filename}`;
330
+
331
+ if (fs.existsSync(filePath)) {
332
+ return filePath;
333
+ }
334
+
335
+ const parentDirectory = _path.dirname(currentPath);
336
+ if (parentDirectory === currentPath) {
337
+ break;
338
+ }
339
+ currentPath = parentDirectory;
340
+ }
341
+
342
+ return null;
343
+ }
344
+
345
+ getDirname(): string {
346
+ return _path.dirname(this.path);
347
+ }
348
+
349
+ getEndpoint(): string {
350
+ return (this.get("endpoint" as keyof ProjectConfigData) as string) || "";
351
+ }
352
+
353
+ setEndpoint(endpoint: string): void {
354
+ this.set("endpoint" as any, endpoint);
355
+ }
356
+
357
+ getSites(): SiteConfig[] {
358
+ if (!this.has("sites")) {
359
+ return [];
360
+ }
361
+ return this.get("sites") ?? [];
362
+ }
363
+
364
+ getSite($id: string): SiteConfig | Record<string, never> {
365
+ if (!this.has("sites")) {
366
+ return {};
367
+ }
368
+
369
+ const sites = this.get("sites") ?? [];
370
+ for (let i = 0; i < sites.length; i++) {
371
+ if (sites[i]["$id"] == $id) {
372
+ return sites[i];
373
+ }
374
+ }
375
+
376
+ return {};
377
+ }
378
+
379
+ addSite(props: SiteConfig): void {
380
+ props = whitelistKeys(props, KeysSite, {
381
+ vars: KeysVars,
382
+ });
383
+
384
+ if (!this.has("sites")) {
385
+ this.set("sites", []);
386
+ }
387
+
388
+ const sites = this.get("sites") ?? [];
389
+ for (let i = 0; i < sites.length; i++) {
390
+ if (sites[i]["$id"] == props["$id"]) {
391
+ sites[i] = {
392
+ ...sites[i],
393
+ ...props,
394
+ };
395
+ this.set("sites", sites);
396
+ return;
397
+ }
398
+ }
399
+
400
+ sites.push(props);
401
+ this.set("sites", sites);
402
+ }
403
+
404
+ getFunctions(): FunctionConfig[] {
405
+ if (!this.has("functions")) {
406
+ return [];
407
+ }
408
+ return this.get("functions") ?? [];
409
+ }
410
+
411
+ getFunction($id: string): FunctionConfig | Record<string, never> {
412
+ if (!this.has("functions")) {
413
+ return {};
414
+ }
415
+
416
+ const functions = this.get("functions") ?? [];
417
+ for (let i = 0; i < functions.length; i++) {
418
+ if (functions[i]["$id"] == $id) {
419
+ return functions[i];
420
+ }
421
+ }
422
+
423
+ return {};
424
+ }
425
+
426
+ addFunction(props: FunctionConfig): void {
427
+ props = whitelistKeys(props, KeysFunction, {
428
+ vars: KeysVars,
429
+ });
430
+
431
+ if (!this.has("functions")) {
432
+ this.set("functions", []);
433
+ }
434
+
435
+ const functions = this.get("functions") ?? [];
436
+ for (let i = 0; i < functions.length; i++) {
437
+ if (functions[i]["$id"] == props["$id"]) {
438
+ functions[i] = {
439
+ ...functions[i],
440
+ ...props,
441
+ };
442
+ this.set("functions", functions);
443
+ return;
444
+ }
445
+ }
446
+
447
+ functions.push(props);
448
+ this.set("functions", functions);
449
+ }
450
+
451
+ getCollections(): CollectionConfig[] {
452
+ if (!this.has("collections")) {
453
+ return [];
454
+ }
455
+ return this.get("collections") ?? [];
456
+ }
457
+
458
+ getCollection($id: string): CollectionConfig | Record<string, never> {
459
+ if (!this.has("collections")) {
460
+ return {};
461
+ }
462
+
463
+ const collections = this.get("collections") ?? [];
464
+ for (let i = 0; i < collections.length; i++) {
465
+ if (collections[i]["$id"] == $id) {
466
+ return collections[i];
467
+ }
468
+ }
469
+
470
+ return {};
471
+ }
472
+
473
+ addCollection(props: CollectionConfig): void {
474
+ props = whitelistKeys(props, KeysCollection, {
475
+ attributes: KeysAttributes,
476
+ indexes: KeyIndexes,
477
+ });
478
+
479
+ if (!this.has("collections")) {
480
+ this.set("collections", []);
481
+ }
482
+
483
+ const collections = this.get("collections") ?? [];
484
+ for (let i = 0; i < collections.length; i++) {
485
+ if (
486
+ collections[i]["$id"] == props["$id"] &&
487
+ collections[i]["databaseId"] == props["databaseId"]
488
+ ) {
489
+ collections[i] = props;
490
+ this.set("collections", collections);
491
+ return;
492
+ }
493
+ }
494
+ collections.push(props);
495
+ this.set("collections", collections);
496
+ }
497
+
498
+ getTables(): TableConfig[] {
499
+ if (!this.has("tables")) {
500
+ return [];
501
+ }
502
+ return this.get("tables") ?? [];
503
+ }
504
+
505
+ getTable($id: string): TableConfig | Record<string, never> {
506
+ if (!this.has("tables")) {
507
+ return {};
508
+ }
509
+
510
+ const tables = this.get("tables") ?? [];
511
+ for (let i = 0; i < tables.length; i++) {
512
+ if (tables[i]["$id"] == $id) {
513
+ return tables[i];
514
+ }
515
+ }
516
+
517
+ return {};
518
+ }
519
+
520
+ addTable(props: TableConfig): void {
521
+ props = whitelistKeys(props, KeysTable, {
522
+ columns: KeysColumns,
523
+ indexes: KeyIndexesColumns,
524
+ });
525
+
526
+ if (!this.has("tables")) {
527
+ this.set("tables", []);
528
+ }
529
+
530
+ const tables = this.get("tables") ?? [];
531
+ for (let i = 0; i < tables.length; i++) {
532
+ if (
533
+ tables[i]["$id"] == props["$id"] &&
534
+ tables[i]["databaseId"] == props["databaseId"]
535
+ ) {
536
+ tables[i] = props;
537
+ this.set("tables", tables);
538
+ return;
539
+ }
540
+ }
541
+ tables.push(props);
542
+ this.set("tables", tables);
543
+ }
544
+
545
+ getBuckets(): BucketConfig[] {
546
+ if (!this.has("buckets")) {
547
+ return [];
548
+ }
549
+ return this.get("buckets") ?? [];
550
+ }
551
+
552
+ getBucket($id: string): BucketConfig | Record<string, never> {
553
+ if (!this.has("buckets")) {
554
+ return {};
555
+ }
556
+
557
+ const buckets = this.get("buckets") ?? [];
558
+ for (let i = 0; i < buckets.length; i++) {
559
+ if (buckets[i]["$id"] == $id) {
560
+ return buckets[i];
561
+ }
562
+ }
563
+
564
+ return {};
565
+ }
566
+
567
+ addBucket(props: BucketConfig): void {
568
+ props = whitelistKeys(props, KeysStorage);
569
+
570
+ if (!this.has("buckets")) {
571
+ this.set("buckets", []);
572
+ }
573
+
574
+ const buckets = this.get("buckets") ?? [];
575
+ for (let i = 0; i < buckets.length; i++) {
576
+ if (buckets[i]["$id"] == props["$id"]) {
577
+ buckets[i] = props;
578
+ this.set("buckets", buckets);
579
+ return;
580
+ }
581
+ }
582
+ buckets.push(props);
583
+ this.set("buckets", buckets);
584
+ }
585
+
586
+ getMessagingTopics(): TopicConfig[] {
587
+ if (!this.has("topics")) {
588
+ return [];
589
+ }
590
+ return this.get("topics") ?? [];
591
+ }
592
+
593
+ getMessagingTopic($id: string): TopicConfig | Record<string, never> {
594
+ if (!this.has("topics")) {
595
+ return {};
596
+ }
597
+
598
+ const topics = this.get("topics") ?? [];
599
+ for (let i = 0; i < topics.length; i++) {
600
+ if (topics[i]["$id"] == $id) {
601
+ return topics[i];
602
+ }
603
+ }
604
+
605
+ return {};
606
+ }
607
+
608
+ addMessagingTopic(props: TopicConfig): void {
609
+ props = whitelistKeys(props, KeysTopics);
610
+
611
+ if (!this.has("topics")) {
612
+ this.set("topics", []);
613
+ }
614
+
615
+ const topics = this.get("topics") ?? [];
616
+ for (let i = 0; i < topics.length; i++) {
617
+ if (topics[i]["$id"] === props["$id"]) {
618
+ topics[i] = props;
619
+ this.set("topics", topics);
620
+ return;
621
+ }
622
+ }
623
+ topics.push(props);
624
+ this.set("topics", topics);
625
+ }
626
+
627
+ getTablesDBs(): any[] {
628
+ return this._getDBEntities("tablesDB");
629
+ }
630
+
631
+ getTablesDB($id: string): any {
632
+ return this._getDBEntity("tablesDB", $id);
633
+ }
634
+
635
+ addTablesDB(props: any): void {
636
+ this._addDBEntity("tablesDB", props, KeysDatabase);
637
+ }
638
+
639
+ getDatabases(): any[] {
640
+ return this._getDBEntities("databases");
641
+ }
642
+
643
+ getDatabase($id: string): any {
644
+ return this._getDBEntity("databases", $id);
645
+ }
646
+
647
+ addDatabase(props: any): void {
648
+ this._addDBEntity("databases", props, KeysDatabase);
649
+ }
650
+
651
+ getTeams(): TeamConfig[] {
652
+ if (!this.has("teams")) {
653
+ return [];
654
+ }
655
+ return this.get("teams") ?? [];
656
+ }
657
+
658
+ getTeam($id: string): TeamConfig | Record<string, never> {
659
+ if (!this.has("teams")) {
660
+ return {};
661
+ }
662
+
663
+ const teams = this.get("teams") ?? [];
664
+ for (let i = 0; i < teams.length; i++) {
665
+ if (teams[i]["$id"] == $id) {
666
+ return teams[i];
667
+ }
668
+ }
669
+
670
+ return {};
671
+ }
672
+
673
+ addTeam(props: TeamConfig): void {
674
+ props = whitelistKeys(props, KeysTeams);
675
+ if (!this.has("teams")) {
676
+ this.set("teams", []);
677
+ }
678
+
679
+ const teams = this.get("teams") ?? [];
680
+ for (let i = 0; i < teams.length; i++) {
681
+ if (teams[i]["$id"] == props["$id"]) {
682
+ teams[i] = props;
683
+ this.set("teams", teams);
684
+ return;
685
+ }
686
+ }
687
+ teams.push(props);
688
+ this.set("teams", teams);
689
+ }
690
+
691
+ getProject(): {
692
+ projectId?: string;
693
+ projectName?: string;
694
+ projectSettings?: ProjectSettings;
695
+ } {
696
+ if (!this.has("projectId")) {
697
+ return {};
698
+ }
699
+
700
+ return {
701
+ projectId: this.get("projectId"),
702
+ projectName: this.get("projectName"),
703
+ projectSettings: this.get("settings"),
704
+ };
705
+ }
706
+
707
+ setProject(
708
+ projectId: string,
709
+ projectName: string = "",
710
+ projectSettings?: RawProjectSettings,
711
+ ): void {
712
+ this.set("projectId", projectId);
713
+
714
+ if (projectName !== "") {
715
+ this.set("projectName", projectName);
716
+ }
717
+
718
+ if (projectSettings === undefined) {
719
+ return;
720
+ }
721
+
722
+ this.set("settings", this.createSettingsObject(projectSettings));
723
+ }
724
+
725
+ createSettingsObject(projectSettings: RawProjectSettings): ProjectSettings {
726
+ return {
727
+ services: {
728
+ account: projectSettings.serviceStatusForAccount,
729
+ avatars: projectSettings.serviceStatusForAvatars,
730
+ databases: projectSettings.serviceStatusForDatabases,
731
+ locale: projectSettings.serviceStatusForLocale,
732
+ health: projectSettings.serviceStatusForHealth,
733
+ storage: projectSettings.serviceStatusForStorage,
734
+ teams: projectSettings.serviceStatusForTeams,
735
+ users: projectSettings.serviceStatusForUsers,
736
+ sites: projectSettings.serviceStatusForSites,
737
+ functions: projectSettings.serviceStatusForFunctions,
738
+ graphql: projectSettings.serviceStatusForGraphql,
739
+ messaging: projectSettings.serviceStatusForMessaging,
740
+ },
741
+ auth: {
742
+ methods: {
743
+ jwt: projectSettings.authJWT,
744
+ phone: projectSettings.authPhone,
745
+ invites: projectSettings.authInvites,
746
+ anonymous: projectSettings.authAnonymous,
747
+ "email-otp": projectSettings.authEmailOtp,
748
+ "magic-url": projectSettings.authUsersAuthMagicURL,
749
+ "email-password": projectSettings.authEmailPassword,
750
+ },
751
+ security: {
752
+ duration: projectSettings.authDuration,
753
+ limit: projectSettings.authLimit,
754
+ sessionsLimit: projectSettings.authSessionsLimit,
755
+ passwordHistory: projectSettings.authPasswordHistory,
756
+ passwordDictionary: projectSettings.authPasswordDictionary,
757
+ personalDataCheck: projectSettings.authPersonalDataCheck,
758
+ sessionAlerts: projectSettings.authSessionAlerts,
759
+ mockNumbers: projectSettings.authMockNumbers,
760
+ },
761
+ },
762
+ };
763
+ }
764
+ }
765
+
766
+ class Global extends Config<GlobalConfigData> {
767
+ static CONFIG_FILE_PATH = ".appwrite/prefs.json";
768
+
769
+ static PREFERENCE_CURRENT = "current" as const;
770
+ static PREFERENCE_ENDPOINT = "endpoint" as const;
771
+ static PREFERENCE_EMAIL = "email" as const;
772
+ static PREFERENCE_SELF_SIGNED = "selfSigned" as const;
773
+ static PREFERENCE_COOKIE = "cookie" as const;
774
+ static PREFERENCE_PROJECT = "project" as const;
775
+ static PREFERENCE_KEY = "key" as const;
776
+ static PREFERENCE_LOCALE = "locale" as const;
777
+ static PREFERENCE_MODE = "mode" as const;
778
+
779
+ static IGNORE_ATTRIBUTES: readonly string[] = [
780
+ Global.PREFERENCE_CURRENT,
781
+ Global.PREFERENCE_SELF_SIGNED,
782
+ Global.PREFERENCE_ENDPOINT,
783
+ Global.PREFERENCE_COOKIE,
784
+ Global.PREFERENCE_PROJECT,
785
+ Global.PREFERENCE_KEY,
786
+ Global.PREFERENCE_LOCALE,
787
+ Global.PREFERENCE_MODE,
788
+ ];
789
+
790
+ static MODE_ADMIN = "admin";
791
+ static MODE_DEFAULT = "default";
792
+
793
+ static PROJECT_CONSOLE = "console";
794
+
795
+ constructor(path: string = Global.CONFIG_FILE_PATH) {
796
+ const homeDir = os.homedir();
797
+ super(`${homeDir}/${path}`);
798
+ }
799
+
800
+ getCurrentSession(): string {
801
+ if (!this.has(Global.PREFERENCE_CURRENT)) {
802
+ return "";
803
+ }
804
+ return this.get(Global.PREFERENCE_CURRENT);
805
+ }
806
+
807
+ setCurrentSession(session: string): void {
808
+ if (session !== undefined) {
809
+ this.set(Global.PREFERENCE_CURRENT, session);
810
+ }
811
+ }
812
+
813
+ getSessionIds(): string[] {
814
+ return Object.keys(this.data).filter(
815
+ (key) => !Global.IGNORE_ATTRIBUTES.includes(key),
816
+ );
817
+ }
818
+
819
+ getSessions(): Array<{ id: string; endpoint: string; email: string }> {
820
+ const sessions = Object.keys(this.data).filter(
821
+ (key) => !Global.IGNORE_ATTRIBUTES.includes(key),
822
+ );
823
+ const current = this.getCurrentSession();
824
+
825
+ const sessionMap = new Map<
826
+ string,
827
+ { id: string; endpoint: string; email: string }
828
+ >();
829
+
830
+ sessions.forEach((sessionId) => {
831
+ const sessionData = (this.data as any)[sessionId];
832
+ const email = sessionData[Global.PREFERENCE_EMAIL];
833
+ const endpoint = sessionData[Global.PREFERENCE_ENDPOINT];
834
+ const key = `${email}|${endpoint}`;
835
+
836
+ if (sessionId === current || !sessionMap.has(key)) {
837
+ sessionMap.set(key, {
838
+ id: sessionId,
839
+ endpoint: sessionData[Global.PREFERENCE_ENDPOINT],
840
+ email: sessionData[Global.PREFERENCE_EMAIL],
841
+ });
842
+ }
843
+ });
844
+
845
+ return Array.from(sessionMap.values());
846
+ }
847
+
848
+ addSession(session: string, data: SessionData): void {
849
+ this.set(session as any, data as any);
850
+ }
851
+
852
+ removeSession(session: string): void {
853
+ this.delete(session);
854
+ }
855
+
856
+ getEmail(): string {
857
+ if (!this.hasFrom(Global.PREFERENCE_EMAIL)) {
858
+ return "";
859
+ }
860
+
861
+ return this.getFrom(Global.PREFERENCE_EMAIL);
862
+ }
863
+
864
+ setEmail(email: string): void {
865
+ this.setTo(Global.PREFERENCE_EMAIL, email);
866
+ }
867
+
868
+ getEndpoint(): string {
869
+ if (!this.hasFrom(Global.PREFERENCE_ENDPOINT)) {
870
+ return "";
871
+ }
872
+
873
+ return this.getFrom(Global.PREFERENCE_ENDPOINT);
874
+ }
875
+
876
+ setEndpoint(endpoint: string): void {
877
+ this.setTo(Global.PREFERENCE_ENDPOINT, endpoint);
878
+ }
879
+
880
+ getSelfSigned(): boolean {
881
+ if (!this.hasFrom(Global.PREFERENCE_SELF_SIGNED)) {
882
+ return false;
883
+ }
884
+ return this.getFrom(Global.PREFERENCE_SELF_SIGNED);
885
+ }
886
+
887
+ setSelfSigned(selfSigned: boolean): void {
888
+ this.setTo(Global.PREFERENCE_SELF_SIGNED, selfSigned);
889
+ }
890
+
891
+ getCookie(): string {
892
+ if (!this.hasFrom(Global.PREFERENCE_COOKIE)) {
893
+ return "";
894
+ }
895
+ return this.getFrom(Global.PREFERENCE_COOKIE);
896
+ }
897
+
898
+ setCookie(cookie: string): void {
899
+ this.setTo(Global.PREFERENCE_COOKIE, cookie);
900
+ }
901
+
902
+ getProject(): string {
903
+ if (!this.hasFrom(Global.PREFERENCE_PROJECT)) {
904
+ return "";
905
+ }
906
+ return this.getFrom(Global.PREFERENCE_PROJECT);
907
+ }
908
+
909
+ setProject(project: string): void {
910
+ this.setTo(Global.PREFERENCE_PROJECT, project);
911
+ }
912
+
913
+ getKey(): string {
914
+ if (!this.hasFrom(Global.PREFERENCE_KEY)) {
915
+ return "";
916
+ }
917
+ return this.getFrom(Global.PREFERENCE_KEY);
918
+ }
919
+
920
+ setKey(key: string): void {
921
+ this.setTo(Global.PREFERENCE_KEY, key);
922
+ }
923
+
924
+ hasFrom(key: string): boolean {
925
+ const current = this.getCurrentSession();
926
+
927
+ if (current) {
928
+ const config = this.get(current as any) ?? {};
929
+
930
+ return (config as any)[key] !== undefined;
931
+ }
932
+ return false;
933
+ }
934
+
935
+ getFrom(key: string): any {
936
+ const current = this.getCurrentSession();
937
+
938
+ if (current) {
939
+ const config = this.get(current as any) ?? {};
940
+
941
+ return (config as any)[key];
942
+ }
943
+ }
944
+
945
+ setTo(key: string, value: any): void {
946
+ const current = this.getCurrentSession();
947
+
948
+ if (current) {
949
+ const config = this.get(current as any);
950
+
951
+ (config as any)[key] = value;
952
+ this.write();
953
+ }
954
+ }
955
+ }
956
+
957
+ export const localConfig = new Local();
958
+ export const globalConfig = new Global();
959
+ export {
960
+ KeysAttributes,
961
+ KeysSite,
962
+ KeysFunction,
963
+ KeysTopics,
964
+ KeysStorage,
965
+ KeysTeams,
966
+ KeysCollection,
967
+ KeysTable,
968
+ whitelistKeys,
969
+ };