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