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
@@ -1,429 +1,503 @@
1
- import fs = require('fs');
2
- import path = require('path');
3
- import childProcess = require('child_process');
4
- import { Command } from 'commander';
5
- import inquirer from 'inquirer';
6
- import { projectsCreate, projectsGet } from './projects';
7
- import { storageCreateBucket } from './storage';
8
- import { messagingCreateTopic } from './messaging';
9
- import { functionsCreate } from './functions';
10
- import { databasesCreateCollection } from './databases';
11
- import { pullResources } from './pull';
12
- import ID from '../id';
13
- import { localConfig, globalConfig } from '../config';
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import childProcess from "child_process";
4
+ import { Command } from "commander";
5
+ import inquirer from "inquirer";
6
+ import { getProjectsService, getSitesService } from "../services.js";
7
+ import { pullResources } from "./pull.js";
8
+ import ID from "../id.js";
9
+ import { localConfig, globalConfig } from "../config.js";
14
10
  import {
15
- questionsCreateFunction,
16
- questionsCreateFunctionSelectTemplate,
17
- questionsCreateSite,
18
- questionsCreateBucket,
19
- questionsCreateMessagingTopic,
20
- questionsCreateCollection,
21
- questionsCreateTable,
22
- questionsInitProject,
23
- questionsInitProjectAutopull,
24
- questionsInitResources,
25
- questionsCreateTeam
26
- } from '../questions';
27
- import { cliConfig, success, log, hint, error, actionRunner, commandDescriptions } from '../parser';
28
- import { accountGet } from './account';
29
- import { sitesListTemplates } from './sites';
30
- import { sdkForConsole } from '../sdks';
31
- import { isCloud } from '../utils';
11
+ questionsCreateFunction,
12
+ questionsCreateFunctionSelectTemplate,
13
+ questionsCreateSite,
14
+ questionsCreateBucket,
15
+ questionsCreateMessagingTopic,
16
+ questionsCreateCollection,
17
+ questionsCreateTable,
18
+ questionsInitProject,
19
+ questionsInitProjectAutopull,
20
+ questionsInitResources,
21
+ questionsCreateTeam,
22
+ } from "../questions.js";
23
+ import {
24
+ cliConfig,
25
+ success,
26
+ log,
27
+ hint,
28
+ error,
29
+ actionRunner,
30
+ commandDescriptions,
31
+ } from "../parser.js";
32
+ import { sdkForConsole } from "../sdks.js";
33
+ import { isCloud } from "../utils.js";
34
+ import { Account } from "@appwrite.io/console";
32
35
 
33
36
  const initResources = async (): Promise<void> => {
34
- const actions: Record<string, (options?: any) => Promise<void>> = {
35
- function: initFunction,
36
- site: initSite,
37
- table: initTable,
38
- bucket: initBucket,
39
- team: initTeam,
40
- message: initTopic,
41
- collection: initCollection
42
- }
43
-
44
- const answers = await inquirer.prompt(questionsInitResources[0]);
45
-
46
- const action = actions[answers.resource];
47
- if (action !== undefined) {
48
- await action({ returnOnZero: true });
49
- }
37
+ const actions: Record<string, (options?: any) => Promise<void>> = {
38
+ function: initFunction,
39
+ site: initSite,
40
+ table: initTable,
41
+ bucket: initBucket,
42
+ team: initTeam,
43
+ message: initTopic,
44
+ collection: initCollection,
45
+ };
46
+
47
+ const answers = await inquirer.prompt([questionsInitResources[0]]);
48
+
49
+ const action = actions[answers.resource];
50
+ if (action !== undefined) {
51
+ await action({ returnOnZero: true });
52
+ }
50
53
  };
51
54
 
52
55
  interface InitProjectOptions {
53
- organizationId?: string;
54
- projectId?: string;
55
- projectName?: string;
56
+ organizationId?: string;
57
+ projectId?: string;
58
+ projectName?: string;
56
59
  }
57
60
 
58
- const initProject = async ({ organizationId, projectId, projectName }: InitProjectOptions = {}): Promise<void> => {
59
- let response: any = {};
61
+ const initProject = async ({
62
+ organizationId,
63
+ projectId,
64
+ projectName,
65
+ }: InitProjectOptions = {}): Promise<void> => {
66
+ let response: any = {};
60
67
 
61
- try {
62
- if (globalConfig.getEndpoint() === '' || globalConfig.getCookie() === '') {
63
- throw '';
64
- }
65
- const client = await sdkForConsole();
66
-
67
- await accountGet({
68
- parseOutput: false,
69
- sdk: client
70
- });
71
- } catch (e) {
72
- error("Error Session not found. Please run 'appwrite login' to create a session");
73
- process.exit(1);
68
+ try {
69
+ if (globalConfig.getEndpoint() === "" || globalConfig.getCookie() === "") {
70
+ throw "";
74
71
  }
75
-
76
- let answers: any = {};
77
-
78
- if (!organizationId && !projectId && !projectName) {
79
- answers = await inquirer.prompt(questionsInitProject)
80
- if (answers.override === false) {
81
- process.exit(1)
82
- }
83
- } else {
84
- answers.start = 'existing';
85
- answers.project = {};
86
- answers.organization = {};
87
-
88
- answers.organization = organizationId ?? (await inquirer.prompt(questionsInitProject[2])).organization;
89
- answers.project.name = projectName ?? (await inquirer.prompt(questionsInitProject[3])).project;
90
- answers.project = projectId ?? (await inquirer.prompt(questionsInitProject[4])).id;
91
-
92
- try {
93
- await projectsGet({ projectId, parseOutput: false });
94
- } catch (e: any) {
95
- if (e.code === 404) {
96
- answers.start = 'new';
97
- answers.id = answers.project;
98
- answers.project = answers.project.name;
99
- } else {
100
- throw e;
101
- }
102
- }
72
+ const client = await sdkForConsole();
73
+ const accountClient = new Account(client);
74
+
75
+ await accountClient.get();
76
+ } catch (e) {
77
+ error(
78
+ "Error Session not found. Please run 'appwrite login' to create a session",
79
+ );
80
+ process.exit(1);
81
+ }
82
+
83
+ let answers: any = {};
84
+
85
+ if (!organizationId && !projectId && !projectName) {
86
+ answers = await inquirer.prompt(questionsInitProject);
87
+ if (answers.override === false) {
88
+ process.exit(1);
103
89
  }
90
+ } else {
91
+ answers.start = "existing";
92
+ answers.project = {};
93
+ answers.organization = {};
94
+
95
+ answers.organization =
96
+ organizationId ??
97
+ (await inquirer.prompt([questionsInitProject[2]])).organization;
98
+ answers.project.name =
99
+ projectName ?? (await inquirer.prompt([questionsInitProject[3]])).project;
100
+ answers.project =
101
+ projectId ?? (await inquirer.prompt([questionsInitProject[4]])).id;
104
102
 
105
- localConfig.clear(); // Clear the config to avoid any conflicts
106
- const url = new URL("https://cloud.appwrite.io/v1");
107
-
108
- if (answers.start === 'new') {
109
- response = await projectsCreate({
110
- projectId: answers.id,
111
- name: answers.project,
112
- teamId: answers.organization,
113
- parseOutput: false
114
- })
115
-
116
- localConfig.setProject(response['$id']);
117
- if (answers.region) {
118
- localConfig.setEndpoint(`https://${answers.region}.${url.host}${url.pathname}`);
119
- }
120
- } else {
121
- localConfig.setProject(answers.project["$id"]);
122
- if(isCloud()) {
123
- localConfig.setEndpoint(`https://${answers.project["region"]}.${url.host}${url.pathname}`);
124
- }
103
+ try {
104
+ const projectsService = await getProjectsService();
105
+ await projectsService.get(projectId);
106
+ } catch (e: any) {
107
+ if (e.code === 404) {
108
+ answers.start = "new";
109
+ answers.id = answers.project;
110
+ answers.project = answers.project.name;
111
+ } else {
112
+ throw e;
113
+ }
125
114
  }
126
-
127
- success(`Project successfully ${answers.start === 'existing' ? 'linked' : 'created'}. Details are now stored in appwrite.config.json file.`);
128
-
129
- if(answers.start === 'existing') {
130
- answers = await inquirer.prompt(questionsInitProjectAutopull);
131
- if(answers.autopull) {
132
- cliConfig.all = true;
133
- cliConfig.force = true;
134
- await pullResources({
135
- skipDeprecated: true
136
- });
137
- } else {
138
- log("You can run 'appwrite pull all' to synchronize all of your existing resources.");
139
- }
115
+ }
116
+
117
+ localConfig.clear(); // Clear the config to avoid any conflicts
118
+ const url = new URL("https://cloud.appwrite.io/v1");
119
+
120
+ if (answers.start === "new") {
121
+ const projectsService = await getProjectsService();
122
+ response = await projectsService.create(
123
+ answers.id,
124
+ answers.project,
125
+ answers.organization,
126
+ answers.region,
127
+ );
128
+
129
+ localConfig.setProject(response["$id"]);
130
+ if (answers.region) {
131
+ localConfig.setEndpoint(
132
+ `https://${answers.region}.${url.host}${url.pathname}`,
133
+ );
140
134
  }
135
+ } else {
136
+ localConfig.setProject(answers.project["$id"]);
137
+ if (isCloud()) {
138
+ localConfig.setEndpoint(
139
+ `https://${answers.project["region"]}.${url.host}${url.pathname}`,
140
+ );
141
+ }
142
+ }
143
+
144
+ success(
145
+ `Project successfully ${answers.start === "existing" ? "linked" : "created"}. Details are now stored in appwrite.config.json file.`,
146
+ );
147
+
148
+ if (answers.start === "existing") {
149
+ answers = await inquirer.prompt(questionsInitProjectAutopull);
150
+ if (answers.autopull) {
151
+ cliConfig.all = true;
152
+ cliConfig.force = true;
153
+ await pullResources({
154
+ skipDeprecated: true,
155
+ });
156
+ } else {
157
+ log(
158
+ "You can run 'appwrite pull all' to synchronize all of your existing resources.",
159
+ );
160
+ }
161
+ }
141
162
 
142
- hint("Next you can use 'appwrite init' to create resources in your project, or use 'appwrite pull' and 'appwrite push' to synchronize your project.")
143
- }
163
+ hint(
164
+ "Next you can use 'appwrite init' to create resources in your project, or use 'appwrite pull' and 'appwrite push' to synchronize your project.",
165
+ );
166
+ };
144
167
 
145
168
  const initBucket = async (): Promise<void> => {
146
- const answers = await inquirer.prompt(questionsCreateBucket)
147
-
148
- localConfig.addBucket({
149
- $id: answers.id === 'unique()' ? ID.unique() : answers.id,
150
- name: answers.bucket,
151
- fileSecurity: answers.fileSecurity.toLowerCase() === 'yes',
152
- enabled: true,
153
- });
154
- success("Initialing bucket");
155
- log("Next you can use 'appwrite push bucket' to deploy the changes.");
169
+ const answers = await inquirer.prompt(questionsCreateBucket);
170
+
171
+ localConfig.addBucket({
172
+ $id: answers.id === "unique()" ? ID.unique() : answers.id,
173
+ name: answers.bucket,
174
+ fileSecurity: answers.fileSecurity.toLowerCase() === "yes",
175
+ enabled: true,
176
+ });
177
+ success("Initialing bucket");
178
+ log("Next you can use 'appwrite push bucket' to deploy the changes.");
156
179
  };
157
180
 
158
181
  const initTeam = async (): Promise<void> => {
159
- const answers = await inquirer.prompt(questionsCreateTeam)
182
+ const answers = await inquirer.prompt(questionsCreateTeam);
160
183
 
161
- localConfig.addTeam({
162
- $id: answers.id === 'unique()' ? ID.unique() : answers.id,
163
- name: answers.bucket,
164
- });
184
+ localConfig.addTeam({
185
+ $id: answers.id === "unique()" ? ID.unique() : answers.id,
186
+ name: answers.bucket,
187
+ });
165
188
 
166
- success("Initialing team");
167
- log("Next you can use 'appwrite push team' to deploy the changes.");
189
+ success("Initialing team");
190
+ log("Next you can use 'appwrite push team' to deploy the changes.");
168
191
  };
169
192
 
170
193
  const initTable = async (): Promise<void> => {
171
- const answers = await inquirer.prompt(questionsCreateTable)
172
- const newDatabase = (answers.method ?? '').toLowerCase() !== 'existing';
173
-
174
- if (!newDatabase) {
175
- answers.databaseId = answers.database;
176
- answers.databaseName = localConfig.getTablesDB(answers.database).name;
177
- }
178
-
179
- const databaseId = answers.databaseId === 'unique()' ? ID.unique() : answers.databaseId;
180
-
181
- if (newDatabase || !localConfig.getTablesDB(answers.databaseId)) {
182
- localConfig.addTablesDB({
183
- $id: databaseId,
184
- name: answers.databaseName,
185
- enabled: true
186
- });
187
- }
188
-
189
- localConfig.addTable({
190
- $id: answers.id === 'unique()' ? ID.unique() : answers.id,
191
- $permissions: [],
192
- databaseId: databaseId,
193
- name: answers.table,
194
- enabled: true,
195
- rowSecurity: answers.rowSecurity.toLowerCase() === 'yes',
196
- columns: [],
197
- indexes: [],
194
+ const answers = await inquirer.prompt(questionsCreateTable);
195
+ const newDatabase = (answers.method ?? "").toLowerCase() !== "existing";
196
+
197
+ if (!newDatabase) {
198
+ answers.databaseId = answers.database;
199
+ answers.databaseName = localConfig.getTablesDB(answers.database).name;
200
+ }
201
+
202
+ const databaseId =
203
+ answers.databaseId === "unique()" ? ID.unique() : answers.databaseId;
204
+
205
+ if (newDatabase || !localConfig.getTablesDB(answers.databaseId)) {
206
+ localConfig.addTablesDB({
207
+ $id: databaseId,
208
+ name: answers.databaseName,
209
+ enabled: true,
198
210
  });
199
-
200
- success("Initialing table");
201
- log("Next you can use 'appwrite push table' to deploy the changes.");
211
+ }
212
+
213
+ localConfig.addTable({
214
+ $id: answers.id === "unique()" ? ID.unique() : answers.id,
215
+ $permissions: [],
216
+ databaseId: databaseId,
217
+ name: answers.table,
218
+ enabled: true,
219
+ rowSecurity: answers.rowSecurity.toLowerCase() === "yes",
220
+ columns: [],
221
+ indexes: [],
222
+ });
223
+
224
+ success("Initialing table");
225
+ log("Next you can use 'appwrite push table' to deploy the changes.");
202
226
  };
203
227
 
204
228
  const initCollection = async (): Promise<void> => {
205
- const answers = await inquirer.prompt(questionsCreateCollection)
206
- const newDatabase = (answers.method ?? '').toLowerCase() !== 'existing';
207
-
208
- if (!newDatabase) {
209
- answers.databaseId = answers.database;
210
- answers.databaseName = localConfig.getDatabase(answers.database).name;
211
- }
212
-
213
- const databaseId = answers.databaseId === 'unique()' ? ID.unique() : answers.databaseId;
214
-
215
- if (newDatabase || !localConfig.getDatabase(answers.databaseId)) {
216
- localConfig.addDatabase({
217
- $id: databaseId,
218
- name: answers.databaseName,
219
- enabled: true
220
- });
221
- }
222
-
223
- localConfig.addCollection({
224
- $id: answers.id === 'unique()' ? ID.unique() : answers.id,
225
- databaseId: databaseId,
226
- name: answers.collection,
227
- documentSecurity: answers.documentSecurity.toLowerCase() === 'yes',
228
- attributes: [],
229
- indexes: [],
230
- enabled: true,
229
+ const answers = await inquirer.prompt(questionsCreateCollection);
230
+ const newDatabase = (answers.method ?? "").toLowerCase() !== "existing";
231
+
232
+ if (!newDatabase) {
233
+ answers.databaseId = answers.database;
234
+ answers.databaseName = localConfig.getDatabase(answers.database).name;
235
+ }
236
+
237
+ const databaseId =
238
+ answers.databaseId === "unique()" ? ID.unique() : answers.databaseId;
239
+
240
+ if (newDatabase || !localConfig.getDatabase(answers.databaseId)) {
241
+ localConfig.addDatabase({
242
+ $id: databaseId,
243
+ name: answers.databaseName,
244
+ enabled: true,
231
245
  });
232
-
233
- success("Initialing collection");
234
- log("Next you can use 'appwrite push collection' to deploy the changes.");
246
+ }
247
+
248
+ localConfig.addCollection({
249
+ $id: answers.id === "unique()" ? ID.unique() : answers.id,
250
+ databaseId: databaseId,
251
+ name: answers.collection,
252
+ documentSecurity: answers.documentSecurity.toLowerCase() === "yes",
253
+ attributes: [],
254
+ indexes: [],
255
+ enabled: true,
256
+ });
257
+
258
+ success("Initialing collection");
259
+ log("Next you can use 'appwrite push collection' to deploy the changes.");
235
260
  };
236
261
 
237
262
  const initTopic = async (): Promise<void> => {
238
- const answers = await inquirer.prompt(questionsCreateMessagingTopic)
239
-
240
- localConfig.addMessagingTopic({
241
- $id: answers.id === 'unique()' ? ID.unique() : answers.id,
242
- name: answers.topic,
263
+ const answers = await inquirer.prompt(questionsCreateMessagingTopic);
243
264
 
244
- });
265
+ localConfig.addMessagingTopic({
266
+ $id: answers.id === "unique()" ? ID.unique() : answers.id,
267
+ name: answers.topic,
268
+ });
245
269
 
246
- success("Initialing topic");
247
- log("Next you can use 'appwrite push topic' to deploy the changes.");
270
+ success("Initialing topic");
271
+ log("Next you can use 'appwrite push topic' to deploy the changes.");
248
272
  };
249
273
 
250
274
  const initFunction = async (): Promise<void> => {
251
- process.chdir(localConfig.configDirectoryPath)
252
-
253
- // TODO: Add CI/CD support (ID, name, runtime)
254
- const answers = await inquirer.prompt(questionsCreateFunction)
255
- const functionFolder = path.join(process.cwd(), 'functions');
256
-
257
- if (!fs.existsSync(functionFolder)) {
258
- fs.mkdirSync(functionFolder, {
259
- recursive: true
260
- });
261
- }
262
-
263
- const functionId = answers.id === 'unique()' ? ID.unique() : answers.id;
264
- const functionName = answers.name;
265
- const functionDir = path.join(functionFolder, functionName);
266
- const templatesDir = path.join(functionFolder, `${functionId}-templates`);
267
- const runtimeDir = path.join(templatesDir, answers.runtime.name);
268
-
269
- if (fs.existsSync(functionDir)) {
270
- throw new Error(`( ${functionName} ) already exists in the current directory. Please choose another name.`);
271
- }
272
-
273
- if (!answers.runtime.entrypoint) {
274
- log(`Entrypoint for this runtime not found. You will be asked to configure entrypoint when you first push the function.`);
275
- }
276
-
277
- if (!answers.runtime.commands) {
278
- log(`Installation command for this runtime not found. You will be asked to configure the install command when you first push the function.`);
279
- }
280
-
281
- fs.mkdirSync(functionDir, { mode: 0o777 });
282
- fs.mkdirSync(templatesDir, { mode: 0o777 });
283
- const repo = "https://github.com/appwrite/templates";
284
- const api = `https://api.github.com/repos/appwrite/templates/contents/${answers.runtime.name}`
285
- let selected: { template: string } = { template: 'starter' };
275
+ process.chdir(localConfig.configDirectoryPath);
286
276
 
287
- const sparse = (selected ? `${answers.runtime.name}/${selected.template}` : answers.runtime.name).toLowerCase();
277
+ // TODO: Add CI/CD support (ID, name, runtime)
278
+ const answers = await inquirer.prompt(questionsCreateFunction);
279
+ const functionFolder = path.join(process.cwd(), "functions");
288
280
 
289
- let gitInitCommands = `git clone --single-branch --depth 1 --sparse ${repo} .`; // depth prevents fetching older commits reducing the amount fetched
290
-
291
- let gitPullCommands = `git sparse-checkout add ${sparse}`;
292
-
293
- /* Force use CMD as powershell does not support && */
294
- if (process.platform === 'win32') {
295
- gitInitCommands = 'cmd /c "' + gitInitCommands + '"';
296
- gitPullCommands = 'cmd /c "' + gitPullCommands + '"';
281
+ if (!fs.existsSync(functionFolder)) {
282
+ fs.mkdirSync(functionFolder, {
283
+ recursive: true,
284
+ });
285
+ }
286
+
287
+ const functionId = answers.id === "unique()" ? ID.unique() : answers.id;
288
+ const functionName = answers.name;
289
+ const functionDir = path.join(functionFolder, functionName);
290
+ const templatesDir = path.join(functionFolder, `${functionId}-templates`);
291
+ const runtimeDir = path.join(templatesDir, answers.runtime.name);
292
+
293
+ if (fs.existsSync(functionDir)) {
294
+ throw new Error(
295
+ `( ${functionName} ) already exists in the current directory. Please choose another name.`,
296
+ );
297
+ }
298
+
299
+ if (!answers.runtime.entrypoint) {
300
+ log(
301
+ `Entrypoint for this runtime not found. You will be asked to configure entrypoint when you first push the function.`,
302
+ );
303
+ }
304
+
305
+ if (!answers.runtime.commands) {
306
+ log(
307
+ `Installation command for this runtime not found. You will be asked to configure the install command when you first push the function.`,
308
+ );
309
+ }
310
+
311
+ fs.mkdirSync(functionDir, { mode: 0o777 });
312
+ fs.mkdirSync(templatesDir, { mode: 0o777 });
313
+ const repo = "https://github.com/appwrite/templates";
314
+ const api = `https://api.github.com/repos/appwrite/templates/contents/${answers.runtime.name}`;
315
+ let selected: { template: string } = { template: "starter" };
316
+
317
+ const sparse = (
318
+ selected
319
+ ? `${answers.runtime.name}/${selected.template}`
320
+ : answers.runtime.name
321
+ ).toLowerCase();
322
+
323
+ let gitInitCommands = `git clone --single-branch --depth 1 --sparse ${repo} .`; // depth prevents fetching older commits reducing the amount fetched
324
+
325
+ let gitPullCommands = `git sparse-checkout add ${sparse}`;
326
+
327
+ /* Force use CMD as powershell does not support && */
328
+ if (process.platform === "win32") {
329
+ gitInitCommands = 'cmd /c "' + gitInitCommands + '"';
330
+ gitPullCommands = 'cmd /c "' + gitPullCommands + '"';
331
+ }
332
+
333
+ /* Execute the child process but do not print any std output */
334
+ try {
335
+ childProcess.execSync(gitInitCommands, {
336
+ stdio: "pipe",
337
+ cwd: templatesDir,
338
+ });
339
+ childProcess.execSync(gitPullCommands, {
340
+ stdio: "pipe",
341
+ cwd: templatesDir,
342
+ });
343
+ } catch (err: any) {
344
+ /* Specialised errors with recommended actions to take */
345
+ if (err.message.includes("error: unknown option")) {
346
+ throw new Error(
347
+ `${err.message} \n\nSuggestion: Try updating your git to the latest version, then trying to run this command again.`,
348
+ );
349
+ } else if (
350
+ err.message.includes(
351
+ "is not recognized as an internal or external command,",
352
+ ) ||
353
+ err.message.includes("command not found")
354
+ ) {
355
+ throw new Error(
356
+ `${err.message} \n\nSuggestion: It appears that git is not installed, try installing git then trying to run this command again.`,
357
+ );
358
+ } else {
359
+ throw err;
297
360
  }
298
-
299
- /* Execute the child process but do not print any std output */
300
- try {
301
- childProcess.execSync(gitInitCommands, { stdio: 'pipe', cwd: templatesDir });
302
- childProcess.execSync(gitPullCommands, { stdio: 'pipe', cwd: templatesDir });
303
- } catch (err: any) {
304
- /* Specialised errors with recommended actions to take */
305
- if (err.message.includes('error: unknown option')) {
306
- throw new Error(`${err.message} \n\nSuggestion: Try updating your git to the latest version, then trying to run this command again.`)
307
- } else if (err.message.includes('is not recognized as an internal or external command,') || err.message.includes('command not found')) {
308
- throw new Error(`${err.message} \n\nSuggestion: It appears that git is not installed, try installing git then trying to run this command again.`)
309
- } else {
310
- throw err;
311
- }
361
+ }
362
+
363
+ fs.rmSync(path.join(templatesDir, ".git"), { recursive: true });
364
+ if (!selected) {
365
+ const templates: string[] = [];
366
+ templates.push(
367
+ ...fs
368
+ .readdirSync(runtimeDir, { withFileTypes: true })
369
+ .filter((item) => item.isDirectory() && item.name !== "starter")
370
+ .map((dirent) => dirent.name),
371
+ );
372
+ selected = { template: "starter" };
373
+
374
+ if (templates.length > 1) {
375
+ selected = await inquirer.prompt(
376
+ questionsCreateFunctionSelectTemplate(templates),
377
+ );
312
378
  }
313
-
314
- fs.rmSync(path.join(templatesDir, ".git"), { recursive: true });
315
- if (!selected) {
316
- const templates: string[] = [];
317
- templates.push(...fs.readdirSync(runtimeDir, { withFileTypes: true })
318
- .filter(item => item.isDirectory() && item.name !== 'starter')
319
- .map(dirent => dirent.name));
320
- selected = { template: 'starter' };
321
-
322
- if (templates.length > 1) {
323
- selected = await inquirer.prompt(questionsCreateFunctionSelectTemplate(templates))
324
- }
379
+ }
380
+
381
+ const copyRecursiveSync = (src: string, dest: string): void => {
382
+ let exists = fs.existsSync(src);
383
+ let stats = exists && fs.statSync(src);
384
+ let isDirectory = exists && stats && stats.isDirectory();
385
+ if (isDirectory) {
386
+ if (!fs.existsSync(dest)) {
387
+ fs.mkdirSync(dest);
388
+ }
389
+
390
+ fs.readdirSync(src).forEach(function (childItemName) {
391
+ copyRecursiveSync(
392
+ path.join(src, childItemName),
393
+ path.join(dest, childItemName),
394
+ );
395
+ });
396
+ } else {
397
+ fs.copyFileSync(src, dest);
325
398
  }
326
-
327
- const copyRecursiveSync = (src: string, dest: string): void => {
328
- let exists = fs.existsSync(src);
329
- let stats = exists && fs.statSync(src);
330
- let isDirectory = exists && stats && stats.isDirectory();
331
- if (isDirectory) {
332
- if (!fs.existsSync(dest)) {
333
- fs.mkdirSync(dest);
334
- }
335
-
336
- fs.readdirSync(src).forEach(function (childItemName) {
337
- copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName));
338
- });
339
- } else {
340
- fs.copyFileSync(src, dest);
341
- }
342
- };
343
- copyRecursiveSync(path.join(runtimeDir, selected.template), functionDir);
344
-
345
- fs.rmSync(templatesDir, { recursive: true, force: true });
346
-
347
- const readmePath = path.join(process.cwd(), 'functions', functionName, 'README.md');
348
- const readmeFile = fs.readFileSync(readmePath).toString();
349
- const newReadmeFile = readmeFile.split('\n');
350
- newReadmeFile[0] = `# ${answers.name}`;
351
- newReadmeFile.splice(1, 2);
352
- fs.writeFileSync(readmePath, newReadmeFile.join('\n'));
353
-
354
- let data = {
355
- $id: functionId,
356
- name: answers.name,
357
- runtime: answers.runtime.id,
358
- specification: answers.specification,
359
- execute: ["any"],
360
- events: [],
361
- scopes: ["users.read"],
362
- schedule: "",
363
- timeout: 15,
364
- enabled: true,
365
- logging: true,
366
- entrypoint: answers.runtime.entrypoint || '',
367
- commands: answers.runtime.commands || '',
368
- ignore: answers.runtime.ignore || null,
369
- path: `functions/${functionName}`,
370
- };
371
-
372
- localConfig.addFunction(data);
373
- success("Initialing function");
374
- log("Next you can use 'appwrite run function' to develop a function locally. To deploy the function, use 'appwrite push function'");
375
- }
399
+ };
400
+ copyRecursiveSync(path.join(runtimeDir, selected.template), functionDir);
401
+
402
+ fs.rmSync(templatesDir, { recursive: true, force: true });
403
+
404
+ const readmePath = path.join(
405
+ process.cwd(),
406
+ "functions",
407
+ functionName,
408
+ "README.md",
409
+ );
410
+ const readmeFile = fs.readFileSync(readmePath).toString();
411
+ const newReadmeFile = readmeFile.split("\n");
412
+ newReadmeFile[0] = `# ${answers.name}`;
413
+ newReadmeFile.splice(1, 2);
414
+ fs.writeFileSync(readmePath, newReadmeFile.join("\n"));
415
+
416
+ let data = {
417
+ $id: functionId,
418
+ name: answers.name,
419
+ runtime: answers.runtime.id,
420
+ specification: answers.specification,
421
+ execute: ["any"],
422
+ events: [],
423
+ scopes: ["users.read"],
424
+ schedule: "",
425
+ timeout: 15,
426
+ enabled: true,
427
+ logging: true,
428
+ entrypoint: answers.runtime.entrypoint || "",
429
+ commands: answers.runtime.commands || "",
430
+ ignore: answers.runtime.ignore || null,
431
+ path: `functions/${functionName}`,
432
+ };
433
+
434
+ localConfig.addFunction(data);
435
+ success("Initialing function");
436
+ log(
437
+ "Next you can use 'appwrite run function' to develop a function locally. To deploy the function, use 'appwrite push function'",
438
+ );
439
+ };
376
440
 
377
441
  const initSite = async (): Promise<void> => {
378
- process.chdir(localConfig.configDirectoryPath)
379
-
380
- const answers = await inquirer.prompt(questionsCreateSite);
381
- const siteFolder = path.join(process.cwd(), 'sites');
382
-
383
- if (!fs.existsSync(siteFolder)) {
384
- fs.mkdirSync(siteFolder, {
385
- recursive: true
386
- });
387
- }
388
-
389
- const siteId = answers.id === 'unique()' ? ID.unique() : answers.id;
390
- const siteName = answers.name;
391
- const siteDir = path.join(siteFolder, siteName);
392
- const templatesDir = path.join(siteFolder, `${siteId}-templates`);
442
+ process.chdir(localConfig.configDirectoryPath);
393
443
 
394
- if (fs.existsSync(siteDir)) {
395
- throw new Error(`( ${siteName} ) already exists in the current directory. Please choose another name.`);
396
- }
444
+ const answers = await inquirer.prompt(questionsCreateSite);
445
+ const siteFolder = path.join(process.cwd(), "sites");
397
446
 
398
- let templateDetails: any;
399
- try {
400
- const response = await sitesListTemplates({
401
- frameworks: [answers.framework.key],
402
- useCases: ['starter'],
403
- limit: 1,
404
- parseOutput: false
405
- });
406
- if (response.total == 0) {
407
- throw new Error(`No starter template found for framework ${answers.framework.key}`);
408
- }
409
- templateDetails = response.templates[0];
410
- } catch (err: any) {
411
- throw new Error(`Failed to fetch template for framework ${answers.framework.key}: ${err.message}`);
447
+ if (!fs.existsSync(siteFolder)) {
448
+ fs.mkdirSync(siteFolder, {
449
+ recursive: true,
450
+ });
451
+ }
452
+
453
+ const siteId = answers.id === "unique()" ? ID.unique() : answers.id;
454
+ const siteName = answers.name;
455
+ const siteDir = path.join(siteFolder, siteName);
456
+ const templatesDir = path.join(siteFolder, `${siteId}-templates`);
457
+
458
+ if (fs.existsSync(siteDir)) {
459
+ throw new Error(
460
+ `( ${siteName} ) already exists in the current directory. Please choose another name.`,
461
+ );
462
+ }
463
+
464
+ let templateDetails: any;
465
+ try {
466
+ const sitesService = await getSitesService();
467
+ const response = await sitesService.listTemplates(
468
+ [answers.framework.key],
469
+ ["starter"],
470
+ 1,
471
+ );
472
+ if (response.total == 0) {
473
+ throw new Error(
474
+ `No starter template found for framework ${answers.framework.key}`,
475
+ );
412
476
  }
413
-
414
- fs.mkdirSync(siteDir, { mode: 0o777 });
415
- fs.mkdirSync(templatesDir, { mode: 0o777 });
416
- const repo = `https://github.com/${templateDetails.providerOwner}/${templateDetails.providerRepositoryId}`;
417
- let selected = { template: templateDetails.frameworks[0].providerRootDirectory };
418
-
419
- let gitCloneCommands = '';
420
-
421
- const sparse = selected.template.startsWith('./') ? selected.template.substring(2) : selected.template;
422
-
423
- log('Fetching site code ...');
424
-
425
- if(selected.template === './') {
426
- gitCloneCommands = `
477
+ templateDetails = response.templates[0];
478
+ } catch (err: any) {
479
+ throw new Error(
480
+ `Failed to fetch template for framework ${answers.framework.key}: ${err.message}`,
481
+ );
482
+ }
483
+
484
+ fs.mkdirSync(siteDir, { mode: 0o777 });
485
+ fs.mkdirSync(templatesDir, { mode: 0o777 });
486
+ const repo = `https://github.com/${templateDetails.providerOwner}/${templateDetails.providerRepositoryId}`;
487
+ let selected = {
488
+ template: templateDetails.frameworks[0].providerRootDirectory,
489
+ };
490
+
491
+ let gitCloneCommands = "";
492
+
493
+ const sparse = selected.template.startsWith("./")
494
+ ? selected.template.substring(2)
495
+ : selected.template;
496
+
497
+ log("Fetching site code ...");
498
+
499
+ if (selected.template === "./") {
500
+ gitCloneCommands = `
427
501
  mkdir -p .
428
502
  cd .
429
503
  git init
@@ -432,8 +506,8 @@ const initSite = async (): Promise<void> => {
432
506
  git fetch --depth=1 origin refs/tags/$(git ls-remote --tags origin "${templateDetails.providerVersion}" | tail -n 1 | awk -F '/' '{print $3}')
433
507
  git checkout FETCH_HEAD
434
508
  `.trim();
435
- } else {
436
- gitCloneCommands = `
509
+ } else {
510
+ gitCloneCommands = `
437
511
  mkdir -p .
438
512
  cd .
439
513
  git init
@@ -446,167 +520,194 @@ const initSite = async (): Promise<void> => {
446
520
  git fetch --depth=1 origin refs/tags/$(git ls-remote --tags origin "${templateDetails.providerVersion}" | tail -n 1 | awk -F '/' '{print $3}')
447
521
  git checkout FETCH_HEAD
448
522
  `.trim();
449
- }
450
-
451
- /* Force use CMD as powershell does not support && */
452
- if (process.platform === 'win32') {
453
- gitCloneCommands = 'cmd /c "' + gitCloneCommands + '"';
454
- }
455
-
456
- /* Execute the child process but do not print any std output */
457
- try {
458
- childProcess.execSync(gitCloneCommands, { stdio: 'pipe', cwd: templatesDir });
459
- } catch (err: any) {
460
- /* Specialised errors with recommended actions to take */
461
- if (err.message.includes('error: unknown option')) {
462
- throw new Error(`${err.message} \n\nSuggestion: Try updating your git to the latest version, then trying to run this command again.`)
463
- } else if (err.message.includes('is not recognized as an internal or external command,') || err.message.includes('command not found')) {
464
- throw new Error(`${err.message} \n\nSuggestion: It appears that git is not installed, try installing git then trying to run this command again.`)
465
- } else {
466
- throw err;
467
- }
468
- }
469
-
470
- fs.rmSync(path.join(templatesDir, ".git"), { recursive: true });
471
-
472
- const copyRecursiveSync = (src: string, dest: string): void => {
473
- let exists = fs.existsSync(src);
474
- let stats = exists && fs.statSync(src);
475
- let isDirectory = exists && stats && stats.isDirectory();
476
- if (isDirectory) {
477
- if (!fs.existsSync(dest)) {
478
- fs.mkdirSync(dest);
479
- }
480
-
481
- fs.readdirSync(src).forEach(function (childItemName) {
482
- copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName));
483
- });
484
- } else {
485
- fs.copyFileSync(src, dest);
486
- }
487
- };
488
- copyRecursiveSync(selected.template === './' ? templatesDir : path.join(templatesDir, selected.template), siteDir);
489
-
490
- fs.rmSync(templatesDir, { recursive: true, force: true });
491
-
492
- const readmePath = path.join(process.cwd(), 'sites', siteName, 'README.md');
493
- const readmeFile = fs.readFileSync(readmePath).toString();
494
- const newReadmeFile = readmeFile.split('\n');
495
- newReadmeFile[0] = `# ${answers.key}`;
496
- newReadmeFile.splice(1, 2);
497
- fs.writeFileSync(readmePath, newReadmeFile.join('\n'));
498
-
499
- let vars = (templateDetails.variables ?? []).map((variable: any) => {
500
- let value = variable.value;
501
- const replacements: Record<string, string> = {
502
- '{apiEndpoint}': globalConfig.getEndpoint(),
503
- '{projectId}': localConfig.getProject().projectId,
504
- '{projectName}': localConfig.getProject().projectName,
505
- };
506
-
507
- for (const placeholder in replacements) {
508
- if (value?.includes(placeholder)) {
509
- value = value.replace(placeholder, replacements[placeholder]);
510
- }
511
- }
512
-
513
- return {
514
- key: variable.name,
515
- value: value
516
- };
523
+ }
524
+
525
+ /* Force use CMD as powershell does not support && */
526
+ if (process.platform === "win32") {
527
+ gitCloneCommands = 'cmd /c "' + gitCloneCommands + '"';
528
+ }
529
+
530
+ /* Execute the child process but do not print any std output */
531
+ try {
532
+ childProcess.execSync(gitCloneCommands, {
533
+ stdio: "pipe",
534
+ cwd: templatesDir,
517
535
  });
518
-
519
- let data = {
520
- $id: siteId,
521
- name: answers.name,
522
- framework: answers.framework.key,
523
- adapter: templateDetails.frameworks[0].adapter || '',
524
- buildRuntime: templateDetails.frameworks[0].buildRuntime || '',
525
- installCommand: templateDetails.frameworks[0].installCommand || '',
526
- buildCommand: templateDetails.frameworks[0].buildCommand || '',
527
- outputDirectory: templateDetails.frameworks[0].outputDirectory || '',
528
- fallbackFile: templateDetails.frameworks[0].fallbackFile || '',
529
- specification: answers.specification,
530
- enabled: true,
531
- timeout: 30,
532
- logging: true,
533
- ignore: answers.framework.ignore || null,
534
- path: `sites/${siteName}`,
535
- vars: vars
536
- };
537
-
538
- if (!data.buildRuntime) {
539
- log(`Build runtime for this framework not found. You will be asked to configure build runtime when you first push the site.`);
540
- }
541
-
542
- if (!data.installCommand) {
543
- log(`Installation command for this framework not found. You will be asked to configure the install command when you first push the site.`);
536
+ } catch (err: any) {
537
+ /* Specialised errors with recommended actions to take */
538
+ if (err.message.includes("error: unknown option")) {
539
+ throw new Error(
540
+ `${err.message} \n\nSuggestion: Try updating your git to the latest version, then trying to run this command again.`,
541
+ );
542
+ } else if (
543
+ err.message.includes(
544
+ "is not recognized as an internal or external command,",
545
+ ) ||
546
+ err.message.includes("command not found")
547
+ ) {
548
+ throw new Error(
549
+ `${err.message} \n\nSuggestion: It appears that git is not installed, try installing git then trying to run this command again.`,
550
+ );
551
+ } else {
552
+ throw err;
544
553
  }
545
-
546
- if (!data.buildCommand) {
547
- log(`Build command for this framework not found. You will be asked to configure the build command when you first push the site.`);
554
+ }
555
+
556
+ fs.rmSync(path.join(templatesDir, ".git"), { recursive: true });
557
+
558
+ const copyRecursiveSync = (src: string, dest: string): void => {
559
+ let exists = fs.existsSync(src);
560
+ let stats = exists && fs.statSync(src);
561
+ let isDirectory = exists && stats && stats.isDirectory();
562
+ if (isDirectory) {
563
+ if (!fs.existsSync(dest)) {
564
+ fs.mkdirSync(dest);
565
+ }
566
+
567
+ fs.readdirSync(src).forEach(function (childItemName) {
568
+ copyRecursiveSync(
569
+ path.join(src, childItemName),
570
+ path.join(dest, childItemName),
571
+ );
572
+ });
573
+ } else {
574
+ fs.copyFileSync(src, dest);
548
575
  }
576
+ };
577
+ copyRecursiveSync(
578
+ selected.template === "./"
579
+ ? templatesDir
580
+ : path.join(templatesDir, selected.template),
581
+ siteDir,
582
+ );
583
+
584
+ fs.rmSync(templatesDir, { recursive: true, force: true });
585
+
586
+ const readmePath = path.join(process.cwd(), "sites", siteName, "README.md");
587
+ const readmeFile = fs.readFileSync(readmePath).toString();
588
+ const newReadmeFile = readmeFile.split("\n");
589
+ newReadmeFile[0] = `# ${answers.key}`;
590
+ newReadmeFile.splice(1, 2);
591
+ fs.writeFileSync(readmePath, newReadmeFile.join("\n"));
592
+
593
+ let vars = (templateDetails.variables ?? []).map((variable: any) => {
594
+ let value = variable.value;
595
+ const replacements: Record<string, string> = {
596
+ "{apiEndpoint}": globalConfig.getEndpoint(),
597
+ "{projectId}": localConfig.getProject().projectId,
598
+ "{projectName}": localConfig.getProject().projectName,
599
+ };
549
600
 
550
- if (!data.outputDirectory) {
551
- log(`Output directory for this framework not found. You will be asked to configure the output directory when you first push the site.`);
601
+ for (const placeholder in replacements) {
602
+ if (value?.includes(placeholder)) {
603
+ value = value.replace(placeholder, replacements[placeholder]);
604
+ }
552
605
  }
553
606
 
554
- localConfig.addSite(data);
555
- success("Initializing site");
556
- log("Next you can use 'appwrite push site' to deploy the changes.");
607
+ return {
608
+ key: variable.name,
609
+ value: value,
610
+ };
611
+ });
612
+
613
+ let data = {
614
+ $id: siteId,
615
+ name: answers.name,
616
+ framework: answers.framework.key,
617
+ adapter: templateDetails.frameworks[0].adapter || "",
618
+ buildRuntime: templateDetails.frameworks[0].buildRuntime || "",
619
+ installCommand: templateDetails.frameworks[0].installCommand || "",
620
+ buildCommand: templateDetails.frameworks[0].buildCommand || "",
621
+ outputDirectory: templateDetails.frameworks[0].outputDirectory || "",
622
+ fallbackFile: templateDetails.frameworks[0].fallbackFile || "",
623
+ specification: answers.specification,
624
+ enabled: true,
625
+ timeout: 30,
626
+ logging: true,
627
+ ignore: answers.framework.ignore || null,
628
+ path: `sites/${siteName}`,
629
+ vars: vars,
630
+ };
631
+
632
+ if (!data.buildRuntime) {
633
+ log(
634
+ `Build runtime for this framework not found. You will be asked to configure build runtime when you first push the site.`,
635
+ );
636
+ }
637
+
638
+ if (!data.installCommand) {
639
+ log(
640
+ `Installation command for this framework not found. You will be asked to configure the install command when you first push the site.`,
641
+ );
642
+ }
643
+
644
+ if (!data.buildCommand) {
645
+ log(
646
+ `Build command for this framework not found. You will be asked to configure the build command when you first push the site.`,
647
+ );
648
+ }
649
+
650
+ if (!data.outputDirectory) {
651
+ log(
652
+ `Output directory for this framework not found. You will be asked to configure the output directory when you first push the site.`,
653
+ );
654
+ }
655
+
656
+ localConfig.addSite(data);
657
+ success("Initializing site");
658
+ log("Next you can use 'appwrite push site' to deploy the changes.");
557
659
  };
558
660
 
559
661
  export const init = new Command("init")
560
- .description(commandDescriptions['init'])
561
- .action(actionRunner(initResources));
662
+ .description(commandDescriptions["init"])
663
+ .action(actionRunner(initResources));
562
664
 
563
665
  init
564
- .command("project")
565
- .description("Init a new Appwrite project")
566
- .option("--organization-id <organization-id>", "Appwrite organization ID")
567
- .option("--project-id <project-id>", "Appwrite project ID")
568
- .option("--project-name <project-name>", "Appwrite project ID")
569
- .action(actionRunner(initProject));
666
+ .command("project")
667
+ .description("Init a new Appwrite project")
668
+ .option("--organization-id <organization-id>", "Appwrite organization ID")
669
+ .option("--project-id <project-id>", "Appwrite project ID")
670
+ .option("--project-name <project-name>", "Appwrite project ID")
671
+ .action(actionRunner(initProject));
570
672
 
571
673
  init
572
- .command("function")
573
- .alias("functions")
574
- .description("Init a new Appwrite function")
575
- .action(actionRunner(initFunction));
674
+ .command("function")
675
+ .alias("functions")
676
+ .description("Init a new Appwrite function")
677
+ .action(actionRunner(initFunction));
576
678
 
577
679
  init
578
- .command("site")
579
- .alias("sites")
580
- .description("Init a new Appwrite site")
581
- .action(actionRunner(initSite));
680
+ .command("site")
681
+ .alias("sites")
682
+ .description("Init a new Appwrite site")
683
+ .action(actionRunner(initSite));
582
684
 
583
685
  init
584
- .command("bucket")
585
- .alias("buckets")
586
- .description("Init a new Appwrite bucket")
587
- .action(actionRunner(initBucket));
686
+ .command("bucket")
687
+ .alias("buckets")
688
+ .description("Init a new Appwrite bucket")
689
+ .action(actionRunner(initBucket));
588
690
 
589
691
  init
590
- .command("team")
591
- .alias("teams")
592
- .description("Init a new Appwrite team")
593
- .action(actionRunner(initTeam));
692
+ .command("team")
693
+ .alias("teams")
694
+ .description("Init a new Appwrite team")
695
+ .action(actionRunner(initTeam));
594
696
 
595
697
  init
596
- .command("collection")
597
- .alias("collections")
598
- .description("Init a new Appwrite collection")
599
- .action(actionRunner(initCollection));
698
+ .command("collection")
699
+ .alias("collections")
700
+ .description("Init a new Appwrite collection")
701
+ .action(actionRunner(initCollection));
600
702
 
601
703
  init
602
- .command("table")
603
- .alias("tables")
604
- .description("Init a new Appwrite table")
605
- .action(actionRunner(initTable));
704
+ .command("table")
705
+ .alias("tables")
706
+ .description("Init a new Appwrite table")
707
+ .action(actionRunner(initTable));
606
708
 
607
709
  init
608
- .command("topic")
609
- .alias("topics")
610
- .description("Init a new Appwrite topic")
611
- .action(actionRunner(initTopic));
612
-
710
+ .command("topic")
711
+ .alias("topics")
712
+ .description("Init a new Appwrite topic")
713
+ .action(actionRunner(initTopic));