appwrite-cli 0.14.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 (413) hide show
  1. package/.github/workflows/npm-publish.yml +41 -0
  2. package/Formula/appwrite.rb +19 -0
  3. package/LICENSE.md +12 -0
  4. package/README.md +102 -0
  5. package/docs/examples/account/create-anonymous-session.md +1 -0
  6. package/docs/examples/account/create-j-w-t.md +1 -0
  7. package/docs/examples/account/create-magic-u-r-l-session.md +4 -0
  8. package/docs/examples/account/create-o-auth2session.md +5 -0
  9. package/docs/examples/account/create-recovery.md +3 -0
  10. package/docs/examples/account/create-session.md +3 -0
  11. package/docs/examples/account/create-verification.md +2 -0
  12. package/docs/examples/account/create.md +5 -0
  13. package/docs/examples/account/delete-session.md +2 -0
  14. package/docs/examples/account/delete-sessions.md +1 -0
  15. package/docs/examples/account/delete.md +1 -0
  16. package/docs/examples/account/get-logs.md +3 -0
  17. package/docs/examples/account/get-prefs.md +1 -0
  18. package/docs/examples/account/get-session.md +2 -0
  19. package/docs/examples/account/get-sessions.md +1 -0
  20. package/docs/examples/account/get.md +1 -0
  21. package/docs/examples/account/update-email.md +3 -0
  22. package/docs/examples/account/update-magic-u-r-l-session.md +3 -0
  23. package/docs/examples/account/update-name.md +2 -0
  24. package/docs/examples/account/update-password.md +3 -0
  25. package/docs/examples/account/update-prefs.md +2 -0
  26. package/docs/examples/account/update-recovery.md +5 -0
  27. package/docs/examples/account/update-session.md +2 -0
  28. package/docs/examples/account/update-verification.md +3 -0
  29. package/docs/examples/avatars/get-browser.md +5 -0
  30. package/docs/examples/avatars/get-credit-card.md +5 -0
  31. package/docs/examples/avatars/get-favicon.md +2 -0
  32. package/docs/examples/avatars/get-flag.md +5 -0
  33. package/docs/examples/avatars/get-image.md +4 -0
  34. package/docs/examples/avatars/get-initials.md +6 -0
  35. package/docs/examples/avatars/get-q-r.md +5 -0
  36. package/docs/examples/database/create-boolean-attribute.md +6 -0
  37. package/docs/examples/database/create-collection.md +6 -0
  38. package/docs/examples/database/create-document.md +6 -0
  39. package/docs/examples/database/create-email-attribute.md +6 -0
  40. package/docs/examples/database/create-enum-attribute.md +7 -0
  41. package/docs/examples/database/create-float-attribute.md +8 -0
  42. package/docs/examples/database/create-index.md +6 -0
  43. package/docs/examples/database/create-integer-attribute.md +8 -0
  44. package/docs/examples/database/create-ip-attribute.md +6 -0
  45. package/docs/examples/database/create-string-attribute.md +7 -0
  46. package/docs/examples/database/create-url-attribute.md +6 -0
  47. package/docs/examples/database/delete-attribute.md +3 -0
  48. package/docs/examples/database/delete-collection.md +2 -0
  49. package/docs/examples/database/delete-document.md +3 -0
  50. package/docs/examples/database/delete-index.md +3 -0
  51. package/docs/examples/database/get-attribute.md +3 -0
  52. package/docs/examples/database/get-collection-usage.md +3 -0
  53. package/docs/examples/database/get-collection.md +2 -0
  54. package/docs/examples/database/get-document.md +3 -0
  55. package/docs/examples/database/get-index.md +3 -0
  56. package/docs/examples/database/get-usage.md +2 -0
  57. package/docs/examples/database/list-attributes.md +2 -0
  58. package/docs/examples/database/list-collection-logs.md +4 -0
  59. package/docs/examples/database/list-collections.md +7 -0
  60. package/docs/examples/database/list-document-logs.md +5 -0
  61. package/docs/examples/database/list-documents.md +9 -0
  62. package/docs/examples/database/list-indexes.md +2 -0
  63. package/docs/examples/database/update-collection.md +7 -0
  64. package/docs/examples/database/update-document.md +6 -0
  65. package/docs/examples/functions/create-deployment.md +5 -0
  66. package/docs/examples/functions/create-execution.md +4 -0
  67. package/docs/examples/functions/create.md +9 -0
  68. package/docs/examples/functions/delete-deployment.md +3 -0
  69. package/docs/examples/functions/delete.md +2 -0
  70. package/docs/examples/functions/get-deployment.md +3 -0
  71. package/docs/examples/functions/get-execution.md +3 -0
  72. package/docs/examples/functions/get-usage.md +3 -0
  73. package/docs/examples/functions/get.md +2 -0
  74. package/docs/examples/functions/list-deployments.md +8 -0
  75. package/docs/examples/functions/list-executions.md +7 -0
  76. package/docs/examples/functions/list-runtimes.md +1 -0
  77. package/docs/examples/functions/list.md +7 -0
  78. package/docs/examples/functions/retry-build.md +4 -0
  79. package/docs/examples/functions/update-deployment.md +3 -0
  80. package/docs/examples/functions/update.md +8 -0
  81. package/docs/examples/health/get-antivirus.md +1 -0
  82. package/docs/examples/health/get-cache.md +1 -0
  83. package/docs/examples/health/get-d-b.md +1 -0
  84. package/docs/examples/health/get-queue-certificates.md +1 -0
  85. package/docs/examples/health/get-queue-functions.md +1 -0
  86. package/docs/examples/health/get-queue-logs.md +1 -0
  87. package/docs/examples/health/get-queue-usage.md +1 -0
  88. package/docs/examples/health/get-queue-webhooks.md +1 -0
  89. package/docs/examples/health/get-storage-local.md +1 -0
  90. package/docs/examples/health/get-time.md +1 -0
  91. package/docs/examples/health/get.md +1 -0
  92. package/docs/examples/locale/get-continents.md +1 -0
  93. package/docs/examples/locale/get-countries-e-u.md +1 -0
  94. package/docs/examples/locale/get-countries-phones.md +1 -0
  95. package/docs/examples/locale/get-countries.md +1 -0
  96. package/docs/examples/locale/get-currencies.md +1 -0
  97. package/docs/examples/locale/get-languages.md +1 -0
  98. package/docs/examples/locale/get.md +1 -0
  99. package/docs/examples/projects/create-domain.md +3 -0
  100. package/docs/examples/projects/create-key.md +4 -0
  101. package/docs/examples/projects/create-platform.md +7 -0
  102. package/docs/examples/projects/create-webhook.md +8 -0
  103. package/docs/examples/projects/create.md +13 -0
  104. package/docs/examples/projects/delete-domain.md +3 -0
  105. package/docs/examples/projects/delete-key.md +3 -0
  106. package/docs/examples/projects/delete-platform.md +3 -0
  107. package/docs/examples/projects/delete-webhook.md +3 -0
  108. package/docs/examples/projects/delete.md +3 -0
  109. package/docs/examples/projects/get-domain.md +3 -0
  110. package/docs/examples/projects/get-key.md +3 -0
  111. package/docs/examples/projects/get-platform.md +3 -0
  112. package/docs/examples/projects/get-usage.md +3 -0
  113. package/docs/examples/projects/get-webhook.md +3 -0
  114. package/docs/examples/projects/get.md +2 -0
  115. package/docs/examples/projects/list-domains.md +2 -0
  116. package/docs/examples/projects/list-keys.md +2 -0
  117. package/docs/examples/projects/list-platforms.md +2 -0
  118. package/docs/examples/projects/list-webhooks.md +2 -0
  119. package/docs/examples/projects/list.md +7 -0
  120. package/docs/examples/projects/update-auth-limit.md +3 -0
  121. package/docs/examples/projects/update-auth-status.md +4 -0
  122. package/docs/examples/projects/update-domain-verification.md +3 -0
  123. package/docs/examples/projects/update-key.md +5 -0
  124. package/docs/examples/projects/update-o-auth2.md +5 -0
  125. package/docs/examples/projects/update-platform.md +7 -0
  126. package/docs/examples/projects/update-service-status.md +4 -0
  127. package/docs/examples/projects/update-webhook.md +9 -0
  128. package/docs/examples/projects/update.md +12 -0
  129. package/docs/examples/storage/create-bucket.md +11 -0
  130. package/docs/examples/storage/create-file.md +6 -0
  131. package/docs/examples/storage/delete-bucket.md +2 -0
  132. package/docs/examples/storage/delete-file.md +3 -0
  133. package/docs/examples/storage/get-bucket-usage.md +3 -0
  134. package/docs/examples/storage/get-bucket.md +2 -0
  135. package/docs/examples/storage/get-file-download.md +3 -0
  136. package/docs/examples/storage/get-file-preview.md +14 -0
  137. package/docs/examples/storage/get-file-view.md +3 -0
  138. package/docs/examples/storage/get-file.md +3 -0
  139. package/docs/examples/storage/get-usage.md +2 -0
  140. package/docs/examples/storage/list-buckets.md +7 -0
  141. package/docs/examples/storage/list-files.md +8 -0
  142. package/docs/examples/storage/update-bucket.md +11 -0
  143. package/docs/examples/storage/update-file.md +5 -0
  144. package/docs/examples/teams/create-membership.md +6 -0
  145. package/docs/examples/teams/create.md +4 -0
  146. package/docs/examples/teams/delete-membership.md +3 -0
  147. package/docs/examples/teams/delete.md +2 -0
  148. package/docs/examples/teams/get-membership.md +3 -0
  149. package/docs/examples/teams/get-memberships.md +8 -0
  150. package/docs/examples/teams/get.md +2 -0
  151. package/docs/examples/teams/list.md +7 -0
  152. package/docs/examples/teams/update-membership-roles.md +4 -0
  153. package/docs/examples/teams/update-membership-status.md +5 -0
  154. package/docs/examples/teams/update.md +3 -0
  155. package/docs/examples/users/create.md +5 -0
  156. package/docs/examples/users/delete-session.md +3 -0
  157. package/docs/examples/users/delete-sessions.md +2 -0
  158. package/docs/examples/users/delete.md +2 -0
  159. package/docs/examples/users/get-logs.md +4 -0
  160. package/docs/examples/users/get-prefs.md +2 -0
  161. package/docs/examples/users/get-sessions.md +2 -0
  162. package/docs/examples/users/get-usage.md +3 -0
  163. package/docs/examples/users/get.md +2 -0
  164. package/docs/examples/users/list.md +7 -0
  165. package/docs/examples/users/update-email.md +3 -0
  166. package/docs/examples/users/update-name.md +3 -0
  167. package/docs/examples/users/update-password.md +3 -0
  168. package/docs/examples/users/update-prefs.md +3 -0
  169. package/docs/examples/users/update-status.md +3 -0
  170. package/docs/examples/users/update-verification.md +3 -0
  171. package/index.js +49 -0
  172. package/install.sh +165 -0
  173. package/ldid/COPYING +661 -0
  174. package/ldid/Makefile +51 -0
  175. package/ldid/control +12 -0
  176. package/ldid/control.sh +5 -0
  177. package/ldid/deb.sh +10 -0
  178. package/ldid/ios.sh +2 -0
  179. package/ldid/ldid.cpp +3253 -0
  180. package/ldid/ldid.hpp +164 -0
  181. package/ldid/libplist/.github/workflows/build.yml +62 -0
  182. package/ldid/libplist/.github/workflows/codeql-analysis.yml +71 -0
  183. package/ldid/libplist/AUTHORS +28 -0
  184. package/ldid/libplist/COPYING +340 -0
  185. package/ldid/libplist/COPYING.LESSER +502 -0
  186. package/ldid/libplist/Makefile.am +20 -0
  187. package/ldid/libplist/NEWS +252 -0
  188. package/ldid/libplist/README.md +114 -0
  189. package/ldid/libplist/aclocal.m4 +1729 -0
  190. package/ldid/libplist/autogen.sh +26 -0
  191. package/ldid/libplist/configure.ac +292 -0
  192. package/ldid/libplist/cython/Makefile.am +53 -0
  193. package/ldid/libplist/cython/plist.pxd +78 -0
  194. package/ldid/libplist/cython/plist.pyx +947 -0
  195. package/ldid/libplist/cython/plist_util.c +40 -0
  196. package/ldid/libplist/cython/plist_util.h +5 -0
  197. package/ldid/libplist/docs/Makefile.am +3 -0
  198. package/ldid/libplist/docs/plistutil.1 +62 -0
  199. package/ldid/libplist/fuzz/Makefile.am +43 -0
  200. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-4766291097288704 +0 -0
  201. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-4930725262393344 +0 -0
  202. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-5421965105954816 +0 -0
  203. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-5556177727389696 +0 -0
  204. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-6557963011489792 +0 -0
  205. package/ldid/libplist/fuzz/bplist-crashes/clusterfuzz-testcase-6605859144597504 +0 -0
  206. package/ldid/libplist/fuzz/bplist-crashes/crash-0ce4dd483b645bc05ec45a97d285dcf1933ee840 +0 -0
  207. package/ldid/libplist/fuzz/bplist-crashes/crash-0d59cdcb5c3416c2790612b78a631ce9f5622800 +0 -0
  208. package/ldid/libplist/fuzz/bplist-crashes/crash-17d635ab460fef74df1ac7561f1253533a6359c5 +0 -0
  209. package/ldid/libplist/fuzz/bplist-crashes/crash-33a67313fa7864cd627ef92d12017a127d342f28 +0 -0
  210. package/ldid/libplist/fuzz/bplist-crashes/crash-39f1347115f8fe9ac25cdc9332e3fc5cd32c7f7b +0 -0
  211. package/ldid/libplist/fuzz/bplist-crashes/crash-4bd78175fe01d07c5ee90104fbc68d95dd092210 +0 -0
  212. package/ldid/libplist/fuzz/bplist-crashes/crash-4c5404453bb7425aef9b953a5f6f3f0afcc48392 +0 -0
  213. package/ldid/libplist/fuzz/bplist-crashes/crash-52775e25f6af20af351cd616834e602fc988a032 +0 -0
  214. package/ldid/libplist/fuzz/bplist-crashes/crash-6d1399685b745d3d49fadc91072fabcdde8d16fa +0 -0
  215. package/ldid/libplist/fuzz/bplist-crashes/crash-94b3725900d63c6258448fd757559c81002de9c9 +0 -0
  216. package/ldid/libplist/fuzz/bplist-crashes/crash-a47195acbabc3f5b2cda9c6ebda42f2afc1cc5af +0 -0
  217. package/ldid/libplist/fuzz/bplist-crashes/crash-ce852bae6aeeffc4698a93660236f1b995ce966e +0 -0
  218. package/ldid/libplist/fuzz/bplist-crashes/crash-daddb6e82e3d1ed76e20e4131462f5247a6fb131 +0 -0
  219. package/ldid/libplist/fuzz/bplist-crashes/crash-f21be4ebce7f9c337bf96b93cec7e252f5c75a21 +0 -0
  220. package/ldid/libplist/fuzz/bplist-crashes/crash-f779dafccc0164684d1a264976e56037188b40e2 +0 -0
  221. package/ldid/libplist/fuzz/bplist-leaks/leak-96fb453b3ba18d31e164831795a708183b5a0dac +0 -0
  222. package/ldid/libplist/fuzz/bplist-leaks/leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1 +0 -0
  223. package/ldid/libplist/fuzz/bplist-leaks/leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074 +0 -0
  224. package/ldid/libplist/fuzz/bplist.dict +1 -0
  225. package/ldid/libplist/fuzz/bplist_fuzzer.cc +32 -0
  226. package/ldid/libplist/fuzz/bplist_fuzzer.options +3 -0
  227. package/ldid/libplist/fuzz/fuzzers.test +8 -0
  228. package/ldid/libplist/fuzz/init-fuzzers.sh +23 -0
  229. package/ldid/libplist/fuzz/test-fuzzers.sh +33 -0
  230. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-4516959125241856 +0 -0
  231. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-4663876528373760 +5 -0
  232. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-5799076113154048 +45 -0
  233. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-5922404220010496 +0 -0
  234. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-6015098361479168 +0 -0
  235. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-6043836860071936 +0 -0
  236. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-6047509906456576 +10050 -0
  237. package/ldid/libplist/fuzz/xplist-crashes/clusterfuzz-testcase-6482601374121984 +0 -0
  238. package/ldid/libplist/fuzz/xplist-crashes/crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17 +53 -0
  239. package/ldid/libplist/fuzz/xplist-crashes/crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1 +9 -0
  240. package/ldid/libplist/fuzz/xplist-crashes/crash-348c909a0b3532977185f551eb5d2ed04e694883 +11 -0
  241. package/ldid/libplist/fuzz/xplist-crashes/crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a +8 -0
  242. package/ldid/libplist/fuzz/xplist-crashes/crash-80c28b0e2a446665e68927dd4441c10c9a68e64e +0 -0
  243. package/ldid/libplist/fuzz/xplist-crashes/crash-8acf177da60ecf13c36d0da1b8e25de891980ea6 +5 -0
  244. package/ldid/libplist/fuzz/xplist-crashes/crash-94276cf69a50e78dd6cdf079c208cb80f357cd33 +0 -0
  245. package/ldid/libplist/fuzz/xplist-crashes/crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9 +0 -0
  246. package/ldid/libplist/fuzz/xplist-crashes/crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9 +0 -0
  247. package/ldid/libplist/fuzz/xplist-crashes/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 +0 -0
  248. package/ldid/libplist/fuzz/xplist-crashes/crash-f03c680ee1c4d84c28e731752df77a61e213a24d +72 -0
  249. package/ldid/libplist/fuzz/xplist-leaks/clusterfuzz-testcase-4634751103139840 +187 -0
  250. package/ldid/libplist/fuzz/xplist-leaks/clusterfuzz-testcase-6056412121661440 +12 -0
  251. package/ldid/libplist/fuzz/xplist-leaks/leak-47b0a9f21d3affab6cfc898e5140bb53265ada07 +0 -0
  252. package/ldid/libplist/fuzz/xplist-leaks/leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7 +0 -0
  253. package/ldid/libplist/fuzz/xplist-leaks/leak-53bc466851eda790bd891733da5db0a7482886bf +6 -0
  254. package/ldid/libplist/fuzz/xplist.dict +51 -0
  255. package/ldid/libplist/fuzz/xplist_fuzzer.cc +32 -0
  256. package/ldid/libplist/fuzz/xplist_fuzzer.options +3 -0
  257. package/ldid/libplist/include/Makefile.am +15 -0
  258. package/ldid/libplist/include/plist/Array.h +55 -0
  259. package/ldid/libplist/include/plist/Boolean.h +48 -0
  260. package/ldid/libplist/include/plist/Data.h +49 -0
  261. package/ldid/libplist/include/plist/Date.h +50 -0
  262. package/ldid/libplist/include/plist/Dictionary.h +68 -0
  263. package/ldid/libplist/include/plist/Integer.h +48 -0
  264. package/ldid/libplist/include/plist/Key.h +49 -0
  265. package/ldid/libplist/include/plist/Node.h +57 -0
  266. package/ldid/libplist/include/plist/Real.h +48 -0
  267. package/ldid/libplist/include/plist/String.h +49 -0
  268. package/ldid/libplist/include/plist/Structure.h +59 -0
  269. package/ldid/libplist/include/plist/Uid.h +48 -0
  270. package/ldid/libplist/include/plist/plist++.h +39 -0
  271. package/ldid/libplist/include/plist/plist.h +953 -0
  272. package/ldid/libplist/libcnary/COPYING +502 -0
  273. package/ldid/libplist/libcnary/Makefile.am +15 -0
  274. package/ldid/libplist/libcnary/README +5 -0
  275. package/ldid/libplist/libcnary/cnary.c +46 -0
  276. package/ldid/libplist/libcnary/include/node.h +65 -0
  277. package/ldid/libplist/libcnary/include/node_list.h +47 -0
  278. package/ldid/libplist/libcnary/include/object.h +41 -0
  279. package/ldid/libplist/libcnary/node.c +216 -0
  280. package/ldid/libplist/libcnary/node_list.c +157 -0
  281. package/ldid/libplist/m4/ac_pkg_cython.m4 +67 -0
  282. package/ldid/libplist/m4/as-compiler-flag.m4 +62 -0
  283. package/ldid/libplist/m4/ax_pthread.m4 +485 -0
  284. package/ldid/libplist/m4/ax_python_devel.m4 +327 -0
  285. package/ldid/libplist/m4/cython_python.m4 +7 -0
  286. package/ldid/libplist/src/Array.cpp +148 -0
  287. package/ldid/libplist/src/Boolean.cpp +73 -0
  288. package/ldid/libplist/src/Data.cpp +79 -0
  289. package/ldid/libplist/src/Date.cpp +76 -0
  290. package/ldid/libplist/src/Dictionary.cpp +182 -0
  291. package/ldid/libplist/src/Integer.cpp +73 -0
  292. package/ldid/libplist/src/Key.cpp +80 -0
  293. package/ldid/libplist/src/Makefile.am +63 -0
  294. package/ldid/libplist/src/Node.cpp +166 -0
  295. package/ldid/libplist/src/Real.cpp +73 -0
  296. package/ldid/libplist/src/String.cpp +80 -0
  297. package/ldid/libplist/src/Structure.cpp +123 -0
  298. package/ldid/libplist/src/Uid.cpp +73 -0
  299. package/ldid/libplist/src/base64.c +119 -0
  300. package/ldid/libplist/src/base64.h +28 -0
  301. package/ldid/libplist/src/bplist.c +1381 -0
  302. package/ldid/libplist/src/bytearray.c +61 -0
  303. package/ldid/libplist/src/bytearray.h +36 -0
  304. package/ldid/libplist/src/hashtable.c +140 -0
  305. package/ldid/libplist/src/hashtable.h +50 -0
  306. package/ldid/libplist/src/plist.c +1356 -0
  307. package/ldid/libplist/src/plist.h +74 -0
  308. package/ldid/libplist/src/ptrarray.c +96 -0
  309. package/ldid/libplist/src/ptrarray.h +40 -0
  310. package/ldid/libplist/src/strbuf.h +34 -0
  311. package/ldid/libplist/src/time64.c +814 -0
  312. package/ldid/libplist/src/time64.h +81 -0
  313. package/ldid/libplist/src/time64_limits.h +97 -0
  314. package/ldid/libplist/src/xplist.c +1435 -0
  315. package/ldid/libplist/test/Makefile.am +93 -0
  316. package/ldid/libplist/test/amp.test +14 -0
  317. package/ldid/libplist/test/bigarray.test +15 -0
  318. package/ldid/libplist/test/cdata.test +12 -0
  319. package/ldid/libplist/test/data/1.plist +35 -0
  320. package/ldid/libplist/test/data/2.plist +100 -0
  321. package/ldid/libplist/test/data/3.plist +420 -0
  322. package/ldid/libplist/test/data/4.plist +5037 -0
  323. package/ldid/libplist/test/data/5.plist +55053 -0
  324. package/ldid/libplist/test/data/6.plist +4006 -0
  325. package/ldid/libplist/test/data/7.plist +14 -0
  326. package/ldid/libplist/test/data/amp.plist +6 -0
  327. package/ldid/libplist/test/data/cdata.plist +6 -0
  328. package/ldid/libplist/test/data/dictref1byte.bplist +0 -0
  329. package/ldid/libplist/test/data/dictref2bytes.bplist +0 -0
  330. package/ldid/libplist/test/data/dictref3bytes.bplist +0 -0
  331. package/ldid/libplist/test/data/dictref4bytes.bplist +0 -0
  332. package/ldid/libplist/test/data/dictref5bytes.bplist +0 -0
  333. package/ldid/libplist/test/data/dictref6bytes.bplist +0 -0
  334. package/ldid/libplist/test/data/dictref7bytes.bplist +0 -0
  335. package/ldid/libplist/test/data/dictref8bytes.bplist +0 -0
  336. package/ldid/libplist/test/data/empty_keys.plist +8 -0
  337. package/ldid/libplist/test/data/entities.plist +57 -0
  338. package/ldid/libplist/test/data/hex.plist +5 -0
  339. package/ldid/libplist/test/data/invalid_tag.plist +6 -0
  340. package/ldid/libplist/test/data/malformed_dict.bplist +0 -0
  341. package/ldid/libplist/test/data/off1byte.bplist +0 -0
  342. package/ldid/libplist/test/data/off2bytes.bplist +0 -0
  343. package/ldid/libplist/test/data/off3bytes.bplist +0 -0
  344. package/ldid/libplist/test/data/off4bytes.bplist +0 -0
  345. package/ldid/libplist/test/data/off5bytes.bplist +0 -0
  346. package/ldid/libplist/test/data/off6bytes.bplist +0 -0
  347. package/ldid/libplist/test/data/off7bytes.bplist +0 -0
  348. package/ldid/libplist/test/data/off8bytes.bplist +0 -0
  349. package/ldid/libplist/test/data/offxml.plist +8 -0
  350. package/ldid/libplist/test/data/order.bplist +0 -0
  351. package/ldid/libplist/test/data/order.plist +27 -0
  352. package/ldid/libplist/test/data/recursion.bplist +0 -0
  353. package/ldid/libplist/test/data/signed.bplist +0 -0
  354. package/ldid/libplist/test/data/signed.plist +5 -0
  355. package/ldid/libplist/test/data/signedunsigned.bplist +0 -0
  356. package/ldid/libplist/test/data/signedunsigned.plist +11 -0
  357. package/ldid/libplist/test/data/unsigned.bplist +0 -0
  358. package/ldid/libplist/test/data/unsigned.plist +5 -0
  359. package/ldid/libplist/test/dates.test +15 -0
  360. package/ldid/libplist/test/empty.test +15 -0
  361. package/ldid/libplist/test/empty_keys.test +12 -0
  362. package/ldid/libplist/test/entities.test +12 -0
  363. package/ldid/libplist/test/hex.test +12 -0
  364. package/ldid/libplist/test/huge.test +15 -0
  365. package/ldid/libplist/test/invalid_tag.test +14 -0
  366. package/ldid/libplist/test/large.test +15 -0
  367. package/ldid/libplist/test/malformed_dict.test +11 -0
  368. package/ldid/libplist/test/medium.test +15 -0
  369. package/ldid/libplist/test/offsetsize.test +12 -0
  370. package/ldid/libplist/test/order.test +13 -0
  371. package/ldid/libplist/test/plist_cmp.c +158 -0
  372. package/ldid/libplist/test/plist_test.c +135 -0
  373. package/ldid/libplist/test/recursion.test +11 -0
  374. package/ldid/libplist/test/refsize.test +12 -0
  375. package/ldid/libplist/test/signedunsigned1.test +23 -0
  376. package/ldid/libplist/test/signedunsigned2.test +23 -0
  377. package/ldid/libplist/test/signedunsigned3.test +23 -0
  378. package/ldid/libplist/test/small.test +15 -0
  379. package/ldid/libplist/test/timezone1.test +17 -0
  380. package/ldid/libplist/test/timezone2.test +21 -0
  381. package/ldid/libplist/tools/Makefile.am +10 -0
  382. package/ldid/libplist/tools/plistutil.c +299 -0
  383. package/ldid/lookup2.c +416 -0
  384. package/ldid/make.sh +90 -0
  385. package/ldid/minimal/hexdump.h +76 -0
  386. package/ldid/minimal/mapping.h +72 -0
  387. package/ldid/minimal/sqlite3.h +71 -0
  388. package/ldid/minimal/stdlib.h +129 -0
  389. package/ldid/minimal/string.h +51 -0
  390. package/ldid/plist.sh +2 -0
  391. package/ldid/sha1.h +64 -0
  392. package/ldid/sysroot.sh +31 -0
  393. package/ldid/version.sh +2 -0
  394. package/lib/client.js +243 -0
  395. package/lib/commands/account.js +785 -0
  396. package/lib/commands/avatars.js +349 -0
  397. package/lib/commands/database.js +1238 -0
  398. package/lib/commands/deploy.js +477 -0
  399. package/lib/commands/functions.js +689 -0
  400. package/lib/commands/generic.js +106 -0
  401. package/lib/commands/health.js +269 -0
  402. package/lib/commands/init.js +148 -0
  403. package/lib/commands/locale.js +177 -0
  404. package/lib/commands/projects.js +1191 -0
  405. package/lib/commands/storage.js +743 -0
  406. package/lib/commands/teams.js +435 -0
  407. package/lib/commands/users.js +542 -0
  408. package/lib/config.js +264 -0
  409. package/lib/exception.js +9 -0
  410. package/lib/parser.js +179 -0
  411. package/lib/questions.js +223 -0
  412. package/lib/sdks.js +82 -0
  413. package/package.json +41 -0
@@ -0,0 +1,71 @@
1
+ /* Minimal - the simplest thing that could possibly work
2
+ * Copyright (C) 2007 Jay Freeman (saurik)
3
+ */
4
+
5
+ /*
6
+ * Redistribution and use in source and binary
7
+ * forms, with or without modification, are permitted
8
+ * provided that the following conditions are met:
9
+ *
10
+ * 1. Redistributions of source code must retain the
11
+ * above copyright notice, this list of conditions
12
+ * and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the
14
+ * above copyright notice, this list of conditions
15
+ * and the following disclaimer in the documentation
16
+ * and/or other materials provided with the
17
+ * distribution.
18
+ * 3. The name of the author may not be used to endorse
19
+ * or promote products derived from this software
20
+ * without specific prior written permission.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
23
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
24
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
27
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
33
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+ */
37
+
38
+ #ifndef MINIMAL_SQLITE3_H
39
+ #define MINIMAL_SQLITE3_H
40
+
41
+ #include <sqlite3.h>
42
+ #include <string.h>
43
+
44
+ #define _sqlcall(expr) ({ \
45
+ __typeof__(expr) _value = (expr); \
46
+ if (_value != 0 && (_value < 100 || _value >= 200)) \
47
+ _assert(false, "_sqlcall(%u:%s): %s\n", _value, #expr, sqlite3_errmsg(database_)); \
48
+ _value; \
49
+ })
50
+
51
+ int sqlite3_bind_string(sqlite3_stmt *stmt, int n, const char *value) {
52
+ if (value == NULL)
53
+ return sqlite3_bind_null(stmt, n);
54
+ else
55
+ return sqlite3_bind_text(stmt, n, strdup(value), -1, &free);
56
+ }
57
+
58
+ int sqlite3_bind_boolean(sqlite3_stmt *stmt, int n, bool value) {
59
+ return sqlite3_bind_int(stmt, n, value ? 1 : 0);
60
+ }
61
+
62
+ char *sqlite3_column_string(sqlite3_stmt *stmt, int n) {
63
+ const unsigned char *value = sqlite3_column_text(stmt, n);
64
+ return value == NULL ? NULL : strdup((const char *) value);
65
+ }
66
+
67
+ bool sqlite3_column_boolean(sqlite3_stmt *stmt, int n) {
68
+ return sqlite3_column_int(stmt, n) != 0;
69
+ }
70
+
71
+ #endif/*MINIMAL_SQLITE3_H*/
@@ -0,0 +1,129 @@
1
+ /* Minimal - the simplest thing that could possibly work
2
+ * Copyright (C) 2007 Jay Freeman (saurik)
3
+ */
4
+
5
+ /*
6
+ * Redistribution and use in source and binary
7
+ * forms, with or without modification, are permitted
8
+ * provided that the following conditions are met:
9
+ *
10
+ * 1. Redistributions of source code must retain the
11
+ * above copyright notice, this list of conditions
12
+ * and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the
14
+ * above copyright notice, this list of conditions
15
+ * and the following disclaimer in the documentation
16
+ * and/or other materials provided with the
17
+ * distribution.
18
+ * 3. The name of the author may not be used to endorse
19
+ * or promote products derived from this software
20
+ * without specific prior written permission.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
23
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
24
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
27
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
33
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+ */
37
+
38
+ #ifndef MINIMAL_STDLIB_H
39
+ #define MINIMAL_STDLIB_H
40
+
41
+ #ifdef __i386__
42
+ #define _breakpoint() \
43
+ __asm__ ("int $0x03")
44
+ #else
45
+ #define _breakpoint()
46
+ #endif
47
+
48
+ #ifdef __cplusplus
49
+ #define _assert___(line) \
50
+ #line
51
+ #define _assert__(line) \
52
+ _assert___(line)
53
+ #define _assert_(e) \
54
+ throw __FILE__ "(" _assert__(__LINE__) "): _assert(" e ")"
55
+ #else
56
+ #define _assert_(e) \
57
+ exit(1)
58
+ #endif
59
+
60
+ #define _assert(expr) \
61
+ do if (!(expr)) { \
62
+ fprintf(stderr, "%s(%u): _assert(%s); errno=%u\n", __FILE__, __LINE__, #expr, errno); \
63
+ _breakpoint(); \
64
+ _assert_(#expr); \
65
+ } while (false)
66
+
67
+ #define _syscall(expr) ({ \
68
+ __typeof__(expr) _value; \
69
+ do if ((long) (_value = (expr)) != -1) \
70
+ break; \
71
+ else switch (errno) { \
72
+ case EINTR: \
73
+ continue; \
74
+ default: \
75
+ _assert(false); \
76
+ } while (true); \
77
+ _value; \
78
+ })
79
+
80
+ #define _aprcall(expr) \
81
+ do { \
82
+ apr_status_t _aprstatus((expr)); \
83
+ _assert(_aprstatus == APR_SUCCESS); \
84
+ } while (false)
85
+
86
+ #define _forever \
87
+ for (;;)
88
+
89
+ #define _trace() \
90
+ fprintf(stderr, "_trace(%s:%u): %s\n", __FILE__, __LINE__, __FUNCTION__)
91
+
92
+ #define _not(type) \
93
+ ((type) ~ (type) 0)
94
+
95
+ #define _finline \
96
+ inline __attribute__((always_inline))
97
+ #define _disused \
98
+ __attribute__((unused))
99
+
100
+ #define _label__(x) _label ## x
101
+ #define _label_(y) _label__(y)
102
+ #define _label _label_(__LINE__)
103
+
104
+ #define _packed \
105
+ __attribute__((packed))
106
+
107
+ #ifdef __cplusplus
108
+
109
+ template <typename Type_>
110
+ struct Iterator_ {
111
+ typedef typename Type_::const_iterator Result;
112
+ };
113
+
114
+ #define _foreach(item, list) \
115
+ for (bool _stop(true); _stop; ) \
116
+ for (const __typeof__(list) &_list = (list); _stop; _stop = false) \
117
+ for (Iterator_<__typeof__(list)>::Result _item = _list.begin(); _item != _list.end(); ++_item) \
118
+ for (bool _suck(true); _suck; _suck = false) \
119
+ for (const __typeof__(*_item) &item = *_item; _suck; _suck = false)
120
+
121
+ #endif
122
+
123
+ #include <errno.h>
124
+ #include <stdio.h>
125
+ #include <stdbool.h>
126
+ #include <stdlib.h>
127
+ #include <stdint.h>
128
+
129
+ #endif/*MINIMAL_STDLIB_H*/
@@ -0,0 +1,51 @@
1
+ /* Minimal - the simplest thing that could possibly work
2
+ * Copyright (C) 2007 Jay Freeman (saurik)
3
+ */
4
+
5
+ /*
6
+ * Redistribution and use in source and binary
7
+ * forms, with or without modification, are permitted
8
+ * provided that the following conditions are met:
9
+ *
10
+ * 1. Redistributions of source code must retain the
11
+ * above copyright notice, this list of conditions
12
+ * and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the
14
+ * above copyright notice, this list of conditions
15
+ * and the following disclaimer in the documentation
16
+ * and/or other materials provided with the
17
+ * distribution.
18
+ * 3. The name of the author may not be used to endorse
19
+ * or promote products derived from this software
20
+ * without specific prior written permission.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
23
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
24
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
27
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
33
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+ */
37
+
38
+ #ifndef MINIMAL_STRING_H
39
+ #define MINIMAL_STRING_H
40
+
41
+ #include <string.h>
42
+
43
+ _disused static char *strndup_(const char *src, int len) {
44
+ char *dst = (char *) malloc(len + 1);
45
+ _assert(dst != NULL);
46
+ strncpy(dst, src, len);
47
+ dst[len] = '\0';
48
+ return dst;
49
+ }
50
+
51
+ #endif/*MINIMAL_STRING_H*/
package/ldid/plist.sh ADDED
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ ./configure CC='clang -mmacosx-version-min=10.4 -arch i386 -arch x86_64' CXX='clang++ -mmacosx-version-min=10.4 -arch i386 -arch x86_64' CPP='clang -E' CXXCPP='clang++ -E' libxml2_LIBS=-lxml2 libxml2_CFLAGS=-I/usr/include/libxml2 --enable-static --disable-shared
package/ldid/sha1.h ADDED
@@ -0,0 +1,64 @@
1
+ /*
2
+ * sha1.h
3
+ *
4
+ * Description:
5
+ * This is the header file for code which implements the Secure
6
+ * Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
7
+ * April 17, 1995.
8
+ *
9
+ * Many of the variable names in this code, especially the
10
+ * single character names, were used because those were the names
11
+ * used in the publication.
12
+ *
13
+ * Please read the file sha1.c for more information.
14
+ *
15
+ */
16
+
17
+ #ifndef _SHA1_H_
18
+ #define _SHA1_H_
19
+
20
+ #include <stdint.h>
21
+
22
+ #ifndef _SHA_enum_
23
+ #define _SHA_enum_
24
+ enum
25
+ {
26
+ shaSuccess = 0,
27
+ shaNull, /* Null pointer parameter */
28
+ shaInputTooLong, /* input data too long */
29
+ shaStateError /* called Input after Result */
30
+ };
31
+ #endif
32
+ #define SHA1HashSize 20
33
+
34
+ /*
35
+ * This structure will hold context information for the SHA-1
36
+ * hashing operation
37
+ */
38
+ typedef struct SHA1Context
39
+ {
40
+ uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest */
41
+
42
+ uint32_t Length_Low; /* Message length in bits */
43
+ uint32_t Length_High; /* Message length in bits */
44
+
45
+ /* Index into message block array */
46
+ int_least16_t Message_Block_Index;
47
+ uint8_t Message_Block[64]; /* 512-bit message blocks */
48
+
49
+ int Computed; /* Is the digest computed? */
50
+ int Corrupted; /* Is the message digest corrupted? */
51
+ } SHA1Context;
52
+
53
+ /*
54
+ * Function Prototypes
55
+ */
56
+
57
+ int SHA1Reset( SHA1Context *);
58
+ int SHA1Input( SHA1Context *,
59
+ const uint8_t *,
60
+ unsigned int);
61
+ int SHA1Result( SHA1Context *,
62
+ uint8_t Message_Digest[SHA1HashSize]);
63
+
64
+ #endif
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ rm -rf sysroot32 sysroot64
5
+ mkdir -p sysroot32 sysroot64
6
+
7
+ function merge() {
8
+ wget --no-check-certificate "${apt}/$1"
9
+ dpkg-deb -x "$1" .
10
+ }
11
+
12
+ pushd sysroot32
13
+ apt=http://apt.saurik.com/debs
14
+ merge openssl_0.9.8zg-13_iphoneos-arm.deb
15
+ merge libplist_2.0.0-1_iphoneos-arm.deb
16
+ popd
17
+
18
+ pushd sysroot64
19
+ apt=https://apt.bingner.com/debs/1443.00
20
+ merge libssl1.0_1.0.2q-1_iphoneos-arm.deb
21
+ merge libssl-dev_1.0.2q-1_iphoneos-arm.deb
22
+ merge libplist_2.0.0-1_iphoneos-arm.deb
23
+ popd
24
+
25
+ for lib in libplist libcrypto; do
26
+ for dylib in sysroot*/usr/lib/"${lib}".*.dylib; do
27
+ echo install_name_tool -id /usr/lib/"${lib}".dylib "${dylib}"
28
+ chmod 755 "${dylib}"
29
+ install_name_tool -id /usr/lib/"${lib}".dylib "${dylib}"
30
+ done
31
+ done
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ echo "$(git describe --tags --dirty="+" --match="v*" | sed -e 's@-\([^-]*\)-\([^-]*\)$@+\1.\2@;s@^v@2:@')"
package/lib/client.js ADDED
@@ -0,0 +1,243 @@
1
+ const os = require('os');
2
+ const axios = require("axios");
3
+ const FormData = require("form-data");
4
+ const AppwriteException = require("./exception.js");
5
+ const { globalConfig } = require("./config.js");
6
+
7
+ class Client {
8
+ static CHUNK_SIZE = 5*1024*1024; // 5MB
9
+
10
+ constructor() {
11
+ this.endpoint = 'https://HOSTNAME/v1';
12
+ this.headers = {
13
+ 'content-type': '',
14
+ 'x-sdk-version': 'appwrite:cli:0.14.0',
15
+ 'User-Agent' : `AppwriteCLI/0.14.0 (${os.type()} ${os.version()}; ${os.arch()})`,
16
+ 'X-Appwrite-Response-Format' : '0.12.0',
17
+ };
18
+ }
19
+
20
+ /**
21
+ * Set Cookie
22
+ *
23
+ * Your cookie
24
+ *
25
+ * @param {string} cookie
26
+ *
27
+ * @return self
28
+ */
29
+ setCookie(cookie) {
30
+ this.addHeader("cookie", cookie);
31
+
32
+ return this;
33
+ }
34
+
35
+ /**
36
+ * Set Project
37
+ *
38
+ * Your project ID
39
+ *
40
+ * @param {string} project
41
+ *
42
+ * @return self
43
+ */
44
+ setProject(project) {
45
+ this.addHeader('X-Appwrite-Project', project);
46
+
47
+ return this;
48
+ }
49
+
50
+ /**
51
+ * Set Key
52
+ *
53
+ * Your secret API key
54
+ *
55
+ * @param {string} key
56
+ *
57
+ * @return self
58
+ */
59
+ setKey(key) {
60
+ this.addHeader('X-Appwrite-Key', key);
61
+
62
+ return this;
63
+ }
64
+
65
+ /**
66
+ * Set JWT
67
+ *
68
+ * Your secret JSON Web Token
69
+ *
70
+ * @param {string} jwt
71
+ *
72
+ * @return self
73
+ */
74
+ setJWT(jwt) {
75
+ this.addHeader('X-Appwrite-JWT', jwt);
76
+
77
+ return this;
78
+ }
79
+
80
+ /**
81
+ * Set Locale
82
+ *
83
+ * @param {string} locale
84
+ *
85
+ * @return self
86
+ */
87
+ setLocale(locale) {
88
+ this.addHeader('X-Appwrite-Locale', locale);
89
+
90
+ return this;
91
+ }
92
+
93
+ /**
94
+ * Set Mode
95
+ *
96
+ * @param {string} mode
97
+ *
98
+ * @return self
99
+ */
100
+ setMode(mode) {
101
+ this.addHeader('X-Appwrite-Mode', mode);
102
+
103
+ return this;
104
+ }
105
+
106
+ /**
107
+ * Set self signed.
108
+ *
109
+ * @param {bool} status
110
+ *
111
+ * @return this
112
+ */
113
+ setSelfSigned(status) {
114
+ this.selfSigned = status;
115
+
116
+ return this;
117
+ }
118
+
119
+ /**
120
+ * Set endpoint.
121
+ *
122
+ * @param {string} endpoint
123
+ *
124
+ * @return this
125
+ */
126
+ setEndpoint(endpoint) {
127
+ this.endpoint = endpoint;
128
+
129
+ return this;
130
+ }
131
+
132
+ /**
133
+ * @param {string} key
134
+ * @param {string} value
135
+ */
136
+ addHeader(key, value) {
137
+ this.headers[key.toLowerCase()] = value;
138
+
139
+ return this;
140
+ }
141
+
142
+ async call(
143
+ method,
144
+ path = "",
145
+ headers = {},
146
+ params = {},
147
+ responseType = "json"
148
+ ) {
149
+ if (this.selfSigned == true) {
150
+ // Allow self signed requests
151
+ process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
152
+ }
153
+
154
+ headers = Object.assign(this.headers, headers);
155
+
156
+ let contentType = headers["content-type"].toLowerCase();
157
+
158
+ let formData = null;
159
+
160
+ if (contentType.startsWith("multipart/form-data")) {
161
+ const form = new FormData();
162
+
163
+ let flatParams = Client.flatten(params);
164
+
165
+ for (const key in flatParams) {
166
+ form.append(key, flatParams[key]);
167
+ }
168
+
169
+ headers = {
170
+ ...headers,
171
+ ...form.getHeaders(),
172
+ };
173
+
174
+ formData = form;
175
+ }
176
+
177
+ let options = {
178
+ method: method.toUpperCase(),
179
+ url: this.endpoint + path,
180
+ params: method.toUpperCase() === "GET" ? params : {},
181
+ headers: headers,
182
+ data:
183
+ method.toUpperCase() === "GET" ||
184
+ contentType.startsWith("multipart/form-data")
185
+ ? formData
186
+ : params,
187
+ json: contentType.startsWith("application/json"),
188
+ responseType: responseType,
189
+ };
190
+ try {
191
+ let response = await axios(options);
192
+ if (response.headers["set-cookie"]) {
193
+ globalConfig.setCookie(response.headers["set-cookie"][0]);
194
+ }
195
+ return response.data;
196
+ } catch (error) {
197
+ if ("response" in error && error.response !== undefined) {
198
+ if (error.response && "data" in error.response) {
199
+ if (typeof error.response.data === "string") {
200
+ throw new AppwriteException(
201
+ error.response.data,
202
+ error.response.status,
203
+ error.response.data
204
+ );
205
+ } else {
206
+ throw new AppwriteException(
207
+ error.response.data.message,
208
+ error.response.status,
209
+ error.response.data
210
+ );
211
+ }
212
+ } else {
213
+ throw new AppwriteException(
214
+ error.response.statusText,
215
+ error.response.status,
216
+ error.response.data
217
+ );
218
+ }
219
+ } else {
220
+ throw new AppwriteException(error.message);
221
+ }
222
+ }
223
+ }
224
+
225
+ static flatten(data, prefix = "") {
226
+ let output = {};
227
+
228
+ for (const key in data) {
229
+ let value = data[key];
230
+ let finalKey = prefix ? prefix + "[" + key + "]" : key;
231
+
232
+ if (Array.isArray(value)) {
233
+ output = Object.assign(output, Client.flatten(value, finalKey)); // @todo: handle name collision here if needed
234
+ } else {
235
+ output[finalKey] = value;
236
+ }
237
+ }
238
+
239
+ return output;
240
+ }
241
+ }
242
+
243
+ module.exports = Client;