appwrite-cli 13.0.0-rc.1 → 13.0.0-rc.3

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 (430) hide show
  1. package/.github/workflows/publish.yml +68 -0
  2. package/CHANGELOG.md +10 -1
  3. package/LICENSE.md +1 -1
  4. package/README.md +3 -3
  5. package/cli.ts +152 -0
  6. package/dist/bundle.cjs +95813 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +145 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/index.d.ts +10 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +7 -142
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/client.d.ts +2 -3
  16. package/dist/lib/client.d.ts.map +1 -1
  17. package/dist/lib/client.js +57 -45
  18. package/dist/lib/client.js.map +1 -1
  19. package/dist/lib/commands/config.d.ts +562 -0
  20. package/dist/lib/commands/config.d.ts.map +1 -0
  21. package/dist/lib/commands/config.js +416 -0
  22. package/dist/lib/commands/config.js.map +1 -0
  23. package/dist/lib/commands/db.d.ts +34 -0
  24. package/dist/lib/commands/db.d.ts.map +1 -0
  25. package/dist/lib/commands/db.js +247 -0
  26. package/dist/lib/commands/db.js.map +1 -0
  27. package/dist/lib/commands/errors.d.ts +68 -0
  28. package/dist/lib/commands/errors.d.ts.map +1 -0
  29. package/dist/lib/commands/errors.js +72 -0
  30. package/dist/lib/commands/errors.js.map +1 -0
  31. package/dist/lib/commands/generic.d.ts +2 -2
  32. package/dist/lib/commands/generic.d.ts.map +1 -1
  33. package/dist/lib/commands/generic.js +170 -157
  34. package/dist/lib/commands/generic.js.map +1 -1
  35. package/dist/lib/commands/init.d.ts +1 -1
  36. package/dist/lib/commands/init.d.ts.map +1 -1
  37. package/dist/lib/commands/init.js +201 -192
  38. package/dist/lib/commands/init.js.map +1 -1
  39. package/dist/lib/commands/pull.d.ts +105 -3
  40. package/dist/lib/commands/pull.d.ts.map +1 -1
  41. package/dist/lib/commands/pull.js +530 -370
  42. package/dist/lib/commands/pull.js.map +1 -1
  43. package/dist/lib/commands/push.d.ts +106 -0
  44. package/dist/lib/commands/push.d.ts.map +1 -1
  45. package/dist/lib/commands/push.js +1432 -1830
  46. package/dist/lib/commands/push.js.map +1 -1
  47. package/dist/lib/commands/run.d.ts +1 -1
  48. package/dist/lib/commands/run.d.ts.map +1 -1
  49. package/dist/lib/commands/run.js +129 -127
  50. package/dist/lib/commands/run.js.map +1 -1
  51. package/dist/lib/commands/schema.d.ts +59 -0
  52. package/dist/lib/commands/schema.d.ts.map +1 -0
  53. package/dist/lib/commands/schema.js +86 -0
  54. package/dist/lib/commands/schema.js.map +1 -0
  55. package/dist/lib/commands/services/account.d.ts +3 -0
  56. package/dist/lib/commands/services/account.d.ts.map +1 -0
  57. package/dist/lib/commands/services/account.js +328 -0
  58. package/dist/lib/commands/services/account.js.map +1 -0
  59. package/dist/lib/commands/services/console.d.ts +3 -0
  60. package/dist/lib/commands/services/console.d.ts.map +1 -0
  61. package/dist/lib/commands/services/console.js +28 -0
  62. package/dist/lib/commands/services/console.js.map +1 -0
  63. package/dist/lib/commands/services/databases.d.ts +3 -0
  64. package/dist/lib/commands/services/databases.d.ts.map +1 -0
  65. package/dist/lib/commands/services/databases.js +620 -0
  66. package/dist/lib/commands/services/databases.js.map +1 -0
  67. package/dist/lib/commands/services/functions.d.ts +3 -0
  68. package/dist/lib/commands/services/functions.d.ts.map +1 -0
  69. package/dist/lib/commands/services/functions.js +266 -0
  70. package/dist/lib/commands/services/functions.js.map +1 -0
  71. package/dist/lib/commands/services/graphql.d.ts +3 -0
  72. package/dist/lib/commands/services/graphql.d.ts.map +1 -0
  73. package/dist/lib/commands/services/graphql.js +28 -0
  74. package/dist/lib/commands/services/graphql.js.map +1 -0
  75. package/dist/lib/commands/services/health.d.ts +3 -0
  76. package/dist/lib/commands/services/health.d.ts.map +1 -0
  77. package/dist/lib/commands/services/health.js +123 -0
  78. package/dist/lib/commands/services/health.js.map +1 -0
  79. package/dist/lib/commands/services/locale.d.ts +3 -0
  80. package/dist/lib/commands/services/locale.d.ts.map +1 -0
  81. package/dist/lib/commands/services/locale.js +52 -0
  82. package/dist/lib/commands/services/locale.js.map +1 -0
  83. package/dist/lib/commands/services/messaging.d.ts +3 -0
  84. package/dist/lib/commands/services/messaging.d.ts.map +1 -0
  85. package/dist/lib/commands/services/messaging.js +505 -0
  86. package/dist/lib/commands/services/messaging.js.map +1 -0
  87. package/dist/lib/commands/services/migrations.d.ts +3 -0
  88. package/dist/lib/commands/services/migrations.d.ts.map +1 -0
  89. package/dist/lib/commands/services/migrations.js +135 -0
  90. package/dist/lib/commands/services/migrations.js.map +1 -0
  91. package/dist/lib/commands/services/project.d.ts +3 -0
  92. package/dist/lib/commands/services/project.d.ts.map +1 -0
  93. package/dist/lib/commands/services/project.js +54 -0
  94. package/dist/lib/commands/services/project.js.map +1 -0
  95. package/dist/lib/commands/services/projects.d.ts +3 -0
  96. package/dist/lib/commands/services/projects.d.ts.map +1 -0
  97. package/dist/lib/commands/services/projects.js +415 -0
  98. package/dist/lib/commands/services/projects.js.map +1 -0
  99. package/dist/lib/commands/services/proxy.d.ts +3 -0
  100. package/dist/lib/commands/services/proxy.d.ts.map +1 -0
  101. package/dist/lib/commands/services/proxy.js +68 -0
  102. package/dist/lib/commands/services/proxy.js.map +1 -0
  103. package/dist/lib/commands/services/sites.d.ts +3 -0
  104. package/dist/lib/commands/services/sites.d.ts.map +1 -0
  105. package/dist/lib/commands/services/sites.js +250 -0
  106. package/dist/lib/commands/services/sites.js.map +1 -0
  107. package/dist/lib/commands/services/storage.d.ts +3 -0
  108. package/dist/lib/commands/services/storage.d.ts.map +1 -0
  109. package/dist/lib/commands/services/storage.js +175 -0
  110. package/dist/lib/commands/services/storage.js.map +1 -0
  111. package/dist/lib/commands/services/tables-db.d.ts +3 -0
  112. package/dist/lib/commands/services/tables-db.d.ts.map +1 -0
  113. package/dist/lib/commands/services/tables-db.js +613 -0
  114. package/dist/lib/commands/services/tables-db.js.map +1 -0
  115. package/dist/lib/commands/services/teams.d.ts +3 -0
  116. package/dist/lib/commands/services/teams.d.ts.map +1 -0
  117. package/dist/lib/commands/services/teams.js +123 -0
  118. package/dist/lib/commands/services/teams.js.map +1 -0
  119. package/dist/lib/commands/services/tokens.d.ts +3 -0
  120. package/dist/lib/commands/services/tokens.d.ts.map +1 -0
  121. package/dist/lib/commands/services/tokens.js +49 -0
  122. package/dist/lib/commands/services/tokens.js.map +1 -0
  123. package/dist/lib/commands/services/users.d.ts +3 -0
  124. package/dist/lib/commands/services/users.d.ts.map +1 -0
  125. package/dist/lib/commands/services/users.js +312 -0
  126. package/dist/lib/commands/services/users.js.map +1 -0
  127. package/dist/lib/commands/services/vcs.d.ts +3 -0
  128. package/dist/lib/commands/services/vcs.d.ts.map +1 -0
  129. package/dist/lib/commands/services/vcs.js +87 -0
  130. package/dist/lib/commands/services/vcs.js.map +1 -0
  131. package/dist/lib/commands/types.d.ts +1 -1
  132. package/dist/lib/commands/types.d.ts.map +1 -1
  133. package/dist/lib/commands/types.js +53 -57
  134. package/dist/lib/commands/types.js.map +1 -1
  135. package/dist/lib/commands/update.d.ts +1 -1
  136. package/dist/lib/commands/update.d.ts.map +1 -1
  137. package/dist/lib/commands/update.js +69 -69
  138. package/dist/lib/commands/update.js.map +1 -1
  139. package/dist/lib/commands/utils/attributes.d.ts +47 -0
  140. package/dist/lib/commands/utils/attributes.d.ts.map +1 -0
  141. package/dist/lib/commands/utils/attributes.js +514 -0
  142. package/dist/lib/commands/utils/attributes.js.map +1 -0
  143. package/dist/lib/commands/utils/change-approval.d.ts +25 -0
  144. package/dist/lib/commands/utils/change-approval.d.ts.map +1 -0
  145. package/dist/lib/commands/utils/change-approval.js +129 -0
  146. package/dist/lib/commands/utils/change-approval.js.map +1 -0
  147. package/dist/lib/commands/utils/database-sync.d.ts +10 -0
  148. package/dist/lib/commands/utils/database-sync.d.ts.map +1 -0
  149. package/dist/lib/commands/utils/database-sync.js +136 -0
  150. package/dist/lib/commands/utils/database-sync.js.map +1 -0
  151. package/dist/lib/commands/utils/deployment.d.ts +34 -0
  152. package/dist/lib/commands/utils/deployment.d.ts.map +1 -0
  153. package/dist/lib/commands/utils/deployment.js +109 -0
  154. package/dist/lib/commands/utils/deployment.js.map +1 -0
  155. package/dist/lib/commands/utils/error-formatter.d.ts +19 -0
  156. package/dist/lib/commands/utils/error-formatter.d.ts.map +1 -0
  157. package/dist/lib/commands/utils/error-formatter.js +333 -0
  158. package/dist/lib/commands/utils/error-formatter.js.map +1 -0
  159. package/dist/lib/commands/utils/pools.d.ts +16 -0
  160. package/dist/lib/commands/utils/pools.d.ts.map +1 -0
  161. package/dist/lib/commands/utils/pools.js +198 -0
  162. package/dist/lib/commands/utils/pools.js.map +1 -0
  163. package/dist/lib/config.d.ts +41 -40
  164. package/dist/lib/config.d.ts.map +1 -1
  165. package/dist/lib/config.js +264 -239
  166. package/dist/lib/config.js.map +1 -1
  167. package/dist/lib/constants.d.ts +14 -0
  168. package/dist/lib/constants.d.ts.map +1 -0
  169. package/dist/lib/constants.js +19 -0
  170. package/dist/lib/constants.js.map +1 -0
  171. package/dist/lib/emulation/docker.d.ts +4 -12
  172. package/dist/lib/emulation/docker.d.ts.map +1 -1
  173. package/dist/lib/emulation/docker.js +159 -142
  174. package/dist/lib/emulation/docker.js.map +1 -1
  175. package/dist/lib/emulation/utils.d.ts +1 -1
  176. package/dist/lib/emulation/utils.d.ts.map +1 -1
  177. package/dist/lib/emulation/utils.js +55 -58
  178. package/dist/lib/emulation/utils.js.map +1 -1
  179. package/dist/lib/id.d.ts +1 -1
  180. package/dist/lib/id.d.ts.map +1 -1
  181. package/dist/lib/id.js +13 -18
  182. package/dist/lib/id.js.map +1 -1
  183. package/dist/lib/paginate.d.ts +3 -4
  184. package/dist/lib/paginate.d.ts.map +1 -1
  185. package/dist/lib/paginate.js +7 -10
  186. package/dist/lib/paginate.js.map +1 -1
  187. package/dist/lib/parser.d.ts +1 -1
  188. package/dist/lib/parser.d.ts.map +1 -1
  189. package/dist/lib/parser.js +92 -103
  190. package/dist/lib/parser.js.map +1 -1
  191. package/dist/lib/questions.d.ts +1 -1
  192. package/dist/lib/questions.d.ts.map +1 -1
  193. package/dist/lib/questions.js +381 -385
  194. package/dist/lib/questions.js.map +1 -1
  195. package/dist/lib/sdks.d.ts +1 -1
  196. package/dist/lib/sdks.d.ts.map +1 -1
  197. package/dist/lib/sdks.js +39 -30
  198. package/dist/lib/sdks.js.map +1 -1
  199. package/dist/lib/services.d.ts +13 -0
  200. package/dist/lib/services.d.ts.map +1 -0
  201. package/dist/lib/services.js +47 -0
  202. package/dist/lib/services.js.map +1 -0
  203. package/dist/lib/spinner.d.ts +1 -1
  204. package/dist/lib/spinner.d.ts.map +1 -1
  205. package/dist/lib/spinner.js +25 -27
  206. package/dist/lib/spinner.js.map +1 -1
  207. package/dist/lib/type-generation/attribute.d.ts +1 -1
  208. package/dist/lib/type-generation/attribute.d.ts.map +1 -1
  209. package/dist/lib/type-generation/attribute.js +14 -17
  210. package/dist/lib/type-generation/attribute.js.map +1 -1
  211. package/dist/lib/type-generation/languages/csharp.d.ts +1 -1
  212. package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -1
  213. package/dist/lib/type-generation/languages/csharp.js +34 -34
  214. package/dist/lib/type-generation/languages/csharp.js.map +1 -1
  215. package/dist/lib/type-generation/languages/dart.d.ts +1 -1
  216. package/dist/lib/type-generation/languages/dart.d.ts.map +1 -1
  217. package/dist/lib/type-generation/languages/dart.js +57 -57
  218. package/dist/lib/type-generation/languages/dart.js.map +1 -1
  219. package/dist/lib/type-generation/languages/java.d.ts +1 -1
  220. package/dist/lib/type-generation/languages/java.d.ts.map +1 -1
  221. package/dist/lib/type-generation/languages/java.js +35 -35
  222. package/dist/lib/type-generation/languages/java.js.map +1 -1
  223. package/dist/lib/type-generation/languages/javascript.d.ts +1 -1
  224. package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -1
  225. package/dist/lib/type-generation/languages/javascript.js +45 -44
  226. package/dist/lib/type-generation/languages/javascript.js.map +1 -1
  227. package/dist/lib/type-generation/languages/kotlin.d.ts +1 -1
  228. package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -1
  229. package/dist/lib/type-generation/languages/kotlin.js +35 -35
  230. package/dist/lib/type-generation/languages/kotlin.js.map +1 -1
  231. package/dist/lib/type-generation/languages/language.d.ts.map +1 -1
  232. package/dist/lib/type-generation/languages/language.js +32 -37
  233. package/dist/lib/type-generation/languages/language.js.map +1 -1
  234. package/dist/lib/type-generation/languages/php.d.ts +1 -1
  235. package/dist/lib/type-generation/languages/php.d.ts.map +1 -1
  236. package/dist/lib/type-generation/languages/php.js +34 -34
  237. package/dist/lib/type-generation/languages/php.js.map +1 -1
  238. package/dist/lib/type-generation/languages/swift.d.ts +1 -1
  239. package/dist/lib/type-generation/languages/swift.d.ts.map +1 -1
  240. package/dist/lib/type-generation/languages/swift.js +35 -35
  241. package/dist/lib/type-generation/languages/swift.js.map +1 -1
  242. package/dist/lib/type-generation/languages/typescript.d.ts +1 -1
  243. package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -1
  244. package/dist/lib/type-generation/languages/typescript.js +49 -46
  245. package/dist/lib/type-generation/languages/typescript.js.map +1 -1
  246. package/dist/lib/types.d.ts +38 -108
  247. package/dist/lib/types.d.ts.map +1 -1
  248. package/dist/lib/types.js +1 -2
  249. package/dist/lib/utils.d.ts +3 -0
  250. package/dist/lib/utils.d.ts.map +1 -1
  251. package/dist/lib/utils.js +142 -98
  252. package/dist/lib/utils.js.map +1 -1
  253. package/dist/lib/validations.d.ts.map +1 -1
  254. package/dist/lib/validations.js +2 -6
  255. package/dist/lib/validations.js.map +1 -1
  256. package/dist/package.json +68 -0
  257. package/index.ts +25 -149
  258. package/install.ps1 +2 -2
  259. package/install.sh +1 -1
  260. package/lib/client.ts +261 -220
  261. package/lib/commands/config.ts +494 -0
  262. package/lib/commands/db.ts +324 -0
  263. package/lib/commands/errors.ts +93 -0
  264. package/lib/commands/generic.ts +371 -269
  265. package/lib/commands/init.ts +631 -519
  266. package/lib/commands/pull.ts +827 -453
  267. package/lib/commands/push.ts +2191 -2349
  268. package/lib/commands/run.ts +382 -302
  269. package/lib/commands/schema.ts +122 -0
  270. package/lib/commands/services/account.ts +647 -0
  271. package/lib/commands/services/console.ts +52 -0
  272. package/lib/commands/services/databases.ts +1163 -0
  273. package/lib/commands/services/functions.ts +536 -0
  274. package/lib/commands/services/graphql.ts +50 -0
  275. package/lib/commands/services/health.ts +260 -0
  276. package/lib/commands/services/locale.ts +102 -0
  277. package/lib/commands/services/messaging.ts +1052 -0
  278. package/lib/commands/services/migrations.ts +249 -0
  279. package/lib/commands/services/project.ts +112 -0
  280. package/lib/commands/services/projects.ts +785 -0
  281. package/lib/commands/services/proxy.ts +135 -0
  282. package/lib/commands/services/sites.ts +505 -0
  283. package/lib/commands/services/storage.ts +338 -0
  284. package/lib/commands/services/tables-db.ts +1150 -0
  285. package/lib/commands/services/teams.ts +232 -0
  286. package/lib/commands/services/tokens.ts +94 -0
  287. package/lib/commands/services/users.ts +616 -0
  288. package/lib/commands/services/vcs.ts +165 -0
  289. package/lib/commands/types.ts +145 -118
  290. package/lib/commands/update.ts +189 -159
  291. package/lib/commands/utils/attributes.ts +719 -0
  292. package/lib/commands/utils/change-approval.ts +186 -0
  293. package/lib/commands/utils/database-sync.ts +180 -0
  294. package/lib/commands/utils/deployment.ts +184 -0
  295. package/lib/commands/utils/error-formatter.ts +417 -0
  296. package/lib/commands/utils/pools.ts +355 -0
  297. package/lib/config.ts +766 -687
  298. package/lib/constants.ts +22 -0
  299. package/lib/emulation/docker.ts +277 -216
  300. package/lib/emulation/utils.ts +188 -174
  301. package/lib/id.ts +23 -23
  302. package/lib/paginate.ts +69 -55
  303. package/lib/parser.ts +220 -189
  304. package/lib/questions.ts +1024 -948
  305. package/lib/sdks.ts +84 -51
  306. package/lib/services.ts +72 -0
  307. package/lib/spinner.ts +112 -99
  308. package/lib/type-generation/attribute.ts +15 -14
  309. package/lib/type-generation/languages/csharp.ts +71 -60
  310. package/lib/type-generation/languages/dart.ts +106 -93
  311. package/lib/type-generation/languages/java.ts +69 -58
  312. package/lib/type-generation/languages/javascript.ts +84 -73
  313. package/lib/type-generation/languages/kotlin.ts +71 -60
  314. package/lib/type-generation/languages/language.ts +103 -95
  315. package/lib/type-generation/languages/php.ts +67 -56
  316. package/lib/type-generation/languages/swift.ts +71 -60
  317. package/lib/type-generation/languages/typescript.ts +93 -76
  318. package/lib/types.ts +50 -125
  319. package/lib/utils.ts +304 -233
  320. package/lib/validations.ts +17 -14
  321. package/package.json +31 -22
  322. package/scoop/appwrite.config.json +3 -3
  323. package/tsconfig.json +7 -13
  324. package/.github/workflows/autoclose.yml +0 -11
  325. package/.github/workflows/npm-publish.yml +0 -49
  326. package/dist/lib/commands/account.d.ts +0 -379
  327. package/dist/lib/commands/account.d.ts.map +0 -1
  328. package/dist/lib/commands/account.js +0 -1228
  329. package/dist/lib/commands/account.js.map +0 -1
  330. package/dist/lib/commands/console.d.ts +0 -20
  331. package/dist/lib/commands/console.d.ts.map +0 -1
  332. package/dist/lib/commands/console.js +0 -78
  333. package/dist/lib/commands/console.js.map +0 -1
  334. package/dist/lib/commands/databases.d.ts +0 -732
  335. package/dist/lib/commands/databases.d.ts.map +0 -1
  336. package/dist/lib/commands/databases.js +0 -2196
  337. package/dist/lib/commands/databases.js.map +0 -1
  338. package/dist/lib/commands/functions.d.ts +0 -310
  339. package/dist/lib/commands/functions.d.ts.map +0 -1
  340. package/dist/lib/commands/functions.js +0 -1100
  341. package/dist/lib/commands/functions.js.map +0 -1
  342. package/dist/lib/commands/graphql.d.ts +0 -19
  343. package/dist/lib/commands/graphql.d.ts.map +0 -1
  344. package/dist/lib/commands/graphql.js +0 -77
  345. package/dist/lib/commands/graphql.js.map +0 -1
  346. package/dist/lib/commands/health.d.ts +0 -153
  347. package/dist/lib/commands/health.d.ts.map +0 -1
  348. package/dist/lib/commands/health.js +0 -464
  349. package/dist/lib/commands/health.js.map +0 -1
  350. package/dist/lib/commands/locale.d.ts +0 -53
  351. package/dist/lib/commands/locale.d.ts.map +0 -1
  352. package/dist/lib/commands/locale.js +0 -165
  353. package/dist/lib/commands/locale.js.map +0 -1
  354. package/dist/lib/commands/messaging.d.ts +0 -588
  355. package/dist/lib/commands/messaging.d.ts.map +0 -1
  356. package/dist/lib/commands/messaging.js +0 -2042
  357. package/dist/lib/commands/messaging.js.map +0 -1
  358. package/dist/lib/commands/migrations.d.ts +0 -150
  359. package/dist/lib/commands/migrations.d.ts.map +0 -1
  360. package/dist/lib/commands/migrations.js +0 -524
  361. package/dist/lib/commands/migrations.js.map +0 -1
  362. package/dist/lib/commands/organizations.d.ts +0 -11
  363. package/dist/lib/commands/organizations.d.ts.map +0 -1
  364. package/dist/lib/commands/organizations.js +0 -31
  365. package/dist/lib/commands/organizations.js.map +0 -1
  366. package/dist/lib/commands/project.d.ts +0 -53
  367. package/dist/lib/commands/project.d.ts.map +0 -1
  368. package/dist/lib/commands/project.js +0 -176
  369. package/dist/lib/commands/project.js.map +0 -1
  370. package/dist/lib/commands/projects.d.ts +0 -516
  371. package/dist/lib/commands/projects.d.ts.map +0 -1
  372. package/dist/lib/commands/projects.js +0 -1590
  373. package/dist/lib/commands/projects.js.map +0 -1
  374. package/dist/lib/commands/proxy.d.ts +0 -71
  375. package/dist/lib/commands/proxy.d.ts.map +0 -1
  376. package/dist/lib/commands/proxy.js +0 -240
  377. package/dist/lib/commands/proxy.js.map +0 -1
  378. package/dist/lib/commands/sites.d.ts +0 -296
  379. package/dist/lib/commands/sites.d.ts.map +0 -1
  380. package/dist/lib/commands/sites.js +0 -1046
  381. package/dist/lib/commands/sites.js.map +0 -1
  382. package/dist/lib/commands/storage.d.ts +0 -170
  383. package/dist/lib/commands/storage.d.ts.map +0 -1
  384. package/dist/lib/commands/storage.js +0 -651
  385. package/dist/lib/commands/storage.js.map +0 -1
  386. package/dist/lib/commands/tables-db.d.ts +0 -728
  387. package/dist/lib/commands/tables-db.d.ts.map +0 -1
  388. package/dist/lib/commands/tables-db.js +0 -2198
  389. package/dist/lib/commands/tables-db.js.map +0 -1
  390. package/dist/lib/commands/teams.d.ts +0 -129
  391. package/dist/lib/commands/teams.d.ts.map +0 -1
  392. package/dist/lib/commands/teams.js +0 -403
  393. package/dist/lib/commands/teams.js.map +0 -1
  394. package/dist/lib/commands/tokens.d.ts +0 -48
  395. package/dist/lib/commands/tokens.d.ts.map +0 -1
  396. package/dist/lib/commands/tokens.js +0 -156
  397. package/dist/lib/commands/tokens.js.map +0 -1
  398. package/dist/lib/commands/users.d.ts +0 -382
  399. package/dist/lib/commands/users.d.ts.map +0 -1
  400. package/dist/lib/commands/users.js +0 -1195
  401. package/dist/lib/commands/users.js.map +0 -1
  402. package/dist/lib/commands/vcs.d.ts +0 -92
  403. package/dist/lib/commands/vcs.d.ts.map +0 -1
  404. package/dist/lib/commands/vcs.js +0 -276
  405. package/dist/lib/commands/vcs.js.map +0 -1
  406. package/dist/lib/exception.d.ts +0 -8
  407. package/dist/lib/exception.d.ts.map +0 -1
  408. package/dist/lib/exception.js +0 -16
  409. package/dist/lib/exception.js.map +0 -1
  410. package/lib/commands/account.ts +0 -1867
  411. package/lib/commands/console.ts +0 -112
  412. package/lib/commands/databases.ts +0 -3272
  413. package/lib/commands/functions.ts +0 -1587
  414. package/lib/commands/graphql.ts +0 -110
  415. package/lib/commands/health.ts +0 -753
  416. package/lib/commands/locale.ts +0 -270
  417. package/lib/commands/messaging.ts +0 -2878
  418. package/lib/commands/migrations.ts +0 -754
  419. package/lib/commands/organizations.ts +0 -46
  420. package/lib/commands/project.ts +0 -266
  421. package/lib/commands/projects.ts +0 -2370
  422. package/lib/commands/proxy.ts +0 -357
  423. package/lib/commands/sites.ts +0 -1514
  424. package/lib/commands/storage.ts +0 -919
  425. package/lib/commands/tables-db.ts +0 -3260
  426. package/lib/commands/teams.ts +0 -609
  427. package/lib/commands/tokens.ts +0 -232
  428. package/lib/commands/users.ts +0 -1804
  429. package/lib/commands/vcs.ts +0 -428
  430. package/lib/exception.ts +0 -20
@@ -0,0 +1,324 @@
1
+ import { ConfigType, AttributeSchema } from "./config.js";
2
+ import * as fs from "fs";
3
+ import * as path from "path";
4
+ import { z } from "zod";
5
+
6
+ export interface GenerateOptions {
7
+ strict?: boolean;
8
+ }
9
+
10
+ export interface GenerateResult {
11
+ dbContent: string;
12
+ typesContent: string;
13
+ }
14
+
15
+ export class Db {
16
+ private getType(
17
+ attribute: z.infer<typeof AttributeSchema>,
18
+ collections: NonNullable<ConfigType["collections"]>,
19
+ ): string {
20
+ let type = "";
21
+
22
+ switch (attribute.type) {
23
+ case "string":
24
+ case "datetime":
25
+ type = "string";
26
+ if (attribute.format === "enum") {
27
+ type = this.toPascalCase(attribute.key);
28
+ }
29
+ break;
30
+ case "integer":
31
+ type = "number";
32
+ break;
33
+ case "double":
34
+ type = "number";
35
+ break;
36
+ case "boolean":
37
+ type = "boolean";
38
+ break;
39
+ case "relationship":
40
+ const relatedCollection = collections.find(
41
+ (c) => c.$id === attribute.relatedCollection,
42
+ );
43
+ if (!relatedCollection) {
44
+ throw new Error(
45
+ `Related collection with ID '${attribute.relatedCollection}' not found.`,
46
+ );
47
+ }
48
+ type = this.toPascalCase(relatedCollection.name);
49
+ if (
50
+ (attribute.relationType === "oneToMany" &&
51
+ attribute.side === "parent") ||
52
+ (attribute.relationType === "manyToOne" &&
53
+ attribute.side === "child") ||
54
+ attribute.relationType === "manyToMany"
55
+ ) {
56
+ type = `${type}[]`;
57
+ }
58
+ break;
59
+ default:
60
+ throw new Error(`Unknown attribute type: ${attribute.type}`);
61
+ }
62
+
63
+ if (attribute.array) {
64
+ type += "[]";
65
+ }
66
+
67
+ if (!attribute.required && attribute.default === null) {
68
+ type += " | null";
69
+ }
70
+
71
+ return type;
72
+ }
73
+
74
+ private toPascalCase(str: string): string {
75
+ return str
76
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ""))
77
+ .replace(/^(.)/, (char) => char.toUpperCase());
78
+ }
79
+
80
+ private toCamelCase(str: string): string {
81
+ return str
82
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ""))
83
+ .replace(/^(.)/, (char) => char.toLowerCase());
84
+ }
85
+
86
+ private toUpperSnakeCase(str: string): string {
87
+ return str
88
+ .replace(/([a-z])([A-Z])/g, "$1_$2")
89
+ .replace(/[-\s]+/g, "_")
90
+ .toUpperCase();
91
+ }
92
+
93
+ private generateCollectionType(
94
+ collection: NonNullable<ConfigType["collections"]>[number],
95
+ collections: NonNullable<ConfigType["collections"]>,
96
+ options: GenerateOptions = {},
97
+ ): string {
98
+ if (!collection.attributes) {
99
+ return "";
100
+ }
101
+
102
+ const { strict = false } = options;
103
+ const typeName = this.toPascalCase(collection.name);
104
+ const attributes = collection.attributes
105
+ .map((attr: z.infer<typeof AttributeSchema>) => {
106
+ const key = strict ? this.toCamelCase(attr.key) : attr.key;
107
+ return ` ${key}: ${this.getType(attr, collections)};`;
108
+ })
109
+ .join("\n");
110
+
111
+ return `export type ${typeName} = Models.Row & {\n${attributes}\n}`;
112
+ }
113
+
114
+ private generateEnums(
115
+ collections: NonNullable<ConfigType["collections"]>,
116
+ ): string {
117
+ const enumTypes: string[] = [];
118
+
119
+ for (const collection of collections) {
120
+ if (!collection.attributes) continue;
121
+
122
+ for (const attribute of collection.attributes) {
123
+ if (attribute.format === "enum" && attribute.elements) {
124
+ const enumName = this.toPascalCase(attribute.key);
125
+ const enumValues = attribute.elements
126
+ .map((element, index) => {
127
+ const key = this.toUpperSnakeCase(element);
128
+ const isLast = index === attribute.elements!.length - 1;
129
+ return ` ${key} = "${element}"${isLast ? "" : ","}`;
130
+ })
131
+ .join("\n");
132
+
133
+ enumTypes.push(`export enum ${enumName} {\n${enumValues}\n}`);
134
+ }
135
+ }
136
+ }
137
+
138
+ return enumTypes.join("\n\n");
139
+ }
140
+
141
+ private generateTypesFile(
142
+ config: ConfigType,
143
+ options: GenerateOptions = {},
144
+ ): string {
145
+ if (!config.collections || config.collections.length === 0) {
146
+ return "// No collections found in configuration\n";
147
+ }
148
+
149
+ const appwriteDep = this.getAppwriteDependency();
150
+ const enums = this.generateEnums(config.collections);
151
+ const types = config.collections
152
+ .map((collection) =>
153
+ this.generateCollectionType(collection, config.collections!, options),
154
+ )
155
+ .join("\n\n");
156
+
157
+ const parts = [`import { type Models } from '${appwriteDep}';`, ""];
158
+
159
+ if (enums) {
160
+ parts.push(enums);
161
+ parts.push("");
162
+ }
163
+
164
+ parts.push(types);
165
+ parts.push("");
166
+
167
+ return parts.join("\n");
168
+ }
169
+
170
+ private getAppwriteDependency(): string {
171
+ const cwd = process.cwd();
172
+
173
+ if (fs.existsSync(path.resolve(cwd, "package.json"))) {
174
+ try {
175
+ const packageJsonRaw = fs.readFileSync(
176
+ path.resolve(cwd, "package.json"),
177
+ "utf-8",
178
+ );
179
+ const packageJson = JSON.parse(packageJsonRaw);
180
+ return packageJson.dependencies?.["appwrite"]
181
+ ? "appwrite"
182
+ : "node-appwrite";
183
+ } catch {
184
+ // Fallback if package.json is invalid
185
+ }
186
+ }
187
+
188
+ if (fs.existsSync(path.resolve(cwd, "deno.json"))) {
189
+ return "https://deno.land/x/appwrite/mod.ts";
190
+ }
191
+
192
+ return "appwrite";
193
+ }
194
+
195
+ private generateDbFile(
196
+ config: ConfigType,
197
+ options: GenerateOptions = {},
198
+ ): string {
199
+ const { strict = false } = options;
200
+ const typesFileName = "appwrite.types.ts";
201
+
202
+ if (!config.collections || config.collections.length === 0) {
203
+ return "// No collections found in configuration\n";
204
+ }
205
+
206
+ const typeNames = config.collections.map((c) => this.toPascalCase(c.name));
207
+ const importPath = typesFileName
208
+ .replace(/\.d\.ts$/, "")
209
+ .replace(/\.ts$/, "");
210
+ const appwriteDep = this.getAppwriteDependency();
211
+
212
+ const collectionsCode = config.collections
213
+ .map((collection) => {
214
+ const collectionName = strict
215
+ ? this.toCamelCase(collection.name)
216
+ : collection.name;
217
+ const typeName = this.toPascalCase(collection.name);
218
+
219
+ return ` ${collectionName}: {
220
+ create: (data: Omit<${typeName}, keyof Models.Row>, options?: { rowId?: string; permissions?: string[] }) =>
221
+ tablesDB.createRow<${typeName}>({
222
+ databaseId: process.env.APPWRITE_DB_ID!,
223
+ tableId: '${collection.$id}',
224
+ rowId: options?.rowId ?? ID.unique(),
225
+ data,
226
+ permissions: [
227
+ Permission.write(Role.user(data.createdBy)),
228
+ Permission.read(Role.user(data.createdBy)),
229
+ Permission.update(Role.user(data.createdBy)),
230
+ Permission.delete(Role.user(data.createdBy))
231
+ ]
232
+ }),
233
+ get: (id: string) =>
234
+ tablesDB.getRow<${typeName}>({
235
+ databaseId: process.env.APPWRITE_DB_ID!,
236
+ tableId: '${collection.$id}',
237
+ rowId: id,
238
+ }),
239
+ update: (id: string, data: Partial<Omit<${typeName}, keyof Models.Row>>, options?: { permissions?: string[] }) =>
240
+ tablesDB.updateRow<${typeName}>({
241
+ databaseId: process.env.APPWRITE_DB_ID!,
242
+ tableId: '${collection.$id}',
243
+ rowId: id,
244
+ data,
245
+ ...(options?.permissions ? { permissions: options.permissions } : {}),
246
+ }),
247
+ delete: (id: string) =>
248
+ tablesDB.deleteRow({
249
+ databaseId: process.env.APPWRITE_DB_ID!,
250
+ tableId: '${collection.$id}',
251
+ rowId: id,
252
+ }),
253
+ list: (queries?: string[]) =>
254
+ tablesDB.listRows<${typeName}>({
255
+ databaseId: process.env.APPWRITE_DB_ID!,
256
+ tableId: '${collection.$id}',
257
+ queries,
258
+ }),
259
+ }`;
260
+ })
261
+ .join(",\n");
262
+
263
+ return `import { Client, TablesDB, ID, type Models, Permission, Role } from '${appwriteDep}';
264
+ import type { ${typeNames.join(", ")} } from './${importPath}';
265
+
266
+ const client = new Client()
267
+ .setEndpoint(process.env.APPWRITE_ENDPOINT!)
268
+ .setProject(process.env.APPWRITE_PROJECT_ID!)
269
+ .setKey(process.env.APPWRITE_API_KEY!);
270
+
271
+ const tablesDB = new TablesDB(client);
272
+
273
+
274
+ export const db = {
275
+ ${collectionsCode}
276
+ };
277
+ `;
278
+ }
279
+
280
+ /**
281
+ * Generates TypeScript code for Appwrite database collections and types based on the provided configuration.
282
+ *
283
+ * This method returns generated content as strings:
284
+ * 1. A types string containing TypeScript interfaces for each collection.
285
+ * 2. A database client string with helper methods for CRUD operations on each collection.
286
+ *
287
+ * @param config - The Appwrite project configuration, including collections and project details.
288
+ * @param options - Optional settings for code generation:
289
+ * - strict: Whether to use strict naming conventions for collections (default: false).
290
+ * @returns A Promise that resolves with an object containing dbContent and typesContent strings.
291
+ * @throws If the configuration is missing a projectId or contains no collections.
292
+ */
293
+ public async generate(
294
+ config: ConfigType,
295
+ options: GenerateOptions = {},
296
+ ): Promise<GenerateResult> {
297
+ const { strict = false } = options;
298
+
299
+ if (!config.projectId) {
300
+ throw new Error("Project ID is required in configuration");
301
+ }
302
+
303
+ if (!config.collections || config.collections.length === 0) {
304
+ console.log(
305
+ "No collections found in configuration. Skipping database generation.",
306
+ );
307
+ return {
308
+ dbContent: "// No collections found in configuration\n",
309
+ typesContent: "// No collections found in configuration\n",
310
+ };
311
+ }
312
+
313
+ // Generate types content
314
+ const typesContent = this.generateTypesFile(config, { strict });
315
+
316
+ // Generate database client content
317
+ const dbContent = this.generateDbFile(config, { strict });
318
+
319
+ return {
320
+ dbContent,
321
+ typesContent,
322
+ };
323
+ }
324
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Error thrown when destructive changes are detected during push operations
3
+ * and the force flag is not enabled.
4
+ */
5
+ export class DestructiveChangeError extends Error {
6
+ constructor(
7
+ message: string,
8
+ private metadata: {
9
+ changes: Array<{
10
+ type: string;
11
+ resource: string;
12
+ field: string;
13
+ oldValue?: any;
14
+ newValue?: any;
15
+ }>;
16
+ affectedResources: number;
17
+ },
18
+ ) {
19
+ super(message);
20
+ this.name = "DestructiveChangeError";
21
+ Error.captureStackTrace(this, DestructiveChangeError);
22
+ }
23
+
24
+ /**
25
+ * Get detailed metadata about the destructive changes
26
+ */
27
+ public getMetadata() {
28
+ return this.metadata;
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Error thrown when configuration validation fails
34
+ */
35
+ export class ConfigValidationError extends Error {
36
+ constructor(
37
+ message: string,
38
+ private validationErrors: Array<{
39
+ path: string;
40
+ message: string;
41
+ }>,
42
+ ) {
43
+ super(message);
44
+ this.name = "ConfigValidationError";
45
+ Error.captureStackTrace(this, ConfigValidationError);
46
+ }
47
+
48
+ /**
49
+ * Get detailed validation errors
50
+ */
51
+ public getValidationErrors() {
52
+ return this.validationErrors;
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Error thrown when a requested resource is not found
58
+ */
59
+ export class ResourceNotFoundError extends Error {
60
+ constructor(
61
+ message: string,
62
+ public resourceType: string,
63
+ public resourceId: string,
64
+ ) {
65
+ super(message);
66
+ this.name = "ResourceNotFoundError";
67
+ Error.captureStackTrace(this, ResourceNotFoundError);
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Error thrown when authentication fails or is missing
73
+ */
74
+ export class AuthenticationError extends Error {
75
+ constructor(message: string) {
76
+ super(message);
77
+ this.name = "AuthenticationError";
78
+ Error.captureStackTrace(this, AuthenticationError);
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Error thrown when project is not initialized
84
+ */
85
+ export class ProjectNotInitializedError extends Error {
86
+ constructor(
87
+ message: string = "Project configuration not found. Project must be initialized first.",
88
+ ) {
89
+ super(message);
90
+ this.name = "ProjectNotInitializedError";
91
+ Error.captureStackTrace(this, ProjectNotInitializedError);
92
+ }
93
+ }