node-appwrite 12.0.1 → 12.1.0-rc.4

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 (298) hide show
  1. package/.travis.yml +18 -8
  2. package/README.md +1 -1
  3. package/dist/client.d.mts +131 -0
  4. package/dist/client.d.ts +131 -0
  5. package/dist/client.js +302 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/client.mjs +295 -0
  8. package/dist/client.mjs.map +1 -0
  9. package/dist/enums/authentication-factor.d.mts +8 -0
  10. package/dist/enums/authentication-factor.d.ts +8 -0
  11. package/dist/enums/authentication-factor.js +13 -0
  12. package/dist/enums/authentication-factor.js.map +1 -0
  13. package/dist/enums/authentication-factor.mjs +11 -0
  14. package/dist/enums/authentication-factor.mjs.map +1 -0
  15. package/dist/enums/authenticator-type.d.mts +5 -0
  16. package/dist/enums/authenticator-type.d.ts +5 -0
  17. package/dist/enums/authenticator-type.js +10 -0
  18. package/dist/enums/authenticator-type.js.map +1 -0
  19. package/dist/enums/authenticator-type.mjs +8 -0
  20. package/dist/enums/authenticator-type.mjs.map +1 -0
  21. package/dist/enums/browser.d.mts +18 -0
  22. package/dist/enums/browser.d.ts +18 -0
  23. package/dist/enums/browser.js +23 -0
  24. package/dist/enums/browser.js.map +1 -0
  25. package/dist/enums/browser.mjs +21 -0
  26. package/dist/enums/browser.mjs.map +1 -0
  27. package/dist/enums/compression.d.mts +7 -0
  28. package/dist/enums/compression.d.ts +7 -0
  29. package/dist/enums/compression.js +12 -0
  30. package/dist/enums/compression.js.map +1 -0
  31. package/dist/enums/compression.mjs +10 -0
  32. package/dist/enums/compression.mjs.map +1 -0
  33. package/dist/enums/credit-card.d.mts +20 -0
  34. package/dist/enums/credit-card.d.ts +20 -0
  35. package/dist/enums/credit-card.js +25 -0
  36. package/dist/enums/credit-card.js.map +1 -0
  37. package/dist/enums/credit-card.mjs +23 -0
  38. package/dist/enums/credit-card.mjs.map +1 -0
  39. package/dist/enums/execution-method.d.mts +10 -0
  40. package/dist/enums/execution-method.d.ts +10 -0
  41. package/dist/enums/execution-method.js +15 -0
  42. package/dist/enums/execution-method.js.map +1 -0
  43. package/dist/enums/execution-method.mjs +13 -0
  44. package/dist/enums/execution-method.mjs.map +1 -0
  45. package/dist/enums/flag.d.mts +198 -0
  46. package/dist/enums/flag.d.ts +198 -0
  47. package/dist/enums/flag.js +203 -0
  48. package/dist/enums/flag.js.map +1 -0
  49. package/dist/enums/flag.mjs +201 -0
  50. package/dist/enums/flag.mjs.map +1 -0
  51. package/dist/enums/image-format.d.mts +9 -0
  52. package/dist/enums/image-format.d.ts +9 -0
  53. package/dist/enums/image-format.js +14 -0
  54. package/dist/enums/image-format.js.map +1 -0
  55. package/dist/enums/image-format.mjs +12 -0
  56. package/dist/enums/image-format.mjs.map +1 -0
  57. package/dist/enums/image-gravity.d.mts +13 -0
  58. package/dist/enums/image-gravity.d.ts +13 -0
  59. package/dist/enums/image-gravity.js +18 -0
  60. package/dist/enums/image-gravity.js.map +1 -0
  61. package/dist/enums/image-gravity.mjs +16 -0
  62. package/dist/enums/image-gravity.mjs.map +1 -0
  63. package/dist/enums/index-type.d.mts +7 -0
  64. package/dist/enums/index-type.d.ts +7 -0
  65. package/dist/enums/index-type.js +12 -0
  66. package/dist/enums/index-type.js.map +1 -0
  67. package/dist/enums/index-type.mjs +10 -0
  68. package/dist/enums/index-type.mjs.map +1 -0
  69. package/dist/enums/messaging-provider-type.d.mts +7 -0
  70. package/dist/enums/messaging-provider-type.d.ts +7 -0
  71. package/dist/enums/messaging-provider-type.js +12 -0
  72. package/dist/enums/messaging-provider-type.js.map +1 -0
  73. package/dist/enums/messaging-provider-type.mjs +10 -0
  74. package/dist/enums/messaging-provider-type.mjs.map +1 -0
  75. package/dist/enums/name.d.mts +17 -0
  76. package/dist/enums/name.d.ts +17 -0
  77. package/dist/enums/name.js +22 -0
  78. package/dist/enums/name.js.map +1 -0
  79. package/dist/enums/name.mjs +20 -0
  80. package/dist/enums/name.mjs.map +1 -0
  81. package/dist/enums/o-auth-provider.d.mts +43 -0
  82. package/dist/enums/o-auth-provider.d.ts +43 -0
  83. package/dist/enums/o-auth-provider.js +48 -0
  84. package/dist/enums/o-auth-provider.js.map +1 -0
  85. package/dist/enums/o-auth-provider.mjs +46 -0
  86. package/dist/enums/o-auth-provider.mjs.map +1 -0
  87. package/dist/enums/password-hash.d.mts +15 -0
  88. package/dist/enums/password-hash.d.ts +15 -0
  89. package/dist/enums/password-hash.js +20 -0
  90. package/dist/enums/password-hash.js.map +1 -0
  91. package/dist/enums/password-hash.mjs +18 -0
  92. package/dist/enums/password-hash.mjs.map +1 -0
  93. package/dist/enums/relation-mutate.d.mts +7 -0
  94. package/dist/enums/relation-mutate.d.ts +7 -0
  95. package/dist/enums/relation-mutate.js +12 -0
  96. package/dist/enums/relation-mutate.js.map +1 -0
  97. package/dist/enums/relation-mutate.mjs +10 -0
  98. package/dist/enums/relation-mutate.mjs.map +1 -0
  99. package/dist/enums/relationship-type.d.mts +8 -0
  100. package/dist/enums/relationship-type.d.ts +8 -0
  101. package/dist/enums/relationship-type.js +13 -0
  102. package/dist/enums/relationship-type.js.map +1 -0
  103. package/dist/enums/relationship-type.mjs +11 -0
  104. package/dist/enums/relationship-type.mjs.map +1 -0
  105. package/dist/enums/runtime.d.mts +48 -0
  106. package/dist/enums/runtime.d.ts +48 -0
  107. package/dist/enums/runtime.js +53 -0
  108. package/dist/enums/runtime.js.map +1 -0
  109. package/dist/enums/runtime.mjs +51 -0
  110. package/dist/enums/runtime.mjs.map +1 -0
  111. package/dist/enums/smtp-encryption.d.mts +7 -0
  112. package/dist/enums/smtp-encryption.d.ts +7 -0
  113. package/dist/enums/smtp-encryption.js +12 -0
  114. package/dist/enums/smtp-encryption.js.map +1 -0
  115. package/dist/enums/smtp-encryption.mjs +10 -0
  116. package/dist/enums/smtp-encryption.mjs.map +1 -0
  117. package/dist/id.d.mts +7 -0
  118. package/dist/id.d.ts +7 -0
  119. package/dist/id.js +29 -0
  120. package/dist/id.js.map +1 -0
  121. package/dist/id.mjs +27 -0
  122. package/dist/id.mjs.map +1 -0
  123. package/dist/index.d.mts +35 -0
  124. package/dist/index.d.ts +35 -0
  125. package/dist/index.js +180 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/index.mjs +35 -0
  128. package/dist/index.mjs.map +1 -0
  129. package/dist/inputFile.d.mts +9 -0
  130. package/dist/inputFile.d.ts +9 -0
  131. package/dist/inputFile.js +23 -0
  132. package/dist/inputFile.js.map +1 -0
  133. package/dist/inputFile.mjs +21 -0
  134. package/dist/inputFile.mjs.map +1 -0
  135. package/dist/models.d.mts +2406 -0
  136. package/dist/models.d.ts +2406 -0
  137. package/dist/models.js +4 -0
  138. package/dist/models.js.map +1 -0
  139. package/dist/models.mjs +3 -0
  140. package/dist/models.mjs.map +1 -0
  141. package/dist/permission.d.mts +9 -0
  142. package/dist/permission.d.ts +9 -0
  143. package/dist/permission.js +23 -0
  144. package/dist/permission.js.map +1 -0
  145. package/dist/permission.mjs +21 -0
  146. package/dist/permission.mjs.map +1 -0
  147. package/dist/query.d.mts +35 -0
  148. package/dist/query.d.ts +35 -0
  149. package/dist/query.js +49 -0
  150. package/dist/query.js.map +1 -0
  151. package/dist/query.mjs +47 -0
  152. package/dist/query.mjs.map +1 -0
  153. package/dist/role.d.mts +72 -0
  154. package/dist/role.d.ts +72 -0
  155. package/dist/role.js +96 -0
  156. package/dist/role.js.map +1 -0
  157. package/dist/role.mjs +94 -0
  158. package/dist/role.mjs.map +1 -0
  159. package/dist/services/account.d.mts +478 -0
  160. package/dist/services/account.d.ts +478 -0
  161. package/dist/services/account.js +1331 -0
  162. package/dist/services/account.js.map +1 -0
  163. package/dist/services/account.mjs +1329 -0
  164. package/dist/services/account.mjs.map +1 -0
  165. package/dist/services/avatars.d.mts +118 -0
  166. package/dist/services/avatars.d.ts +118 -0
  167. package/dist/services/avatars.js +297 -0
  168. package/dist/services/avatars.js.map +1 -0
  169. package/dist/services/avatars.mjs +295 -0
  170. package/dist/services/avatars.mjs.map +1 -0
  171. package/dist/services/databases.d.mts +606 -0
  172. package/dist/services/databases.d.ts +606 -0
  173. package/dist/services/databases.js +1908 -0
  174. package/dist/services/databases.js.map +1 -0
  175. package/dist/services/databases.mjs +1906 -0
  176. package/dist/services/databases.mjs.map +1 -0
  177. package/dist/services/functions.d.mts +287 -0
  178. package/dist/services/functions.d.ts +287 -0
  179. package/dist/services/functions.js +837 -0
  180. package/dist/services/functions.js.map +1 -0
  181. package/dist/services/functions.mjs +835 -0
  182. package/dist/services/functions.mjs.map +1 -0
  183. package/dist/services/graphql.d.mts +30 -0
  184. package/dist/services/graphql.d.ts +30 -0
  185. package/dist/services/graphql.js +73 -0
  186. package/dist/services/graphql.js.map +1 -0
  187. package/dist/services/graphql.mjs +71 -0
  188. package/dist/services/graphql.mjs.map +1 -0
  189. package/dist/services/health.d.mts +235 -0
  190. package/dist/services/health.d.ts +235 -0
  191. package/dist/services/health.js +584 -0
  192. package/dist/services/health.js.map +1 -0
  193. package/dist/services/health.mjs +582 -0
  194. package/dist/services/health.mjs.map +1 -0
  195. package/dist/services/locale.d.mts +84 -0
  196. package/dist/services/locale.d.ts +84 -0
  197. package/dist/services/locale.js +189 -0
  198. package/dist/services/locale.js.map +1 -0
  199. package/dist/services/locale.mjs +187 -0
  200. package/dist/services/locale.mjs.map +1 -0
  201. package/dist/services/messaging.d.mts +688 -0
  202. package/dist/services/messaging.d.ts +688 -0
  203. package/dist/services/messaging.js +2152 -0
  204. package/dist/services/messaging.js.map +1 -0
  205. package/dist/services/messaging.mjs +2150 -0
  206. package/dist/services/messaging.mjs.map +1 -0
  207. package/dist/services/storage.d.mts +193 -0
  208. package/dist/services/storage.d.ts +193 -0
  209. package/dist/services/storage.js +550 -0
  210. package/dist/services/storage.js.map +1 -0
  211. package/dist/services/storage.mjs +548 -0
  212. package/dist/services/storage.mjs.map +1 -0
  213. package/dist/services/teams.d.mts +171 -0
  214. package/dist/services/teams.d.ts +171 -0
  215. package/dist/services/teams.js +466 -0
  216. package/dist/services/teams.js.map +1 -0
  217. package/dist/services/teams.mjs +464 -0
  218. package/dist/services/teams.mjs.map +1 -0
  219. package/dist/services/users.d.mts +490 -0
  220. package/dist/services/users.d.ts +490 -0
  221. package/dist/services/users.js +1464 -0
  222. package/dist/services/users.js.map +1 -0
  223. package/dist/services/users.mjs +1462 -0
  224. package/dist/services/users.mjs.map +1 -0
  225. package/docs/examples/functions/create-deployment.md +1 -1
  226. package/docs/examples/messaging/create-msg91provider.md +1 -1
  227. package/docs/examples/messaging/update-msg91provider.md +2 -2
  228. package/docs/examples/storage/create-file.md +1 -1
  229. package/package.json +35 -5
  230. package/src/client.ts +366 -0
  231. package/src/enums/authentication-factor.ts +6 -0
  232. package/src/enums/authenticator-type.ts +3 -0
  233. package/src/enums/browser.ts +16 -0
  234. package/src/enums/compression.ts +5 -0
  235. package/src/enums/credit-card.ts +18 -0
  236. package/src/enums/execution-method.ts +8 -0
  237. package/src/enums/flag.ts +196 -0
  238. package/src/enums/image-format.ts +7 -0
  239. package/src/enums/image-gravity.ts +11 -0
  240. package/src/enums/index-type.ts +5 -0
  241. package/src/enums/messaging-provider-type.ts +5 -0
  242. package/src/enums/name.ts +15 -0
  243. package/src/enums/o-auth-provider.ts +41 -0
  244. package/src/enums/password-hash.ts +13 -0
  245. package/src/enums/relation-mutate.ts +5 -0
  246. package/src/enums/relationship-type.ts +6 -0
  247. package/src/enums/runtime.ts +46 -0
  248. package/src/enums/smtp-encryption.ts +5 -0
  249. package/{lib/id.js → src/id.ts} +8 -12
  250. package/src/index.ts +35 -0
  251. package/src/inputFile.ts +23 -0
  252. package/src/models.ts +2404 -0
  253. package/src/permission.ts +22 -0
  254. package/src/query.ts +101 -0
  255. package/{lib/role.js → src/role.ts} +23 -25
  256. package/src/services/account.ts +1418 -0
  257. package/src/services/avatars.ts +312 -0
  258. package/{lib/services/databases.js → src/services/databases.ts} +644 -638
  259. package/{lib/services/functions.js → src/services/functions.ts} +317 -369
  260. package/{lib/services/graphql.js → src/services/graphql.ts} +35 -34
  261. package/src/services/health.ts +629 -0
  262. package/src/services/locale.ts +205 -0
  263. package/{lib/services/messaging.js → src/services/messaging.ts} +666 -641
  264. package/{lib/services/storage.js → src/services/storage.ts} +211 -298
  265. package/{lib/services/teams.js → src/services/teams.ts} +211 -200
  266. package/{lib/services/users.js → src/services/users.ts} +603 -519
  267. package/tsconfig.json +18 -0
  268. package/tsup.config.js +19 -0
  269. package/index.d.ts +0 -6656
  270. package/index.js +0 -75
  271. package/lib/client.js +0 -245
  272. package/lib/enums/authentication-factor.js +0 -8
  273. package/lib/enums/authenticator-type.js +0 -5
  274. package/lib/enums/browser.js +0 -18
  275. package/lib/enums/compression.js +0 -7
  276. package/lib/enums/credit-card.js +0 -20
  277. package/lib/enums/execution-method.js +0 -10
  278. package/lib/enums/flag.js +0 -198
  279. package/lib/enums/image-format.js +0 -9
  280. package/lib/enums/image-gravity.js +0 -13
  281. package/lib/enums/index-type.js +0 -7
  282. package/lib/enums/messaging-provider-type.js +0 -7
  283. package/lib/enums/name.js +0 -17
  284. package/lib/enums/o-auth-provider.js +0 -43
  285. package/lib/enums/password-hash.js +0 -15
  286. package/lib/enums/relation-mutate.js +0 -7
  287. package/lib/enums/relationship-type.js +0 -8
  288. package/lib/enums/runtime.js +0 -48
  289. package/lib/enums/smtp-encryption.js +0 -7
  290. package/lib/exception.js +0 -10
  291. package/lib/inputFile.js +0 -117
  292. package/lib/permission.js +0 -24
  293. package/lib/query.js +0 -90
  294. package/lib/service.js +0 -10
  295. package/lib/services/account.js +0 -1365
  296. package/lib/services/avatars.js +0 -325
  297. package/lib/services/health.js +0 -513
  298. package/lib/services/locale.js +0 -169
package/.travis.yml CHANGED
@@ -1,25 +1,35 @@
1
1
  language: node_js
2
2
  node_js:
3
- - "14.16"
3
+ - "16"
4
4
 
5
5
  jobs:
6
6
  include:
7
7
  - stage: NPM RC Release
8
- if: tag == *-rc*
9
- node_js: "14.16"
10
- script: echo "Deploying RC to NPM..."
8
+ if: tag =~ /-(rc|RC)/
9
+ node_js: "16"
10
+ script:
11
+ - npm install
12
+ - npm run build
13
+ - echo "Deploying RC to NPM..."
11
14
  deploy:
12
15
  provider: npm
13
16
  email: $NPM_EMAIL
14
17
  api_key: $NPM_API_KEY
15
18
  tag: next
19
+ skip_cleanup: true
20
+ on:
21
+ tags: true
16
22
  - stage: NPM Release
17
- if: tag != *-rc*
18
- node_js: "14.16"
19
- script: echo "Deploying to NPM..."
23
+ if: not tag =~ /-(rc|RC)/
24
+ node_js: "16"
25
+ script:
26
+ - npm install
27
+ - npm run build
28
+ - echo "Deploying to NPM..."
20
29
  deploy:
21
30
  provider: npm
22
31
  email: $NPM_EMAIL
23
32
  api_key: $NPM_API_KEY
33
+ skip_cleanup: true
24
34
  on:
25
- tags: true
35
+ tags: true
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Appwrite Node.js SDK
2
2
 
3
3
  ![License](https://img.shields.io/github/license/appwrite/sdk-for-node.svg?style=flat-square)
4
- ![Version](https://img.shields.io/badge/api%20version-1.5.4-blue.svg?style=flat-square)
4
+ ![Version](https://img.shields.io/badge/api%20version-1.5.0-blue.svg?style=flat-square)
5
5
  [![Build Status](https://img.shields.io/travis/com/appwrite/sdk-generator?style=flat-square)](https://travis-ci.com/appwrite/sdk-generator)
6
6
  [![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
7
7
  [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
@@ -0,0 +1,131 @@
1
+ export { Models } from './models.mjs';
2
+ export { Query, QueryTypes, QueryTypesList } from './query.mjs';
3
+
4
+ type Payload = {
5
+ [key: string]: any;
6
+ };
7
+ type UploadProgress = {
8
+ $id: string;
9
+ progress: number;
10
+ sizeUploaded: number;
11
+ chunksTotal: number;
12
+ chunksUploaded: number;
13
+ };
14
+ type Headers = {
15
+ [key: string]: string;
16
+ };
17
+ declare class AppwriteException extends Error {
18
+ code: number;
19
+ response: string;
20
+ type: string;
21
+ constructor(message: string, code?: number, type?: string, response?: string);
22
+ }
23
+ declare class Client {
24
+ static CHUNK_SIZE: number;
25
+ config: {
26
+ endpoint: string;
27
+ selfSigned: boolean;
28
+ project: string;
29
+ key: string;
30
+ jwt: string;
31
+ locale: string;
32
+ session: string;
33
+ forwardeduseragent: string;
34
+ };
35
+ headers: Headers;
36
+ /**
37
+ * Set Endpoint
38
+ *
39
+ * Your project endpoint
40
+ *
41
+ * @param {string} endpoint
42
+ *
43
+ * @returns {this}
44
+ */
45
+ setEndpoint(endpoint: string): this;
46
+ /**
47
+ * Set self-signed
48
+ *
49
+ * @param {boolean} selfSigned
50
+ *
51
+ * @returns {this}
52
+ */
53
+ setSelfSigned(selfSigned: boolean): this;
54
+ /**
55
+ * Add header
56
+ *
57
+ * @param {string} header
58
+ * @param {string} value
59
+ *
60
+ * @returns {this}
61
+ */
62
+ addHeader(header: string, value: string): this;
63
+ /**
64
+ * Set Project
65
+ *
66
+ * Your project ID
67
+ *
68
+ * @param value string
69
+ *
70
+ * @return {this}
71
+ */
72
+ setProject(value: string): this;
73
+ /**
74
+ * Set Key
75
+ *
76
+ * Your secret API key
77
+ *
78
+ * @param value string
79
+ *
80
+ * @return {this}
81
+ */
82
+ setKey(value: string): this;
83
+ /**
84
+ * Set JWT
85
+ *
86
+ * Your secret JSON Web Token
87
+ *
88
+ * @param value string
89
+ *
90
+ * @return {this}
91
+ */
92
+ setJWT(value: string): this;
93
+ /**
94
+ * Set Locale
95
+ *
96
+ * @param value string
97
+ *
98
+ * @return {this}
99
+ */
100
+ setLocale(value: string): this;
101
+ /**
102
+ * Set Session
103
+ *
104
+ * The user session to authenticate with
105
+ *
106
+ * @param value string
107
+ *
108
+ * @return {this}
109
+ */
110
+ setSession(value: string): this;
111
+ /**
112
+ * Set ForwardedUserAgent
113
+ *
114
+ * The user agent string of the client that made the request
115
+ *
116
+ * @param value string
117
+ *
118
+ * @return {this}
119
+ */
120
+ setForwardedUserAgent(value: string): this;
121
+ prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
122
+ uri: string;
123
+ options: RequestInit;
124
+ };
125
+ chunkedUpload(method: string, url: URL, headers: Headers | undefined, originalPayload: Payload | undefined, onProgress: (progress: UploadProgress) => void): Promise<any>;
126
+ redirect(method: string, url: URL, headers?: Headers, params?: Payload): Promise<string>;
127
+ call(method: string, url: URL, headers?: Headers, params?: Payload, responseType?: string): Promise<any>;
128
+ static flatten(data: Payload, prefix?: string): Payload;
129
+ }
130
+
131
+ export { AppwriteException, Client, Payload, UploadProgress };
@@ -0,0 +1,131 @@
1
+ export { Models } from './models.js';
2
+ export { Query, QueryTypes, QueryTypesList } from './query.js';
3
+
4
+ type Payload = {
5
+ [key: string]: any;
6
+ };
7
+ type UploadProgress = {
8
+ $id: string;
9
+ progress: number;
10
+ sizeUploaded: number;
11
+ chunksTotal: number;
12
+ chunksUploaded: number;
13
+ };
14
+ type Headers = {
15
+ [key: string]: string;
16
+ };
17
+ declare class AppwriteException extends Error {
18
+ code: number;
19
+ response: string;
20
+ type: string;
21
+ constructor(message: string, code?: number, type?: string, response?: string);
22
+ }
23
+ declare class Client {
24
+ static CHUNK_SIZE: number;
25
+ config: {
26
+ endpoint: string;
27
+ selfSigned: boolean;
28
+ project: string;
29
+ key: string;
30
+ jwt: string;
31
+ locale: string;
32
+ session: string;
33
+ forwardeduseragent: string;
34
+ };
35
+ headers: Headers;
36
+ /**
37
+ * Set Endpoint
38
+ *
39
+ * Your project endpoint
40
+ *
41
+ * @param {string} endpoint
42
+ *
43
+ * @returns {this}
44
+ */
45
+ setEndpoint(endpoint: string): this;
46
+ /**
47
+ * Set self-signed
48
+ *
49
+ * @param {boolean} selfSigned
50
+ *
51
+ * @returns {this}
52
+ */
53
+ setSelfSigned(selfSigned: boolean): this;
54
+ /**
55
+ * Add header
56
+ *
57
+ * @param {string} header
58
+ * @param {string} value
59
+ *
60
+ * @returns {this}
61
+ */
62
+ addHeader(header: string, value: string): this;
63
+ /**
64
+ * Set Project
65
+ *
66
+ * Your project ID
67
+ *
68
+ * @param value string
69
+ *
70
+ * @return {this}
71
+ */
72
+ setProject(value: string): this;
73
+ /**
74
+ * Set Key
75
+ *
76
+ * Your secret API key
77
+ *
78
+ * @param value string
79
+ *
80
+ * @return {this}
81
+ */
82
+ setKey(value: string): this;
83
+ /**
84
+ * Set JWT
85
+ *
86
+ * Your secret JSON Web Token
87
+ *
88
+ * @param value string
89
+ *
90
+ * @return {this}
91
+ */
92
+ setJWT(value: string): this;
93
+ /**
94
+ * Set Locale
95
+ *
96
+ * @param value string
97
+ *
98
+ * @return {this}
99
+ */
100
+ setLocale(value: string): this;
101
+ /**
102
+ * Set Session
103
+ *
104
+ * The user session to authenticate with
105
+ *
106
+ * @param value string
107
+ *
108
+ * @return {this}
109
+ */
110
+ setSession(value: string): this;
111
+ /**
112
+ * Set ForwardedUserAgent
113
+ *
114
+ * The user agent string of the client that made the request
115
+ *
116
+ * @param value string
117
+ *
118
+ * @return {this}
119
+ */
120
+ setForwardedUserAgent(value: string): this;
121
+ prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
122
+ uri: string;
123
+ options: RequestInit;
124
+ };
125
+ chunkedUpload(method: string, url: URL, headers: Headers | undefined, originalPayload: Payload | undefined, onProgress: (progress: UploadProgress) => void): Promise<any>;
126
+ redirect(method: string, url: URL, headers?: Headers, params?: Payload): Promise<string>;
127
+ call(method: string, url: URL, headers?: Headers, params?: Payload, responseType?: string): Promise<any>;
128
+ static flatten(data: Payload, prefix?: string): Payload;
129
+ }
130
+
131
+ export { AppwriteException, Client, Payload, UploadProgress };
package/dist/client.js ADDED
@@ -0,0 +1,302 @@
1
+ 'use strict';
2
+
3
+ var nodeFetchNativeWithAgent = require('node-fetch-native-with-agent');
4
+ var agent = require('node-fetch-native-with-agent/agent');
5
+ var query = require('./query');
6
+
7
+ class AppwriteException extends Error {
8
+ constructor(message, code = 0, type = "", response = "") {
9
+ super(message);
10
+ this.name = "AppwriteException";
11
+ this.message = message;
12
+ this.code = code;
13
+ this.type = type;
14
+ this.response = response;
15
+ }
16
+ }
17
+ function getUserAgent() {
18
+ let ua = "AppwriteNodeJSSDK/12.1.0-rc.4";
19
+ const platform = [];
20
+ if (typeof process !== "undefined") {
21
+ if (typeof process.platform === "string")
22
+ platform.push(process.platform);
23
+ if (typeof process.arch === "string")
24
+ platform.push(process.arch);
25
+ }
26
+ if (platform.length > 0) {
27
+ ua += ` (${platform.join("; ")})`;
28
+ }
29
+ if (typeof navigator !== "undefined" && typeof navigator.userAgent === "string") {
30
+ ua += ` ${navigator.userAgent}`;
31
+ } else if (typeof globalThis.EdgeRuntime === "string") {
32
+ ua += ` EdgeRuntime`;
33
+ } else if (typeof process !== "undefined" && typeof process.version === "string") {
34
+ ua += ` Node.js/${process.version}`;
35
+ }
36
+ return ua;
37
+ }
38
+ const _Client = class _Client {
39
+ constructor() {
40
+ this.config = {
41
+ endpoint: "https://cloud.appwrite.io/v1",
42
+ selfSigned: false,
43
+ project: "",
44
+ key: "",
45
+ jwt: "",
46
+ locale: "",
47
+ session: "",
48
+ forwardeduseragent: ""
49
+ };
50
+ this.headers = {
51
+ "x-sdk-name": "Node.js",
52
+ "x-sdk-platform": "server",
53
+ "x-sdk-language": "nodejs",
54
+ "x-sdk-version": "12.1.0-rc.4",
55
+ "user-agent": getUserAgent(),
56
+ "X-Appwrite-Response-Format": "1.5.0"
57
+ };
58
+ }
59
+ /**
60
+ * Set Endpoint
61
+ *
62
+ * Your project endpoint
63
+ *
64
+ * @param {string} endpoint
65
+ *
66
+ * @returns {this}
67
+ */
68
+ setEndpoint(endpoint) {
69
+ this.config.endpoint = endpoint;
70
+ return this;
71
+ }
72
+ /**
73
+ * Set self-signed
74
+ *
75
+ * @param {boolean} selfSigned
76
+ *
77
+ * @returns {this}
78
+ */
79
+ setSelfSigned(selfSigned) {
80
+ if (typeof globalThis.EdgeRuntime !== "undefined") {
81
+ console.warn("setSelfSigned is not supported in edge runtimes.");
82
+ }
83
+ this.config.selfSigned = selfSigned;
84
+ return this;
85
+ }
86
+ /**
87
+ * Add header
88
+ *
89
+ * @param {string} header
90
+ * @param {string} value
91
+ *
92
+ * @returns {this}
93
+ */
94
+ addHeader(header, value) {
95
+ this.headers[header.toLowerCase()] = value;
96
+ return this;
97
+ }
98
+ /**
99
+ * Set Project
100
+ *
101
+ * Your project ID
102
+ *
103
+ * @param value string
104
+ *
105
+ * @return {this}
106
+ */
107
+ setProject(value) {
108
+ this.headers["X-Appwrite-Project"] = value;
109
+ this.config.project = value;
110
+ return this;
111
+ }
112
+ /**
113
+ * Set Key
114
+ *
115
+ * Your secret API key
116
+ *
117
+ * @param value string
118
+ *
119
+ * @return {this}
120
+ */
121
+ setKey(value) {
122
+ this.headers["X-Appwrite-Key"] = value;
123
+ this.config.key = value;
124
+ return this;
125
+ }
126
+ /**
127
+ * Set JWT
128
+ *
129
+ * Your secret JSON Web Token
130
+ *
131
+ * @param value string
132
+ *
133
+ * @return {this}
134
+ */
135
+ setJWT(value) {
136
+ this.headers["X-Appwrite-JWT"] = value;
137
+ this.config.jwt = value;
138
+ return this;
139
+ }
140
+ /**
141
+ * Set Locale
142
+ *
143
+ * @param value string
144
+ *
145
+ * @return {this}
146
+ */
147
+ setLocale(value) {
148
+ this.headers["X-Appwrite-Locale"] = value;
149
+ this.config.locale = value;
150
+ return this;
151
+ }
152
+ /**
153
+ * Set Session
154
+ *
155
+ * The user session to authenticate with
156
+ *
157
+ * @param value string
158
+ *
159
+ * @return {this}
160
+ */
161
+ setSession(value) {
162
+ this.headers["X-Appwrite-Session"] = value;
163
+ this.config.session = value;
164
+ return this;
165
+ }
166
+ /**
167
+ * Set ForwardedUserAgent
168
+ *
169
+ * The user agent string of the client that made the request
170
+ *
171
+ * @param value string
172
+ *
173
+ * @return {this}
174
+ */
175
+ setForwardedUserAgent(value) {
176
+ this.headers["X-Forwarded-User-Agent"] = value;
177
+ this.config.forwardeduseragent = value;
178
+ return this;
179
+ }
180
+ prepareRequest(method, url, headers = {}, params = {}) {
181
+ method = method.toUpperCase();
182
+ headers = Object.assign({}, this.headers, headers);
183
+ let options = {
184
+ method,
185
+ headers,
186
+ ...agent.createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned })
187
+ };
188
+ if (method === "GET") {
189
+ for (const [key, value] of Object.entries(_Client.flatten(params))) {
190
+ url.searchParams.append(key, value);
191
+ }
192
+ } else {
193
+ switch (headers["content-type"]) {
194
+ case "application/json":
195
+ options.body = JSON.stringify(params);
196
+ break;
197
+ case "multipart/form-data":
198
+ const formData = new nodeFetchNativeWithAgent.FormData();
199
+ for (const [key, value] of Object.entries(params)) {
200
+ if (value instanceof nodeFetchNativeWithAgent.File) {
201
+ formData.append(key, value, value.name);
202
+ } else if (Array.isArray(value)) {
203
+ for (const nestedValue of value) {
204
+ formData.append(`${key}[]`, nestedValue);
205
+ }
206
+ } else {
207
+ formData.append(key, value);
208
+ }
209
+ }
210
+ options.body = formData;
211
+ delete headers["content-type"];
212
+ break;
213
+ }
214
+ }
215
+ return { uri: url.toString(), options };
216
+ }
217
+ async chunkedUpload(method, url, headers = {}, originalPayload = {}, onProgress) {
218
+ const file = Object.values(originalPayload).find((value) => value instanceof nodeFetchNativeWithAgent.File);
219
+ if (file.size <= _Client.CHUNK_SIZE) {
220
+ return await this.call(method, url, headers, originalPayload);
221
+ }
222
+ let start = 0;
223
+ let response = null;
224
+ while (start < file.size) {
225
+ let end = start + _Client.CHUNK_SIZE;
226
+ if (end >= file.size) {
227
+ end = file.size;
228
+ }
229
+ headers["content-range"] = `bytes ${start}-${end - 1}/${file.size}`;
230
+ const chunk = file.slice(start, end);
231
+ let payload = { ...originalPayload, file: new nodeFetchNativeWithAgent.File([chunk], file.name) };
232
+ response = await this.call(method, url, headers, payload);
233
+ if (onProgress && typeof onProgress === "function") {
234
+ onProgress({
235
+ $id: response.$id,
236
+ progress: Math.round(end / file.size * 100),
237
+ sizeUploaded: end,
238
+ chunksTotal: Math.ceil(file.size / _Client.CHUNK_SIZE),
239
+ chunksUploaded: Math.ceil(end / _Client.CHUNK_SIZE)
240
+ });
241
+ }
242
+ if (response && response.$id) {
243
+ headers["x-appwrite-id"] = response.$id;
244
+ }
245
+ start = end;
246
+ }
247
+ return response;
248
+ }
249
+ async redirect(method, url, headers = {}, params = {}) {
250
+ const { uri, options } = this.prepareRequest(method, url, headers, params);
251
+ const response = await nodeFetchNativeWithAgent.fetch(uri, {
252
+ ...options,
253
+ redirect: "manual"
254
+ });
255
+ if (response.status !== 301 && response.status !== 302) {
256
+ throw new AppwriteException("Invalid redirect", response.status);
257
+ }
258
+ return response.headers.get("location") || "";
259
+ }
260
+ async call(method, url, headers = {}, params = {}, responseType = "json") {
261
+ var _a;
262
+ const { uri, options } = this.prepareRequest(method, url, headers, params);
263
+ let data = null;
264
+ const response = await nodeFetchNativeWithAgent.fetch(uri, options);
265
+ if ((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("application/json")) {
266
+ data = await response.json();
267
+ } else if (responseType === "arrayBuffer") {
268
+ data = await response.arrayBuffer();
269
+ } else {
270
+ data = {
271
+ message: await response.text()
272
+ };
273
+ }
274
+ if (400 <= response.status) {
275
+ throw new AppwriteException(data == null ? void 0 : data.message, response.status, data == null ? void 0 : data.type, data);
276
+ }
277
+ return data;
278
+ }
279
+ static flatten(data, prefix = "") {
280
+ let output = {};
281
+ for (const [key, value] of Object.entries(data)) {
282
+ let finalKey = prefix ? prefix + "[" + key + "]" : key;
283
+ if (Array.isArray(value)) {
284
+ output = { ...output, ..._Client.flatten(value, finalKey) };
285
+ } else {
286
+ output[finalKey] = value;
287
+ }
288
+ }
289
+ return output;
290
+ }
291
+ };
292
+ _Client.CHUNK_SIZE = 1024 * 1024 * 5;
293
+ let Client = _Client;
294
+
295
+ Object.defineProperty(exports, 'Query', {
296
+ enumerable: true,
297
+ get: function () { return query.Query; }
298
+ });
299
+ exports.AppwriteException = AppwriteException;
300
+ exports.Client = Client;
301
+ //# sourceMappingURL=out.js.map
302
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass AppwriteException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'AppwriteException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nfunction getUserAgent() {\n let ua = 'AppwriteNodeJSSDK/12.1.0-rc.4';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n static CHUNK_SIZE = 1024 * 1024 * 5;\n\n config = {\n endpoint: 'https://cloud.appwrite.io/v1',\n selfSigned: false,\n project: '',\n key: '',\n jwt: '',\n locale: '',\n session: '',\n forwardeduseragent: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '12.1.0-rc.4',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.5.0',\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n this.config.endpoint = endpoint;\n\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set Project\n *\n * Your project ID\n *\n * @param value string\n *\n * @return {this}\n */\n setProject(value: string): this {\n this.headers['X-Appwrite-Project'] = value;\n this.config.project = value;\n return this;\n }\n /**\n * Set Key\n *\n * Your secret API key\n *\n * @param value string\n *\n * @return {this}\n */\n setKey(value: string): this {\n this.headers['X-Appwrite-Key'] = value;\n this.config.key = value;\n return this;\n }\n /**\n * Set JWT\n *\n * Your secret JSON Web Token\n *\n * @param value string\n *\n * @return {this}\n */\n setJWT(value: string): this {\n this.headers['X-Appwrite-JWT'] = value;\n this.config.jwt = value;\n return this;\n }\n /**\n * Set Locale\n *\n * @param value string\n *\n * @return {this}\n */\n setLocale(value: string): this {\n this.headers['X-Appwrite-Locale'] = value;\n this.config.locale = value;\n return this;\n }\n /**\n * Set Session\n *\n * The user session to authenticate with\n *\n * @param value string\n *\n * @return {this}\n */\n setSession(value: string): this {\n this.headers['X-Appwrite-Session'] = value;\n this.config.session = value;\n return this;\n }\n /**\n * Set ForwardedUserAgent\n *\n * The user agent string of the client that made the request\n *\n * @param value string\n *\n * @return {this}\n */\n setForwardedUserAgent(value: string): this {\n this.headers['X-Forwarded-User-Agent'] = value;\n this.config.forwardeduseragent = value;\n return this;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSON.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const file = Object.values(originalPayload).find((value) => value instanceof File);\n\n if (file.size <= Client.CHUNK_SIZE) {\n return await this.call(method, url, headers, originalPayload);\n }\n\n let start = 0;\n let response = null;\n\n while (start < file.size) {\n let end = start + Client.CHUNK_SIZE; // Prepare end for the next chunk\n if (end >= file.size) {\n end = file.size; // Adjust for the last chunk to include the last byte\n }\n\n headers['content-range'] = `bytes ${start}-${end-1}/${file.size}`;\n const chunk = file.slice(start, end);\n\n let payload = { ...originalPayload, file: new File([chunk], file.name)};\n\n response = await this.call(method, url, headers, payload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response.$id,\n progress: Math.round((end / file.size) * 100),\n sizeUploaded: end,\n chunksTotal: Math.ceil(file.size / Client.CHUNK_SIZE),\n chunksUploaded: Math.ceil(end / Client.CHUNK_SIZE)\n });\n }\n\n if (response && response.$id) {\n headers['x-appwrite-id'] = response.$id;\n }\n\n start = end;\n }\n\n return response;\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n \n const response = await fetch(uri, {\n ...options,\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new AppwriteException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, options);\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = await response.json();\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n throw new AppwriteException(data?.message, response.status, data?.type, data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n}\n\nexport { Client, AppwriteException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}