@cloudbase/js-sdk 3.3.14-beta.3 → 3.3.14-beta.5

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 (707) hide show
  1. package/ai/src/index.d.ts +1 -0
  2. package/ai/src/index.ts +1 -0
  3. package/analytics/src/index.d.ts +2 -0
  4. package/analytics/src/index.ts +4 -0
  5. package/apis/src/index.d.ts +1 -0
  6. package/apis/src/index.ts +1 -0
  7. package/app/src/index.d.ts +9 -0
  8. package/app/src/index.ts +17 -0
  9. package/auth/src/index.d.ts +2 -0
  10. package/auth/src/index.ts +8 -0
  11. package/cloudrun/src/index.d.ts +1 -0
  12. package/cloudrun/src/index.ts +1 -0
  13. package/container/src/index.d.ts +2 -0
  14. package/container/src/index.ts +8 -0
  15. package/database/src/index.d.ts +3 -0
  16. package/database/src/index.ts +486 -0
  17. package/dist/index.cjs.js +1 -1
  18. package/dist/index.esm.js +1 -1
  19. package/functions/src/index.d.ts +2 -0
  20. package/functions/src/index.ts +8 -0
  21. package/miniprogram_dist/index.js +1 -1
  22. package/model/src/index.d.ts +1 -0
  23. package/model/src/index.ts +1 -0
  24. package/mysql/src/index.d.ts +1 -0
  25. package/mysql/src/index.ts +1 -0
  26. package/node_modules/@cloudbase/ai/.eslintrc.js +15 -0
  27. package/node_modules/@cloudbase/ai/dist/cjs/AI.d.ts +27 -0
  28. package/node_modules/@cloudbase/ai/dist/cjs/AI.js +224 -0
  29. package/node_modules/@cloudbase/ai/dist/cjs/bot/index.d.ts +41 -0
  30. package/node_modules/@cloudbase/ai/dist/cjs/bot/index.js +376 -0
  31. package/node_modules/@cloudbase/ai/dist/cjs/bot/types.d.ts +144 -0
  32. package/node_modules/@cloudbase/ai/dist/cjs/bot/types.js +3 -0
  33. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/index.d.ts +2 -0
  34. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/index.js +6 -0
  35. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/parse.d.ts +2 -0
  36. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/parse.js +126 -0
  37. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/stream.d.ts +5 -0
  38. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/stream.js +40 -0
  39. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/types.d.ts +16 -0
  40. package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/types.js +3 -0
  41. package/node_modules/@cloudbase/ai/dist/cjs/index.d.ts +40 -0
  42. package/node_modules/@cloudbase/ai/dist/cjs/index.js +187 -0
  43. package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/index.d.ts +10 -0
  44. package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/index.js +130 -0
  45. package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/type.d.ts +71 -0
  46. package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/type.js +3 -0
  47. package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/index.d.ts +10 -0
  48. package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/index.js +130 -0
  49. package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/type.d.ts +74 -0
  50. package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/type.js +3 -0
  51. package/node_modules/@cloudbase/ai/dist/cjs/models/DeepSeek/index.d.ts +10 -0
  52. package/node_modules/@cloudbase/ai/dist/cjs/models/DeepSeek/index.js +126 -0
  53. package/node_modules/@cloudbase/ai/dist/cjs/models/Default/index.d.ts +10 -0
  54. package/node_modules/@cloudbase/ai/dist/cjs/models/Default/index.js +122 -0
  55. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/index.d.ts +10 -0
  56. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/index.js +135 -0
  57. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/type.d.ts +74 -0
  58. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/type.js +3 -0
  59. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/util.d.ts +4 -0
  60. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/util.js +56 -0
  61. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanBeta/index.d.ts +10 -0
  62. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanBeta/index.js +127 -0
  63. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanExp/index.d.ts +10 -0
  64. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanExp/index.js +125 -0
  65. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanOpen/index.d.ts +10 -0
  66. package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanOpen/index.js +127 -0
  67. package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/index.d.ts +10 -0
  68. package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/index.js +130 -0
  69. package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/type.d.ts +85 -0
  70. package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/type.js +3 -0
  71. package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/index.d.ts +10 -0
  72. package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/index.js +133 -0
  73. package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/type.d.ts +75 -0
  74. package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/type.js +3 -0
  75. package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/index.d.ts +10 -0
  76. package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/index.js +139 -0
  77. package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/type.d.ts +71 -0
  78. package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/type.js +3 -0
  79. package/node_modules/@cloudbase/ai/dist/cjs/models/image-model.d.ts +18 -0
  80. package/node_modules/@cloudbase/ai/dist/cjs/models/image-model.js +85 -0
  81. package/node_modules/@cloudbase/ai/dist/cjs/models/index.d.ts +26 -0
  82. package/node_modules/@cloudbase/ai/dist/cjs/models/index.js +42 -0
  83. package/node_modules/@cloudbase/ai/dist/cjs/models/model.d.ts +40 -0
  84. package/node_modules/@cloudbase/ai/dist/cjs/models/model.js +481 -0
  85. package/node_modules/@cloudbase/ai/dist/cjs/type.d.ts +190 -0
  86. package/node_modules/@cloudbase/ai/dist/cjs/type.js +10 -0
  87. package/node_modules/@cloudbase/ai/dist/cjs/utils.d.ts +38 -0
  88. package/node_modules/@cloudbase/ai/dist/cjs/utils.js +263 -0
  89. package/node_modules/@cloudbase/ai/dist/esm/AI.d.ts +27 -0
  90. package/node_modules/@cloudbase/ai/dist/esm/AI.js +198 -0
  91. package/node_modules/@cloudbase/ai/dist/esm/bot/index.d.ts +41 -0
  92. package/node_modules/@cloudbase/ai/dist/esm/bot/index.js +373 -0
  93. package/node_modules/@cloudbase/ai/dist/esm/bot/types.d.ts +144 -0
  94. package/node_modules/@cloudbase/ai/dist/esm/bot/types.js +2 -0
  95. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/index.d.ts +2 -0
  96. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/index.js +2 -0
  97. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/parse.d.ts +2 -0
  98. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/parse.js +122 -0
  99. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/stream.d.ts +5 -0
  100. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/stream.js +37 -0
  101. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/types.d.ts +16 -0
  102. package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/types.js +2 -0
  103. package/node_modules/@cloudbase/ai/dist/esm/index.d.ts +40 -0
  104. package/node_modules/@cloudbase/ai/dist/esm/index.js +152 -0
  105. package/node_modules/@cloudbase/ai/dist/esm/models/Ark/index.d.ts +10 -0
  106. package/node_modules/@cloudbase/ai/dist/esm/models/Ark/index.js +127 -0
  107. package/node_modules/@cloudbase/ai/dist/esm/models/Ark/type.d.ts +71 -0
  108. package/node_modules/@cloudbase/ai/dist/esm/models/Ark/type.js +2 -0
  109. package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/index.d.ts +10 -0
  110. package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/index.js +127 -0
  111. package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/type.d.ts +74 -0
  112. package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/type.js +2 -0
  113. package/node_modules/@cloudbase/ai/dist/esm/models/DeepSeek/index.d.ts +10 -0
  114. package/node_modules/@cloudbase/ai/dist/esm/models/DeepSeek/index.js +123 -0
  115. package/node_modules/@cloudbase/ai/dist/esm/models/Default/index.d.ts +10 -0
  116. package/node_modules/@cloudbase/ai/dist/esm/models/Default/index.js +119 -0
  117. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/index.d.ts +10 -0
  118. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/index.js +132 -0
  119. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/type.d.ts +74 -0
  120. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/type.js +2 -0
  121. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/util.d.ts +4 -0
  122. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/util.js +51 -0
  123. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanBeta/index.d.ts +10 -0
  124. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanBeta/index.js +124 -0
  125. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanExp/index.d.ts +10 -0
  126. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanExp/index.js +122 -0
  127. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanOpen/index.d.ts +10 -0
  128. package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanOpen/index.js +124 -0
  129. package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/index.d.ts +10 -0
  130. package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/index.js +127 -0
  131. package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/type.d.ts +85 -0
  132. package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/type.js +2 -0
  133. package/node_modules/@cloudbase/ai/dist/esm/models/Yi/index.d.ts +10 -0
  134. package/node_modules/@cloudbase/ai/dist/esm/models/Yi/index.js +130 -0
  135. package/node_modules/@cloudbase/ai/dist/esm/models/Yi/type.d.ts +75 -0
  136. package/node_modules/@cloudbase/ai/dist/esm/models/Yi/type.js +2 -0
  137. package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/index.d.ts +10 -0
  138. package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/index.js +136 -0
  139. package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/type.d.ts +71 -0
  140. package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/type.js +2 -0
  141. package/node_modules/@cloudbase/ai/dist/esm/models/image-model.d.ts +18 -0
  142. package/node_modules/@cloudbase/ai/dist/esm/models/image-model.js +82 -0
  143. package/node_modules/@cloudbase/ai/dist/esm/models/index.d.ts +26 -0
  144. package/node_modules/@cloudbase/ai/dist/esm/models/index.js +27 -0
  145. package/node_modules/@cloudbase/ai/dist/esm/models/model.d.ts +40 -0
  146. package/node_modules/@cloudbase/ai/dist/esm/models/model.js +478 -0
  147. package/node_modules/@cloudbase/ai/dist/esm/type.d.ts +190 -0
  148. package/node_modules/@cloudbase/ai/dist/esm/type.js +7 -0
  149. package/node_modules/@cloudbase/ai/dist/esm/utils.d.ts +38 -0
  150. package/node_modules/@cloudbase/ai/dist/esm/utils.js +252 -0
  151. package/node_modules/@cloudbase/ai/dist/miniprogram/index.js +2 -0
  152. package/node_modules/@cloudbase/ai/dist/miniprogram/index.js.LICENSE.txt +22 -0
  153. package/node_modules/@cloudbase/ai/package.json +32 -0
  154. package/node_modules/@cloudbase/analytics/.eslintrc.js +15 -0
  155. package/node_modules/@cloudbase/analytics/dist/cjs/index.d.ts +2 -0
  156. package/node_modules/@cloudbase/analytics/dist/cjs/index.js +144 -0
  157. package/node_modules/@cloudbase/analytics/dist/esm/index.d.ts +2 -0
  158. package/node_modules/@cloudbase/analytics/dist/esm/index.js +140 -0
  159. package/node_modules/@cloudbase/analytics/package.json +22 -0
  160. package/node_modules/@cloudbase/apis/.eslintrc.js +15 -0
  161. package/node_modules/@cloudbase/apis/dist/cjs/callApis.d.ts +20 -0
  162. package/node_modules/@cloudbase/apis/dist/cjs/callApis.js +154 -0
  163. package/node_modules/@cloudbase/apis/dist/cjs/index.d.ts +5 -0
  164. package/node_modules/@cloudbase/apis/dist/cjs/index.js +53 -0
  165. package/node_modules/@cloudbase/apis/dist/cjs/type.d.ts +14 -0
  166. package/node_modules/@cloudbase/apis/dist/cjs/type.js +3 -0
  167. package/node_modules/@cloudbase/apis/dist/esm/callApis.d.ts +20 -0
  168. package/node_modules/@cloudbase/apis/dist/esm/callApis.js +148 -0
  169. package/node_modules/@cloudbase/apis/dist/esm/index.d.ts +5 -0
  170. package/node_modules/@cloudbase/apis/dist/esm/index.js +35 -0
  171. package/node_modules/@cloudbase/apis/dist/esm/type.d.ts +14 -0
  172. package/node_modules/@cloudbase/apis/dist/esm/type.js +2 -0
  173. package/node_modules/@cloudbase/apis/dist/miniprogram/index.js +1 -0
  174. package/node_modules/@cloudbase/apis/package.json +28 -0
  175. package/node_modules/@cloudbase/app/.eslintrc.js +12 -0
  176. package/node_modules/@cloudbase/app/dist/cjs/constants/common.d.ts +38 -0
  177. package/node_modules/@cloudbase/app/dist/cjs/constants/common.js +103 -0
  178. package/node_modules/@cloudbase/app/dist/cjs/index.d.ts +65 -0
  179. package/node_modules/@cloudbase/app/dist/cjs/index.js +340 -0
  180. package/node_modules/@cloudbase/app/dist/cjs/index.node.d.ts +6 -0
  181. package/node_modules/@cloudbase/app/dist/cjs/index.node.js +20 -0
  182. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/constants.d.ts +33 -0
  183. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/constants.js +38 -0
  184. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.d.ts +13 -0
  185. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.js +162 -0
  186. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.d.ts +23 -0
  187. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.js +124 -0
  188. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/metadata.d.ts +14 -0
  189. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/metadata.js +130 -0
  190. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.d.ts +38 -0
  191. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.js +445 -0
  192. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/tool.d.ts +2 -0
  193. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/tool.js +228 -0
  194. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.d.ts +78 -0
  195. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.js +3 -0
  196. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.d.ts +17 -0
  197. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.js +221 -0
  198. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter.d.ts +3 -0
  199. package/node_modules/@cloudbase/app/dist/cjs/libs/adapter.js +163 -0
  200. package/node_modules/@cloudbase/app/dist/cjs/libs/cache.d.ts +6 -0
  201. package/node_modules/@cloudbase/app/dist/cjs/libs/cache.js +38 -0
  202. package/node_modules/@cloudbase/app/dist/cjs/libs/component.d.ts +3 -0
  203. package/node_modules/@cloudbase/app/dist/cjs/libs/component.js +126 -0
  204. package/node_modules/@cloudbase/app/dist/cjs/libs/lang.d.ts +23 -0
  205. package/node_modules/@cloudbase/app/dist/cjs/libs/lang.js +59 -0
  206. package/node_modules/@cloudbase/app/dist/cjs/libs/request.d.ts +62 -0
  207. package/node_modules/@cloudbase/app/dist/cjs/libs/request.js +480 -0
  208. package/node_modules/@cloudbase/app/dist/esm/constants/common.d.ts +38 -0
  209. package/node_modules/@cloudbase/app/dist/esm/constants/common.js +91 -0
  210. package/node_modules/@cloudbase/app/dist/esm/index.d.ts +65 -0
  211. package/node_modules/@cloudbase/app/dist/esm/index.js +335 -0
  212. package/node_modules/@cloudbase/app/dist/esm/index.node.d.ts +6 -0
  213. package/node_modules/@cloudbase/app/dist/esm/index.node.js +12 -0
  214. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/constants.d.ts +33 -0
  215. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/constants.js +35 -0
  216. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.d.ts +13 -0
  217. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.js +156 -0
  218. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.d.ts +23 -0
  219. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.js +118 -0
  220. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/metadata.d.ts +14 -0
  221. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/metadata.js +123 -0
  222. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.d.ts +38 -0
  223. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.js +442 -0
  224. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/tool.d.ts +2 -0
  225. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/tool.js +224 -0
  226. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.d.ts +78 -0
  227. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.js +2 -0
  228. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.d.ts +17 -0
  229. package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.js +205 -0
  230. package/node_modules/@cloudbase/app/dist/esm/libs/adapter.d.ts +3 -0
  231. package/node_modules/@cloudbase/app/dist/esm/libs/adapter.js +136 -0
  232. package/node_modules/@cloudbase/app/dist/esm/libs/cache.d.ts +6 -0
  233. package/node_modules/@cloudbase/app/dist/esm/libs/cache.js +32 -0
  234. package/node_modules/@cloudbase/app/dist/esm/libs/component.d.ts +3 -0
  235. package/node_modules/@cloudbase/app/dist/esm/libs/component.js +121 -0
  236. package/node_modules/@cloudbase/app/dist/esm/libs/lang.d.ts +23 -0
  237. package/node_modules/@cloudbase/app/dist/esm/libs/lang.js +54 -0
  238. package/node_modules/@cloudbase/app/dist/esm/libs/request.d.ts +62 -0
  239. package/node_modules/@cloudbase/app/dist/esm/libs/request.js +475 -0
  240. package/node_modules/@cloudbase/app/dist/miniprogram/index.js +2 -0
  241. package/node_modules/@cloudbase/app/dist/miniprogram/index.js.LICENSE.txt +7 -0
  242. package/node_modules/@cloudbase/app/package.json +59 -0
  243. package/node_modules/@cloudbase/auth/.eslintrc.js +15 -0
  244. package/node_modules/@cloudbase/auth/dist/cjs/adapter.d.ts +2 -0
  245. package/node_modules/@cloudbase/auth/dist/cjs/adapter.js +272 -0
  246. package/node_modules/@cloudbase/auth/dist/cjs/index.d.ts +283 -0
  247. package/node_modules/@cloudbase/auth/dist/cjs/index.js +3018 -0
  248. package/node_modules/@cloudbase/auth/dist/cjs/type.d.ts +258 -0
  249. package/node_modules/@cloudbase/auth/dist/cjs/type.js +6 -0
  250. package/node_modules/@cloudbase/auth/dist/cjs/utilities.d.ts +7 -0
  251. package/node_modules/@cloudbase/auth/dist/cjs/utilities.js +23 -0
  252. package/node_modules/@cloudbase/auth/dist/cjs/utils.d.ts +5 -0
  253. package/node_modules/@cloudbase/auth/dist/cjs/utils.js +60 -0
  254. package/node_modules/@cloudbase/auth/dist/cjs/v1-compat.d.ts +77 -0
  255. package/node_modules/@cloudbase/auth/dist/cjs/v1-compat.js +423 -0
  256. package/node_modules/@cloudbase/auth/dist/esm/adapter.d.ts +2 -0
  257. package/node_modules/@cloudbase/auth/dist/esm/adapter.js +268 -0
  258. package/node_modules/@cloudbase/auth/dist/esm/index.d.ts +283 -0
  259. package/node_modules/@cloudbase/auth/dist/esm/index.js +3008 -0
  260. package/node_modules/@cloudbase/auth/dist/esm/type.d.ts +258 -0
  261. package/node_modules/@cloudbase/auth/dist/esm/type.js +3 -0
  262. package/node_modules/@cloudbase/auth/dist/esm/utilities.d.ts +7 -0
  263. package/node_modules/@cloudbase/auth/dist/esm/utilities.js +8 -0
  264. package/node_modules/@cloudbase/auth/dist/esm/utils.d.ts +5 -0
  265. package/node_modules/@cloudbase/auth/dist/esm/utils.js +52 -0
  266. package/node_modules/@cloudbase/auth/dist/esm/v1-compat.d.ts +77 -0
  267. package/node_modules/@cloudbase/auth/dist/esm/v1-compat.js +419 -0
  268. package/node_modules/@cloudbase/auth/dist/miniprogram/index.js +1 -0
  269. package/node_modules/@cloudbase/auth/package.json +31 -0
  270. package/node_modules/@cloudbase/cloudrun/.eslintrc.js +15 -0
  271. package/node_modules/@cloudbase/cloudrun/dist/cjs/index.d.ts +4 -0
  272. package/node_modules/@cloudbase/cloudrun/dist/cjs/index.js +154 -0
  273. package/node_modules/@cloudbase/cloudrun/dist/esm/index.d.ts +4 -0
  274. package/node_modules/@cloudbase/cloudrun/dist/esm/index.js +149 -0
  275. package/node_modules/@cloudbase/cloudrun/package.json +30 -0
  276. package/node_modules/@cloudbase/container/.eslintrc.js +15 -0
  277. package/node_modules/@cloudbase/container/.prettierrc.js +41 -0
  278. package/node_modules/@cloudbase/container/dist/cjs/constants/index.d.ts +1 -0
  279. package/node_modules/@cloudbase/container/dist/cjs/constants/index.js +5 -0
  280. package/node_modules/@cloudbase/container/dist/cjs/go_wams_exec.d.ts +2 -0
  281. package/node_modules/@cloudbase/container/dist/cjs/go_wams_exec.js +538 -0
  282. package/node_modules/@cloudbase/container/dist/cjs/index.d.ts +13 -0
  283. package/node_modules/@cloudbase/container/dist/cjs/index.js +343 -0
  284. package/node_modules/@cloudbase/container/dist/cjs/utils/index.d.ts +3 -0
  285. package/node_modules/@cloudbase/container/dist/cjs/utils/index.js +83 -0
  286. package/node_modules/@cloudbase/container/dist/cjs/utils/loader.d.ts +8 -0
  287. package/node_modules/@cloudbase/container/dist/cjs/utils/loader.js +186 -0
  288. package/node_modules/@cloudbase/container/dist/cjs/utils/request.d.ts +12 -0
  289. package/node_modules/@cloudbase/container/dist/cjs/utils/request.js +106 -0
  290. package/node_modules/@cloudbase/container/dist/esm/constants/index.d.ts +1 -0
  291. package/node_modules/@cloudbase/container/dist/esm/constants/index.js +2 -0
  292. package/node_modules/@cloudbase/container/dist/esm/go_wams_exec.d.ts +2 -0
  293. package/node_modules/@cloudbase/container/dist/esm/go_wams_exec.js +536 -0
  294. package/node_modules/@cloudbase/container/dist/esm/index.d.ts +13 -0
  295. package/node_modules/@cloudbase/container/dist/esm/index.js +338 -0
  296. package/node_modules/@cloudbase/container/dist/esm/utils/index.d.ts +3 -0
  297. package/node_modules/@cloudbase/container/dist/esm/utils/index.js +77 -0
  298. package/node_modules/@cloudbase/container/dist/esm/utils/loader.d.ts +8 -0
  299. package/node_modules/@cloudbase/container/dist/esm/utils/loader.js +178 -0
  300. package/node_modules/@cloudbase/container/dist/esm/utils/request.d.ts +12 -0
  301. package/node_modules/@cloudbase/container/dist/esm/utils/request.js +102 -0
  302. package/node_modules/@cloudbase/container/package.json +30 -0
  303. package/node_modules/@cloudbase/database/README.md +119 -0
  304. package/node_modules/@cloudbase/database/dist/commonjs/aggregate.d.ts +29 -0
  305. package/node_modules/@cloudbase/database/dist/commonjs/aggregate.js +156 -0
  306. package/node_modules/@cloudbase/database/dist/commonjs/collection.d.ts +9 -0
  307. package/node_modules/@cloudbase/database/dist/commonjs/collection.js +49 -0
  308. package/node_modules/@cloudbase/database/dist/commonjs/command.d.ts +175 -0
  309. package/node_modules/@cloudbase/database/dist/commonjs/command.js +299 -0
  310. package/node_modules/@cloudbase/database/dist/commonjs/commands/logic.d.ts +24 -0
  311. package/node_modules/@cloudbase/database/dist/commonjs/commands/logic.js +89 -0
  312. package/node_modules/@cloudbase/database/dist/commonjs/commands/query.d.ts +68 -0
  313. package/node_modules/@cloudbase/database/dist/commonjs/commands/query.js +160 -0
  314. package/node_modules/@cloudbase/database/dist/commonjs/commands/update.d.ts +29 -0
  315. package/node_modules/@cloudbase/database/dist/commonjs/commands/update.js +51 -0
  316. package/node_modules/@cloudbase/database/dist/commonjs/config/app.config.d.ts +6 -0
  317. package/node_modules/@cloudbase/database/dist/commonjs/config/app.config.js +7 -0
  318. package/node_modules/@cloudbase/database/dist/commonjs/config/error.config.d.ts +3 -0
  319. package/node_modules/@cloudbase/database/dist/commonjs/config/error.config.js +16 -0
  320. package/node_modules/@cloudbase/database/dist/commonjs/const/code.d.ts +30 -0
  321. package/node_modules/@cloudbase/database/dist/commonjs/const/code.js +33 -0
  322. package/node_modules/@cloudbase/database/dist/commonjs/constant.d.ts +51 -0
  323. package/node_modules/@cloudbase/database/dist/commonjs/constant.js +75 -0
  324. package/node_modules/@cloudbase/database/dist/commonjs/document.d.ts +11 -0
  325. package/node_modules/@cloudbase/database/dist/commonjs/document.js +260 -0
  326. package/node_modules/@cloudbase/database/dist/commonjs/geo/index.d.ts +6 -0
  327. package/node_modules/@cloudbase/database/dist/commonjs/geo/index.js +22 -0
  328. package/node_modules/@cloudbase/database/dist/commonjs/geo/interface.d.ts +24 -0
  329. package/node_modules/@cloudbase/database/dist/commonjs/geo/interface.js +2 -0
  330. package/node_modules/@cloudbase/database/dist/commonjs/geo/lineString.d.ts +19 -0
  331. package/node_modules/@cloudbase/database/dist/commonjs/geo/lineString.js +86 -0
  332. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiLineString.d.ts +18 -0
  333. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiLineString.js +95 -0
  334. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPoint.d.ts +18 -0
  335. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPoint.js +79 -0
  336. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPolygon.d.ts +18 -0
  337. package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPolygon.js +122 -0
  338. package/node_modules/@cloudbase/database/dist/commonjs/geo/point.d.ts +19 -0
  339. package/node_modules/@cloudbase/database/dist/commonjs/geo/point.js +50 -0
  340. package/node_modules/@cloudbase/database/dist/commonjs/geo/polygon.d.ts +19 -0
  341. package/node_modules/@cloudbase/database/dist/commonjs/geo/polygon.js +109 -0
  342. package/node_modules/@cloudbase/database/dist/commonjs/helper/symbol.d.ts +14 -0
  343. package/node_modules/@cloudbase/database/dist/commonjs/helper/symbol.js +31 -0
  344. package/node_modules/@cloudbase/database/dist/commonjs/index.d.ts +40 -0
  345. package/node_modules/@cloudbase/database/dist/commonjs/index.js +61 -0
  346. package/node_modules/@cloudbase/database/dist/commonjs/lib/util.d.ts +1 -0
  347. package/node_modules/@cloudbase/database/dist/commonjs/lib/util.js +26 -0
  348. package/node_modules/@cloudbase/database/dist/commonjs/operator-map.d.ts +4 -0
  349. package/node_modules/@cloudbase/database/dist/commonjs/operator-map.js +24 -0
  350. package/node_modules/@cloudbase/database/dist/commonjs/query.d.ts +22 -0
  351. package/node_modules/@cloudbase/database/dist/commonjs/query.js +252 -0
  352. package/node_modules/@cloudbase/database/dist/commonjs/regexp/index.d.ts +14 -0
  353. package/node_modules/@cloudbase/database/dist/commonjs/regexp/index.js +33 -0
  354. package/node_modules/@cloudbase/database/dist/commonjs/serializer/common.d.ts +11 -0
  355. package/node_modules/@cloudbase/database/dist/commonjs/serializer/common.js +127 -0
  356. package/node_modules/@cloudbase/database/dist/commonjs/serializer/datatype.d.ts +7 -0
  357. package/node_modules/@cloudbase/database/dist/commonjs/serializer/datatype.js +132 -0
  358. package/node_modules/@cloudbase/database/dist/commonjs/serializer/query.d.ts +7 -0
  359. package/node_modules/@cloudbase/database/dist/commonjs/serializer/query.js +232 -0
  360. package/node_modules/@cloudbase/database/dist/commonjs/serializer/update.d.ts +15 -0
  361. package/node_modules/@cloudbase/database/dist/commonjs/serializer/update.js +142 -0
  362. package/node_modules/@cloudbase/database/dist/commonjs/serverDate/index.d.ts +13 -0
  363. package/node_modules/@cloudbase/database/dist/commonjs/serverDate/index.js +30 -0
  364. package/node_modules/@cloudbase/database/dist/commonjs/transaction/collection.d.ts +7 -0
  365. package/node_modules/@cloudbase/database/dist/commonjs/transaction/collection.js +49 -0
  366. package/node_modules/@cloudbase/database/dist/commonjs/transaction/document.d.ts +27 -0
  367. package/node_modules/@cloudbase/database/dist/commonjs/transaction/document.js +205 -0
  368. package/node_modules/@cloudbase/database/dist/commonjs/transaction/index.d.ts +30 -0
  369. package/node_modules/@cloudbase/database/dist/commonjs/transaction/index.js +215 -0
  370. package/node_modules/@cloudbase/database/dist/commonjs/transaction/query.d.ts +43 -0
  371. package/node_modules/@cloudbase/database/dist/commonjs/transaction/query.js +261 -0
  372. package/node_modules/@cloudbase/database/dist/commonjs/typings/index.d.ts +40 -0
  373. package/node_modules/@cloudbase/database/dist/commonjs/typings/index.js +2 -0
  374. package/node_modules/@cloudbase/database/dist/commonjs/typings/realtime.d.ts +219 -0
  375. package/node_modules/@cloudbase/database/dist/commonjs/typings/realtime.js +2 -0
  376. package/node_modules/@cloudbase/database/dist/commonjs/util.d.ts +9 -0
  377. package/node_modules/@cloudbase/database/dist/commonjs/util.js +145 -0
  378. package/node_modules/@cloudbase/database/dist/commonjs/utils/error.d.ts +38 -0
  379. package/node_modules/@cloudbase/database/dist/commonjs/utils/error.js +91 -0
  380. package/node_modules/@cloudbase/database/dist/commonjs/utils/msg.d.ts +0 -0
  381. package/node_modules/@cloudbase/database/dist/commonjs/utils/msg.js +0 -0
  382. package/node_modules/@cloudbase/database/dist/commonjs/utils/symbol.d.ts +8 -0
  383. package/node_modules/@cloudbase/database/dist/commonjs/utils/symbol.js +58 -0
  384. package/node_modules/@cloudbase/database/dist/commonjs/utils/type.d.ts +13 -0
  385. package/node_modules/@cloudbase/database/dist/commonjs/utils/type.js +34 -0
  386. package/node_modules/@cloudbase/database/dist/commonjs/utils/utils.d.ts +4 -0
  387. package/node_modules/@cloudbase/database/dist/commonjs/utils/utils.js +39 -0
  388. package/node_modules/@cloudbase/database/dist/commonjs/validate.d.ts +1 -0
  389. package/node_modules/@cloudbase/database/dist/commonjs/validate.js +60 -0
  390. package/node_modules/@cloudbase/database/dist/esm/aggregate.d.ts +29 -0
  391. package/node_modules/@cloudbase/database/dist/esm/aggregate.js +154 -0
  392. package/node_modules/@cloudbase/database/dist/esm/collection.d.ts +9 -0
  393. package/node_modules/@cloudbase/database/dist/esm/collection.js +46 -0
  394. package/node_modules/@cloudbase/database/dist/esm/command.d.ts +175 -0
  395. package/node_modules/@cloudbase/database/dist/esm/command.js +296 -0
  396. package/node_modules/@cloudbase/database/dist/esm/commands/logic.d.ts +24 -0
  397. package/node_modules/@cloudbase/database/dist/esm/commands/logic.js +84 -0
  398. package/node_modules/@cloudbase/database/dist/esm/commands/query.d.ts +68 -0
  399. package/node_modules/@cloudbase/database/dist/esm/commands/query.js +154 -0
  400. package/node_modules/@cloudbase/database/dist/esm/commands/update.d.ts +29 -0
  401. package/node_modules/@cloudbase/database/dist/esm/commands/update.js +46 -0
  402. package/node_modules/@cloudbase/database/dist/esm/config/app.config.d.ts +6 -0
  403. package/node_modules/@cloudbase/database/dist/esm/config/app.config.js +5 -0
  404. package/node_modules/@cloudbase/database/dist/esm/config/error.config.d.ts +3 -0
  405. package/node_modules/@cloudbase/database/dist/esm/config/error.config.js +13 -0
  406. package/node_modules/@cloudbase/database/dist/esm/const/code.d.ts +30 -0
  407. package/node_modules/@cloudbase/database/dist/esm/const/code.js +30 -0
  408. package/node_modules/@cloudbase/database/dist/esm/constant.d.ts +51 -0
  409. package/node_modules/@cloudbase/database/dist/esm/constant.js +65 -0
  410. package/node_modules/@cloudbase/database/dist/esm/document.d.ts +11 -0
  411. package/node_modules/@cloudbase/database/dist/esm/document.js +257 -0
  412. package/node_modules/@cloudbase/database/dist/esm/geo/index.d.ts +6 -0
  413. package/node_modules/@cloudbase/database/dist/esm/geo/index.js +6 -0
  414. package/node_modules/@cloudbase/database/dist/esm/geo/interface.d.ts +24 -0
  415. package/node_modules/@cloudbase/database/dist/esm/geo/interface.js +1 -0
  416. package/node_modules/@cloudbase/database/dist/esm/geo/lineString.d.ts +19 -0
  417. package/node_modules/@cloudbase/database/dist/esm/geo/lineString.js +83 -0
  418. package/node_modules/@cloudbase/database/dist/esm/geo/multiLineString.d.ts +18 -0
  419. package/node_modules/@cloudbase/database/dist/esm/geo/multiLineString.js +92 -0
  420. package/node_modules/@cloudbase/database/dist/esm/geo/multiPoint.d.ts +18 -0
  421. package/node_modules/@cloudbase/database/dist/esm/geo/multiPoint.js +76 -0
  422. package/node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.d.ts +18 -0
  423. package/node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.js +119 -0
  424. package/node_modules/@cloudbase/database/dist/esm/geo/point.d.ts +19 -0
  425. package/node_modules/@cloudbase/database/dist/esm/geo/point.js +47 -0
  426. package/node_modules/@cloudbase/database/dist/esm/geo/polygon.d.ts +19 -0
  427. package/node_modules/@cloudbase/database/dist/esm/geo/polygon.js +106 -0
  428. package/node_modules/@cloudbase/database/dist/esm/helper/symbol.d.ts +14 -0
  429. package/node_modules/@cloudbase/database/dist/esm/helper/symbol.js +14 -0
  430. package/node_modules/@cloudbase/database/dist/esm/index.d.ts +40 -0
  431. package/node_modules/@cloudbase/database/dist/esm/index.js +55 -0
  432. package/node_modules/@cloudbase/database/dist/esm/lib/util.d.ts +1 -0
  433. package/node_modules/@cloudbase/database/dist/esm/lib/util.js +22 -0
  434. package/node_modules/@cloudbase/database/dist/esm/operator-map.d.ts +4 -0
  435. package/node_modules/@cloudbase/database/dist/esm/operator-map.js +20 -0
  436. package/node_modules/@cloudbase/database/dist/esm/query.d.ts +22 -0
  437. package/node_modules/@cloudbase/database/dist/esm/query.js +249 -0
  438. package/node_modules/@cloudbase/database/dist/esm/regexp/index.d.ts +14 -0
  439. package/node_modules/@cloudbase/database/dist/esm/regexp/index.js +29 -0
  440. package/node_modules/@cloudbase/database/dist/esm/serializer/common.d.ts +11 -0
  441. package/node_modules/@cloudbase/database/dist/esm/serializer/common.js +118 -0
  442. package/node_modules/@cloudbase/database/dist/esm/serializer/datatype.d.ts +7 -0
  443. package/node_modules/@cloudbase/database/dist/esm/serializer/datatype.js +127 -0
  444. package/node_modules/@cloudbase/database/dist/esm/serializer/query.d.ts +7 -0
  445. package/node_modules/@cloudbase/database/dist/esm/serializer/query.js +229 -0
  446. package/node_modules/@cloudbase/database/dist/esm/serializer/update.d.ts +15 -0
  447. package/node_modules/@cloudbase/database/dist/esm/serializer/update.js +139 -0
  448. package/node_modules/@cloudbase/database/dist/esm/serverDate/index.d.ts +13 -0
  449. package/node_modules/@cloudbase/database/dist/esm/serverDate/index.js +26 -0
  450. package/node_modules/@cloudbase/database/dist/esm/transaction/collection.d.ts +7 -0
  451. package/node_modules/@cloudbase/database/dist/esm/transaction/collection.js +46 -0
  452. package/node_modules/@cloudbase/database/dist/esm/transaction/document.d.ts +27 -0
  453. package/node_modules/@cloudbase/database/dist/esm/transaction/document.js +202 -0
  454. package/node_modules/@cloudbase/database/dist/esm/transaction/index.d.ts +30 -0
  455. package/node_modules/@cloudbase/database/dist/esm/transaction/index.js +210 -0
  456. package/node_modules/@cloudbase/database/dist/esm/transaction/query.d.ts +43 -0
  457. package/node_modules/@cloudbase/database/dist/esm/transaction/query.js +258 -0
  458. package/node_modules/@cloudbase/database/dist/esm/typings/index.d.ts +40 -0
  459. package/node_modules/@cloudbase/database/dist/esm/typings/index.js +1 -0
  460. package/node_modules/@cloudbase/database/dist/esm/typings/realtime.d.ts +219 -0
  461. package/node_modules/@cloudbase/database/dist/esm/typings/realtime.js +1 -0
  462. package/node_modules/@cloudbase/database/dist/esm/util.d.ts +9 -0
  463. package/node_modules/@cloudbase/database/dist/esm/util.js +142 -0
  464. package/node_modules/@cloudbase/database/dist/esm/utils/error.d.ts +38 -0
  465. package/node_modules/@cloudbase/database/dist/esm/utils/error.js +84 -0
  466. package/node_modules/@cloudbase/database/dist/esm/utils/msg.d.ts +0 -0
  467. package/node_modules/@cloudbase/database/dist/esm/utils/msg.js +0 -0
  468. package/node_modules/@cloudbase/database/dist/esm/utils/symbol.d.ts +8 -0
  469. package/node_modules/@cloudbase/database/dist/esm/utils/symbol.js +55 -0
  470. package/node_modules/@cloudbase/database/dist/esm/utils/type.d.ts +13 -0
  471. package/node_modules/@cloudbase/database/dist/esm/utils/type.js +20 -0
  472. package/node_modules/@cloudbase/database/dist/esm/utils/utils.d.ts +4 -0
  473. package/node_modules/@cloudbase/database/dist/esm/utils/utils.js +33 -0
  474. package/node_modules/@cloudbase/database/dist/esm/validate.d.ts +1 -0
  475. package/node_modules/@cloudbase/database/dist/esm/validate.js +57 -0
  476. package/node_modules/@cloudbase/database/package.json +36 -0
  477. package/node_modules/@cloudbase/database/tsconfig.test.json +15 -0
  478. package/node_modules/@cloudbase/functions/.eslintrc.js +15 -0
  479. package/node_modules/@cloudbase/functions/dist/cjs/index.d.ts +2 -0
  480. package/node_modules/@cloudbase/functions/dist/cjs/index.js +223 -0
  481. package/node_modules/@cloudbase/functions/dist/esm/index.d.ts +2 -0
  482. package/node_modules/@cloudbase/functions/dist/esm/index.js +219 -0
  483. package/node_modules/@cloudbase/functions/package.json +32 -0
  484. package/node_modules/@cloudbase/model/.eslintrc.js +15 -0
  485. package/node_modules/@cloudbase/model/dist/cjs/index.d.ts +5 -0
  486. package/node_modules/@cloudbase/model/dist/cjs/index.js +144 -0
  487. package/node_modules/@cloudbase/model/dist/esm/index.d.ts +5 -0
  488. package/node_modules/@cloudbase/model/dist/esm/index.js +125 -0
  489. package/node_modules/@cloudbase/model/package.json +29 -0
  490. package/node_modules/@cloudbase/mysql/.eslintrc.js +6 -0
  491. package/node_modules/@cloudbase/mysql/dist/cjs/index.d.ts +4 -0
  492. package/node_modules/@cloudbase/mysql/dist/cjs/index.d.ts.map +1 -0
  493. package/node_modules/@cloudbase/mysql/dist/cjs/index.js +173 -0
  494. package/node_modules/@cloudbase/mysql/dist/esm/index.d.ts +3 -0
  495. package/node_modules/@cloudbase/mysql/dist/esm/index.js +155 -0
  496. package/node_modules/@cloudbase/mysql/package.json +30 -0
  497. package/node_modules/@cloudbase/oauth/.eslintrc.js +15 -0
  498. package/node_modules/@cloudbase/oauth/dist/cjs/auth/apis.d.ts +142 -0
  499. package/node_modules/@cloudbase/oauth/dist/cjs/auth/apis.js +1280 -0
  500. package/node_modules/@cloudbase/oauth/dist/cjs/auth/auth-error.d.ts +22 -0
  501. package/node_modules/@cloudbase/oauth/dist/cjs/auth/auth-error.js +278 -0
  502. package/node_modules/@cloudbase/oauth/dist/cjs/auth/consts.d.ts +139 -0
  503. package/node_modules/@cloudbase/oauth/dist/cjs/auth/consts.js +147 -0
  504. package/node_modules/@cloudbase/oauth/dist/cjs/auth/models.d.ts +557 -0
  505. package/node_modules/@cloudbase/oauth/dist/cjs/auth/models.js +3 -0
  506. package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha-dom.d.ts +3 -0
  507. package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha-dom.js +223 -0
  508. package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha.d.ts +42 -0
  509. package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha.js +205 -0
  510. package/node_modules/@cloudbase/oauth/dist/cjs/index.d.ts +22 -0
  511. package/node_modules/@cloudbase/oauth/dist/cjs/index.js +107 -0
  512. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/consts.d.ts +20 -0
  513. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/consts.js +26 -0
  514. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/interface.d.ts +15 -0
  515. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/interface.js +10 -0
  516. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/models.d.ts +74 -0
  517. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/models.js +3 -0
  518. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/oauth2client.d.ts +129 -0
  519. package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/oauth2client.js +1174 -0
  520. package/node_modules/@cloudbase/oauth/dist/cjs/utils/base64.d.ts +9 -0
  521. package/node_modules/@cloudbase/oauth/dist/cjs/utils/base64.js +112 -0
  522. package/node_modules/@cloudbase/oauth/dist/cjs/utils/encrypt.d.ts +4 -0
  523. package/node_modules/@cloudbase/oauth/dist/cjs/utils/encrypt.js +26 -0
  524. package/node_modules/@cloudbase/oauth/dist/cjs/utils/encryptlong/index.d.ts +546 -0
  525. package/node_modules/@cloudbase/oauth/dist/cjs/utils/encryptlong/index.js +2982 -0
  526. package/node_modules/@cloudbase/oauth/dist/cjs/utils/function/single-promise.d.ts +6 -0
  527. package/node_modules/@cloudbase/oauth/dist/cjs/utils/function/single-promise.js +94 -0
  528. package/node_modules/@cloudbase/oauth/dist/cjs/utils/index.d.ts +2 -0
  529. package/node_modules/@cloudbase/oauth/dist/cjs/utils/index.js +56 -0
  530. package/node_modules/@cloudbase/oauth/dist/cjs/utils/mp.d.ts +2 -0
  531. package/node_modules/@cloudbase/oauth/dist/cjs/utils/mp.js +66 -0
  532. package/node_modules/@cloudbase/oauth/dist/cjs/utils/urlSearchParams.d.ts +13 -0
  533. package/node_modules/@cloudbase/oauth/dist/cjs/utils/urlSearchParams.js +66 -0
  534. package/node_modules/@cloudbase/oauth/dist/cjs/utils/uuid.d.ts +1 -0
  535. package/node_modules/@cloudbase/oauth/dist/cjs/utils/uuid.js +12 -0
  536. package/node_modules/@cloudbase/oauth/dist/esm/auth/apis.d.ts +142 -0
  537. package/node_modules/@cloudbase/oauth/dist/esm/auth/apis.js +768 -0
  538. package/node_modules/@cloudbase/oauth/dist/esm/auth/auth-error.d.ts +22 -0
  539. package/node_modules/@cloudbase/oauth/dist/esm/auth/auth-error.js +255 -0
  540. package/node_modules/@cloudbase/oauth/dist/esm/auth/consts.d.ts +139 -0
  541. package/node_modules/@cloudbase/oauth/dist/esm/auth/consts.js +144 -0
  542. package/node_modules/@cloudbase/oauth/dist/esm/auth/models.d.ts +557 -0
  543. package/node_modules/@cloudbase/oauth/dist/esm/auth/models.js +2 -0
  544. package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha-dom.d.ts +3 -0
  545. package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha-dom.js +130 -0
  546. package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha.d.ts +42 -0
  547. package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha.js +104 -0
  548. package/node_modules/@cloudbase/oauth/dist/esm/index.d.ts +22 -0
  549. package/node_modules/@cloudbase/oauth/dist/esm/index.js +64 -0
  550. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/consts.d.ts +20 -0
  551. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/consts.js +22 -0
  552. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/interface.d.ts +15 -0
  553. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/interface.js +3 -0
  554. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/models.d.ts +74 -0
  555. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/models.js +2 -0
  556. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/oauth2client.d.ts +129 -0
  557. package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/oauth2client.js +711 -0
  558. package/node_modules/@cloudbase/oauth/dist/esm/utils/base64.d.ts +9 -0
  559. package/node_modules/@cloudbase/oauth/dist/esm/utils/base64.js +104 -0
  560. package/node_modules/@cloudbase/oauth/dist/esm/utils/encrypt.d.ts +4 -0
  561. package/node_modules/@cloudbase/oauth/dist/esm/utils/encrypt.js +18 -0
  562. package/node_modules/@cloudbase/oauth/dist/esm/utils/encryptlong/index.d.ts +546 -0
  563. package/node_modules/@cloudbase/oauth/dist/esm/utils/encryptlong/index.js +2953 -0
  564. package/node_modules/@cloudbase/oauth/dist/esm/utils/function/single-promise.d.ts +6 -0
  565. package/node_modules/@cloudbase/oauth/dist/esm/utils/function/single-promise.js +34 -0
  566. package/node_modules/@cloudbase/oauth/dist/esm/utils/index.d.ts +2 -0
  567. package/node_modules/@cloudbase/oauth/dist/esm/utils/index.js +51 -0
  568. package/node_modules/@cloudbase/oauth/dist/esm/utils/mp.d.ts +2 -0
  569. package/node_modules/@cloudbase/oauth/dist/esm/utils/mp.js +61 -0
  570. package/node_modules/@cloudbase/oauth/dist/esm/utils/urlSearchParams.d.ts +13 -0
  571. package/node_modules/@cloudbase/oauth/dist/esm/utils/urlSearchParams.js +58 -0
  572. package/node_modules/@cloudbase/oauth/dist/esm/utils/uuid.d.ts +1 -0
  573. package/node_modules/@cloudbase/oauth/dist/esm/utils/uuid.js +8 -0
  574. package/node_modules/@cloudbase/oauth/dist/miniprogram/index.js +1 -0
  575. package/node_modules/@cloudbase/oauth/package.json +20 -0
  576. package/node_modules/@cloudbase/realtime/.eslintrc.js +15 -0
  577. package/node_modules/@cloudbase/realtime/dist/cjs/common.d.ts +4 -0
  578. package/node_modules/@cloudbase/realtime/dist/cjs/common.js +22 -0
  579. package/node_modules/@cloudbase/realtime/dist/cjs/error.d.ts +36 -0
  580. package/node_modules/@cloudbase/realtime/dist/cjs/error.js +106 -0
  581. package/node_modules/@cloudbase/realtime/dist/cjs/index.d.ts +2 -0
  582. package/node_modules/@cloudbase/realtime/dist/cjs/index.js +36 -0
  583. package/node_modules/@cloudbase/realtime/dist/cjs/listener.d.ts +14 -0
  584. package/node_modules/@cloudbase/realtime/dist/cjs/listener.js +18 -0
  585. package/node_modules/@cloudbase/realtime/dist/cjs/message.d.ts +3 -0
  586. package/node_modules/@cloudbase/realtime/dist/cjs/message.js +13 -0
  587. package/node_modules/@cloudbase/realtime/dist/cjs/snapshot.d.ts +17 -0
  588. package/node_modules/@cloudbase/realtime/dist/cjs/snapshot.js +45 -0
  589. package/node_modules/@cloudbase/realtime/dist/cjs/utils.d.ts +1 -0
  590. package/node_modules/@cloudbase/realtime/dist/cjs/utils.js +9 -0
  591. package/node_modules/@cloudbase/realtime/dist/cjs/virtual-websocket-client.d.ts +62 -0
  592. package/node_modules/@cloudbase/realtime/dist/cjs/virtual-websocket-client.js +960 -0
  593. package/node_modules/@cloudbase/realtime/dist/cjs/websocket-client.d.ts +78 -0
  594. package/node_modules/@cloudbase/realtime/dist/cjs/websocket-client.js +750 -0
  595. package/node_modules/@cloudbase/realtime/dist/cjs/ws-event.d.ts +126 -0
  596. package/node_modules/@cloudbase/realtime/dist/cjs/ws-event.js +141 -0
  597. package/node_modules/@cloudbase/realtime/dist/esm/common.d.ts +4 -0
  598. package/node_modules/@cloudbase/realtime/dist/esm/common.js +15 -0
  599. package/node_modules/@cloudbase/realtime/dist/esm/error.d.ts +36 -0
  600. package/node_modules/@cloudbase/realtime/dist/esm/error.js +100 -0
  601. package/node_modules/@cloudbase/realtime/dist/esm/index.d.ts +2 -0
  602. package/node_modules/@cloudbase/realtime/dist/esm/index.js +32 -0
  603. package/node_modules/@cloudbase/realtime/dist/esm/listener.d.ts +14 -0
  604. package/node_modules/@cloudbase/realtime/dist/esm/listener.js +15 -0
  605. package/node_modules/@cloudbase/realtime/dist/esm/message.d.ts +3 -0
  606. package/node_modules/@cloudbase/realtime/dist/esm/message.js +8 -0
  607. package/node_modules/@cloudbase/realtime/dist/esm/snapshot.d.ts +17 -0
  608. package/node_modules/@cloudbase/realtime/dist/esm/snapshot.js +42 -0
  609. package/node_modules/@cloudbase/realtime/dist/esm/utils.d.ts +1 -0
  610. package/node_modules/@cloudbase/realtime/dist/esm/utils.js +5 -0
  611. package/node_modules/@cloudbase/realtime/dist/esm/virtual-websocket-client.d.ts +62 -0
  612. package/node_modules/@cloudbase/realtime/dist/esm/virtual-websocket-client.js +954 -0
  613. package/node_modules/@cloudbase/realtime/dist/esm/websocket-client.d.ts +78 -0
  614. package/node_modules/@cloudbase/realtime/dist/esm/websocket-client.js +747 -0
  615. package/node_modules/@cloudbase/realtime/dist/esm/ws-event.d.ts +126 -0
  616. package/node_modules/@cloudbase/realtime/dist/esm/ws-event.js +137 -0
  617. package/node_modules/@cloudbase/realtime/package.json +29 -0
  618. package/node_modules/@cloudbase/storage/.eslintrc.js +15 -0
  619. package/node_modules/@cloudbase/storage/dist/cjs/index.d.ts +195 -0
  620. package/node_modules/@cloudbase/storage/dist/cjs/index.js +1426 -0
  621. package/node_modules/@cloudbase/storage/dist/cjs/supabase/errors.d.ts +20 -0
  622. package/node_modules/@cloudbase/storage/dist/cjs/supabase/errors.js +65 -0
  623. package/node_modules/@cloudbase/storage/dist/cjs/supabase/types.d.ts +64 -0
  624. package/node_modules/@cloudbase/storage/dist/cjs/supabase/types.js +3 -0
  625. package/node_modules/@cloudbase/storage/dist/esm/index.d.ts +195 -0
  626. package/node_modules/@cloudbase/storage/dist/esm/index.js +1422 -0
  627. package/node_modules/@cloudbase/storage/dist/esm/supabase/errors.d.ts +20 -0
  628. package/node_modules/@cloudbase/storage/dist/esm/supabase/errors.js +61 -0
  629. package/node_modules/@cloudbase/storage/dist/esm/supabase/types.d.ts +64 -0
  630. package/node_modules/@cloudbase/storage/dist/esm/supabase/types.js +2 -0
  631. package/node_modules/@cloudbase/storage/package.json +28 -0
  632. package/node_modules/@cloudbase/types/auth.d.ts +99 -0
  633. package/node_modules/@cloudbase/types/cache.d.ts +26 -0
  634. package/node_modules/@cloudbase/types/cloudrun.d.ts +9 -0
  635. package/node_modules/@cloudbase/types/component.d.ts +17 -0
  636. package/node_modules/@cloudbase/types/database.d.ts +31 -0
  637. package/node_modules/@cloudbase/types/events.d.ts +13 -0
  638. package/node_modules/@cloudbase/types/functions.d.ts +40 -0
  639. package/node_modules/@cloudbase/types/index.d.ts +211 -0
  640. package/node_modules/@cloudbase/types/index.js +1 -0
  641. package/node_modules/@cloudbase/types/package.json +43 -0
  642. package/node_modules/@cloudbase/types/realtime.d.ts +350 -0
  643. package/node_modules/@cloudbase/types/request.d.ts +30 -0
  644. package/node_modules/@cloudbase/types/storage.d.ts +126 -0
  645. package/node_modules/@cloudbase/utilities/.eslintrc.js +15 -0
  646. package/node_modules/@cloudbase/utilities/dist/cjs/adapters/index.d.ts +45 -0
  647. package/node_modules/@cloudbase/utilities/dist/cjs/adapters/index.js +68 -0
  648. package/node_modules/@cloudbase/utilities/dist/cjs/adapters/platforms/web.d.ts +20 -0
  649. package/node_modules/@cloudbase/utilities/dist/cjs/adapters/platforms/web.js +278 -0
  650. package/node_modules/@cloudbase/utilities/dist/cjs/constants/common.d.ts +6 -0
  651. package/node_modules/@cloudbase/utilities/dist/cjs/constants/common.js +24 -0
  652. package/node_modules/@cloudbase/utilities/dist/cjs/constants/errors.d.ts +8 -0
  653. package/node_modules/@cloudbase/utilities/dist/cjs/constants/errors.js +12 -0
  654. package/node_modules/@cloudbase/utilities/dist/cjs/constants/index.d.ts +3 -0
  655. package/node_modules/@cloudbase/utilities/dist/cjs/constants/index.js +21 -0
  656. package/node_modules/@cloudbase/utilities/dist/cjs/helpers/decorators.d.ts +11 -0
  657. package/node_modules/@cloudbase/utilities/dist/cjs/helpers/decorators.js +238 -0
  658. package/node_modules/@cloudbase/utilities/dist/cjs/helpers/index.d.ts +1 -0
  659. package/node_modules/@cloudbase/utilities/dist/cjs/helpers/index.js +18 -0
  660. package/node_modules/@cloudbase/utilities/dist/cjs/index.d.ts +13 -0
  661. package/node_modules/@cloudbase/utilities/dist/cjs/index.js +51 -0
  662. package/node_modules/@cloudbase/utilities/dist/cjs/libs/abortController.d.ts +9 -0
  663. package/node_modules/@cloudbase/utilities/dist/cjs/libs/abortController.js +25 -0
  664. package/node_modules/@cloudbase/utilities/dist/cjs/libs/cache.d.ts +17 -0
  665. package/node_modules/@cloudbase/utilities/dist/cjs/libs/cache.js +261 -0
  666. package/node_modules/@cloudbase/utilities/dist/cjs/libs/events.d.ts +27 -0
  667. package/node_modules/@cloudbase/utilities/dist/cjs/libs/events.js +108 -0
  668. package/node_modules/@cloudbase/utilities/dist/cjs/libs/langEvent.d.ts +3 -0
  669. package/node_modules/@cloudbase/utilities/dist/cjs/libs/langEvent.js +7 -0
  670. package/node_modules/@cloudbase/utilities/dist/cjs/libs/util.d.ts +49 -0
  671. package/node_modules/@cloudbase/utilities/dist/cjs/libs/util.js +282 -0
  672. package/node_modules/@cloudbase/utilities/dist/esm/adapters/index.d.ts +45 -0
  673. package/node_modules/@cloudbase/utilities/dist/esm/adapters/index.js +40 -0
  674. package/node_modules/@cloudbase/utilities/dist/esm/adapters/platforms/web.d.ts +20 -0
  675. package/node_modules/@cloudbase/utilities/dist/esm/adapters/platforms/web.js +274 -0
  676. package/node_modules/@cloudbase/utilities/dist/esm/constants/common.d.ts +6 -0
  677. package/node_modules/@cloudbase/utilities/dist/esm/constants/common.js +17 -0
  678. package/node_modules/@cloudbase/utilities/dist/esm/constants/errors.d.ts +8 -0
  679. package/node_modules/@cloudbase/utilities/dist/esm/constants/errors.js +9 -0
  680. package/node_modules/@cloudbase/utilities/dist/esm/constants/index.d.ts +3 -0
  681. package/node_modules/@cloudbase/utilities/dist/esm/constants/index.js +4 -0
  682. package/node_modules/@cloudbase/utilities/dist/esm/helpers/decorators.d.ts +11 -0
  683. package/node_modules/@cloudbase/utilities/dist/esm/helpers/decorators.js +234 -0
  684. package/node_modules/@cloudbase/utilities/dist/esm/helpers/index.d.ts +1 -0
  685. package/node_modules/@cloudbase/utilities/dist/esm/helpers/index.js +2 -0
  686. package/node_modules/@cloudbase/utilities/dist/esm/index.d.ts +13 -0
  687. package/node_modules/@cloudbase/utilities/dist/esm/index.js +14 -0
  688. package/node_modules/@cloudbase/utilities/dist/esm/libs/abortController.d.ts +9 -0
  689. package/node_modules/@cloudbase/utilities/dist/esm/libs/abortController.js +23 -0
  690. package/node_modules/@cloudbase/utilities/dist/esm/libs/cache.d.ts +17 -0
  691. package/node_modules/@cloudbase/utilities/dist/esm/libs/cache.js +258 -0
  692. package/node_modules/@cloudbase/utilities/dist/esm/libs/events.d.ts +27 -0
  693. package/node_modules/@cloudbase/utilities/dist/esm/libs/events.js +102 -0
  694. package/node_modules/@cloudbase/utilities/dist/esm/libs/langEvent.d.ts +3 -0
  695. package/node_modules/@cloudbase/utilities/dist/esm/libs/langEvent.js +4 -0
  696. package/node_modules/@cloudbase/utilities/dist/esm/libs/util.d.ts +49 -0
  697. package/node_modules/@cloudbase/utilities/dist/esm/libs/util.js +254 -0
  698. package/node_modules/@cloudbase/utilities/dist/miniprogram/index.js +1 -0
  699. package/node_modules/@cloudbase/utilities/package.json +26 -0
  700. package/oauth/src/index.d.ts +1 -0
  701. package/oauth/src/index.ts +1 -0
  702. package/package.json +20 -6
  703. package/realtime/src/index.d.ts +2 -0
  704. package/realtime/src/index.ts +8 -0
  705. package/storage/src/index.d.ts +2 -0
  706. package/storage/src/index.js +5 -0
  707. package/storage/src/index.ts +4 -0
@@ -0,0 +1,768 @@
1
+ 'use strict';
2
+ import { ApiUrls, ApiUrlsV2, AUTH_STATE_CHANGED_TYPE, ErrorType, EVENTS, OAUTH_TYPE } from './consts';
3
+ import { OAuth2Client, defaultStorage } from '../oauth2client/oauth2client';
4
+ import { Captcha } from '../captcha/captcha';
5
+ import { deepClone } from '../utils';
6
+ import MyURLSearchParams from '../utils/urlSearchParams';
7
+ import { AuthError } from './auth-error';
8
+ async function getEncryptUtils(isEncrypt, adapter) {
9
+ const getUtils = async () => {
10
+ try {
11
+ const utils = require('../utils/encrypt');
12
+ return utils;
13
+ }
14
+ catch (error) {
15
+ try {
16
+ const utils = await import('../utils/encrypt');
17
+ return utils;
18
+ }
19
+ catch (error) {
20
+ return;
21
+ }
22
+ }
23
+ };
24
+ try {
25
+ if ((adapter?.root?.globalThis || globalThis).IS_MP_BUILD) {
26
+ return;
27
+ }
28
+ if (!process.env.IS_MP_BUILD && isEncrypt) {
29
+ return getUtils();
30
+ }
31
+ }
32
+ catch (error) {
33
+ if (isEncrypt) {
34
+ return getUtils();
35
+ }
36
+ }
37
+ }
38
+ export class Auth {
39
+ static parseParamsToSearch(params) {
40
+ Object.keys(params).forEach((key) => {
41
+ if (!params[key]) {
42
+ delete params[key];
43
+ }
44
+ });
45
+ const searchParams = new MyURLSearchParams(params);
46
+ return searchParams.toString();
47
+ }
48
+ constructor(opts) {
49
+ let { request } = opts;
50
+ let oAuth2Client = opts.credentialsClient;
51
+ if (!oAuth2Client) {
52
+ const initOptions = {
53
+ apiOrigin: opts.apiOrigin,
54
+ apiPath: opts.apiPath,
55
+ clientId: opts.clientId,
56
+ storage: opts.storage,
57
+ env: opts.env,
58
+ baseRequest: opts.baseRequest,
59
+ anonymousSignInFunc: opts.anonymousSignInFunc,
60
+ wxCloud: opts.wxCloud,
61
+ onCredentialsError: opts.onCredentialsError,
62
+ headers: opts.headers || {},
63
+ i18n: opts.i18n,
64
+ debug: opts.debug,
65
+ };
66
+ oAuth2Client = new OAuth2Client(initOptions);
67
+ }
68
+ if (!request) {
69
+ const baseRequest = oAuth2Client.request.bind(oAuth2Client);
70
+ const captcha = new Captcha({
71
+ env: opts.env,
72
+ clientId: opts.clientId,
73
+ request: baseRequest,
74
+ storage: opts.storage,
75
+ adapter: opts.adapter,
76
+ oauthInstance: this,
77
+ ...opts.captchaOptions,
78
+ });
79
+ request = captcha.request.bind(captcha);
80
+ }
81
+ this.config = {
82
+ env: opts.env,
83
+ apiOrigin: opts.apiOrigin,
84
+ apiPath: opts.apiPath,
85
+ clientId: opts.clientId,
86
+ request,
87
+ credentialsClient: oAuth2Client,
88
+ storage: opts.storage || defaultStorage,
89
+ adapter: opts.adapter,
90
+ };
91
+ }
92
+ getParamsByVersion(params, key) {
93
+ const paramsTemp = deepClone(params);
94
+ const url = { v2: ApiUrlsV2 }[paramsTemp?.version]?.[key] || ApiUrls[key];
95
+ if (paramsTemp) {
96
+ delete paramsTemp.version;
97
+ }
98
+ return { params: paramsTemp, url };
99
+ }
100
+ async signIn(params) {
101
+ const version = params.version || 'v1';
102
+ const res = this.getParamsByVersion(params, 'AUTH_SIGN_IN_URL');
103
+ if (res.params.query) {
104
+ delete res.params.query;
105
+ }
106
+ const body = await this.getEncryptParams(res.params);
107
+ const credentials = await this.config.request(res.url, {
108
+ method: 'POST',
109
+ body,
110
+ });
111
+ await this.config.credentialsClient.setCredentials({
112
+ ...credentials,
113
+ version,
114
+ });
115
+ return Promise.resolve(credentials);
116
+ }
117
+ async signInAnonymously(data = {}, useWxCloud = false) {
118
+ const credentials = await this.config.request(ApiUrls.AUTH_SIGN_IN_ANONYMOUSLY_URL, {
119
+ method: 'POST',
120
+ body: data,
121
+ useWxCloud,
122
+ });
123
+ await this.config.credentialsClient.setCredentials(credentials);
124
+ return Promise.resolve(credentials);
125
+ }
126
+ async signUp(params) {
127
+ const data = await this.config.request(ApiUrls.AUTH_SIGN_UP_URL, {
128
+ method: 'POST',
129
+ body: params,
130
+ });
131
+ await this.config.credentialsClient.setCredentials(data);
132
+ return Promise.resolve(data);
133
+ }
134
+ async signOut(params) {
135
+ let resp = {};
136
+ if (params) {
137
+ try {
138
+ resp = await this.config.request(ApiUrls.AUTH_SIGNOUT_URL, {
139
+ method: 'POST',
140
+ withCredentials: true,
141
+ body: params,
142
+ });
143
+ }
144
+ catch (err) {
145
+ if (err.error !== ErrorType.UNAUTHENTICATED) {
146
+ console.log('sign_out_error', err);
147
+ }
148
+ }
149
+ await this.config.credentialsClient.setCredentials();
150
+ return resp;
151
+ }
152
+ const accessToken = await this.config.credentialsClient.getAccessToken();
153
+ const data = await this.config.request(ApiUrls.AUTH_REVOKE_URL, {
154
+ method: 'POST',
155
+ body: {
156
+ token: accessToken,
157
+ },
158
+ });
159
+ await this.config.credentialsClient.setCredentials();
160
+ return Promise.resolve(data);
161
+ }
162
+ async revokeAllDevices() {
163
+ await this.config.request(ApiUrls.AUTH_REVOKE_ALL_URL, {
164
+ method: 'DELETE',
165
+ withCredentials: true,
166
+ });
167
+ }
168
+ async revokeDevice(params) {
169
+ await this.config.request(ApiUrls.AUTHORIZED_DEVICES_DELETE_URL + params.device_id, {
170
+ method: 'DELETE',
171
+ withCredentials: true,
172
+ });
173
+ }
174
+ async getVerification(params, options) {
175
+ let withCredentials = false;
176
+ if (params.target === 'CUR_USER') {
177
+ withCredentials = true;
178
+ }
179
+ else {
180
+ const hasLogin = await this.hasLoginState();
181
+ if (hasLogin) {
182
+ withCredentials = true;
183
+ }
184
+ }
185
+ const body = deepClone(params);
186
+ if (body.phone_number && !/^\+\d{1,3}\s+\d+/.test(body.phone_number)) {
187
+ body.phone_number = `+86 ${body.phone_number}`;
188
+ }
189
+ return this.config.request(ApiUrls.VERIFICATION_URL, {
190
+ method: 'POST',
191
+ body,
192
+ withCaptcha: options?.withCaptcha || false,
193
+ withCredentials,
194
+ });
195
+ }
196
+ async verify(params) {
197
+ const res = this.getParamsByVersion(params, 'VERIFY_URL');
198
+ const data = await this.config.request(res.url, {
199
+ method: 'POST',
200
+ body: res.params,
201
+ });
202
+ if (params?.version === 'v2') {
203
+ await this.config.credentialsClient.setCredentials({
204
+ ...data,
205
+ version: 'v2',
206
+ });
207
+ }
208
+ return data;
209
+ }
210
+ async genProviderRedirectUri(params) {
211
+ const { provider_redirect_uri: redirect_uri, other_params: otherParams = {}, ...restParams } = params;
212
+ if (redirect_uri && !restParams.redirect_uri) {
213
+ restParams.redirect_uri = redirect_uri;
214
+ }
215
+ let url = `${ApiUrls.PROVIDER_URI_URL}?${Auth.parseParamsToSearch(restParams)}`;
216
+ Object.keys(otherParams).forEach((key) => {
217
+ const value = otherParams[key];
218
+ if (key === 'sign_out_uri' && !(value?.length > 0)) {
219
+ return;
220
+ }
221
+ url += `&other_params[${key}]=${encodeURIComponent(value)}`;
222
+ });
223
+ return this.config.request(url, {
224
+ method: 'GET',
225
+ });
226
+ }
227
+ async grantProviderToken(params, useWxCloud = false) {
228
+ return this.config.request(ApiUrls.PROVIDER_TOKEN_URL, {
229
+ method: 'POST',
230
+ body: params,
231
+ useWxCloud,
232
+ });
233
+ }
234
+ async patchProviderToken(params) {
235
+ return this.config.request(ApiUrls.PROVIDER_TOKEN_URL, {
236
+ method: 'PATCH',
237
+ body: params,
238
+ });
239
+ }
240
+ async signInWithProvider(params, useWxCloud = false) {
241
+ const res = this.getParamsByVersion(params, 'AUTH_SIGN_IN_WITH_PROVIDER_URL');
242
+ const credentials = await this.config.request(res.url, {
243
+ method: 'POST',
244
+ body: res.params,
245
+ useWxCloud,
246
+ });
247
+ await this.config.credentialsClient.setCredentials({
248
+ ...credentials,
249
+ version: params?.version || 'v1',
250
+ });
251
+ return Promise.resolve(credentials);
252
+ }
253
+ async toBindIdentity(params) {
254
+ const credentials = params.credentials || (await this.config.credentialsClient.localCredentials.getCredentials());
255
+ let res;
256
+ try {
257
+ await this.bindWithProvider({
258
+ provider_token: params.provider_token,
259
+ }, credentials);
260
+ res = { data: { type: OAUTH_TYPE.BIND_IDENTITY, provider: params.provider }, error: null };
261
+ }
262
+ catch (error) {
263
+ res = { data: { type: OAUTH_TYPE.BIND_IDENTITY }, error: new AuthError(error) };
264
+ }
265
+ if (params.fireEvent) {
266
+ this.config.eventBus?.fire?.(EVENTS.AUTH_STATE_CHANGED, {
267
+ event: AUTH_STATE_CHANGED_TYPE.BIND_IDENTITY,
268
+ info: res,
269
+ });
270
+ }
271
+ return res;
272
+ }
273
+ async getInitialSession() {
274
+ let data = {};
275
+ try {
276
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
277
+ return { data: null, error: null };
278
+ }
279
+ const localSearch = new URLSearchParams(location?.search);
280
+ const code = localSearch.get('code');
281
+ const state = localSearch.get('state');
282
+ if (!code || !state) {
283
+ return { data: null, error: null };
284
+ }
285
+ let cacheData = null;
286
+ try {
287
+ cacheData = JSON.parse(sessionStorage.getItem(state) || 'null');
288
+ }
289
+ catch {
290
+ }
291
+ data = { type: cacheData?.type };
292
+ const errorParam = localSearch.get('error');
293
+ const errorDescription = localSearch.get('error_description');
294
+ if (errorParam || errorDescription) {
295
+ return {
296
+ data,
297
+ error: new AuthError({ message: errorDescription || errorParam || 'Unknown error from OAuth provider' }),
298
+ };
299
+ }
300
+ const provider = cacheData?.provider || localSearch.get('provider');
301
+ if (!provider) {
302
+ return { data, error: new AuthError({ message: 'Provider is required for OAuth verification' }) };
303
+ }
304
+ const redirectUri = location.origin + location.pathname;
305
+ const { provider_token: providerToken } = await this.grantProviderToken({
306
+ provider_id: provider,
307
+ provider_redirect_uri: redirectUri,
308
+ provider_code: code,
309
+ });
310
+ let credentials;
311
+ let user = null;
312
+ let res;
313
+ if (cacheData.type === OAUTH_TYPE.BIND_IDENTITY) {
314
+ credentials = await this.config.credentialsClient.localCredentials.getCredentials();
315
+ res = await this.toBindIdentity({ provider, provider_token: providerToken, credentials });
316
+ }
317
+ else if (cacheData.type === OAUTH_TYPE.SIGN_IN) {
318
+ res = this.getParamsByVersion({ provider }, 'AUTH_SIGN_IN_WITH_PROVIDER_URL');
319
+ credentials = await this.config.request(res.url, {
320
+ method: 'POST',
321
+ body: { provider_token: providerToken },
322
+ });
323
+ try {
324
+ user = await this.getUserInfo({ credentials });
325
+ }
326
+ catch (e) {
327
+ console.error('get user info error', e);
328
+ }
329
+ res = { data: { ...data, session: credentials, user }, error: null };
330
+ }
331
+ localSearch.delete('code');
332
+ localSearch.delete('state');
333
+ localSearch.delete('provider');
334
+ this.restoreUrlState(cacheData?.search === undefined ? `?${localSearch.toString()}` : cacheData.search, cacheData?.hash || location.hash);
335
+ try {
336
+ sessionStorage.removeItem(state);
337
+ }
338
+ catch {
339
+ }
340
+ return res;
341
+ }
342
+ catch (error) {
343
+ return { data, error: new AuthError(error) };
344
+ }
345
+ }
346
+ async signInCustom(params) {
347
+ const credentials = await this.config.request(ApiUrls.AUTH_SIGN_IN_CUSTOM, {
348
+ method: 'POST',
349
+ body: params,
350
+ });
351
+ await this.config.credentialsClient.setCredentials(credentials);
352
+ return Promise.resolve(credentials);
353
+ }
354
+ async signInWithWechat(params = {}) {
355
+ const credentials = await this.config.request(ApiUrls.AUTH_SIGN_IN_WITH_WECHAT_URL, {
356
+ method: 'POST',
357
+ body: params,
358
+ });
359
+ await this.config.credentialsClient.setCredentials(credentials);
360
+ return Promise.resolve(credentials);
361
+ }
362
+ async bindWithProvider(params, credentials) {
363
+ return this.config.request(ApiUrls.PROVIDER_BIND_URL, {
364
+ method: 'POST',
365
+ body: params,
366
+ withCredentials: true,
367
+ getCredentials: credentials ? () => credentials : undefined,
368
+ });
369
+ }
370
+ async getUserProfile(params) {
371
+ return this.getUserInfo(params);
372
+ }
373
+ async getUserInfo(params = {}) {
374
+ const res = this.getParamsByVersion(params, 'USER_ME_URL');
375
+ if (res.params?.query) {
376
+ const searchParams = new MyURLSearchParams(res.params.query);
377
+ res.url += `?${searchParams.toString()}`;
378
+ }
379
+ const userInfo = await this.config.request(res.url, {
380
+ method: 'GET',
381
+ withCredentials: true,
382
+ getCredentials: params.credentials ? () => params.credentials : undefined,
383
+ });
384
+ if (userInfo.sub) {
385
+ userInfo.uid = userInfo.sub;
386
+ }
387
+ if (userInfo.providers?.length) {
388
+ try {
389
+ if (typeof wx !== 'undefined' && wx.getAccountInfoSync) {
390
+ const wxAppId = wx.getAccountInfoSync().miniProgram?.appId;
391
+ const matched = userInfo.providers.find(p => p.id === wxAppId);
392
+ if (matched?.provider_user_id) {
393
+ userInfo.open_id = matched.provider_user_id;
394
+ }
395
+ }
396
+ }
397
+ catch (e) { }
398
+ }
399
+ return userInfo;
400
+ }
401
+ async getWedaUserInfo() {
402
+ const userInfo = await this.config.request(ApiUrls.WEDA_USER_URL, {
403
+ method: 'GET',
404
+ withCredentials: true,
405
+ });
406
+ return userInfo;
407
+ }
408
+ async deleteMe(params) {
409
+ const res = this.getParamsByVersion(params, 'USER_ME_URL');
410
+ const url = `${res.url}?${Auth.parseParamsToSearch(res.params)}`;
411
+ return this.config.request(url, {
412
+ method: 'DELETE',
413
+ withCredentials: true,
414
+ });
415
+ }
416
+ async hasLoginState() {
417
+ try {
418
+ await this.config.credentialsClient.getAccessToken();
419
+ return true;
420
+ }
421
+ catch (error) {
422
+ return false;
423
+ }
424
+ }
425
+ hasLoginStateSync() {
426
+ const credentials = this.config.credentialsClient.getCredentialsSync();
427
+ return credentials;
428
+ }
429
+ async getLoginState() {
430
+ return this.config.credentialsClient.getCredentialsAsync();
431
+ }
432
+ async transByProvider(params) {
433
+ return this.config.request(ApiUrls.USER_TRANS_BY_PROVIDER_URL, {
434
+ method: 'PATCH',
435
+ body: params,
436
+ withCredentials: true,
437
+ });
438
+ }
439
+ async grantToken(params) {
440
+ const res = this.getParamsByVersion(params, 'AUTH_TOKEN_URL');
441
+ return this.config.request(res.url, {
442
+ method: 'POST',
443
+ body: res.params,
444
+ });
445
+ }
446
+ async getProviders() {
447
+ return this.config.request(ApiUrls.PROVIDER_LIST, {
448
+ method: 'GET',
449
+ withCredentials: true,
450
+ });
451
+ }
452
+ async unbindProvider(params) {
453
+ return this.config.request(`${ApiUrls.PROVIDER_UNBIND_URL}/${params.provider_id}`, {
454
+ method: 'DELETE',
455
+ withCredentials: true,
456
+ });
457
+ }
458
+ async checkPassword(params) {
459
+ return this.config.request(`${ApiUrls.CHECK_PWD_URL}`, {
460
+ method: 'POST',
461
+ withCredentials: true,
462
+ body: params,
463
+ });
464
+ }
465
+ async editContact(params) {
466
+ return this.config.request(`${ApiUrls.BIND_CONTACT_URL}`, {
467
+ method: 'PATCH',
468
+ withCredentials: true,
469
+ body: params,
470
+ });
471
+ }
472
+ async setPassword(params) {
473
+ return this.config.request(`${ApiUrls.AUTH_SET_PASSWORD}`, {
474
+ method: 'PATCH',
475
+ withCredentials: true,
476
+ body: params,
477
+ });
478
+ }
479
+ async updatePasswordByOld(params) {
480
+ const sudoToken = await this.sudo({ password: params.old_password });
481
+ return this.setPassword({
482
+ sudo_token: sudoToken.sudo_token,
483
+ new_password: params.new_password,
484
+ });
485
+ }
486
+ async sudo(params) {
487
+ return this.config.request(`${ApiUrls.SUDO_URL}`, {
488
+ method: 'POST',
489
+ withCredentials: true,
490
+ body: params,
491
+ });
492
+ }
493
+ async sendVerificationCodeToCurrentUser(params) {
494
+ params.target = 'CUR_USER';
495
+ return this.config.request(ApiUrls.VERIFICATION_URL, {
496
+ method: 'POST',
497
+ body: params,
498
+ withCredentials: true,
499
+ withCaptcha: true,
500
+ });
501
+ }
502
+ async changeBoundProvider(params) {
503
+ return this.config.request(`${ApiUrls.PROVIDER_LIST}/${params.provider_id}/trans`, {
504
+ method: 'POST',
505
+ body: {
506
+ provider_trans_token: params.trans_token,
507
+ },
508
+ withCredentials: true,
509
+ });
510
+ }
511
+ async setUserProfile(params) {
512
+ return this.config.request(ApiUrls.USER_PRIFILE_URL, {
513
+ method: 'PATCH',
514
+ body: params,
515
+ withCredentials: true,
516
+ });
517
+ }
518
+ async updateUserBasicInfo(params) {
519
+ return this.config.request(ApiUrls.USER_BASIC_EDIT_URL, {
520
+ method: 'POST',
521
+ withCredentials: true,
522
+ body: params,
523
+ });
524
+ }
525
+ async queryUserProfile(params) {
526
+ const searchParams = new MyURLSearchParams(params);
527
+ return this.config.request(`${ApiUrls.USER_QUERY_URL}?${searchParams.toString()}`, {
528
+ method: 'GET',
529
+ withCredentials: true,
530
+ });
531
+ }
532
+ setCustomSignFunc(getTickFn) {
533
+ this.getCustomSignTicketFn = getTickFn;
534
+ }
535
+ async signInWithCustomTicket() {
536
+ const customSignTicketFn = this.getCustomSignTicketFn;
537
+ if (!customSignTicketFn) {
538
+ return Promise.reject({
539
+ error: 'failed_precondition',
540
+ error_description: 'please use setCustomSignFunc to set custom sign function',
541
+ });
542
+ }
543
+ const customTicket = await customSignTicketFn();
544
+ return this.signInCustom({
545
+ provider_id: 'custom',
546
+ ticket: customTicket,
547
+ });
548
+ }
549
+ async resetPassword(params) {
550
+ return this.config.request(ApiUrls.AUTH_RESET_PASSWORD, {
551
+ method: 'POST',
552
+ body: params,
553
+ });
554
+ }
555
+ async authorize(params) {
556
+ return this.config.request(ApiUrls.AUTHORIZE_URL, {
557
+ method: 'POST',
558
+ withCredentials: true,
559
+ body: params,
560
+ });
561
+ }
562
+ async authorizeDevice(params) {
563
+ return this.config.request(ApiUrls.AUTHORIZE_DEVICE_URL, {
564
+ method: 'POST',
565
+ withCredentials: true,
566
+ body: params,
567
+ });
568
+ }
569
+ async deviceAuthorize(params) {
570
+ return this.config.request(ApiUrls.AUTH_GET_DEVICE_CODE, {
571
+ method: 'POST',
572
+ body: params,
573
+ });
574
+ }
575
+ async authorizeInfo(params) {
576
+ const url = `${ApiUrls.AUTHORIZE_INFO_URL}?${Auth.parseParamsToSearch(params)}`;
577
+ let withBasicAuth = true;
578
+ let withCredentials = false;
579
+ const hasLogin = await this.hasLoginState();
580
+ if (hasLogin) {
581
+ withCredentials = true;
582
+ withBasicAuth = false;
583
+ }
584
+ return this.config.request(url, {
585
+ method: 'GET',
586
+ withBasicAuth,
587
+ withCredentials,
588
+ });
589
+ }
590
+ async checkUsername(params) {
591
+ return this.config.request(ApiUrls.CHECK_USERNAME, {
592
+ method: 'GET',
593
+ body: params,
594
+ withCredentials: true,
595
+ });
596
+ }
597
+ async checkIfUserExist(params) {
598
+ const searchParams = new MyURLSearchParams(params);
599
+ return this.config.request(`${ApiUrls.CHECK_IF_USER_EXIST}?${searchParams.toString()}`, {
600
+ method: 'GET',
601
+ });
602
+ }
603
+ async loginScope() {
604
+ return this.config.credentialsClient.getScope();
605
+ }
606
+ async loginGroups() {
607
+ return this.config.credentialsClient.getGroups();
608
+ }
609
+ async refreshTokenForce(params) {
610
+ const credentials = await this.config.credentialsClient.getCredentials();
611
+ return await this.config.credentialsClient.refreshToken({
612
+ ...credentials,
613
+ version: params?.version || 'v1',
614
+ });
615
+ }
616
+ async getCredentials() {
617
+ return this.config.credentialsClient.getCredentials();
618
+ }
619
+ async getPublicKey() {
620
+ return this.config.request(ApiUrlsV2.AUTH_PUBLIC_KEY, {
621
+ method: 'POST',
622
+ body: {},
623
+ });
624
+ }
625
+ async getEncryptParams(params) {
626
+ const { isEncrypt } = params;
627
+ delete params.isEncrypt;
628
+ const payload = deepClone(params);
629
+ const encryptUtils = await getEncryptUtils(isEncrypt, this.config.adapter);
630
+ if (!encryptUtils) {
631
+ return params;
632
+ }
633
+ let publicKey = '';
634
+ let public_key_thumbprint = '';
635
+ try {
636
+ const res = await this.getPublicKey();
637
+ publicKey = res.public_key;
638
+ public_key_thumbprint = res.public_key_thumbprint;
639
+ if (!publicKey || !public_key_thumbprint) {
640
+ throw res;
641
+ }
642
+ }
643
+ catch (error) {
644
+ throw error;
645
+ }
646
+ return {
647
+ params: encryptUtils.getEncryptInfo({ publicKey, payload }),
648
+ public_key_thumbprint,
649
+ };
650
+ }
651
+ async getProviderSubType() {
652
+ return this.config.request(ApiUrls.GET_PROVIDER_TYPE, {
653
+ method: 'POST',
654
+ body: {
655
+ provider_id: 'weda',
656
+ },
657
+ });
658
+ }
659
+ async verifyCaptchaData({ token, key }) {
660
+ return this.config.request(ApiUrls.VERIFY_CAPTCHA_DATA_URL, {
661
+ method: 'POST',
662
+ body: { token, key },
663
+ withCredentials: false,
664
+ });
665
+ }
666
+ async createCaptchaData({ state, redirect_uri = undefined }) {
667
+ return this.config.request(ApiUrls.CAPTCHA_DATA_URL, {
668
+ method: 'POST',
669
+ body: { state, redirect_uri },
670
+ withCredentials: false,
671
+ });
672
+ }
673
+ async getMiniProgramCode(params) {
674
+ return this.config.request(ApiUrls.GET_MINIPROGRAM_QRCODE, {
675
+ method: 'POST',
676
+ body: params,
677
+ });
678
+ }
679
+ async getMiniProgramQrCodeStatus(params) {
680
+ return this.config.request(ApiUrls.GET_MINIPROGRAM_QRCODE_STATUS, {
681
+ method: 'POST',
682
+ body: params,
683
+ });
684
+ }
685
+ async getUserBehaviorLog(params) {
686
+ const action = { LOGIN: 'query[action]=USER_LOGIN', MODIFY: 'ne_query[action]=USER_LOGIN' };
687
+ const url = `${ApiUrls.GET_USER_BEHAVIOR_LOG}?${action[params.type]}&limit=${params.limit}${params.page_token ? `&page_token=${params.page_token}` : ''}`;
688
+ return this.config.request(url, {
689
+ method: 'GET',
690
+ withCredentials: true,
691
+ });
692
+ }
693
+ async modifyPassword(params) {
694
+ let publicKey = '';
695
+ let public_key_thumbprint = '';
696
+ const encryptUtils = await getEncryptUtils(true, this.config.adapter);
697
+ if (!encryptUtils) {
698
+ throw new Error('do not support encrypt, a encrypt util required.');
699
+ }
700
+ try {
701
+ const res = await this.getPublicKey();
702
+ publicKey = res.public_key;
703
+ public_key_thumbprint = res.public_key_thumbprint;
704
+ if (!publicKey || !public_key_thumbprint) {
705
+ throw res;
706
+ }
707
+ }
708
+ catch (error) {
709
+ throw error;
710
+ }
711
+ const encrypt_password = params.password ? encryptUtils.getEncryptInfo({ publicKey, payload: params.password }) : '';
712
+ const encrypt_new_password = encryptUtils.getEncryptInfo({ publicKey, payload: params.new_password });
713
+ return this.config.request(ApiUrls.USER_BASIC_EDIT_URL, {
714
+ method: 'POST',
715
+ withCredentials: true,
716
+ body: {
717
+ user_id: params.user_id,
718
+ encrypt_password,
719
+ encrypt_new_password,
720
+ public_key_thumbprint,
721
+ },
722
+ });
723
+ }
724
+ async modifyPasswordWithoutLogin(params) {
725
+ let publicKey = '';
726
+ let public_key_thumbprint = '';
727
+ const encryptUtils = await getEncryptUtils(true, this.config.adapter);
728
+ if (!encryptUtils) {
729
+ throw new Error('do not support encrypt, a encrypt util required.');
730
+ }
731
+ try {
732
+ const res = await this.getPublicKey();
733
+ publicKey = res.public_key;
734
+ public_key_thumbprint = res.public_key_thumbprint;
735
+ if (!publicKey || !public_key_thumbprint) {
736
+ throw res;
737
+ }
738
+ }
739
+ catch (error) {
740
+ throw error;
741
+ }
742
+ const encrypt_password = params.password ? encryptUtils.getEncryptInfo({ publicKey, payload: params.password }) : '';
743
+ const encrypt_new_password = encryptUtils.getEncryptInfo({ publicKey, payload: params.new_password });
744
+ return this.config.request(ApiUrlsV2.AUTH_RESET_PASSWORD, {
745
+ method: 'POST',
746
+ body: {
747
+ username: params.username,
748
+ password: encrypt_password,
749
+ new_password: encrypt_new_password,
750
+ public_key_thumbprint,
751
+ },
752
+ });
753
+ }
754
+ restoreUrlState(search, hash) {
755
+ if (search === undefined)
756
+ return;
757
+ try {
758
+ const url = new URL(window.location.href);
759
+ url.search = search;
760
+ url.hash = hash || '';
761
+ window.history.replaceState(null, '', url.toString());
762
+ window.location.replace(url.toString());
763
+ }
764
+ catch {
765
+ }
766
+ }
767
+ }
768
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBO0FBRVosT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUE4RHJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFFM0UsT0FBTyxFQUFFLE9BQU8sRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3BDLE9BQU8saUJBQWlCLE1BQU0sMEJBQTBCLENBQUE7QUFHeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUl4QyxLQUFLLFVBQVUsZUFBZSxDQUFDLFNBQVMsRUFBRSxPQUE0QjtJQUNwRSxNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtRQUMxQixJQUFJO1lBR0YsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFFekMsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSTtnQkFFRixNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO2dCQUM5QyxPQUFPLEtBQUssQ0FBQTthQUNiO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTTthQUNQO1NBQ0Y7SUFDSCxDQUFDLENBQUE7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUN6RCxPQUFNO1NBQ1A7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUks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