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