@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
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OAuth2Client = exports.LocalCredentials = exports.generateRequestId = exports.toResponseError = void 0;
4
4
  const consts_1 = require("./consts");
5
5
  const uuid_1 = require("../utils/uuid");
6
- const single_promise_1 = require("../utils/single-promise");
6
+ const promise_1 = require("../utils/promise");
7
7
  const RequestIdHeaderName = 'x-request-id';
8
8
  const DeviceIdHeaderName = 'x-device-id';
9
9
  const DeviceIdSectionName = 'device_';
10
- exports.toResponseError = (error, options) => {
10
+ const toResponseError = (error, options) => {
11
11
  let responseError;
12
12
  const formatOptions = options || {};
13
13
  if (error instanceof Error) {
@@ -29,12 +29,13 @@ exports.toResponseError = (error, options) => {
29
29
  }
30
30
  return responseError;
31
31
  };
32
+ exports.toResponseError = toResponseError;
32
33
  /**
33
34
  * Generate request id.
34
35
  * @return {string}
35
36
  */
36
37
  function generateRequestId() {
37
- return uuid_1.uuidv4();
38
+ return (0, uuid_1.uuidv4)();
38
39
  }
39
40
  exports.generateRequestId = generateRequestId;
40
41
  /**
@@ -61,7 +62,7 @@ class LocalCredentials {
61
62
  */
62
63
  constructor(options) {
63
64
  this._credentials = null;
64
- this._singlePromise = new single_promise_1.SinglePromise();
65
+ this._promiseOnce = new promise_1.PromiseOnce();
65
66
  this._tokenSectionName = options.tokenSectionName;
66
67
  this._storage = options.storage;
67
68
  }
@@ -87,10 +88,10 @@ class LocalCredentials {
87
88
  }
88
89
  /**
89
90
  * Get credentials.
90
- * @return {Promise<Credentials | null>}
91
+ * @return {Promise<Credentials>}
91
92
  */
92
93
  async getCredentials() {
93
- return this._singlePromise.run('getCredentials', async () => {
94
+ return this._promiseOnce.run('getCredentials', async () => {
94
95
  if (isCredentialsExpired(this._credentials)) {
95
96
  this._credentials = await this._getStorageCredentials();
96
97
  }
@@ -101,7 +102,7 @@ class LocalCredentials {
101
102
  * Get storage credentials.
102
103
  */
103
104
  async _getStorageCredentials() {
104
- return this._singlePromise.run('_getStorageCredentials', async () => {
105
+ return this._promiseOnce.run('_getStorageCredentials', async () => {
105
106
  let credentials = null;
106
107
  const tokenStr = await this._storage.getItem(this._tokenSectionName);
107
108
  if (tokenStr !== undefined && tokenStr !== null) {
@@ -130,7 +131,7 @@ class OAuth2Client {
130
131
  * @param {OAuth2ClientOptions} options
131
132
  */
132
133
  constructor(options) {
133
- this._singlePromise = new single_promise_1.SinglePromise();
134
+ this._promiseOnce = new promise_1.PromiseOnce();
134
135
  this._retry = this._formatRetry(options.retry, OAuth2Client._defaultRetry);
135
136
  this._baseRequest = options.request;
136
137
  if (!options.clientSecret) {
@@ -168,6 +169,16 @@ class OAuth2Client {
168
169
  }
169
170
  return Promise.reject({ error: consts_1.ErrorType.UNAUTHENTICATED });
170
171
  }
172
+ /**
173
+ * getScope return a validate access token
174
+ */
175
+ async getScope() {
176
+ let credentials = await this._localCredentials.getCredentials();
177
+ if (credentials == null) {
178
+ return this._unAuthenticatedError("credentials not found");
179
+ }
180
+ return credentials.scope;
181
+ }
171
182
  /**
172
183
  * request http like simple fetch api, exp:request('/v1/user/me', {withCredentials:true})
173
184
  * @param {string} url
@@ -210,7 +221,7 @@ class OAuth2Client {
210
221
  }
211
222
  }
212
223
  }
213
- let response = null;
224
+ let response;
214
225
  const maxRequestTimes = retry + 1;
215
226
  for (let requestTime = 0; requestTime < maxRequestTimes; requestTime++) {
216
227
  try {
@@ -218,6 +229,10 @@ class OAuth2Client {
218
229
  break;
219
230
  }
220
231
  catch (responseError) {
232
+ if (options.withCredentials && responseError && responseError.error === consts_1.ErrorType.UNAUTHENTICATED) {
233
+ await this.setCredentials(null);
234
+ return Promise.reject(responseError);
235
+ }
221
236
  if (requestTime === retry ||
222
237
  !responseError ||
223
238
  responseError.error !== 'unreachable') {
@@ -280,7 +295,7 @@ class OAuth2Client {
280
295
  * @return {Promise<Credentials>}
281
296
  */
282
297
  async _refreshToken(credentials) {
283
- return this._singlePromise.run('_refreshToken', async () => {
298
+ return this._promiseOnce.run('_refreshToken', async () => {
284
299
  if (!credentials || !credentials.refresh_token) {
285
300
  return this._unAuthenticatedError('no refresh token found in credentials');
286
301
  }
@@ -304,7 +319,7 @@ class OAuth2Client {
304
319
  * @return {Promise<Credentials>}
305
320
  */
306
321
  async _anonymousSignIn(credentials) {
307
- return this._singlePromise.run('_anonymous', async () => {
322
+ return this._promiseOnce.run('_anonymous', async () => {
308
323
  if (!credentials || credentials.scope !== 'anonymous') {
309
324
  return this._unAuthenticatedError('no anonymous in credentials');
310
325
  }
@@ -373,7 +388,7 @@ class OAuth2Client {
373
388
  if (!(typeof deviceId === 'string' &&
374
389
  deviceId.length >= 16 &&
375
390
  deviceId.length <= 48)) {
376
- deviceId = uuid_1.uuidv4();
391
+ deviceId = (0, uuid_1.uuidv4)();
377
392
  await this._storage.setItem(DeviceIdSectionName, deviceId);
378
393
  }
379
394
  this._deviceID = deviceId;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthclient.js","sourceRoot":"","sources":["../../src/oauthclient/oauthclient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@cloudbase/oauth",
3
+ "version": "0.1.1-alpha.1",
4
+ "description": "auth apis for cloudbase",
5
+ "author": "xbase",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "typesVersions": {
9
+ ">=4.1": {
10
+ "*": [
11
+ "ts4.1/*"
12
+ ]
13
+ }
14
+ },
15
+ "license": "MIT",
16
+ "scripts": {
17
+ "eslint": "eslint \"{src,__tests__}/**/*.ts\"",
18
+ "eslint:fix": "eslint --fix \"{src,__tests__}/**/*.ts\"",
19
+ "clean": "rm -rf dist",
20
+ "compile": "tsc",
21
+ "build": "yarn clean && yarn compile && cp package.json dist/ && cp *.md dist/"
22
+ },
23
+ "engines": {
24
+ "node": "^12.14.1 || >=14.0.0"
25
+ },
26
+ "devDependencies": {
27
+ "@typescript-eslint/eslint-plugin": "^4.30.0",
28
+ "@typescript-eslint/parser": "^4.30.0",
29
+ "eslint": "^7.32.0",
30
+ "typescript": "^4.6.3"
31
+ }
32
+ }
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Single Promise
2
+ * Promise Once
3
3
  */
4
- export declare class SinglePromise {
4
+ export declare class PromiseOnce {
5
5
  /**
6
- * Run single promise.
6
+ * Run Once promise.
7
7
  * @param {string} key
8
8
  * @param {Function} fn
9
9
  * @return {Promise<T>}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SinglePromise = void 0;
3
+ exports.PromiseOnce = void 0;
4
4
  /**
5
- * Single Promise
5
+ * Promise Once
6
6
  */
7
- class SinglePromise {
7
+ class PromiseOnce {
8
8
  constructor() {
9
9
  this._fnPromiseMap = new Map();
10
10
  }
11
11
  /**
12
- * Run single promise.
12
+ * Run Once promise.
13
13
  * @param {string} key
14
14
  * @param {Function} fn
15
15
  * @return {Promise<T>}
@@ -44,5 +44,5 @@ class SinglePromise {
44
44
  return Promise.resolve();
45
45
  }
46
46
  }
47
- exports.SinglePromise = SinglePromise;
48
- //# sourceMappingURL=single-promise.js.map
47
+ exports.PromiseOnce = PromiseOnce;
48
+ //# sourceMappingURL=promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/utils/promise.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,WAAW;IAAxB;QAoCY,kBAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IACjE,CAAC;IApCG;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,EAAoB;QAC1C,IAAI,MAAM,GAAiB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,IAAI,OAAO,CAAM,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBAChD,IAAI;oBACA,6DAA6D;oBAC7D,wCAAwC;oBACxC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAe,EAAE,EAAE,CAAC;oBAClC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;iBAC3B;gBAAC,OAAO,KAAK,EAAE;oBACZ,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjB;wBAAS;oBACN,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAClC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,eAAe;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CAGJ;AArCD,kCAqCC"}
File without changes
File without changes
File without changes
package/docs/dev.md ADDED
@@ -0,0 +1,71 @@
1
+ ## 开发指南
2
+
3
+ 此项目是由[Lerna](https://github.com/lerna/lerna)管理的 [monorepos](https://github.com/babel/babel/blob/master/doc/design/monorepo.md),需要在开发之前安装Lerna:
4
+ ```bash
5
+ npm install --global lerna
6
+ ```
7
+
8
+ ### 安装依赖
9
+ clone项目到本地后首先执行以下命令:
10
+ ```bash
11
+ lerna bootstrap
12
+ ```
13
+
14
+ ### 构建
15
+ 在根目录下运行:
16
+ ```bash
17
+ npm run build
18
+ ```
19
+
20
+ ### 测试
21
+ #### E2E测试
22
+ ```bash
23
+ npm run test:e2e
24
+ ```
25
+
26
+ #### Web端仿真测试
27
+ ##### 准备工作
28
+ 项目根目录下创建文件`test.config.js`,配置测试所需的信息,如下:
29
+ ```js
30
+ /**
31
+ * 测试配置
32
+ */
33
+ module.exports = {
34
+ // 环境id
35
+ env: '',
36
+ // 微信公众号appid,仅当需要测试微信登录时配置
37
+ appid: '',
38
+ // 获取自定义登录ticket的函数http访问地址,仅当需要测试自定义登录时配置
39
+ authFnUrl: '',
40
+ // 用户名密码登录-用户名,仅当需要测试用户名登录时配置
41
+ authUsername: '',
42
+ // 用户名密码登录-密码,仅当需要测试用户名登录时配置
43
+ authPassword: ''
44
+ }
45
+ ```
46
+
47
+ **请注意**,`auth`相关的测试case同时只能开启一种登录类型,请修改`test/web/index.js`文件的`init()`函数中的登录类型。
48
+
49
+ ##### 启动dev server
50
+ Web仿真测试会在本机的80端口开启一个server,需要 sudo 权限:
51
+ ```bash
52
+ sudo npm run test:web
53
+ ```
54
+
55
+ ##### 启动测试
56
+ 浏览器或微信开发者工具(公众号网页开发模式)打开链接`jimmytest-088bef.tcb.qcloud.la`即可开启仿真测试页面,测试结果在控制台打印。
57
+
58
+ ### 发布
59
+ #### 发布beta版本
60
+ ```bash
61
+ npm run publish:beta
62
+ ```
63
+ #### 发布正式版本
64
+ ```bash
65
+ npm run publish
66
+ ```
67
+
68
+ 发布过程中需要为每个包选择版本号。
69
+
70
+ #### 添加新包
71
+ 项目下新增包时,需要lerna add 新包名 --scope=@cloudbase/js-sdk
package/docs/errlog.md ADDED
@@ -0,0 +1,79 @@
1
+ ## 更友好的错误提示
2
+
3
+ @cloudbase/js-sdk在开发环境下会将调用 API 的错误信息以更友好的方式打印到控制台,如下图所示:
4
+ ![](https://main.qcloudimg.com/raw/5e8d21f2784f03501a27eba39ceb27a8.png)
5
+
6
+ 图中打印的错误是当前的登录类型受到函数的安全规则限制,导致没有调用函数的权限。错误信息分为两部分:
7
+ 1. 上半部分的黑色字体提示包含了后端 API 返回的错误信息以及基于此报错的一些解决方案提示;
8
+ 2. 下半部分的红色字体是经优化后的错误堆栈,由于原始错误堆栈层次太深导致debug非常困难,所以此处打印的错误堆栈的第一条直接定位到 SDK 源码,第二条定位到调用报错 API 的业务源码。
9
+
10
+ ### 使用方式
11
+ 优化的错误提示仅在开发环境中使用,根据`process.env.NODE_ENV`判断是否为开发环境。此外,定位到 SDK 源码需要借助sourcemap。
12
+
13
+ 以上两点依赖构建工具的部分特性,目前仅支持 Webpack 和 Rollup。
14
+
15
+ #### Webpack
16
+ 在 Webpack 4+ 版本中可以配置`mode`选项为`development`,如下:
17
+ ```js
18
+ module.exports = {
19
+ mode: 'development'
20
+ }
21
+ ```
22
+
23
+ 如果是旧版本的 Webpack 需要使用[DefinePlugin](https://webpack.js.org/plugins/define-plugin/):
24
+ ```js
25
+ const webpack = require('webpack')
26
+
27
+ module.exports = {
28
+ plugins: [
29
+ new webpack.DefinePlugin({
30
+ 'process.env.NODE_ENV': JSON.stringify('development')
31
+ })
32
+ // ...其他插件
33
+ ]
34
+ // ...其他配置
35
+ }
36
+ ```
37
+
38
+ 然后为js的编译选项加入sourcemap预处理,这里需要使用[source-map-loader](https://github.com/webpack-contrib/source-map-loader):
39
+ ```js
40
+ module.exports = {
41
+ module: {
42
+ rules: [
43
+ {
44
+ test: /\.js$/,
45
+ enforce: 'pre',
46
+ use: ['source-map-loader']
47
+ }
48
+ // ...其他rules
49
+ ]
50
+ }
51
+ // ...其他配置
52
+ }
53
+ ```
54
+
55
+ 配置完成后启动webpack-dev-server即可。
56
+
57
+ #### Rollup
58
+ Rollup需要使用两个插件:
59
+ - [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace)用来注入`process.env.NODE_ENV`
60
+ - [rollup-plugin-sourcemaps](https://github.com/maxdavidson/rollup-plugin-sourcemaps)用来加载sourcemap
61
+
62
+ 配置如下:
63
+ ```js
64
+ import sourcemaps from 'rollup-plugin-sourcemaps';
65
+ import replace from 'rollup-plugin-replace';
66
+ export default {
67
+ plugins: [
68
+ sourcemaps(),
69
+ replace({
70
+ 'process.env.NODE_ENV': JSON.stringify('development')
71
+ })
72
+ // ...其他插件
73
+ ]
74
+ // ...其他配置
75
+ };
76
+ ```
77
+
78
+ 配置完成使用[rollup-plugin-serve](https://github.com/thgh/rollup-plugin-serve)启动dev server即可。
79
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/oauth",
3
- "version": "0.1.1-alpha",
3
+ "version": "0.1.1-alpha.2",
4
4
  "description": "auth apis for cloudbase",
5
5
  "author": "xbase",
6
6
  "main": "./dist/index.js",
@@ -26,6 +26,7 @@
26
26
  "devDependencies": {
27
27
  "@typescript-eslint/eslint-plugin": "^4.30.0",
28
28
  "@typescript-eslint/parser": "^4.30.0",
29
- "eslint": "^7.32.0"
29
+ "eslint": "^7.32.0",
30
+ "typescript": "^4.6.3"
30
31
  }
31
32
  }
package/publish.sh ADDED
@@ -0,0 +1,2 @@
1
+ yarn build
2
+ cd dist && npm publish --access public
@@ -0,0 +1,83 @@
1
+ import {defaultRequest, RequestFn as requestFn, RequestOptions as requestOptions} from "./request";
2
+ import {OpenURIWithCallback as openURIWithCallback, defaultOpenURIWithCallback} from "./openuri";
3
+ import {DefaultStorage, Storage as storage} from "./storage";
4
+
5
+ export interface Options {
6
+ env: string,
7
+ region?: string,
8
+ apiOrigin?: string;
9
+ clientId?: string;
10
+ clientSecret?: string;
11
+ custom?: any;
12
+
13
+ // plugins can set platform functions
14
+ request?: requestFn;
15
+ storage?: storage;
16
+ openURIWithCallback?: openURIWithCallback;
17
+ }
18
+
19
+ export function initializeApp(
20
+ options: Options,
21
+ ): App {
22
+ return new AppImpl(options);
23
+ }
24
+
25
+ export interface App {
26
+ readonly options: Options;
27
+ }
28
+
29
+ export class AppImpl implements App {
30
+ private readonly _options: Options;
31
+ private readonly _container = new Map<string, any>();
32
+
33
+ constructor(options: Options) {
34
+ if (!options.region) {
35
+ options.region = 'ap-shanghai'
36
+ }
37
+ if (!options.apiOrigin) {
38
+ options.apiOrigin = `https://${options.env}.${options.region}.tcb-api.tencentcloudapi.com`
39
+ }
40
+ let storageEnv = options.env
41
+ if (!options.clientId) {
42
+ options.clientId = ''
43
+ } else {
44
+ storageEnv = options.clientId
45
+ }
46
+ if (!options.storage) {
47
+ options.storage = new DefaultStorage({env: storageEnv});
48
+ }
49
+ if (!options.openURIWithCallback) {
50
+ options.openURIWithCallback = defaultOpenURIWithCallback;
51
+ }
52
+ let baseRequest = options.request
53
+ if (!baseRequest) {
54
+ baseRequest = defaultRequest
55
+ }
56
+ const apiOrigin = options.apiOrigin
57
+ options.request = async <T>(
58
+ url: string,
59
+ options?: RequestOptions,
60
+ ): Promise<T> => {
61
+ if (url.startsWith('/')) {
62
+ url = apiOrigin + url;
63
+ }
64
+ return baseRequest<T>(url, options)
65
+ }
66
+ this._options = options;
67
+ }
68
+
69
+ get options(): Options {
70
+ return this._options;
71
+ }
72
+
73
+ get container(): Map<string, any> {
74
+ return this._container;
75
+ }
76
+ }
77
+
78
+
79
+ export type RequestFn = requestFn
80
+ export type RequestOptions = requestOptions
81
+ export type OpenURIWithCallback = openURIWithCallback
82
+ export type Storage = storage
83
+
@@ -0,0 +1,26 @@
1
+ import {App, AppImpl} from "./index";
2
+
3
+ /**
4
+ *
5
+ * @param app - App instance
6
+ * @param name - service name
7
+ * @param creator - new T
8
+ *
9
+ * @returns the provider for the service with the matching name
10
+ *
11
+ * @internal
12
+ */
13
+ export function _getComponent<T>(
14
+ app: App,
15
+ name: string,
16
+ creator: () => T
17
+ ): T {
18
+ const container = (app as AppImpl).container
19
+ let component = container.get(name)
20
+ if (component) {
21
+ return component as T
22
+ }
23
+ component = creator()
24
+ container.set(name, component)
25
+ return component
26
+ }
@@ -0,0 +1,111 @@
1
+ export type OpenURIWithCallback = (url: string, opts?: OpenURIOptions) => Promise<{ [key: string]: string }>;
2
+
3
+ export interface OpenURIOptions {
4
+ width: string;
5
+ height: string;
6
+ }
7
+
8
+ /**
9
+ * default use iframe to open url can return callback
10
+ * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/
11
+ * the it is done, it will callback http://127.0.0.1:8080/?data1=x&data2=3
12
+ *
13
+ * for example : open https://example.com/callback?rediret_uri=http://127.0.0.1:8080/?__iframe==on
14
+ * window.addEventListener('message', function(e) {
15
+ console.log(e)
16
+ alert('data from domain2 ---> ' + e.data);
17
+ }, false);
18
+ *
19
+ */
20
+ export const defaultOpenURIWithCallback: OpenURIWithCallback = (url: string, opts?: OpenURIOptions): Promise<{ [key: string]: string }> => {
21
+ let iframeTag = '__iframe';
22
+ if (window.location.search.indexOf(iframeTag) > 0) {
23
+ document.body.style.display = 'none';
24
+ }
25
+ if (!opts) {
26
+ opts = {
27
+ width: '355px',
28
+ height: '355px'
29
+ }
30
+ }
31
+ if (document.getElementById('_iframe_panel_wrap') === null) {
32
+ var elementDiv = document.createElement('div');
33
+ elementDiv.style.cssText =
34
+ 'background-color: rgba(0, 0, 0, 0.7);position: fixed;left: 0px;right: 0px;top: 0px;bottom: 0px;padding: 9vw 0 0 0;display: none;z-index:100;';
35
+ elementDiv.setAttribute('id', '_iframe_panel_wrap');
36
+ document.body.appendChild(elementDiv);
37
+ }
38
+ const target = document.getElementById('_iframe_panel_wrap'),
39
+ iframe = document.createElement('iframe')
40
+ target.innerHTML = '';
41
+ const openURL = new URL(url);
42
+ const redirectUri = openURL.searchParams.get('redirect_uri')
43
+ if (redirectUri) {
44
+ const redirectUrl = new URL(redirectUri);
45
+ redirectUrl.searchParams.append(iframeTag, "on")
46
+ openURL.searchParams.set('redirect_uri', redirectUrl.href)
47
+ url = openURL.href
48
+ }
49
+ iframe.setAttribute('src', url)
50
+ iframe.setAttribute('id', '_iframe_panel_wrap_iframe')
51
+ iframe.style.cssText = `min-width:${opts.width};display:block;height:${opts.height};margin:0 auto;background-color: rgb(255, 255, 255);border: none;`;
52
+ target.appendChild(iframe);
53
+ target.style.display = 'block';
54
+
55
+ let callBack = new Callback()
56
+ // handle callback from iframe post message
57
+ window.addEventListener('message', e => {
58
+ if (e.origin == openURL.origin && callBack.callFunc) {
59
+ target.style.display = 'none';
60
+ const data = JSON.parse(e.data);
61
+ try {
62
+ callBack.callFunc(data)
63
+ } catch (e) {
64
+ }
65
+ }
66
+ }, false);
67
+ return new Promise<{ [key: string]: string }>((resolve, reject) => {
68
+ callBack.callFunc = data => {
69
+ if (data.error) {
70
+ return reject(data)
71
+ }
72
+ return resolve(data)
73
+ }
74
+ // handle callback from iframe redirect uri
75
+ iframe.onload = () => {
76
+ try {
77
+ var windowLocation = window.location;
78
+ var iframeLocation = iframe.contentWindow.location;
79
+ if (
80
+ iframeLocation.host +
81
+ iframeLocation.pathname ===
82
+ windowLocation.host +
83
+ windowLocation.pathname
84
+ ) {
85
+ target.style.display = 'none';
86
+ const iframeUrlParams = new URLSearchParams(iframeLocation.search);
87
+ const data: { [key: string]: string } = {};
88
+ iframeUrlParams.forEach((v, k) => {
89
+ data[k] = v;
90
+ })
91
+ if (data.error) {
92
+ return reject({
93
+ error: iframeUrlParams.get('error'),
94
+ error_description: iframeUrlParams.get('error_description')
95
+ })
96
+ }
97
+ return resolve(data)
98
+ } else {
99
+ target.style.display = 'block';
100
+ }
101
+ } catch (error) {
102
+ target.style.display = 'block';
103
+ }
104
+ };
105
+ })
106
+ }
107
+
108
+
109
+ class Callback {
110
+ public callFunc: (data?: { [key: string]: string }) => void;
111
+ }