chirag-appwrite-cli 0.1.0

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 (491) hide show
  1. package/.github/workflows/npm-publish.yml +49 -0
  2. package/CHANGELOG.md +1 -0
  3. package/Formula/appwrite.rb +19 -0
  4. package/LICENSE.md +1 -0
  5. package/README.md +104 -0
  6. package/appwrite.json +164 -0
  7. package/docs/examples/account/create-anonymous-session.md +1 -0
  8. package/docs/examples/account/create-email-password-session.md +3 -0
  9. package/docs/examples/account/create-email-token.md +4 -0
  10. package/docs/examples/account/create-j-w-t.md +1 -0
  11. package/docs/examples/account/create-magic-u-r-l-token.md +5 -0
  12. package/docs/examples/account/create-mfa-authenticator.md +2 -0
  13. package/docs/examples/account/create-mfa-challenge.md +2 -0
  14. package/docs/examples/account/create-mfa-recovery-codes.md +1 -0
  15. package/docs/examples/account/create-o-auth2session.md +5 -0
  16. package/docs/examples/account/create-o-auth2token.md +5 -0
  17. package/docs/examples/account/create-phone-token.md +3 -0
  18. package/docs/examples/account/create-phone-verification.md +1 -0
  19. package/docs/examples/account/create-push-target.md +4 -0
  20. package/docs/examples/account/create-recovery.md +3 -0
  21. package/docs/examples/account/create-session.md +3 -0
  22. package/docs/examples/account/create-verification.md +2 -0
  23. package/docs/examples/account/create.md +5 -0
  24. package/docs/examples/account/delete-identity.md +2 -0
  25. package/docs/examples/account/delete-mfa-authenticator.md +2 -0
  26. package/docs/examples/account/delete-push-target.md +2 -0
  27. package/docs/examples/account/delete-session.md +2 -0
  28. package/docs/examples/account/delete-sessions.md +1 -0
  29. package/docs/examples/account/delete.md +1 -0
  30. package/docs/examples/account/get-mfa-recovery-codes.md +1 -0
  31. package/docs/examples/account/get-prefs.md +1 -0
  32. package/docs/examples/account/get-session.md +2 -0
  33. package/docs/examples/account/get.md +1 -0
  34. package/docs/examples/account/list-identities.md +2 -0
  35. package/docs/examples/account/list-logs.md +2 -0
  36. package/docs/examples/account/list-mfa-factors.md +1 -0
  37. package/docs/examples/account/list-sessions.md +1 -0
  38. package/docs/examples/account/update-email.md +3 -0
  39. package/docs/examples/account/update-m-f-a.md +2 -0
  40. package/docs/examples/account/update-magic-u-r-l-session.md +3 -0
  41. package/docs/examples/account/update-mfa-authenticator.md +3 -0
  42. package/docs/examples/account/update-mfa-challenge.md +3 -0
  43. package/docs/examples/account/update-mfa-recovery-codes.md +1 -0
  44. package/docs/examples/account/update-name.md +2 -0
  45. package/docs/examples/account/update-password.md +3 -0
  46. package/docs/examples/account/update-phone-session.md +3 -0
  47. package/docs/examples/account/update-phone-verification.md +3 -0
  48. package/docs/examples/account/update-phone.md +3 -0
  49. package/docs/examples/account/update-prefs.md +2 -0
  50. package/docs/examples/account/update-push-target.md +3 -0
  51. package/docs/examples/account/update-recovery.md +4 -0
  52. package/docs/examples/account/update-session.md +2 -0
  53. package/docs/examples/account/update-status.md +1 -0
  54. package/docs/examples/account/update-verification.md +3 -0
  55. package/docs/examples/avatars/get-browser.md +5 -0
  56. package/docs/examples/avatars/get-credit-card.md +5 -0
  57. package/docs/examples/avatars/get-favicon.md +2 -0
  58. package/docs/examples/avatars/get-flag.md +5 -0
  59. package/docs/examples/avatars/get-image.md +4 -0
  60. package/docs/examples/avatars/get-initials.md +5 -0
  61. package/docs/examples/avatars/get-q-r.md +5 -0
  62. package/docs/examples/console/get-resource.md +3 -0
  63. package/docs/examples/console/variables.md +1 -0
  64. package/docs/examples/databases/create-boolean-attribute.md +7 -0
  65. package/docs/examples/databases/create-collection.md +7 -0
  66. package/docs/examples/databases/create-datetime-attribute.md +7 -0
  67. package/docs/examples/databases/create-document.md +6 -0
  68. package/docs/examples/databases/create-documents.md +4 -0
  69. package/docs/examples/databases/create-email-attribute.md +7 -0
  70. package/docs/examples/databases/create-enum-attribute.md +8 -0
  71. package/docs/examples/databases/create-float-attribute.md +9 -0
  72. package/docs/examples/databases/create-index.md +8 -0
  73. package/docs/examples/databases/create-integer-attribute.md +9 -0
  74. package/docs/examples/databases/create-ip-attribute.md +7 -0
  75. package/docs/examples/databases/create-relationship-attribute.md +9 -0
  76. package/docs/examples/databases/create-string-attribute.md +9 -0
  77. package/docs/examples/databases/create-url-attribute.md +7 -0
  78. package/docs/examples/databases/create.md +4 -0
  79. package/docs/examples/databases/decrement-document-attribute.md +7 -0
  80. package/docs/examples/databases/delete-attribute.md +4 -0
  81. package/docs/examples/databases/delete-collection.md +3 -0
  82. package/docs/examples/databases/delete-document.md +4 -0
  83. package/docs/examples/databases/delete-documents.md +4 -0
  84. package/docs/examples/databases/delete-index.md +4 -0
  85. package/docs/examples/databases/delete.md +2 -0
  86. package/docs/examples/databases/get-attribute.md +4 -0
  87. package/docs/examples/databases/get-collection-usage.md +4 -0
  88. package/docs/examples/databases/get-collection.md +3 -0
  89. package/docs/examples/databases/get-database-usage.md +3 -0
  90. package/docs/examples/databases/get-document.md +5 -0
  91. package/docs/examples/databases/get-index.md +4 -0
  92. package/docs/examples/databases/get-usage.md +2 -0
  93. package/docs/examples/databases/get.md +2 -0
  94. package/docs/examples/databases/increment-document-attribute.md +7 -0
  95. package/docs/examples/databases/list-attributes.md +4 -0
  96. package/docs/examples/databases/list-collection-logs.md +4 -0
  97. package/docs/examples/databases/list-collections.md +4 -0
  98. package/docs/examples/databases/list-document-logs.md +5 -0
  99. package/docs/examples/databases/list-documents.md +4 -0
  100. package/docs/examples/databases/list-indexes.md +4 -0
  101. package/docs/examples/databases/list-logs.md +3 -0
  102. package/docs/examples/databases/list.md +3 -0
  103. package/docs/examples/databases/update-boolean-attribute.md +7 -0
  104. package/docs/examples/databases/update-collection.md +7 -0
  105. package/docs/examples/databases/update-datetime-attribute.md +7 -0
  106. package/docs/examples/databases/update-document.md +6 -0
  107. package/docs/examples/databases/update-documents.md +5 -0
  108. package/docs/examples/databases/update-email-attribute.md +7 -0
  109. package/docs/examples/databases/update-enum-attribute.md +8 -0
  110. package/docs/examples/databases/update-float-attribute.md +9 -0
  111. package/docs/examples/databases/update-integer-attribute.md +9 -0
  112. package/docs/examples/databases/update-ip-attribute.md +7 -0
  113. package/docs/examples/databases/update-relationship-attribute.md +6 -0
  114. package/docs/examples/databases/update-string-attribute.md +8 -0
  115. package/docs/examples/databases/update-url-attribute.md +7 -0
  116. package/docs/examples/databases/update.md +4 -0
  117. package/docs/examples/databases/upsert-document.md +6 -0
  118. package/docs/examples/databases/upsert-documents.md +4 -0
  119. package/docs/examples/functions/create-deployment.md +6 -0
  120. package/docs/examples/functions/create-duplicate-deployment.md +4 -0
  121. package/docs/examples/functions/create-execution.md +8 -0
  122. package/docs/examples/functions/create-template-deployment.md +7 -0
  123. package/docs/examples/functions/create-variable.md +5 -0
  124. package/docs/examples/functions/create-vcs-deployment.md +5 -0
  125. package/docs/examples/functions/create.md +19 -0
  126. package/docs/examples/functions/delete-deployment.md +3 -0
  127. package/docs/examples/functions/delete-execution.md +3 -0
  128. package/docs/examples/functions/delete-variable.md +3 -0
  129. package/docs/examples/functions/delete.md +2 -0
  130. package/docs/examples/functions/get-deployment-download.md +4 -0
  131. package/docs/examples/functions/get-deployment.md +3 -0
  132. package/docs/examples/functions/get-execution.md +3 -0
  133. package/docs/examples/functions/get-template.md +2 -0
  134. package/docs/examples/functions/get-usage.md +3 -0
  135. package/docs/examples/functions/get-variable.md +3 -0
  136. package/docs/examples/functions/get.md +2 -0
  137. package/docs/examples/functions/list-deployments.md +4 -0
  138. package/docs/examples/functions/list-executions.md +3 -0
  139. package/docs/examples/functions/list-runtimes.md +1 -0
  140. package/docs/examples/functions/list-specifications.md +1 -0
  141. package/docs/examples/functions/list-templates.md +5 -0
  142. package/docs/examples/functions/list-usage.md +2 -0
  143. package/docs/examples/functions/list-variables.md +2 -0
  144. package/docs/examples/functions/list.md +3 -0
  145. package/docs/examples/functions/update-deployment-status.md +3 -0
  146. package/docs/examples/functions/update-function-deployment.md +3 -0
  147. package/docs/examples/functions/update-variable.md +6 -0
  148. package/docs/examples/functions/update.md +19 -0
  149. package/docs/examples/graphql/mutation.md +2 -0
  150. package/docs/examples/graphql/query.md +2 -0
  151. package/docs/examples/health/get-antivirus.md +1 -0
  152. package/docs/examples/health/get-cache.md +1 -0
  153. package/docs/examples/health/get-certificate.md +2 -0
  154. package/docs/examples/health/get-d-b.md +1 -0
  155. package/docs/examples/health/get-failed-jobs.md +3 -0
  156. package/docs/examples/health/get-pub-sub.md +1 -0
  157. package/docs/examples/health/get-queue-builds.md +2 -0
  158. package/docs/examples/health/get-queue-certificates.md +2 -0
  159. package/docs/examples/health/get-queue-databases.md +3 -0
  160. package/docs/examples/health/get-queue-deletes.md +2 -0
  161. package/docs/examples/health/get-queue-functions.md +2 -0
  162. package/docs/examples/health/get-queue-logs.md +2 -0
  163. package/docs/examples/health/get-queue-mails.md +2 -0
  164. package/docs/examples/health/get-queue-messaging.md +2 -0
  165. package/docs/examples/health/get-queue-migrations.md +2 -0
  166. package/docs/examples/health/get-queue-stats-resources.md +2 -0
  167. package/docs/examples/health/get-queue-usage.md +2 -0
  168. package/docs/examples/health/get-queue-webhooks.md +2 -0
  169. package/docs/examples/health/get-storage-local.md +1 -0
  170. package/docs/examples/health/get-storage.md +1 -0
  171. package/docs/examples/health/get-time.md +1 -0
  172. package/docs/examples/health/get.md +1 -0
  173. package/docs/examples/locale/get.md +1 -0
  174. package/docs/examples/locale/list-codes.md +1 -0
  175. package/docs/examples/locale/list-continents.md +1 -0
  176. package/docs/examples/locale/list-countries-e-u.md +1 -0
  177. package/docs/examples/locale/list-countries-phones.md +1 -0
  178. package/docs/examples/locale/list-countries.md +1 -0
  179. package/docs/examples/locale/list-currencies.md +1 -0
  180. package/docs/examples/locale/list-languages.md +1 -0
  181. package/docs/examples/messaging/create-apns-provider.md +9 -0
  182. package/docs/examples/messaging/create-email.md +13 -0
  183. package/docs/examples/messaging/create-fcm-provider.md +5 -0
  184. package/docs/examples/messaging/create-mailgun-provider.md +11 -0
  185. package/docs/examples/messaging/create-msg91provider.md +7 -0
  186. package/docs/examples/messaging/create-push.md +20 -0
  187. package/docs/examples/messaging/create-sendgrid-provider.md +9 -0
  188. package/docs/examples/messaging/create-sms.md +8 -0
  189. package/docs/examples/messaging/create-smtp-provider.md +15 -0
  190. package/docs/examples/messaging/create-subscriber.md +4 -0
  191. package/docs/examples/messaging/create-telesign-provider.md +7 -0
  192. package/docs/examples/messaging/create-textmagic-provider.md +7 -0
  193. package/docs/examples/messaging/create-topic.md +4 -0
  194. package/docs/examples/messaging/create-twilio-provider.md +7 -0
  195. package/docs/examples/messaging/create-vonage-provider.md +7 -0
  196. package/docs/examples/messaging/delete-provider.md +2 -0
  197. package/docs/examples/messaging/delete-subscriber.md +3 -0
  198. package/docs/examples/messaging/delete-topic.md +2 -0
  199. package/docs/examples/messaging/delete.md +2 -0
  200. package/docs/examples/messaging/get-message.md +2 -0
  201. package/docs/examples/messaging/get-provider.md +2 -0
  202. package/docs/examples/messaging/get-subscriber.md +3 -0
  203. package/docs/examples/messaging/get-topic.md +2 -0
  204. package/docs/examples/messaging/list-message-logs.md +3 -0
  205. package/docs/examples/messaging/list-messages.md +3 -0
  206. package/docs/examples/messaging/list-provider-logs.md +3 -0
  207. package/docs/examples/messaging/list-providers.md +3 -0
  208. package/docs/examples/messaging/list-subscriber-logs.md +3 -0
  209. package/docs/examples/messaging/list-subscribers.md +4 -0
  210. package/docs/examples/messaging/list-targets.md +3 -0
  211. package/docs/examples/messaging/list-topic-logs.md +3 -0
  212. package/docs/examples/messaging/list-topics.md +3 -0
  213. package/docs/examples/messaging/update-apns-provider.md +9 -0
  214. package/docs/examples/messaging/update-email.md +13 -0
  215. package/docs/examples/messaging/update-fcm-provider.md +5 -0
  216. package/docs/examples/messaging/update-mailgun-provider.md +11 -0
  217. package/docs/examples/messaging/update-msg91provider.md +7 -0
  218. package/docs/examples/messaging/update-push.md +20 -0
  219. package/docs/examples/messaging/update-sendgrid-provider.md +9 -0
  220. package/docs/examples/messaging/update-sms.md +8 -0
  221. package/docs/examples/messaging/update-smtp-provider.md +15 -0
  222. package/docs/examples/messaging/update-telesign-provider.md +7 -0
  223. package/docs/examples/messaging/update-textmagic-provider.md +7 -0
  224. package/docs/examples/messaging/update-topic.md +4 -0
  225. package/docs/examples/messaging/update-twilio-provider.md +7 -0
  226. package/docs/examples/messaging/update-vonage-provider.md +7 -0
  227. package/docs/examples/migrations/create-appwrite-migration.md +5 -0
  228. package/docs/examples/migrations/create-csv-migration.md +4 -0
  229. package/docs/examples/migrations/create-firebase-migration.md +3 -0
  230. package/docs/examples/migrations/create-n-host-migration.md +9 -0
  231. package/docs/examples/migrations/create-supabase-migration.md +8 -0
  232. package/docs/examples/migrations/delete.md +2 -0
  233. package/docs/examples/migrations/get-appwrite-report.md +5 -0
  234. package/docs/examples/migrations/get-firebase-report.md +3 -0
  235. package/docs/examples/migrations/get-n-host-report.md +9 -0
  236. package/docs/examples/migrations/get-supabase-report.md +8 -0
  237. package/docs/examples/migrations/get.md +2 -0
  238. package/docs/examples/migrations/list.md +3 -0
  239. package/docs/examples/migrations/retry.md +2 -0
  240. package/docs/examples/project/create-variable.md +4 -0
  241. package/docs/examples/project/delete-variable.md +2 -0
  242. package/docs/examples/project/get-usage.md +4 -0
  243. package/docs/examples/project/get-variable.md +2 -0
  244. package/docs/examples/project/list-variables.md +1 -0
  245. package/docs/examples/project/update-variable.md +5 -0
  246. package/docs/examples/projects/create-dev-key.md +4 -0
  247. package/docs/examples/projects/create-j-w-t.md +4 -0
  248. package/docs/examples/projects/create-key.md +5 -0
  249. package/docs/examples/projects/create-platform.md +7 -0
  250. package/docs/examples/projects/create-smtp-test.md +11 -0
  251. package/docs/examples/projects/create-webhook.md +9 -0
  252. package/docs/examples/projects/create.md +14 -0
  253. package/docs/examples/projects/delete-dev-key.md +3 -0
  254. package/docs/examples/projects/delete-email-template.md +4 -0
  255. package/docs/examples/projects/delete-key.md +3 -0
  256. package/docs/examples/projects/delete-platform.md +3 -0
  257. package/docs/examples/projects/delete-sms-template.md +4 -0
  258. package/docs/examples/projects/delete-webhook.md +3 -0
  259. package/docs/examples/projects/delete.md +2 -0
  260. package/docs/examples/projects/get-dev-key.md +3 -0
  261. package/docs/examples/projects/get-email-template.md +4 -0
  262. package/docs/examples/projects/get-key.md +3 -0
  263. package/docs/examples/projects/get-platform.md +3 -0
  264. package/docs/examples/projects/get-sms-template.md +4 -0
  265. package/docs/examples/projects/get-webhook.md +3 -0
  266. package/docs/examples/projects/get.md +2 -0
  267. package/docs/examples/projects/list-dev-keys.md +3 -0
  268. package/docs/examples/projects/list-keys.md +2 -0
  269. package/docs/examples/projects/list-platforms.md +2 -0
  270. package/docs/examples/projects/list-webhooks.md +2 -0
  271. package/docs/examples/projects/list.md +3 -0
  272. package/docs/examples/projects/update-api-status-all.md +3 -0
  273. package/docs/examples/projects/update-api-status.md +4 -0
  274. package/docs/examples/projects/update-auth-duration.md +3 -0
  275. package/docs/examples/projects/update-auth-limit.md +3 -0
  276. package/docs/examples/projects/update-auth-password-dictionary.md +3 -0
  277. package/docs/examples/projects/update-auth-password-history.md +3 -0
  278. package/docs/examples/projects/update-auth-sessions-limit.md +3 -0
  279. package/docs/examples/projects/update-auth-status.md +4 -0
  280. package/docs/examples/projects/update-dev-key.md +5 -0
  281. package/docs/examples/projects/update-email-template.md +9 -0
  282. package/docs/examples/projects/update-key.md +6 -0
  283. package/docs/examples/projects/update-memberships-privacy.md +5 -0
  284. package/docs/examples/projects/update-mock-numbers.md +3 -0
  285. package/docs/examples/projects/update-o-auth2.md +6 -0
  286. package/docs/examples/projects/update-personal-data-check.md +3 -0
  287. package/docs/examples/projects/update-platform.md +7 -0
  288. package/docs/examples/projects/update-service-status-all.md +3 -0
  289. package/docs/examples/projects/update-service-status.md +4 -0
  290. package/docs/examples/projects/update-session-alerts.md +3 -0
  291. package/docs/examples/projects/update-sms-template.md +5 -0
  292. package/docs/examples/projects/update-smtp.md +11 -0
  293. package/docs/examples/projects/update-team.md +3 -0
  294. package/docs/examples/projects/update-webhook-signature.md +3 -0
  295. package/docs/examples/projects/update-webhook.md +10 -0
  296. package/docs/examples/projects/update.md +12 -0
  297. package/docs/examples/proxy/create-a-p-i-rule.md +2 -0
  298. package/docs/examples/proxy/create-function-rule.md +4 -0
  299. package/docs/examples/proxy/create-redirect-rule.md +6 -0
  300. package/docs/examples/proxy/create-site-rule.md +4 -0
  301. package/docs/examples/proxy/delete-rule.md +2 -0
  302. package/docs/examples/proxy/get-rule.md +2 -0
  303. package/docs/examples/proxy/list-rules.md +3 -0
  304. package/docs/examples/proxy/update-rule-verification.md +2 -0
  305. package/docs/examples/sites/create-deployment.md +7 -0
  306. package/docs/examples/sites/create-duplicate-deployment.md +3 -0
  307. package/docs/examples/sites/create-template-deployment.md +7 -0
  308. package/docs/examples/sites/create-variable.md +5 -0
  309. package/docs/examples/sites/create-vcs-deployment.md +5 -0
  310. package/docs/examples/sites/create.md +19 -0
  311. package/docs/examples/sites/delete-deployment.md +3 -0
  312. package/docs/examples/sites/delete-log.md +3 -0
  313. package/docs/examples/sites/delete-variable.md +3 -0
  314. package/docs/examples/sites/delete.md +2 -0
  315. package/docs/examples/sites/get-deployment-download.md +4 -0
  316. package/docs/examples/sites/get-deployment.md +3 -0
  317. package/docs/examples/sites/get-log.md +3 -0
  318. package/docs/examples/sites/get-template.md +2 -0
  319. package/docs/examples/sites/get-usage.md +3 -0
  320. package/docs/examples/sites/get-variable.md +3 -0
  321. package/docs/examples/sites/get.md +2 -0
  322. package/docs/examples/sites/list-deployments.md +4 -0
  323. package/docs/examples/sites/list-frameworks.md +1 -0
  324. package/docs/examples/sites/list-logs.md +3 -0
  325. package/docs/examples/sites/list-specifications.md +1 -0
  326. package/docs/examples/sites/list-templates.md +5 -0
  327. package/docs/examples/sites/list-usage.md +2 -0
  328. package/docs/examples/sites/list-variables.md +2 -0
  329. package/docs/examples/sites/list.md +3 -0
  330. package/docs/examples/sites/update-deployment-status.md +3 -0
  331. package/docs/examples/sites/update-site-deployment.md +3 -0
  332. package/docs/examples/sites/update-variable.md +6 -0
  333. package/docs/examples/sites/update.md +19 -0
  334. package/docs/examples/storage/create-bucket.md +11 -0
  335. package/docs/examples/storage/create-file.md +5 -0
  336. package/docs/examples/storage/delete-bucket.md +2 -0
  337. package/docs/examples/storage/delete-file.md +3 -0
  338. package/docs/examples/storage/get-bucket-usage.md +3 -0
  339. package/docs/examples/storage/get-bucket.md +2 -0
  340. package/docs/examples/storage/get-file-download.md +4 -0
  341. package/docs/examples/storage/get-file-preview.md +15 -0
  342. package/docs/examples/storage/get-file-view.md +4 -0
  343. package/docs/examples/storage/get-file.md +3 -0
  344. package/docs/examples/storage/get-usage.md +2 -0
  345. package/docs/examples/storage/list-buckets.md +3 -0
  346. package/docs/examples/storage/list-files.md +4 -0
  347. package/docs/examples/storage/update-bucket.md +11 -0
  348. package/docs/examples/storage/update-file.md +5 -0
  349. package/docs/examples/teams/create-membership.md +8 -0
  350. package/docs/examples/teams/create.md +4 -0
  351. package/docs/examples/teams/delete-membership.md +3 -0
  352. package/docs/examples/teams/delete.md +2 -0
  353. package/docs/examples/teams/get-membership.md +3 -0
  354. package/docs/examples/teams/get-prefs.md +2 -0
  355. package/docs/examples/teams/get.md +2 -0
  356. package/docs/examples/teams/list-logs.md +3 -0
  357. package/docs/examples/teams/list-memberships.md +4 -0
  358. package/docs/examples/teams/list.md +3 -0
  359. package/docs/examples/teams/update-membership-status.md +5 -0
  360. package/docs/examples/teams/update-membership.md +4 -0
  361. package/docs/examples/teams/update-name.md +3 -0
  362. package/docs/examples/teams/update-prefs.md +3 -0
  363. package/docs/examples/tokens/create-file-token.md +4 -0
  364. package/docs/examples/tokens/delete.md +2 -0
  365. package/docs/examples/tokens/get.md +2 -0
  366. package/docs/examples/tokens/list.md +4 -0
  367. package/docs/examples/tokens/update.md +3 -0
  368. package/docs/examples/users/create-argon2user.md +5 -0
  369. package/docs/examples/users/create-bcrypt-user.md +5 -0
  370. package/docs/examples/users/create-j-w-t.md +4 -0
  371. package/docs/examples/users/create-m-d5user.md +5 -0
  372. package/docs/examples/users/create-mfa-recovery-codes.md +2 -0
  373. package/docs/examples/users/create-p-h-pass-user.md +5 -0
  374. package/docs/examples/users/create-s-h-a-user.md +6 -0
  375. package/docs/examples/users/create-scrypt-modified-user.md +8 -0
  376. package/docs/examples/users/create-scrypt-user.md +10 -0
  377. package/docs/examples/users/create-session.md +2 -0
  378. package/docs/examples/users/create-target.md +7 -0
  379. package/docs/examples/users/create-token.md +4 -0
  380. package/docs/examples/users/create.md +6 -0
  381. package/docs/examples/users/delete-identity.md +2 -0
  382. package/docs/examples/users/delete-mfa-authenticator.md +3 -0
  383. package/docs/examples/users/delete-session.md +3 -0
  384. package/docs/examples/users/delete-sessions.md +2 -0
  385. package/docs/examples/users/delete-target.md +3 -0
  386. package/docs/examples/users/delete.md +2 -0
  387. package/docs/examples/users/get-mfa-recovery-codes.md +2 -0
  388. package/docs/examples/users/get-prefs.md +2 -0
  389. package/docs/examples/users/get-target.md +3 -0
  390. package/docs/examples/users/get-usage.md +2 -0
  391. package/docs/examples/users/get.md +2 -0
  392. package/docs/examples/users/list-identities.md +3 -0
  393. package/docs/examples/users/list-logs.md +3 -0
  394. package/docs/examples/users/list-memberships.md +4 -0
  395. package/docs/examples/users/list-mfa-factors.md +2 -0
  396. package/docs/examples/users/list-sessions.md +2 -0
  397. package/docs/examples/users/list-targets.md +3 -0
  398. package/docs/examples/users/list.md +3 -0
  399. package/docs/examples/users/update-email-verification.md +3 -0
  400. package/docs/examples/users/update-email.md +3 -0
  401. package/docs/examples/users/update-labels.md +3 -0
  402. package/docs/examples/users/update-mfa-recovery-codes.md +2 -0
  403. package/docs/examples/users/update-mfa.md +3 -0
  404. package/docs/examples/users/update-name.md +3 -0
  405. package/docs/examples/users/update-password.md +3 -0
  406. package/docs/examples/users/update-phone-verification.md +3 -0
  407. package/docs/examples/users/update-phone.md +3 -0
  408. package/docs/examples/users/update-prefs.md +3 -0
  409. package/docs/examples/users/update-status.md +3 -0
  410. package/docs/examples/users/update-target.md +6 -0
  411. package/docs/examples/vcs/create-repository-detection.md +5 -0
  412. package/docs/examples/vcs/create-repository.md +4 -0
  413. package/docs/examples/vcs/delete-installation.md +2 -0
  414. package/docs/examples/vcs/get-installation.md +2 -0
  415. package/docs/examples/vcs/get-repository-contents.md +5 -0
  416. package/docs/examples/vcs/get-repository.md +3 -0
  417. package/docs/examples/vcs/list-installations.md +3 -0
  418. package/docs/examples/vcs/list-repositories.md +4 -0
  419. package/docs/examples/vcs/list-repository-branches.md +3 -0
  420. package/docs/examples/vcs/update-external-deployments.md +4 -0
  421. package/functions/Starter function/.prettierrc.json +6 -0
  422. package/functions/Starter function/README.md +48 -0
  423. package/functions/Starter function/package-lock.json +60 -0
  424. package/functions/Starter function/package.json +16 -0
  425. package/functions/Starter function/src/main.js +35 -0
  426. package/generate/appwrite.d.ts +18 -0
  427. package/index.js +109 -0
  428. package/install.ps1 +98 -0
  429. package/install.sh +157 -0
  430. package/lib/client.js +259 -0
  431. package/lib/commands/account.js +2074 -0
  432. package/lib/commands/avatars.js +491 -0
  433. package/lib/commands/console.js +129 -0
  434. package/lib/commands/databases.js +2972 -0
  435. package/lib/commands/functions.js +1737 -0
  436. package/lib/commands/generic.js +328 -0
  437. package/lib/commands/graphql.js +128 -0
  438. package/lib/commands/health.js +891 -0
  439. package/lib/commands/init.js +566 -0
  440. package/lib/commands/locale.js +324 -0
  441. package/lib/commands/messaging.js +2970 -0
  442. package/lib/commands/migrations.js +751 -0
  443. package/lib/commands/organizations.js +48 -0
  444. package/lib/commands/project.js +308 -0
  445. package/lib/commands/projects.js +2615 -0
  446. package/lib/commands/proxy.js +406 -0
  447. package/lib/commands/pull.js +474 -0
  448. package/lib/commands/push.js +2117 -0
  449. package/lib/commands/run.js +330 -0
  450. package/lib/commands/sites.js +1663 -0
  451. package/lib/commands/storage.js +990 -0
  452. package/lib/commands/teams.js +682 -0
  453. package/lib/commands/tokens.js +261 -0
  454. package/lib/commands/types.js +156 -0
  455. package/lib/commands/users.js +2035 -0
  456. package/lib/commands/vcs.js +484 -0
  457. package/lib/config.js +705 -0
  458. package/lib/emulation/docker.js +264 -0
  459. package/lib/emulation/utils.js +186 -0
  460. package/lib/exception.js +9 -0
  461. package/lib/id.js +30 -0
  462. package/lib/paginate.js +52 -0
  463. package/lib/parser.js +246 -0
  464. package/lib/questions.js +1006 -0
  465. package/lib/sdks.js +60 -0
  466. package/lib/spinner.js +104 -0
  467. package/lib/type-generation/attribute.js +16 -0
  468. package/lib/type-generation/languages/dart.js +196 -0
  469. package/lib/type-generation/languages/java.js +130 -0
  470. package/lib/type-generation/languages/javascript.js +102 -0
  471. package/lib/type-generation/languages/kotlin.js +84 -0
  472. package/lib/type-generation/languages/language.js +125 -0
  473. package/lib/type-generation/languages/php.js +109 -0
  474. package/lib/type-generation/languages/swift.js +169 -0
  475. package/lib/type-generation/languages/typescript.js +102 -0
  476. package/lib/utils.js +289 -0
  477. package/lib/validations.js +17 -0
  478. package/package.json +50 -0
  479. package/scoop/appwrite.json +30 -0
  480. package/sites/JavaScript starter/.env.example +3 -0
  481. package/sites/JavaScript starter/LICENSE +21 -0
  482. package/sites/JavaScript starter/images/appwrite.svg +8 -0
  483. package/sites/JavaScript starter/images/javascript.svg +5 -0
  484. package/sites/JavaScript starter/index.html +250 -0
  485. package/sites/JavaScript starter/lib/appwrite.js +10 -0
  486. package/sites/JavaScript starter/package-lock.json +1431 -0
  487. package/sites/JavaScript starter/package.json +21 -0
  488. package/sites/JavaScript starter/readme.md +26 -0
  489. package/sites/JavaScript starter/src/javascript.svg +1 -0
  490. package/sites/JavaScript starter/style/app.css +20 -0
  491. package/sites/JavaScript starter/vite.config.js +7 -0
package/index.js ADDED
@@ -0,0 +1,109 @@
1
+ #! /usr/bin/env node
2
+
3
+ /** Required to set max width of the help commands */
4
+ const oldWidth = process.stdout.columns
5
+ process.stdout.columns = 100
6
+ /** ---------------------------------------------- */
7
+
8
+ const program = require("commander");
9
+ const chalk = require("chalk");
10
+ const { version } = require("./package.json");
11
+ const { commandDescriptions, cliConfig } = require("./lib/parser");
12
+ const { client } = require("./lib/commands/generic");
13
+ const inquirer = require("inquirer");
14
+ const { login, logout, whoami, migrate, register } = require("./lib/commands/generic");
15
+ const { init } = require("./lib/commands/init");
16
+ const { types } = require("./lib/commands/types");
17
+ const { pull } = require("./lib/commands/pull");
18
+ const { run } = require("./lib/commands/run");
19
+ const { push, deploy } = require("./lib/commands/push");
20
+ const { account } = require("./lib/commands/account");
21
+ const { avatars } = require("./lib/commands/avatars");
22
+ const { console } = require("./lib/commands/console");
23
+ const { databases } = require("./lib/commands/databases");
24
+ const { functions } = require("./lib/commands/functions");
25
+ const { graphql } = require("./lib/commands/graphql");
26
+ const { health } = require("./lib/commands/health");
27
+ const { locale } = require("./lib/commands/locale");
28
+ const { messaging } = require("./lib/commands/messaging");
29
+ const { migrations } = require("./lib/commands/migrations");
30
+ const { project } = require("./lib/commands/project");
31
+ const { projects } = require("./lib/commands/projects");
32
+ const { proxy } = require("./lib/commands/proxy");
33
+ const { sites } = require("./lib/commands/sites");
34
+ const { storage } = require("./lib/commands/storage");
35
+ const { teams } = require("./lib/commands/teams");
36
+ const { tokens } = require("./lib/commands/tokens");
37
+ const { users } = require("./lib/commands/users");
38
+ const { vcs } = require("./lib/commands/vcs");
39
+
40
+ inquirer.registerPrompt('search-list', require('inquirer-search-list'));
41
+
42
+ program
43
+ .description(commandDescriptions['main'])
44
+ .configureHelp({
45
+ helpWidth: process.stdout.columns || 80,
46
+ sortSubcommands: true,
47
+ })
48
+ .helpOption('-h, --help', "Display help for command")
49
+ .version(version, "-v, --version", "Output the version number")
50
+ .option("-V, --verbose", "Show complete error log")
51
+ .option("-j, --json", "Output in JSON format")
52
+ .hook('preAction', migrate)
53
+ .option("-f,--force", "Flag to confirm all warnings")
54
+ .option("-a,--all", "Flag to push all resources")
55
+ .option("--id [id...]", "Flag to pass a list of ids for a given action")
56
+ .option("--report", "Enable reporting in case of CLI errors")
57
+ .on("option:json", () => {
58
+ cliConfig.json = true;
59
+ })
60
+ .on("option:verbose", () => {
61
+ cliConfig.verbose = true;
62
+ })
63
+ .on("option:report", function() {
64
+ cliConfig.report = true;
65
+ cliConfig.reportData = { data: this };
66
+ })
67
+ .on("option:force", () => {
68
+ cliConfig.force = true;
69
+ })
70
+ .on("option:all", () => {
71
+ cliConfig.all = true;
72
+ })
73
+ .on("option:id", function() {
74
+ cliConfig.ids = this.opts().id;
75
+ })
76
+ .showSuggestionAfterError()
77
+ .addCommand(whoami)
78
+ .addCommand(register)
79
+ .addCommand(login)
80
+ .addCommand(init)
81
+ .addCommand(pull)
82
+ .addCommand(push)
83
+ .addCommand(types)
84
+ .addCommand(deploy)
85
+ .addCommand(run)
86
+ .addCommand(logout)
87
+ .addCommand(account)
88
+ .addCommand(avatars)
89
+ .addCommand(console)
90
+ .addCommand(databases)
91
+ .addCommand(functions)
92
+ .addCommand(graphql)
93
+ .addCommand(health)
94
+ .addCommand(locale)
95
+ .addCommand(messaging)
96
+ .addCommand(migrations)
97
+ .addCommand(project)
98
+ .addCommand(projects)
99
+ .addCommand(proxy)
100
+ .addCommand(sites)
101
+ .addCommand(storage)
102
+ .addCommand(teams)
103
+ .addCommand(tokens)
104
+ .addCommand(users)
105
+ .addCommand(vcs)
106
+ .addCommand(client)
107
+ .parse(process.argv);
108
+
109
+ process.stdout.columns = oldWidth;
package/install.ps1 ADDED
@@ -0,0 +1,98 @@
1
+ ## <script src="/dist/scripts/cli-bash.js"></script>
2
+ ## <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism-okaidia.min.css" rel="stylesheet" />
3
+ ## <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-core.min.js" data-manual></script>
4
+ ## <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-powershell.min.js"></script>
5
+ ## <style>body {color: #272822; background-color: #272822; font-size: 0.8em;} </style>
6
+ # Love open-source, dev-tooling and passionate about code as much as we do?
7
+ # ---
8
+ # We're always looking for awesome hackers like you to join our 100% remote team!
9
+ # Check and see if you find any relevant position @ https://appwrite.io/company/careers 👩‍💻 😎
10
+ # (and let us know you found this message...)
11
+
12
+ # This script contains hidden JS code to allow better readability and syntax highlighting
13
+ # You can use "View source" of this page to see the full script.
14
+
15
+ # REPO
16
+ $GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/0.16.0/appwrite-cli-win-x64.exe"
17
+ $GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/0.16.0/appwrite-cli-win-arm64.exe"
18
+
19
+ $APPWRITE_BINARY_NAME = "appwrite.exe"
20
+
21
+ # Appwrite download directory
22
+ $APPWRITE_DOWNLOAD_DIR = Join-Path -Path $env:TEMP -ChildPath $APPWRITE_BINARY_NAME
23
+
24
+ # Appwrite CLI location
25
+ $APPWRITE_INSTALL_DIR = Join-Path -Path $env:LOCALAPPDATA -ChildPath "Appwrite"
26
+ $APPWRITE_INSTALL_PATH = Join-Path -Path "$APPWRITE_INSTALL_DIR" -ChildPath "$APPWRITE_BINARY_NAME"
27
+
28
+ $USER_PATH_ENV_VAR = [Environment]::GetEnvironmentVariable("PATH", "User")
29
+
30
+ function Greeting {
31
+ Write-Host @"
32
+
33
+ _ _ _ ___ __ _____
34
+ /_\ _ __ _ ____ ___ __(_) |_ ___ / __\ / / \_ \
35
+ //_\\| '_ \| '_ \ \ /\ / / '__| | __/ _ \ / / / / / /\/
36
+ / _ \ |_) | |_) \ V V /| | | | || __/ / /___/ /___/\/ /_
37
+ \_/ \_/ .__/| .__/ \_/\_/ |_| |_|\__\___| \____/\____/\____/
38
+ |_| |_|
39
+
40
+ "@ -ForegroundColor red
41
+ Write-Host "Welcome to the Appwrite CLI install shield."
42
+ }
43
+
44
+
45
+ function CheckSystemInfo {
46
+ Write-Host "[1/4] Getting System Info ..."
47
+ if ((Get-ExecutionPolicy) -gt 'RemoteSigned' -or (Get-ExecutionPolicy) -eq 'ByPass') {
48
+ Write-Host "PowerShell requires an execution policy of 'RemoteSigned'."
49
+ Write-Host "To make this change please run:"
50
+ Write-Host "'Set-ExecutionPolicy RemoteSigned -scope CurrentUser'"
51
+ break
52
+ }
53
+ }
54
+
55
+ function DownloadBinary {
56
+ Write-Host "[2/4] Downloading Appwrite CLI binary ..."
57
+ Write-Host "🚦 Fetching latest version ... " -ForegroundColor green
58
+
59
+ if((Get-CimInstance Win32_operatingsystem).OSArchitecture -like '*ARM*') {
60
+ Invoke-WebRequest -Uri $GITHUB_arm64_URL -OutFile $APPWRITE_DOWNLOAD_DIR
61
+ } else {
62
+ Invoke-WebRequest -Uri $GITHUB_x64_URL -OutFile $APPWRITE_DOWNLOAD_DIR
63
+ }
64
+
65
+ New-Item -ItemType Directory -Path $APPWRITE_INSTALL_DIR
66
+ Move-Item $APPWRITE_DOWNLOAD_DIR $APPWRITE_INSTALL_PATH
67
+ }
68
+
69
+
70
+ function Install {
71
+ Write-Host "[3/4] Starting installation ..."
72
+
73
+ if ($USER_PATH_ENV_VAR -like '*Appwrite*') {
74
+ Write-Host "Skipping to add Appwrite to User Path."
75
+ } else {
76
+ [System.Environment]::SetEnvironmentVariable("PATH", $USER_PATH_ENV_VAR + ";$APPWRITE_INSTALL_DIR", "User")
77
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
78
+ }
79
+ }
80
+
81
+ function CleanUp {
82
+ Write-Host "Cleaning up mess ..."
83
+ }
84
+
85
+ function InstallCompleted {
86
+ Write-Host "[4/4] Finishing Installation ... "
87
+ cleanup
88
+ Write-Host "To get started with Appwrite CLI, please visit https://appwrite.io/docs/command-line"
89
+ Write-Host "As first step, you can login to your Appwrite account using 'appwrite login'"
90
+ }
91
+
92
+
93
+ Greeting
94
+ CheckSystemInfo
95
+ DownloadBinary
96
+ Install
97
+ CleanUp
98
+ InstallCompleted
package/install.sh ADDED
@@ -0,0 +1,157 @@
1
+ #!/bin/bash
2
+
3
+ ## <script src="/dist/scripts/cli-bash.js"></script>
4
+ ## <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism-okaidia.min.css" rel="stylesheet" />
5
+ ## <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-core.min.js" data-manual></script>
6
+ ## <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-bash.min.js"></script>
7
+ ## <style>body {color: #272822; background-color: #272822; font-size: 0.8em;} </style>
8
+ # Love open-source, dev-tooling and passionate about code as much as we do?
9
+ # ---
10
+ # We're always looking for awesome hackers like you to join our 100% remote team!
11
+ # Check and see if you find any relevant position @ https://appwrite.io/company/careers 👩‍💻 😎
12
+ # (and let us know you found this message...)
13
+
14
+ # This script contains hidden JS code to allow better readability and syntax highlighting
15
+ # You can use "View source" of this page to see the full script.
16
+
17
+ # Appwrite CLI location
18
+ APPWRITE_INSTALL_DIR="/usr/local/bin"
19
+
20
+ # Appwrite CLI Executable name
21
+ APPWRITE_EXECUTABLE_NAME=appwrite
22
+
23
+ # Appwrite executable file path
24
+ APPWRITE_EXECUTABLE_FILEPATH="$APPWRITE_INSTALL_DIR/$APPWRITE_EXECUTABLE_NAME"
25
+
26
+ # Appwrite CLI temp name
27
+ APPWRITE_TEMP_NAME=temp-$(date +%s)
28
+
29
+ # Appwrite CLI image name
30
+ GITHUB_REPOSITORY_NAME=appwrite/sdk-for-cli
31
+
32
+ # sudo is required to copy executable to APPWRITE_INSTALL_DIR for linux
33
+ USE_SUDO="false"
34
+ OS=""
35
+ ARCH=""
36
+
37
+ # Add some color to life
38
+ RED='\033[0;31m'
39
+ GREEN='\033[0;32m'
40
+ NC='\033[0m' # No Color
41
+
42
+
43
+ greeting() {
44
+ echo -e "${RED}"
45
+ cat << "EOF"
46
+
47
+ _ _ _ ___ __ _____
48
+ /_\ _ __ _ ____ ___ __(_) |_ ___ / __\ / / \_ \
49
+ //_\\| '_ \| '_ \ \ /\ / / '__| | __/ _ \ / / / / / /\/
50
+ / _ \ |_) | |_) \ V V /| | | | || __/ / /___/ /___/\/ /_
51
+ \_/ \_/ .__/| .__/ \_/\_/ |_| |_|\__\___| \____/\____/\____/
52
+ |_| |_|
53
+ EOF
54
+ echo -e "${NC}\n"
55
+ echo "🔥 Welcome to the Appwrite CLI install shield 🛡"
56
+ }
57
+
58
+ getSystemInfo() {
59
+ echo "[1/4] Getting System Info ..."
60
+
61
+ ARCH=$(uname -m)
62
+ case $ARCH in
63
+ i386|i686) ARCH="x64" ;;
64
+ x86_64) ARCH="x64";;
65
+ armv6*) ARCH="arm64" ;;
66
+ armv7*) ARCH="arm64" ;;
67
+ aarch64*) ARCH="arm64" ;;
68
+ esac
69
+
70
+ OS=$(echo `uname`|tr '[:upper:]' '[:lower:]')
71
+
72
+ # Need root access if its a linux system
73
+ if [ "$OS" == "linux" ] && [ "$APPWRITE_INSTALL_DIR" == "/usr/local/bin" ]; then
74
+ USE_SUDO="true"
75
+ fi
76
+
77
+ # Need root access if its Apple Silicon
78
+ if [ "$OS" == "darwin" ] && [[ "$(uname -a)" = *ARM64* ]]; then
79
+ USE_SUDO="true"
80
+ fi
81
+
82
+ printf "${GREEN}\nOS : $OS \nARCH : $ARCH \nREQUIRES ROOT : $USE_SUDO\n\n${NC}"
83
+ }
84
+
85
+ runAsRoot() {
86
+ local CMD="$*"
87
+ if [ $EUID -ne 0 -a $USE_SUDO = "true" ]; then
88
+ CMD="sudo $CMD"
89
+ fi
90
+ $CMD
91
+ }
92
+
93
+ printSuccess() {
94
+ printf "${GREEN}✅ Done ... ${NC}\n\n"
95
+ }
96
+
97
+ downloadBinary() {
98
+ echo "[2/4] Downloading executable for $OS ($ARCH) ..."
99
+
100
+ GITHUB_LATEST_VERSION="0.16.0"
101
+ GITHUB_FILE="appwrite-cli-${OS}-${ARCH}"
102
+ GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE"
103
+
104
+ printf "${GREEN}🚦 Downloading Appwrite CLI $GITHUB_LATEST_VERSION ... ${NC}\n"
105
+ res=$(curl -s $GITHUB_URL)
106
+ if [[ "$res" == *"Not Found"* ]]; then
107
+ printf "${RED}❌ Couldn't find executable for $OS ($ARCH). Please contact the Appwrite team ${NC} \n"
108
+ exit 1
109
+ fi
110
+ curl -L -o $APPWRITE_TEMP_NAME $GITHUB_URL
111
+ printSuccess
112
+ }
113
+
114
+ install() {
115
+ echo "[3/4] Installing ..."
116
+
117
+ printf "${GREEN}🚧 Setting Permissions ${NC}\n"
118
+ chmod +x $APPWRITE_TEMP_NAME
119
+ if [ $? -ne 0 ]; then
120
+ printf "${RED}❌ Failed to set permissions ... ${NC}\n"
121
+ exit 1
122
+ fi
123
+ printSuccess
124
+
125
+ printf "${GREEN}📝 Copying temporary file to $APPWRITE_EXECUTABLE_FILEPATH ... ${NC}\n"
126
+ runAsRoot cp $APPWRITE_TEMP_NAME $APPWRITE_EXECUTABLE_FILEPATH
127
+ if [ $? -ne 0 ]; then
128
+ printf "${RED}❌ Failed to copy temporary file to $APPWRITE_EXECUTABLE_FILEPATH ... ${NC}\n"
129
+ exit 1
130
+ fi
131
+ printSuccess
132
+ }
133
+
134
+ cleanup() {
135
+ printf "${GREEN}🧹 Cleaning up mess ... ${NC}\n"
136
+ rm $APPWRITE_TEMP_NAME
137
+ if [ $? -ne 0 ]; then
138
+ printf "${RED}❌ Failed to remove temporary file ... ${NC}\n"
139
+ exit 1
140
+ fi
141
+ printSuccess
142
+
143
+ }
144
+
145
+ installCompleted() {
146
+ echo "[4/4] Wrapping up installation ... "
147
+ cleanup
148
+ echo "🚀 To get started with Appwrite CLI, please visit https://appwrite.io/docs/command-line"
149
+ echo "As first step, you can login to your Appwrite account using 'appwrite login'"
150
+ }
151
+
152
+ # Installation Starts here
153
+ greeting
154
+ getSystemInfo
155
+ downloadBinary
156
+ install
157
+ installCompleted
package/lib/client.js ADDED
@@ -0,0 +1,259 @@
1
+ const os = require('os');
2
+ const https = require("https");
3
+ const { fetch, FormData, Agent } = require("undici");
4
+ const JSONbig = require("json-bigint")({ storeAsString: false });
5
+ const AppwriteException = require("./exception.js");
6
+ const { globalConfig } = require("./config.js");
7
+ const chalk = require("chalk");
8
+
9
+ class Client {
10
+ CHUNK_SIZE = 5*1024*1024; // 5MB
11
+
12
+ constructor() {
13
+ this.endpoint = 'https://cloud.appwrite.io/v1';
14
+ this.headers = {
15
+ 'content-type': '',
16
+ 'x-sdk-name': 'NAME',
17
+ 'x-sdk-platform': '',
18
+ 'x-sdk-language': 'cli',
19
+ 'x-sdk-version': '0.16.0',
20
+ 'user-agent' : `AppwriteCLI/0.16.0 (${os.type()} ${os.version()}; ${os.arch()})`,
21
+ 'X-Appwrite-Response-Format' : '1.7.0',
22
+ };
23
+ }
24
+
25
+ /**
26
+ * Set Cookie
27
+ *
28
+ * Your cookie
29
+ *
30
+ * @param {string} cookie
31
+ *
32
+ * @return self
33
+ */
34
+ setCookie(cookie) {
35
+ this.addHeader("cookie", cookie);
36
+
37
+ return this;
38
+ }
39
+
40
+ /**
41
+ * Set Project
42
+ *
43
+ * Your project ID
44
+ *
45
+ * @param {string} project
46
+ *
47
+ * @return self
48
+ */
49
+ setProject(project) {
50
+ this.addHeader('X-Appwrite-Project', project);
51
+
52
+ return this;
53
+ }
54
+
55
+ /**
56
+ * Set Key
57
+ *
58
+ * Your secret API key
59
+ *
60
+ * @param {string} key
61
+ *
62
+ * @return self
63
+ */
64
+ setKey(key) {
65
+ this.addHeader('X-Appwrite-Key', key);
66
+
67
+ return this;
68
+ }
69
+
70
+ /**
71
+ * Set JWT
72
+ *
73
+ * Your secret JSON Web Token
74
+ *
75
+ * @param {string} jwt
76
+ *
77
+ * @return self
78
+ */
79
+ setJWT(jwt) {
80
+ this.addHeader('X-Appwrite-JWT', jwt);
81
+
82
+ return this;
83
+ }
84
+
85
+ /**
86
+ * Set Locale
87
+ *
88
+ * @param {string} locale
89
+ *
90
+ * @return self
91
+ */
92
+ setLocale(locale) {
93
+ this.addHeader('X-Appwrite-Locale', locale);
94
+
95
+ return this;
96
+ }
97
+
98
+ /**
99
+ * Set Mode
100
+ *
101
+ * @param {string} mode
102
+ *
103
+ * @return self
104
+ */
105
+ setMode(mode) {
106
+ this.addHeader('X-Appwrite-Mode', mode);
107
+
108
+ return this;
109
+ }
110
+
111
+ /**
112
+ * Set self signed.
113
+ *
114
+ * @param {bool} status
115
+ *
116
+ * @return this
117
+ */
118
+ setSelfSigned(status) {
119
+ this.selfSigned = status;
120
+
121
+ return this;
122
+ }
123
+
124
+ /**
125
+ * Set endpoint.
126
+ *
127
+ * @param {string} endpoint
128
+ *
129
+ * @return this
130
+ */
131
+ setEndpoint(endpoint) {
132
+ if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {
133
+ throw new AppwriteException('Invalid endpoint URL: ' + endpoint);
134
+ }
135
+
136
+ this.endpoint = endpoint;
137
+ return this;
138
+ }
139
+
140
+ /**
141
+ * @param {string} key
142
+ * @param {string} value
143
+ */
144
+ addHeader(key, value) {
145
+ this.headers[key.toLowerCase()] = value;
146
+
147
+ return this;
148
+ }
149
+
150
+ async call(method, path = "", headers = {}, params = {}, responseType = "json") {
151
+ headers = {...this.headers, ...headers};
152
+ const url = new URL(this.endpoint + path);
153
+
154
+ let body = undefined;
155
+
156
+ if (method.toUpperCase() === "GET") {
157
+ url.search = new URLSearchParams(Client.flatten(params)).toString();
158
+ } else if (headers["content-type"]?.toLowerCase().startsWith("multipart/form-data")) {
159
+ delete headers["content-type"];
160
+ const formData = new FormData();
161
+
162
+ const flatParams = Client.flatten(params);
163
+
164
+ for (const [key, value] of Object.entries(flatParams)) {
165
+ if (value && value.type && value.type === "file") {
166
+ formData.append(key, value.file, value.filename);
167
+ } else {
168
+ formData.append(key, value);
169
+ }
170
+ }
171
+
172
+ body = formData;
173
+ } else {
174
+ body = JSONbig.stringify(params);
175
+ }
176
+
177
+ let response = undefined;
178
+ try {
179
+ response = await fetch(url.toString(), {
180
+ method: method.toUpperCase(),
181
+ headers,
182
+ body,
183
+ dispatcher: new Agent({
184
+ connect: {
185
+ rejectUnauthorized: !this.selfSigned,
186
+ },
187
+ }),
188
+ });
189
+
190
+ const warnings = response.headers.get('x-appwrite-warning');
191
+ if (warnings) {
192
+ warnings.split(';').forEach((warning) => console.warn(warning));
193
+ }
194
+ } catch (error) {
195
+ throw new AppwriteException(error.message);
196
+ }
197
+
198
+ if (response.status >= 400) {
199
+ const text = await response.text();
200
+ let json = undefined;
201
+ try {
202
+ json = JSON.parse(text);
203
+ } catch (error) {
204
+ throw new AppwriteException(text, response.status, "", text);
205
+ }
206
+
207
+ if (path !== '/account' && json.code === 401 && json.type === 'user_more_factors_required') {
208
+ console.log(`${chalk.cyan.bold("ℹ Info")} ${chalk.cyan("Unusable account found, removing...")}`);
209
+
210
+ const current = globalConfig.getCurrentSession();
211
+ globalConfig.setCurrentSession('');
212
+ globalConfig.removeSession(current);
213
+ }
214
+ throw new AppwriteException(json.message, json.code, json.type, text);
215
+ }
216
+
217
+ if (responseType === "arraybuffer") {
218
+ const data = await response.arrayBuffer();
219
+ return data;
220
+ }
221
+
222
+ let cookies = response.headers.getSetCookie();
223
+ if (cookies && cookies.length > 0) {
224
+ for (const cookie of cookies) {
225
+ if (cookie.startsWith('a_session_console=')) {
226
+ globalConfig.setCookie(cookie);
227
+ }
228
+ }
229
+ }
230
+
231
+ const text = await response.text();
232
+ let json = undefined;
233
+ try {
234
+ json = JSONbig.parse(text);
235
+ } catch (error) {
236
+ return text;
237
+ }
238
+ return json;
239
+ }
240
+
241
+ static flatten(data, prefix = '') {
242
+ let output = {};
243
+
244
+ for (const key in data) {
245
+ let value = data[key];
246
+ let finalKey = prefix ? prefix + '[' + key +']' : key;
247
+
248
+ if (Array.isArray(value)) {
249
+ output = Object.assign(output, Client.flatten(value, finalKey)); // @todo: handle name collision here if needed
250
+ } else {
251
+ output[finalKey] = value;
252
+ }
253
+ }
254
+
255
+ return output;
256
+ }
257
+ }
258
+
259
+ module.exports = Client;