@cloudbase/oauth 0.1.1-alpha → 0.1.1-alpha.2

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 (332) hide show
  1. package/Dockerfile +15 -0
  2. package/README.md +1 -1
  3. package/_exmaple/assets/scripts/function/function.ts +99 -0
  4. package/_exmaple/assets/scripts/index.ts +99 -0
  5. package/_exmaple/assets/scripts/request.ts +11 -0
  6. package/_exmaple/index.html +15 -0
  7. package/_exmaple/package.json +33 -0
  8. package/_exmaple/tsconfig.json +71 -0
  9. package/_exmaple/typings.d.ts +0 -0
  10. package/_exmaple/webpack.config.js +42 -0
  11. package/cdnjs/1.0.0/cloudbase.auth.js +1 -0
  12. package/cdnjs/1.0.0/cloudbase.database.js +8 -0
  13. package/cdnjs/1.0.0/cloudbase.full.js +8 -0
  14. package/cdnjs/1.0.0/cloudbase.functions.js +1 -0
  15. package/cdnjs/1.0.0/cloudbase.js +1 -0
  16. package/cdnjs/1.0.0/cloudbase.storage.js +1 -0
  17. package/cdnjs/1.0.1/cloudbase.auth.js +1 -0
  18. package/cdnjs/1.0.1/cloudbase.database.js +8 -0
  19. package/cdnjs/1.0.1/cloudbase.full.js +8 -0
  20. package/cdnjs/1.0.1/cloudbase.functions.js +1 -0
  21. package/cdnjs/1.0.1/cloudbase.js +1 -0
  22. package/cdnjs/1.0.1/cloudbase.storage.js +1 -0
  23. package/cdnjs/1.0.2/cloudbase.auth.js +1 -0
  24. package/cdnjs/1.0.2/cloudbase.database.js +8 -0
  25. package/cdnjs/1.0.2/cloudbase.full.js +8 -0
  26. package/cdnjs/1.0.2/cloudbase.functions.js +1 -0
  27. package/cdnjs/1.0.2/cloudbase.js +1 -0
  28. package/cdnjs/1.0.2/cloudbase.storage.js +1 -0
  29. package/cdnjs/1.0.3/cloudbase.auth.js +1 -0
  30. package/cdnjs/1.0.3/cloudbase.database.js +8 -0
  31. package/cdnjs/1.0.3/cloudbase.full.js +8 -0
  32. package/cdnjs/1.0.3/cloudbase.functions.js +1 -0
  33. package/cdnjs/1.0.3/cloudbase.js +1 -0
  34. package/cdnjs/1.0.3/cloudbase.storage.js +1 -0
  35. package/cdnjs/1.0.4/cloudbase.auth.js +1 -0
  36. package/cdnjs/1.0.4/cloudbase.database.js +8 -0
  37. package/cdnjs/1.0.4/cloudbase.full.js +8 -0
  38. package/cdnjs/1.0.4/cloudbase.functions.js +1 -0
  39. package/cdnjs/1.0.4/cloudbase.js +1 -0
  40. package/cdnjs/1.0.4/cloudbase.storage.js +1 -0
  41. package/cdnjs/1.1.0/cloudbase.auth.js +1 -0
  42. package/cdnjs/1.1.0/cloudbase.database.js +8 -0
  43. package/cdnjs/1.1.0/cloudbase.full.js +8 -0
  44. package/cdnjs/1.1.0/cloudbase.functions.js +1 -0
  45. package/cdnjs/1.1.0/cloudbase.js +1 -0
  46. package/cdnjs/1.1.0/cloudbase.storage.js +1 -0
  47. package/cdnjs/1.1.1/cloudbase.auth.js +1 -0
  48. package/cdnjs/1.1.1/cloudbase.database.js +8 -0
  49. package/cdnjs/1.1.1/cloudbase.full.js +8 -0
  50. package/cdnjs/1.1.1/cloudbase.functions.js +1 -0
  51. package/cdnjs/1.1.1/cloudbase.js +1 -0
  52. package/cdnjs/1.1.1/cloudbase.storage.js +1 -0
  53. package/cdnjs/1.1.2/cloudbase.auth.js +1 -0
  54. package/cdnjs/1.1.2/cloudbase.database.js +8 -0
  55. package/cdnjs/1.1.2/cloudbase.full.js +8 -0
  56. package/cdnjs/1.1.2/cloudbase.functions.js +1 -0
  57. package/cdnjs/1.1.2/cloudbase.js +1 -0
  58. package/cdnjs/1.1.2/cloudbase.storage.js +1 -0
  59. package/cdnjs/1.1.3/cloudbase.auth.js +1 -0
  60. package/cdnjs/1.1.3/cloudbase.database.js +8 -0
  61. package/cdnjs/1.1.3/cloudbase.full.js +8 -0
  62. package/cdnjs/1.1.3/cloudbase.functions.js +1 -0
  63. package/cdnjs/1.1.3/cloudbase.js +1 -0
  64. package/cdnjs/1.1.3/cloudbase.storage.js +1 -0
  65. package/cdnjs/1.1.4/cloudbase.auth.js +1 -0
  66. package/cdnjs/1.1.4/cloudbase.database.js +8 -0
  67. package/cdnjs/1.1.4/cloudbase.full.js +8 -0
  68. package/cdnjs/1.1.4/cloudbase.functions.js +1 -0
  69. package/cdnjs/1.1.4/cloudbase.js +1 -0
  70. package/cdnjs/1.1.4/cloudbase.storage.js +1 -0
  71. package/cdnjs/1.2.1/cloudbase.auth.js +1 -0
  72. package/cdnjs/1.2.1/cloudbase.database.js +8 -0
  73. package/cdnjs/1.2.1/cloudbase.full.js +8 -0
  74. package/cdnjs/1.2.1/cloudbase.functions.js +1 -0
  75. package/cdnjs/1.2.1/cloudbase.js +1 -0
  76. package/cdnjs/1.2.1/cloudbase.storage.js +1 -0
  77. package/cdnjs/1.2.2/cloudbase.auth.js +1 -0
  78. package/cdnjs/1.2.2/cloudbase.database.js +8 -0
  79. package/cdnjs/1.2.2/cloudbase.full.js +8 -0
  80. package/cdnjs/1.2.2/cloudbase.functions.js +1 -0
  81. package/cdnjs/1.2.2/cloudbase.js +1 -0
  82. package/cdnjs/1.2.2/cloudbase.storage.js +1 -0
  83. package/cdnjs/1.2.3/cloudbase.auth.js +1 -0
  84. package/cdnjs/1.2.3/cloudbase.database.js +8 -0
  85. package/cdnjs/1.2.3/cloudbase.full.js +8 -0
  86. package/cdnjs/1.2.3/cloudbase.functions.js +1 -0
  87. package/cdnjs/1.2.3/cloudbase.js +1 -0
  88. package/cdnjs/1.2.3/cloudbase.storage.js +1 -0
  89. package/cdnjs/1.3.0/cloudbase.auth.js +1 -0
  90. package/cdnjs/1.3.0/cloudbase.database.js +8 -0
  91. package/cdnjs/1.3.0/cloudbase.full.js +8 -0
  92. package/cdnjs/1.3.0/cloudbase.functions.js +1 -0
  93. package/cdnjs/1.3.0/cloudbase.js +1 -0
  94. package/cdnjs/1.3.0/cloudbase.realtime.js +1 -0
  95. package/cdnjs/1.3.0/cloudbase.storage.js +1 -0
  96. package/cdnjs/1.3.1/cloudbase.auth.js +1 -0
  97. package/cdnjs/1.3.1/cloudbase.database.js +8 -0
  98. package/cdnjs/1.3.1/cloudbase.full.js +8 -0
  99. package/cdnjs/1.3.1/cloudbase.functions.js +1 -0
  100. package/cdnjs/1.3.1/cloudbase.js +1 -0
  101. package/cdnjs/1.3.1/cloudbase.realtime.js +1 -0
  102. package/cdnjs/1.3.1/cloudbase.storage.js +1 -0
  103. package/cdnjs/1.3.2/cloudbase.auth.js +1 -0
  104. package/cdnjs/1.3.2/cloudbase.database.js +8 -0
  105. package/cdnjs/1.3.2/cloudbase.full.js +8 -0
  106. package/cdnjs/1.3.2/cloudbase.functions.js +1 -0
  107. package/cdnjs/1.3.2/cloudbase.js +1 -0
  108. package/cdnjs/1.3.2/cloudbase.realtime.js +1 -0
  109. package/cdnjs/1.3.2/cloudbase.storage.js +1 -0
  110. package/cdnjs/1.3.3/cloudbase.auth.js +1 -0
  111. package/cdnjs/1.3.3/cloudbase.database.js +8 -0
  112. package/cdnjs/1.3.3/cloudbase.full.js +8 -0
  113. package/cdnjs/1.3.3/cloudbase.functions.js +1 -0
  114. package/cdnjs/1.3.3/cloudbase.js +1 -0
  115. package/cdnjs/1.3.3/cloudbase.realtime.js +1 -0
  116. package/cdnjs/1.3.3/cloudbase.storage.js +1 -0
  117. package/cdnjs/1.3.4-alpha.0/cloudbase.auth.js +1 -0
  118. package/cdnjs/1.3.4-alpha.0/cloudbase.database.js +8 -0
  119. package/cdnjs/1.3.4-alpha.0/cloudbase.full.js +8 -0
  120. package/cdnjs/1.3.4-alpha.0/cloudbase.functions.js +1 -0
  121. package/cdnjs/1.3.4-alpha.0/cloudbase.js +1 -0
  122. package/cdnjs/1.3.4-alpha.0/cloudbase.realtime.js +1 -0
  123. package/cdnjs/1.3.4-alpha.0/cloudbase.storage.js +1 -0
  124. package/cdnjs/1.3.5/cloudbase.analytics.js +1 -0
  125. package/cdnjs/1.3.5/cloudbase.auth.js +1 -0
  126. package/cdnjs/1.3.5/cloudbase.database.js +10 -0
  127. package/cdnjs/1.3.5/cloudbase.full.js +10 -0
  128. package/cdnjs/1.3.5/cloudbase.functions.js +1 -0
  129. package/cdnjs/1.3.5/cloudbase.js +1 -0
  130. package/cdnjs/1.3.5/cloudbase.realtime.js +1 -0
  131. package/cdnjs/1.3.5/cloudbase.storage.js +1 -0
  132. package/cdnjs/1.3.5-alpha.0/cloudbase.auth.js +1 -0
  133. package/cdnjs/1.3.5-alpha.0/cloudbase.database.js +10 -0
  134. package/cdnjs/1.3.5-alpha.0/cloudbase.full.js +10 -0
  135. package/cdnjs/1.3.5-alpha.0/cloudbase.functions.js +1 -0
  136. package/cdnjs/1.3.5-alpha.0/cloudbase.js +1 -0
  137. package/cdnjs/1.3.5-alpha.0/cloudbase.realtime.js +1 -0
  138. package/cdnjs/1.3.5-alpha.0/cloudbase.storage.js +1 -0
  139. package/cdnjs/1.4.0/cloudbase.analytics.js +1 -0
  140. package/cdnjs/1.4.0/cloudbase.auth.js +1 -0
  141. package/cdnjs/1.4.0/cloudbase.database.js +10 -0
  142. package/cdnjs/1.4.0/cloudbase.full.js +10 -0
  143. package/cdnjs/1.4.0/cloudbase.functions.js +1 -0
  144. package/cdnjs/1.4.0/cloudbase.js +1 -0
  145. package/cdnjs/1.4.0/cloudbase.realtime.js +1 -0
  146. package/cdnjs/1.4.0/cloudbase.storage.js +1 -0
  147. package/cdnjs/1.4.1/cloudbase.analytics.js +1 -0
  148. package/cdnjs/1.4.1/cloudbase.auth.js +1 -0
  149. package/cdnjs/1.4.1/cloudbase.database.js +10 -0
  150. package/cdnjs/1.4.1/cloudbase.full.js +10 -0
  151. package/cdnjs/1.4.1/cloudbase.functions.js +1 -0
  152. package/cdnjs/1.4.1/cloudbase.js +1 -0
  153. package/cdnjs/1.4.1/cloudbase.realtime.js +1 -0
  154. package/cdnjs/1.4.1/cloudbase.storage.js +1 -0
  155. package/cdnjs/1.4.1-alpha.0/cloudbase.analytics.js +1 -0
  156. package/cdnjs/1.4.1-alpha.0/cloudbase.auth.js +1 -0
  157. package/cdnjs/1.4.1-alpha.0/cloudbase.database.js +10 -0
  158. package/cdnjs/1.4.1-alpha.0/cloudbase.full.js +10 -0
  159. package/cdnjs/1.4.1-alpha.0/cloudbase.functions.js +1 -0
  160. package/cdnjs/1.4.1-alpha.0/cloudbase.js +1 -0
  161. package/cdnjs/1.4.1-alpha.0/cloudbase.realtime.js +1 -0
  162. package/cdnjs/1.4.1-alpha.0/cloudbase.storage.js +1 -0
  163. package/cdnjs/1.4.2-alpha.0/cloudbase.analytics.js +1 -0
  164. package/cdnjs/1.4.2-alpha.0/cloudbase.auth.js +1 -0
  165. package/cdnjs/1.4.2-alpha.0/cloudbase.database.js +10 -0
  166. package/cdnjs/1.4.2-alpha.0/cloudbase.full.js +10 -0
  167. package/cdnjs/1.4.2-alpha.0/cloudbase.functions.js +1 -0
  168. package/cdnjs/1.4.2-alpha.0/cloudbase.js +1 -0
  169. package/cdnjs/1.4.2-alpha.0/cloudbase.realtime.js +1 -0
  170. package/cdnjs/1.4.2-alpha.0/cloudbase.storage.js +1 -0
  171. package/cdnjs/1.5.0/cloudbase.analytics.js +1 -0
  172. package/cdnjs/1.5.0/cloudbase.auth.js +1 -0
  173. package/cdnjs/1.5.0/cloudbase.database.js +10 -0
  174. package/cdnjs/1.5.0/cloudbase.full.js +10 -0
  175. package/cdnjs/1.5.0/cloudbase.functions.js +1 -0
  176. package/cdnjs/1.5.0/cloudbase.js +1 -0
  177. package/cdnjs/1.5.0/cloudbase.realtime.js +1 -0
  178. package/cdnjs/1.5.0/cloudbase.storage.js +1 -0
  179. package/cdnjs/1.5.1/cloudbase.analytics.js +1 -0
  180. package/cdnjs/1.5.1/cloudbase.auth.js +1 -0
  181. package/cdnjs/1.5.1/cloudbase.database.js +26 -0
  182. package/cdnjs/1.5.1/cloudbase.full.js +26 -0
  183. package/cdnjs/1.5.1/cloudbase.functions.js +1 -0
  184. package/cdnjs/1.5.1/cloudbase.js +1 -0
  185. package/cdnjs/1.5.1/cloudbase.realtime.js +1 -0
  186. package/cdnjs/1.5.1/cloudbase.storage.js +1 -0
  187. package/cdnjs/1.5.1-alpha.0/cloudbase.analytics.js +1 -0
  188. package/cdnjs/1.5.1-alpha.0/cloudbase.auth.js +1 -0
  189. package/cdnjs/1.5.1-alpha.0/cloudbase.database.js +10 -0
  190. package/cdnjs/1.5.1-alpha.0/cloudbase.full.js +10 -0
  191. package/cdnjs/1.5.1-alpha.0/cloudbase.functions.js +1 -0
  192. package/cdnjs/1.5.1-alpha.0/cloudbase.js +1 -0
  193. package/cdnjs/1.5.1-alpha.0/cloudbase.realtime.js +1 -0
  194. package/cdnjs/1.5.1-alpha.0/cloudbase.storage.js +1 -0
  195. package/cdnjs/1.5.3-alpha.0/cloudbase.analytics.js +1 -0
  196. package/cdnjs/1.5.3-alpha.0/cloudbase.auth.js +1 -0
  197. package/cdnjs/1.5.3-alpha.0/cloudbase.database.js +26 -0
  198. package/cdnjs/1.5.3-alpha.0/cloudbase.full.js +26 -0
  199. package/cdnjs/1.5.3-alpha.0/cloudbase.functions.js +1 -0
  200. package/cdnjs/1.5.3-alpha.0/cloudbase.js +1 -0
  201. package/cdnjs/1.5.3-alpha.0/cloudbase.realtime.js +1 -0
  202. package/cdnjs/1.5.3-alpha.0/cloudbase.storage.js +1 -0
  203. package/cdnjs/1.6.0/cloudbase.analytics.js +1 -0
  204. package/cdnjs/1.6.0/cloudbase.auth.js +1 -0
  205. package/cdnjs/1.6.0/cloudbase.database.js +26 -0
  206. package/cdnjs/1.6.0/cloudbase.full.js +26 -0
  207. package/cdnjs/1.6.0/cloudbase.functions.js +1 -0
  208. package/cdnjs/1.6.0/cloudbase.js +1 -0
  209. package/cdnjs/1.6.0/cloudbase.realtime.js +1 -0
  210. package/cdnjs/1.6.0/cloudbase.storage.js +1 -0
  211. package/{CHANGELOG.md → changelog.md} +0 -0
  212. package/dist/README.md +153 -0
  213. package/{app → dist/app}/index.d.ts +1 -0
  214. package/{app → dist/app}/index.js +0 -0
  215. package/dist/app/index.js.map +1 -0
  216. package/{app → dist/app}/internal.d.ts +0 -0
  217. package/{app → dist/app}/internal.js +0 -0
  218. package/{app → dist/app}/internal.js.map +0 -0
  219. package/{app → dist/app}/openuri.d.ts +0 -0
  220. package/{app → dist/app}/openuri.js +2 -1
  221. package/{app → dist/app}/openuri.js.map +1 -1
  222. package/{app → dist/app}/request.d.ts +4 -3
  223. package/{app → dist/app}/request.js +20 -12
  224. package/dist/app/request.js.map +1 -0
  225. package/{app → dist/app}/storage.d.ts +0 -0
  226. package/{app → dist/app}/storage.js +0 -0
  227. package/{app → dist/app}/storage.js.map +0 -0
  228. package/{auth → dist/auth}/consts.d.ts +21 -4
  229. package/{auth → dist/auth}/consts.js +27 -5
  230. package/dist/auth/consts.js.map +1 -0
  231. package/{auth → dist/auth}/index.d.ts +83 -34
  232. package/{auth → dist/auth}/index.js +239 -92
  233. package/dist/auth/index.js.map +1 -0
  234. package/dist/auth/models.d.ts +284 -0
  235. package/{oauthclient → dist/auth}/models.js +1 -0
  236. package/dist/auth/models.js.map +1 -0
  237. package/{captcha → dist/captcha}/index.d.ts +0 -0
  238. package/{captcha → dist/captcha}/index.js +4 -2
  239. package/dist/captcha/index.js.map +1 -0
  240. package/dist/changelog.md +30 -0
  241. package/dist/function/index.d.ts +38 -0
  242. package/dist/function/index.js +80 -0
  243. package/dist/function/index.js.map +1 -0
  244. package/dist/index.d.ts +14 -0
  245. package/dist/index.js +24 -0
  246. package/dist/index.js.map +1 -0
  247. package/{oauthclient → dist/oauthclient}/consts.d.ts +0 -0
  248. package/{oauthclient → dist/oauthclient}/consts.js +0 -0
  249. package/{oauthclient → dist/oauthclient}/consts.js.map +0 -0
  250. package/{oauthclient → dist/oauthclient}/index.d.ts +0 -0
  251. package/{oauthclient → dist/oauthclient}/index.js +2 -2
  252. package/dist/oauthclient/index.js.map +1 -0
  253. package/{oauthclient → dist/oauthclient}/interface.d.ts +4 -0
  254. package/{oauthclient → dist/oauthclient}/interface.js +0 -0
  255. package/{oauthclient → dist/oauthclient}/interface.js.map +1 -1
  256. package/{oauthclient → dist/oauthclient}/models.d.ts +12 -11
  257. package/{auth → dist/oauthclient}/models.js +0 -0
  258. package/{oauthclient → dist/oauthclient}/models.js.map +0 -0
  259. package/{oauthclient → dist/oauthclient}/oauthclient.d.ts +11 -7
  260. package/{oauthclient → dist/oauthclient}/oauthclient.js +27 -12
  261. package/dist/oauthclient/oauthclient.js.map +1 -0
  262. package/dist/package.json +32 -0
  263. package/{utils/single-promise.d.ts → dist/utils/promise.d.ts} +3 -3
  264. package/{utils/single-promise.js → dist/utils/promise.js} +6 -6
  265. package/dist/utils/promise.js.map +1 -0
  266. package/{utils → dist/utils}/uuid.d.ts +0 -0
  267. package/{utils → dist/utils}/uuid.js +0 -0
  268. package/{utils → dist/utils}/uuid.js.map +0 -0
  269. package/docs/dev.md +71 -0
  270. package/docs/errlog.md +79 -0
  271. package/package.json +3 -2
  272. package/publish.sh +2 -0
  273. package/src/app/index.ts +83 -0
  274. package/src/app/internal.ts +26 -0
  275. package/src/app/openuri.ts +111 -0
  276. package/src/app/request.ts +66 -0
  277. package/src/app/storage.ts +58 -0
  278. package/src/auth/consts.ts +74 -0
  279. package/src/auth/index.ts +718 -0
  280. package/src/auth/models.ts +352 -0
  281. package/src/captcha/index.ts +170 -0
  282. package/src/function/index.ts +103 -0
  283. package/src/index.ts +32 -0
  284. package/src/oauthclient/consts.ts +48 -0
  285. package/src/oauthclient/index.ts +33 -0
  286. package/src/oauthclient/interface.ts +34 -0
  287. package/src/oauthclient/models.ts +50 -0
  288. package/src/oauthclient/oauthclient.ts +487 -0
  289. package/src/utils/promise.ts +41 -0
  290. package/src/utils/uuid.ts +11 -0
  291. package/test/e2e/cases/custom-login.test.js +122 -0
  292. package/test/e2e/cases/index.test.js +61 -0
  293. package/test/e2e/cases/login-state.test.js +89 -0
  294. package/test/e2e/environment.js +39 -0
  295. package/test/e2e/global_setup.js +33 -0
  296. package/test/e2e/global_teardown.js +15 -0
  297. package/test/e2e/setup.js +37 -0
  298. package/test/unit/index.test.js +89 -0
  299. package/test/web/cases/auth/index.js +256 -0
  300. package/test/web/cases/database/collection.js +173 -0
  301. package/test/web/cases/database/command.js +754 -0
  302. package/test/web/cases/database/date.js +122 -0
  303. package/test/web/cases/database/db.js +20 -0
  304. package/test/web/cases/database/document.js +160 -0
  305. package/test/web/cases/database/geo-advanced.js +327 -0
  306. package/test/web/cases/database/geo.js +105 -0
  307. package/test/web/cases/database/index.js +315 -0
  308. package/test/web/cases/database/order.js +83 -0
  309. package/test/web/cases/database/realtime.js +102 -0
  310. package/test/web/cases/database/regex.js +140 -0
  311. package/test/web/cases/ext/index.js +88 -0
  312. package/test/web/cases/function/index.js +77 -0
  313. package/test/web/cases/storage/cos.jpeg +0 -0
  314. package/test/web/cases/storage/index.js +207 -0
  315. package/test/web/index.html +63 -0
  316. package/test/web/index.js +109 -0
  317. package/test/web/util.js +80 -0
  318. package/tsconfig.json +35 -0
  319. package/wiki/README.md +75 -0
  320. package/app/index.js.map +0 -1
  321. package/app/request.js.map +0 -1
  322. package/auth/consts.js.map +0 -1
  323. package/auth/index.js.map +0 -1
  324. package/auth/models.d.ts +0 -158
  325. package/auth/models.js.map +0 -1
  326. package/captcha/index.js.map +0 -1
  327. package/index.d.ts +0 -8
  328. package/index.js +0 -17
  329. package/index.js.map +0 -1
  330. package/oauthclient/index.js.map +0 -1
  331. package/oauthclient/oauthclient.js.map +0 -1
  332. package/utils/single-promise.js.map +0 -1
@@ -0,0 +1,352 @@
1
+ export interface SignInRequest {
2
+ username?: string;
3
+ password?: string;
4
+ verification_token?: string;
5
+ two_factor_password?: string;
6
+ }
7
+
8
+ export interface SignInWithProviderRequest {
9
+ provider_token: string;
10
+ provider_id?: string;
11
+ }
12
+
13
+ export interface SignUpRequest {
14
+ phone_number?: string;
15
+ email?: string;
16
+
17
+ verification_token?: string;
18
+ provider_token?: string;
19
+
20
+ username?: string;
21
+ password?: string;
22
+ name?: string;
23
+ gender?: string;
24
+ picture?: string;
25
+ locale?: string;
26
+
27
+ anonymous_token?: string;
28
+ }
29
+
30
+ export interface SendVerificationCodeRequest {
31
+ phone_number?: string;
32
+ email?: string;
33
+ // 可选 ANY,USER,NOT_USER, CUR_USER;
34
+ target?: string | 'ANY';
35
+ usage?: string;
36
+ }
37
+
38
+ export interface SendVerificationCodeResponse {
39
+ verification_id: string;
40
+ is_user: boolean | false;
41
+ }
42
+
43
+ export interface VerifyResponse {
44
+ verification_token: string;
45
+ expires_in: number;
46
+ }
47
+
48
+ export interface VerifyRequest {
49
+ verification_code: string;
50
+ verification_id: string;
51
+ }
52
+
53
+
54
+ export interface VerifyRequest {
55
+ verification_code: string;
56
+ verification_id: string;
57
+ }
58
+
59
+
60
+ export interface ResetPasswordRequest {
61
+ email: string;
62
+ phone_number: string;
63
+ new_password: string,
64
+ verification_token: string;
65
+ }
66
+
67
+ export interface ProviderBindRequest {
68
+ provider_token: string;
69
+ expires_in: number;
70
+ }
71
+
72
+ export interface GrantProviderTokenRequest {
73
+ provider_id: string;
74
+ provider_redirect_uri?: string;
75
+ provider_code?: string;
76
+ provider_access_token?: string;
77
+ provider_id_token?: string;
78
+ }
79
+
80
+ export interface GrantProviderTokenResponse {
81
+ provider_token: string;
82
+ expires_in: number;
83
+ provider_profile?: ProviderProfile;
84
+ }
85
+
86
+ export interface PatchProviderTokenRequest {
87
+ provider_token: string;
88
+ provider_params: Map<string, string>;
89
+ }
90
+
91
+ export interface PatchProviderTokenResponse {
92
+ provider_token: string;
93
+ expires_in: number;
94
+ provider_profile: ProviderProfile;
95
+ }
96
+
97
+ export interface GenProviderRedirectUriRequest {
98
+ provider_id: string;
99
+ redirect_uri: string;
100
+ state: string;
101
+ scope?: string;
102
+ response_type?: string;
103
+ other_params?: Map<string, string>;
104
+ }
105
+
106
+ export interface GenProviderRedirectUriResponse {
107
+ uri: string;
108
+ signout_uri?: string;
109
+ }
110
+
111
+ export interface BindWithProviderRequest {
112
+ provider_token: string;
113
+ }
114
+
115
+ export interface BindWithProviderRequest {
116
+ provider_token: string;
117
+ }
118
+
119
+ export interface UserProfileProvider {
120
+ id: string;
121
+ provider_user_id: string;
122
+ name?: string;
123
+ }
124
+
125
+ export interface UserProfile {
126
+ name?: string;
127
+ picture?: string;
128
+ username?: string;
129
+ email?: string;
130
+ email_verified?: boolean;
131
+ phone_number?: string;
132
+ groups?: [ProfileGroup];
133
+ providers?: [UserProfileProvider];
134
+ gender?: string;
135
+ birthdate?: string;
136
+ zoneinfo?: string;
137
+ locale?: string;
138
+ created_from?: string;
139
+ }
140
+
141
+ export interface ProvidersResponse {
142
+ total: number;
143
+ data: [UserProvider];
144
+ }
145
+
146
+ export interface UserProvider {
147
+ id: string;
148
+ name: string;
149
+ provider_user_name?: string;
150
+ bind: boolean;
151
+ }
152
+
153
+ export interface ProfileGroup {
154
+ id: string;
155
+ expires_at?: string;
156
+ }
157
+
158
+
159
+ export interface ProviderProfile {
160
+ provider_id: string;
161
+ name?: string;
162
+ picture?: string;
163
+ phone_number?: string;
164
+ email?: string;
165
+ }
166
+
167
+ export interface TransByProviderRequest {
168
+ provider_token: string;
169
+ }
170
+
171
+ export interface GrantTokenRequest {
172
+ grant_type: string;
173
+ code?: string,
174
+ refresh_token?: string,
175
+ username?: string,
176
+ password?: string,
177
+ scope?: string,
178
+ nonce?: string,
179
+ code_verifier?: string,
180
+ device_code?: string
181
+ }
182
+
183
+ export interface UnbindProviderRequest {
184
+ provider_id: string;
185
+ }
186
+
187
+ export interface CheckPasswordRequest {
188
+ password: string;
189
+ }
190
+
191
+ export interface CheckIfUserExistRequest {
192
+ username: string;
193
+ }
194
+
195
+ export interface CheckIfUserExistResponse {
196
+ exist: boolean;
197
+ }
198
+
199
+
200
+ export interface EditContactRequest {
201
+ phone_number?: string;
202
+ email?: string;
203
+ sudo_token: string;
204
+ verification_token: string;
205
+ // 冲突解决方案
206
+ // 可选:DEFAULT, 默认解决方案:提示用户该手机号已被其他人绑定
207
+ // DELETE_ACCOUNT_TRANSFER,标记原来的账号为已注销,并将手机换绑给自己
208
+ // TRANSFER 仅换绑手机号,不注销原有账号。(原有账号无法登录情况下,则自动标记为注销)
209
+ conflict_resolution?: string;
210
+ }
211
+
212
+ export interface SetPasswordRequest {
213
+ sudo_token: string;
214
+ new_password: string;
215
+ }
216
+
217
+
218
+ export interface SetPasswordRequest {
219
+ new_password: string;
220
+ sudo_token: string;
221
+ }
222
+
223
+ export interface UpdatePasswordRequest {
224
+ old_password: string;
225
+ new_password: string;
226
+ }
227
+
228
+ // password 和 verification_token 而选一,如果绑定了手机号,则必须使用verification_token 进行sudo
229
+ export interface SudoRequest {
230
+ password?: string;
231
+ verification_token?: string
232
+ }
233
+
234
+ export interface SudoResponse {
235
+ sudo_token: string
236
+ }
237
+
238
+ export interface WithSudoRequest {
239
+ sudo_token: string
240
+ }
241
+
242
+ export interface ChangeBoundProviderRequest {
243
+ trans_token: string;
244
+ provider_id: string;
245
+ }
246
+
247
+ export interface ChangeBoundProviderResponse {
248
+ client_id: string;
249
+ }
250
+
251
+ export interface QueryUserProfileRequest {
252
+ id?: [string];
253
+ username?: string;
254
+ email?: string;
255
+ phone_number?: string;
256
+ }
257
+
258
+ export interface QueryUserProfileResponse {
259
+ total: number;
260
+ data?: [SimpleUserProfile];
261
+ }
262
+
263
+ export interface SimpleUserProfile {
264
+ sub: string;
265
+ name: string;
266
+ picture?: string;
267
+ gender?: string;
268
+ locale?: string;
269
+ email?: string;
270
+ phone_number?: string;
271
+ }
272
+
273
+ export interface AuthorizeRequest {
274
+ client_id: string,
275
+ response_type?: string,
276
+ redirect_uri?: string,
277
+ state?: string,
278
+ scope?: string,
279
+ code_challenge?: string,
280
+ code_challenge_method?: string,
281
+ sign_out_uri?: string
282
+ }
283
+
284
+ export interface AuthorizeResponse {
285
+ code?: string,
286
+ access_token?: string,
287
+ id_token?: string,
288
+ token_type?: string,
289
+ scope?: string,
290
+ state?: string,
291
+ expires_in?: number
292
+ }
293
+
294
+ export interface AuthorizeInfoRequest {
295
+ client_id: string,
296
+ response_type?: string,
297
+ redirect_uri?: string,
298
+ state?: string,
299
+ scope?: string,
300
+ sign_out_uri?: string,
301
+ locale?: string,
302
+ }
303
+
304
+ export interface AuthorizeInfoResponse {
305
+ client: Client;
306
+ scopes?: Scope[];
307
+ }
308
+
309
+ export interface Client {
310
+ id: string;
311
+ name: string;
312
+ description?: string;
313
+ picture?: string;
314
+ url?: string;
315
+ }
316
+
317
+ export interface Scope {
318
+ id: string;
319
+ name: string;
320
+ description?: string;
321
+ picture?: string;
322
+ url?: string;
323
+ children?: Scope[];
324
+ }
325
+
326
+ export interface RevokeDeviceRequest {
327
+ device_id: string;
328
+ }
329
+
330
+ export interface AuthorizeDeviceRequest {
331
+ client_id: string;
332
+ user_code: string;
333
+ scope?: string;
334
+ state?: string;
335
+ }
336
+
337
+ export interface DeviceAuthorizeRequest {
338
+ client_id?: string;
339
+ scope?: string;
340
+ }
341
+
342
+ ``
343
+
344
+ export interface DeviceAuthorizeResponse {
345
+ device_code: string;
346
+ user_code?: string;
347
+ expires_in: number;
348
+ interval: number;
349
+ verification_uri?: string;
350
+ verification_uri_complete?: string
351
+ }
352
+
@@ -0,0 +1,170 @@
1
+ import {App, RequestOptions, RequestFn, Storage, OpenURIWithCallback} from "../app";
2
+ import {_getComponent} from "../app/internal";
3
+
4
+ export interface CaptchaOptions {
5
+ request: RequestFn;
6
+ storage: Storage;
7
+ openURIWithCallback: OpenURIWithCallback;
8
+ }
9
+
10
+ export interface CaptchaInitOptions {
11
+ request?: RequestFn;
12
+ }
13
+
14
+ export function getCaptcha(app: App, opts?: CaptchaInitOptions): Captcha {
15
+ return _getComponent<Captcha>(app, "captcha", (): Captcha => {
16
+ const initOpts = {
17
+ request: app.options.request,
18
+ storage: app.options.storage,
19
+ openURIWithCallback: app.options.openURIWithCallback,
20
+ }
21
+ if (opts && opts.request) {
22
+ initOpts.request = opts.request
23
+ }
24
+ return new Captcha(initOpts)
25
+ });
26
+ }
27
+
28
+ export interface CaptchaToken {
29
+ captcha_token: string
30
+ expires_in: number
31
+ expires_at?: Date | null;
32
+ }
33
+
34
+ export interface CaptchaRequestOptions extends RequestOptions {
35
+ withCaptcha?: boolean;
36
+ }
37
+
38
+ export interface GetCaptchaResponse {
39
+ captcha_token?: string
40
+ expires_in?: number
41
+ url?: string
42
+ }
43
+
44
+ const GET_CAPTCHA_URL = '/auth/v1/captcha/init'
45
+
46
+ export class Captcha {
47
+ private _config: CaptchaOptions;
48
+ private _tokenSectionName: string;
49
+
50
+ /**
51
+ * constructor
52
+ * @param {CaptchaOptions} opts
53
+ */
54
+ constructor(opts: CaptchaOptions) {
55
+ this._config = opts
56
+ this._tokenSectionName = 'captcha_'
57
+ }
58
+
59
+ /**
60
+ * request http like simple fetch api, exp:request('/v1/user/me', {withCredentials:true})
61
+ * @param {string} url
62
+ * @param {AuthClientRequestOptions} options
63
+ */
64
+ public async request<T>(
65
+ url: string,
66
+ options?: CaptchaRequestOptions,
67
+ ): Promise<T> {
68
+ if (!options) {
69
+ options = {};
70
+ }
71
+ if (!options.method) {
72
+ options.method = 'GET'
73
+ }
74
+ const state = options.method + ":" + url
75
+ let reqURL = url;
76
+ if (options.withCaptcha) {
77
+ reqURL = await this._appendCaptchaTokenToURL(url, state, false);
78
+ }
79
+ let resp : T;
80
+ try {
81
+ resp = await this._config.request<T>(reqURL, options)
82
+ } catch (err) {
83
+ if (err.error === 'captcha_required' || err.error === 'captcha_invalid') {
84
+ url = await this._appendCaptchaTokenToURL(url, state, err.error === 'captcha_invalid')
85
+ return this._config.request<T>(url, options)
86
+ } else {
87
+ return Promise.reject(err)
88
+ }
89
+ }
90
+ return resp;
91
+ }
92
+
93
+ /**
94
+ * _getCaptchaToken get captcha token
95
+ */
96
+ private async _getCaptchaToken(forceNewToken: boolean, state: string): Promise<string> {
97
+ if (!forceNewToken) {
98
+ // if local has captcha token then return
99
+ const captchaToken = await this._findCaptchaToken()
100
+ if (captchaToken) {
101
+ return captchaToken
102
+ }
103
+ }
104
+ const redirectURL = window.location.origin + window.location.pathname
105
+ const captchaTokenResp = await this._config.request<GetCaptchaResponse>(GET_CAPTCHA_URL, {
106
+ method: 'POST',
107
+ body: {
108
+ redirect_uri: redirectURL,
109
+ state: state
110
+ },
111
+ withBasicAuth: true,
112
+ })
113
+ if (captchaTokenResp.captcha_token) {
114
+ const captchaToken = {
115
+ captcha_token: captchaTokenResp.captcha_token,
116
+ expires_in: captchaTokenResp.expires_in,
117
+ }
118
+ await this._saveCaptchaToken(captchaToken)
119
+ return captchaTokenResp.captcha_token
120
+ }
121
+ const callbackData = await this._config.openURIWithCallback(captchaTokenResp.url, {width:'355px', height: '355px'})
122
+ const captchaToken: CaptchaToken = {
123
+ captcha_token: callbackData.captcha_token,
124
+ expires_in: Number(callbackData.expires_in)
125
+ }
126
+ await this._saveCaptchaToken(captchaToken)
127
+ return captchaToken.captcha_token
128
+ }
129
+
130
+ private async _appendCaptchaTokenToURL(url: string, state: string, forceNewToken: boolean): Promise<string> {
131
+ const captchaToken = await this._getCaptchaToken(forceNewToken, state);
132
+ if (url.indexOf("?") > 0) {
133
+ url += "&captcha_token=" + captchaToken
134
+ } else {
135
+ url += "?captcha_token=" + captchaToken
136
+ }
137
+ return url
138
+ }
139
+
140
+ private async _saveCaptchaToken(token: CaptchaToken) {
141
+ token.expires_at = new Date(
142
+ Date.now() + (token.expires_in - 10) * 1000,
143
+ );
144
+ const tokenStr: string = JSON.stringify(token);
145
+ await this._config.storage.setItem(this._tokenSectionName, tokenStr);
146
+ }
147
+
148
+ private async _findCaptchaToken(): Promise<string> {
149
+ const tokenStr: string = await this._config.storage.getItem(
150
+ this._tokenSectionName,
151
+ );
152
+ if (tokenStr !== undefined && tokenStr !== null) {
153
+ try {
154
+ const captchaToken = JSON.parse(tokenStr);
155
+ if (captchaToken && captchaToken.expires_at) {
156
+ captchaToken.expires_at = new Date(captchaToken.expires_at);
157
+ }
158
+ const isExpired = captchaToken.expires_at < new Date();
159
+ if (isExpired) {
160
+ return null
161
+ }
162
+ return captchaToken.captcha_token
163
+ } catch (error) {
164
+ await this._config.storage.removeItem(this._tokenSectionName);
165
+ return null
166
+ }
167
+ }
168
+ return null
169
+ }
170
+ }
@@ -0,0 +1,103 @@
1
+ import {App} from "../app";
2
+ import {getOAuthClient, AuthClient, ErrorType} from "../oauthclient";
3
+ import {uuidv4} from "../utils/uuid";
4
+ import {_getComponent} from "../app/internal";
5
+
6
+ export interface FunctionOptions {
7
+ credentialsClient: AuthClient;
8
+ env: string
9
+ }
10
+
11
+ /**
12
+ * Returns the existing `Auth` instance that is associated with the app
13
+ */
14
+ export function getFunction(app: App): Function {
15
+ return _getComponent<Function>(app, "function", (): Function => {
16
+ const credentialsClient = getOAuthClient(app)
17
+ return new Function({
18
+ credentialsClient: credentialsClient,
19
+ env: app.options.clientId
20
+ })
21
+ });
22
+ }
23
+
24
+
25
+ export class Function {
26
+
27
+ private _config: FunctionOptions;
28
+
29
+ /**
30
+ * constructor
31
+ * @param {AuthOptions} opts
32
+ */
33
+ constructor(opts: FunctionOptions) {
34
+ this._config = {
35
+ credentialsClient: opts.credentialsClient,
36
+ env: opts.env,
37
+ }
38
+ }
39
+
40
+ /**
41
+ * callFunction call function
42
+ * @param {SignInRequest} params A SignInRequest Object.
43
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
44
+ */
45
+ public async callFunction(params: FunctionRequest): Promise<FunctionResponse> {
46
+ let accessToken: string
47
+ try {
48
+ accessToken = await this._config.credentialsClient.getAccessToken()
49
+ } catch (e) {
50
+ if (e.error === ErrorType.UNAUTHENTICATED) {
51
+ accessToken = ""
52
+ } else {
53
+ return Promise.reject(e)
54
+ }
55
+ }
56
+ const requestId = uuidv4()
57
+ var reqBody = {
58
+ "action": "functions.invokeFunction",
59
+ "dataVersion": "2020-01-10",
60
+ "env": this._config.env,
61
+ "function_name": params.name,
62
+ "request_data": JSON.stringify(params.data),
63
+ "seqId": requestId,
64
+ "access_token": accessToken
65
+ }
66
+ const url = "/web?env=" + this._config.env
67
+ const resp = await this._config.credentialsClient.request<functionHTTPResponse>(url, {
68
+ method: 'POST',
69
+ body: reqBody,
70
+ headers: {
71
+ 'content-type': 'application/json'
72
+ }
73
+ })
74
+ if (resp.code) {
75
+ return Promise.reject({
76
+ error: resp.code,
77
+ error_description: resp.message
78
+ })
79
+ }
80
+ return {
81
+ requestId: resp.requestId,
82
+ result: resp.data.response_data,
83
+ }
84
+ }
85
+ }
86
+
87
+
88
+ export interface FunctionRequest {
89
+ name: string;
90
+ data: any;
91
+ }
92
+
93
+ export interface FunctionResponse {
94
+ requestId: string;
95
+ result: any;
96
+ }
97
+
98
+ export interface functionHTTPResponse {
99
+ requestId: string;
100
+ data: any
101
+ code: string
102
+ message: string
103
+ }
package/src/index.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { Auth, getAuth } from "./auth";
2
+ import { App, initializeApp, Options } from "./app";
3
+
4
+ export function initializeClient(options: Options): Client {
5
+ return new Client(options);
6
+ }
7
+
8
+ export class Client {
9
+ public auth: Auth;
10
+ public app: App;
11
+
12
+ constructor(initOptions: Options) {
13
+ this.app = initializeApp(initOptions);
14
+ this.auth = getAuth(this.app);
15
+ }
16
+ }
17
+
18
+ export {
19
+ RequestOptions,
20
+ ResponseError,
21
+ ErrorType,
22
+ RequestFn,
23
+ } from "./app/request";
24
+ export { Storage } from "./app/storage";
25
+ export { initializeApp, Options } from "./app";
26
+ export { Auth, getAuth } from "./auth";
27
+ export {
28
+ UserProfile,
29
+ PatchProviderTokenResponse,
30
+ GrantProviderTokenResponse,
31
+ } from "./auth/models";
32
+ export { Credentials } from "./oauthclient/models";
@@ -0,0 +1,48 @@
1
+ export enum Syntax {
2
+ CLIENT_ID = 'client_id',
3
+ CLIENT_SECRET = 'client_secret',
4
+ RESPONSE_TYPE = 'response_type',
5
+ SCOPE = 'scope',
6
+ STATE = 'state',
7
+ REDIRECT_URI = 'redirect_uri',
8
+ ERROR = 'error',
9
+ ERROR_DESCRIPTION = 'error_description',
10
+ ERROR_URI = 'error_uri',
11
+ GRANT_TYPE = 'grant_type',
12
+ CODE = 'code',
13
+ ACCESS_TOKEN = 'access_token',
14
+ TOKEN_TYPE = 'token_type',
15
+ EXPIRES_IN = 'expires_in',
16
+ USERNAME = 'username',
17
+ PASSWORD = 'password',
18
+ REFRESH_TOKEN = 'refresh_token',
19
+ }
20
+
21
+ export enum ErrorType {
22
+ UNREACHABLE = 'unreachable',
23
+ LOCAL = 'local',
24
+ CANCELLED = 'cancelled',
25
+ UNKNOWN = 'unknown',
26
+ INVALID_ARGUMENT = 'invalid_argument',
27
+ DEADLINE_EXCEEDED = 'deadline_exceeded',
28
+ NOT_FOUND = 'not_found',
29
+ ALREADY_EXISTS = 'already_exists',
30
+ PERMISSION_DENIED = 'permission_denied',
31
+ UNAUTHENTICATED = 'unauthenticated',
32
+ RESOURCE_EXHAUSTED = 'resource_exhausted',
33
+ FAILED_PRECONDITION = 'failed_precondition',
34
+ ABORTED = 'aborted',
35
+ OUT_OF_RANGE = 'out_of_range',
36
+ UNIMPLEMENTED = 'unimplemented',
37
+ INTERNAL = 'internal',
38
+ UNAVAILABLE = 'unavailable',
39
+ DATA_LOSS = 'data_loss',
40
+ // CommonError
41
+ ACCESS_DENIED = 'access_denied',
42
+ UNSUPPORTED_RESPONSE_TYPE = 'unsupported_response_type',
43
+ INVALID_SCOPE = 'invalid_scope',
44
+ INVALID_GRANT = 'invalid_grant',
45
+ SERVER_ERROR = 'server_error',
46
+ TEMPORARILY_UNAVAILABLE = 'temporarily_unavailable',
47
+ INTERACTION_REQUIRED = 'interaction_required',
48
+ }