@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.
- package/ai/src/index.d.ts +1 -0
- package/ai/src/index.ts +1 -0
- package/analytics/src/index.d.ts +2 -0
- package/analytics/src/index.ts +4 -0
- package/apis/src/index.d.ts +1 -0
- package/apis/src/index.ts +1 -0
- package/app/src/index.d.ts +9 -0
- package/app/src/index.ts +17 -0
- package/auth/src/index.d.ts +2 -0
- package/auth/src/index.ts +8 -0
- package/cloudrun/src/index.d.ts +1 -0
- package/cloudrun/src/index.ts +1 -0
- package/container/src/index.d.ts +2 -0
- package/container/src/index.ts +8 -0
- package/database/src/index.d.ts +3 -0
- package/database/src/index.ts +486 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/functions/src/index.d.ts +2 -0
- package/functions/src/index.ts +8 -0
- package/miniprogram_dist/index.js +1 -1
- package/model/src/index.d.ts +1 -0
- package/model/src/index.ts +1 -0
- package/mysql/src/index.d.ts +1 -0
- package/mysql/src/index.ts +1 -0
- package/node_modules/@cloudbase/ai/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/ai/dist/cjs/AI.d.ts +27 -0
- package/node_modules/@cloudbase/ai/dist/cjs/AI.js +224 -0
- package/node_modules/@cloudbase/ai/dist/cjs/bot/index.d.ts +41 -0
- package/node_modules/@cloudbase/ai/dist/cjs/bot/index.js +376 -0
- package/node_modules/@cloudbase/ai/dist/cjs/bot/types.d.ts +144 -0
- package/node_modules/@cloudbase/ai/dist/cjs/bot/types.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/index.d.ts +2 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/index.js +6 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/parse.d.ts +2 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/parse.js +126 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/stream.d.ts +5 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/stream.js +40 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/types.d.ts +16 -0
- package/node_modules/@cloudbase/ai/dist/cjs/eventsource_parser/types.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/index.d.ts +40 -0
- package/node_modules/@cloudbase/ai/dist/cjs/index.js +187 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/index.js +130 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/type.d.ts +71 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Ark/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/index.js +130 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/type.d.ts +74 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DashScope/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DeepSeek/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/DeepSeek/index.js +126 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Default/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Default/index.js +122 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/index.js +135 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/type.d.ts +74 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/util.d.ts +4 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuan/util.js +56 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanBeta/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanBeta/index.js +127 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanExp/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanExp/index.js +125 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanOpen/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/HunYuanOpen/index.js +127 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/index.js +130 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/type.d.ts +85 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Moonshot/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/index.js +133 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/type.d.ts +75 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/Yi/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/index.js +139 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/type.d.ts +71 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/ZhiPu/type.js +3 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/image-model.d.ts +18 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/image-model.js +85 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/index.d.ts +26 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/index.js +42 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/model.d.ts +40 -0
- package/node_modules/@cloudbase/ai/dist/cjs/models/model.js +481 -0
- package/node_modules/@cloudbase/ai/dist/cjs/type.d.ts +190 -0
- package/node_modules/@cloudbase/ai/dist/cjs/type.js +10 -0
- package/node_modules/@cloudbase/ai/dist/cjs/utils.d.ts +38 -0
- package/node_modules/@cloudbase/ai/dist/cjs/utils.js +263 -0
- package/node_modules/@cloudbase/ai/dist/esm/AI.d.ts +27 -0
- package/node_modules/@cloudbase/ai/dist/esm/AI.js +198 -0
- package/node_modules/@cloudbase/ai/dist/esm/bot/index.d.ts +41 -0
- package/node_modules/@cloudbase/ai/dist/esm/bot/index.js +373 -0
- package/node_modules/@cloudbase/ai/dist/esm/bot/types.d.ts +144 -0
- package/node_modules/@cloudbase/ai/dist/esm/bot/types.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/index.d.ts +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/index.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/parse.d.ts +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/parse.js +122 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/stream.d.ts +5 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/stream.js +37 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/types.d.ts +16 -0
- package/node_modules/@cloudbase/ai/dist/esm/eventsource_parser/types.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/index.d.ts +40 -0
- package/node_modules/@cloudbase/ai/dist/esm/index.js +152 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Ark/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Ark/index.js +127 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Ark/type.d.ts +71 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Ark/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/index.js +127 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/type.d.ts +74 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DashScope/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DeepSeek/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/DeepSeek/index.js +123 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Default/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Default/index.js +119 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/index.js +132 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/type.d.ts +74 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/util.d.ts +4 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuan/util.js +51 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanBeta/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanBeta/index.js +124 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanExp/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanExp/index.js +122 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanOpen/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/HunYuanOpen/index.js +124 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/index.js +127 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/type.d.ts +85 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Moonshot/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Yi/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Yi/index.js +130 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Yi/type.d.ts +75 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/Yi/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/index.d.ts +10 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/index.js +136 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/type.d.ts +71 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/ZhiPu/type.js +2 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/image-model.d.ts +18 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/image-model.js +82 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/index.d.ts +26 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/index.js +27 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/model.d.ts +40 -0
- package/node_modules/@cloudbase/ai/dist/esm/models/model.js +478 -0
- package/node_modules/@cloudbase/ai/dist/esm/type.d.ts +190 -0
- package/node_modules/@cloudbase/ai/dist/esm/type.js +7 -0
- package/node_modules/@cloudbase/ai/dist/esm/utils.d.ts +38 -0
- package/node_modules/@cloudbase/ai/dist/esm/utils.js +252 -0
- package/node_modules/@cloudbase/ai/dist/miniprogram/index.js +2 -0
- package/node_modules/@cloudbase/ai/dist/miniprogram/index.js.LICENSE.txt +22 -0
- package/node_modules/@cloudbase/ai/package.json +32 -0
- package/node_modules/@cloudbase/analytics/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/analytics/dist/cjs/index.d.ts +2 -0
- package/node_modules/@cloudbase/analytics/dist/cjs/index.js +144 -0
- package/node_modules/@cloudbase/analytics/dist/esm/index.d.ts +2 -0
- package/node_modules/@cloudbase/analytics/dist/esm/index.js +140 -0
- package/node_modules/@cloudbase/analytics/package.json +22 -0
- package/node_modules/@cloudbase/apis/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/apis/dist/cjs/callApis.d.ts +20 -0
- package/node_modules/@cloudbase/apis/dist/cjs/callApis.js +154 -0
- package/node_modules/@cloudbase/apis/dist/cjs/index.d.ts +5 -0
- package/node_modules/@cloudbase/apis/dist/cjs/index.js +53 -0
- package/node_modules/@cloudbase/apis/dist/cjs/type.d.ts +14 -0
- package/node_modules/@cloudbase/apis/dist/cjs/type.js +3 -0
- package/node_modules/@cloudbase/apis/dist/esm/callApis.d.ts +20 -0
- package/node_modules/@cloudbase/apis/dist/esm/callApis.js +148 -0
- package/node_modules/@cloudbase/apis/dist/esm/index.d.ts +5 -0
- package/node_modules/@cloudbase/apis/dist/esm/index.js +35 -0
- package/node_modules/@cloudbase/apis/dist/esm/type.d.ts +14 -0
- package/node_modules/@cloudbase/apis/dist/esm/type.js +2 -0
- package/node_modules/@cloudbase/apis/dist/miniprogram/index.js +1 -0
- package/node_modules/@cloudbase/apis/package.json +28 -0
- package/node_modules/@cloudbase/app/.eslintrc.js +12 -0
- package/node_modules/@cloudbase/app/dist/cjs/constants/common.d.ts +38 -0
- package/node_modules/@cloudbase/app/dist/cjs/constants/common.js +103 -0
- package/node_modules/@cloudbase/app/dist/cjs/index.d.ts +65 -0
- package/node_modules/@cloudbase/app/dist/cjs/index.js +340 -0
- package/node_modules/@cloudbase/app/dist/cjs/index.node.d.ts +6 -0
- package/node_modules/@cloudbase/app/dist/cjs/index.node.js +20 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/constants.d.ts +33 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/constants.js +38 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.d.ts +13 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/context.js +162 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.d.ts +23 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/index.js +124 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/metadata.d.ts +14 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/metadata.js +130 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.d.ts +38 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/request.js +445 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/tool.d.ts +2 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/tool.js +228 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.d.ts +78 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/types.js +3 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.d.ts +17 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter-node/utils.js +221 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter.d.ts +3 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/adapter.js +163 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/cache.d.ts +6 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/cache.js +38 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/component.d.ts +3 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/component.js +126 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/lang.d.ts +23 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/lang.js +59 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/request.d.ts +62 -0
- package/node_modules/@cloudbase/app/dist/cjs/libs/request.js +480 -0
- package/node_modules/@cloudbase/app/dist/esm/constants/common.d.ts +38 -0
- package/node_modules/@cloudbase/app/dist/esm/constants/common.js +91 -0
- package/node_modules/@cloudbase/app/dist/esm/index.d.ts +65 -0
- package/node_modules/@cloudbase/app/dist/esm/index.js +335 -0
- package/node_modules/@cloudbase/app/dist/esm/index.node.d.ts +6 -0
- package/node_modules/@cloudbase/app/dist/esm/index.node.js +12 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/constants.d.ts +33 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/constants.js +35 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.d.ts +13 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/context.js +156 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.d.ts +23 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/index.js +118 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/metadata.d.ts +14 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/metadata.js +123 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.d.ts +38 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/request.js +442 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/tool.d.ts +2 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/tool.js +224 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.d.ts +78 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/types.js +2 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.d.ts +17 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter-node/utils.js +205 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter.d.ts +3 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/adapter.js +136 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/cache.d.ts +6 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/cache.js +32 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/component.d.ts +3 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/component.js +121 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/lang.d.ts +23 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/lang.js +54 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/request.d.ts +62 -0
- package/node_modules/@cloudbase/app/dist/esm/libs/request.js +475 -0
- package/node_modules/@cloudbase/app/dist/miniprogram/index.js +2 -0
- package/node_modules/@cloudbase/app/dist/miniprogram/index.js.LICENSE.txt +7 -0
- package/node_modules/@cloudbase/app/package.json +59 -0
- package/node_modules/@cloudbase/auth/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/auth/dist/cjs/adapter.d.ts +2 -0
- package/node_modules/@cloudbase/auth/dist/cjs/adapter.js +272 -0
- package/node_modules/@cloudbase/auth/dist/cjs/index.d.ts +283 -0
- package/node_modules/@cloudbase/auth/dist/cjs/index.js +3018 -0
- package/node_modules/@cloudbase/auth/dist/cjs/type.d.ts +258 -0
- package/node_modules/@cloudbase/auth/dist/cjs/type.js +6 -0
- package/node_modules/@cloudbase/auth/dist/cjs/utilities.d.ts +7 -0
- package/node_modules/@cloudbase/auth/dist/cjs/utilities.js +23 -0
- package/node_modules/@cloudbase/auth/dist/cjs/utils.d.ts +5 -0
- package/node_modules/@cloudbase/auth/dist/cjs/utils.js +60 -0
- package/node_modules/@cloudbase/auth/dist/cjs/v1-compat.d.ts +77 -0
- package/node_modules/@cloudbase/auth/dist/cjs/v1-compat.js +423 -0
- package/node_modules/@cloudbase/auth/dist/esm/adapter.d.ts +2 -0
- package/node_modules/@cloudbase/auth/dist/esm/adapter.js +268 -0
- package/node_modules/@cloudbase/auth/dist/esm/index.d.ts +283 -0
- package/node_modules/@cloudbase/auth/dist/esm/index.js +3008 -0
- package/node_modules/@cloudbase/auth/dist/esm/type.d.ts +258 -0
- package/node_modules/@cloudbase/auth/dist/esm/type.js +3 -0
- package/node_modules/@cloudbase/auth/dist/esm/utilities.d.ts +7 -0
- package/node_modules/@cloudbase/auth/dist/esm/utilities.js +8 -0
- package/node_modules/@cloudbase/auth/dist/esm/utils.d.ts +5 -0
- package/node_modules/@cloudbase/auth/dist/esm/utils.js +52 -0
- package/node_modules/@cloudbase/auth/dist/esm/v1-compat.d.ts +77 -0
- package/node_modules/@cloudbase/auth/dist/esm/v1-compat.js +419 -0
- package/node_modules/@cloudbase/auth/dist/miniprogram/index.js +1 -0
- package/node_modules/@cloudbase/auth/package.json +31 -0
- package/node_modules/@cloudbase/cloudrun/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/cloudrun/dist/cjs/index.d.ts +4 -0
- package/node_modules/@cloudbase/cloudrun/dist/cjs/index.js +154 -0
- package/node_modules/@cloudbase/cloudrun/dist/esm/index.d.ts +4 -0
- package/node_modules/@cloudbase/cloudrun/dist/esm/index.js +149 -0
- package/node_modules/@cloudbase/cloudrun/package.json +30 -0
- package/node_modules/@cloudbase/container/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/container/.prettierrc.js +41 -0
- package/node_modules/@cloudbase/container/dist/cjs/constants/index.d.ts +1 -0
- package/node_modules/@cloudbase/container/dist/cjs/constants/index.js +5 -0
- package/node_modules/@cloudbase/container/dist/cjs/go_wams_exec.d.ts +2 -0
- package/node_modules/@cloudbase/container/dist/cjs/go_wams_exec.js +538 -0
- package/node_modules/@cloudbase/container/dist/cjs/index.d.ts +13 -0
- package/node_modules/@cloudbase/container/dist/cjs/index.js +343 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/index.d.ts +3 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/index.js +83 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/loader.d.ts +8 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/loader.js +186 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/request.d.ts +12 -0
- package/node_modules/@cloudbase/container/dist/cjs/utils/request.js +106 -0
- package/node_modules/@cloudbase/container/dist/esm/constants/index.d.ts +1 -0
- package/node_modules/@cloudbase/container/dist/esm/constants/index.js +2 -0
- package/node_modules/@cloudbase/container/dist/esm/go_wams_exec.d.ts +2 -0
- package/node_modules/@cloudbase/container/dist/esm/go_wams_exec.js +536 -0
- package/node_modules/@cloudbase/container/dist/esm/index.d.ts +13 -0
- package/node_modules/@cloudbase/container/dist/esm/index.js +338 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/index.d.ts +3 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/index.js +77 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/loader.d.ts +8 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/loader.js +178 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/request.d.ts +12 -0
- package/node_modules/@cloudbase/container/dist/esm/utils/request.js +102 -0
- package/node_modules/@cloudbase/container/package.json +30 -0
- package/node_modules/@cloudbase/database/README.md +119 -0
- package/node_modules/@cloudbase/database/dist/commonjs/aggregate.d.ts +29 -0
- package/node_modules/@cloudbase/database/dist/commonjs/aggregate.js +156 -0
- package/node_modules/@cloudbase/database/dist/commonjs/collection.d.ts +9 -0
- package/node_modules/@cloudbase/database/dist/commonjs/collection.js +49 -0
- package/node_modules/@cloudbase/database/dist/commonjs/command.d.ts +175 -0
- package/node_modules/@cloudbase/database/dist/commonjs/command.js +299 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/logic.d.ts +24 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/logic.js +89 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/query.d.ts +68 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/query.js +160 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/update.d.ts +29 -0
- package/node_modules/@cloudbase/database/dist/commonjs/commands/update.js +51 -0
- package/node_modules/@cloudbase/database/dist/commonjs/config/app.config.d.ts +6 -0
- package/node_modules/@cloudbase/database/dist/commonjs/config/app.config.js +7 -0
- package/node_modules/@cloudbase/database/dist/commonjs/config/error.config.d.ts +3 -0
- package/node_modules/@cloudbase/database/dist/commonjs/config/error.config.js +16 -0
- package/node_modules/@cloudbase/database/dist/commonjs/const/code.d.ts +30 -0
- package/node_modules/@cloudbase/database/dist/commonjs/const/code.js +33 -0
- package/node_modules/@cloudbase/database/dist/commonjs/constant.d.ts +51 -0
- package/node_modules/@cloudbase/database/dist/commonjs/constant.js +75 -0
- package/node_modules/@cloudbase/database/dist/commonjs/document.d.ts +11 -0
- package/node_modules/@cloudbase/database/dist/commonjs/document.js +260 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/index.d.ts +6 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/index.js +22 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/interface.d.ts +24 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/interface.js +2 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/lineString.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/lineString.js +86 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiLineString.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiLineString.js +95 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPoint.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPoint.js +79 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPolygon.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/multiPolygon.js +122 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/point.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/point.js +50 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/polygon.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/commonjs/geo/polygon.js +109 -0
- package/node_modules/@cloudbase/database/dist/commonjs/helper/symbol.d.ts +14 -0
- package/node_modules/@cloudbase/database/dist/commonjs/helper/symbol.js +31 -0
- package/node_modules/@cloudbase/database/dist/commonjs/index.d.ts +40 -0
- package/node_modules/@cloudbase/database/dist/commonjs/index.js +61 -0
- package/node_modules/@cloudbase/database/dist/commonjs/lib/util.d.ts +1 -0
- package/node_modules/@cloudbase/database/dist/commonjs/lib/util.js +26 -0
- package/node_modules/@cloudbase/database/dist/commonjs/operator-map.d.ts +4 -0
- package/node_modules/@cloudbase/database/dist/commonjs/operator-map.js +24 -0
- package/node_modules/@cloudbase/database/dist/commonjs/query.d.ts +22 -0
- package/node_modules/@cloudbase/database/dist/commonjs/query.js +252 -0
- package/node_modules/@cloudbase/database/dist/commonjs/regexp/index.d.ts +14 -0
- package/node_modules/@cloudbase/database/dist/commonjs/regexp/index.js +33 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/common.d.ts +11 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/common.js +127 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/datatype.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/datatype.js +132 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/query.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/query.js +232 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/update.d.ts +15 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serializer/update.js +142 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serverDate/index.d.ts +13 -0
- package/node_modules/@cloudbase/database/dist/commonjs/serverDate/index.js +30 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/collection.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/collection.js +49 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/document.d.ts +27 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/document.js +205 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/index.d.ts +30 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/index.js +215 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/query.d.ts +43 -0
- package/node_modules/@cloudbase/database/dist/commonjs/transaction/query.js +261 -0
- package/node_modules/@cloudbase/database/dist/commonjs/typings/index.d.ts +40 -0
- package/node_modules/@cloudbase/database/dist/commonjs/typings/index.js +2 -0
- package/node_modules/@cloudbase/database/dist/commonjs/typings/realtime.d.ts +219 -0
- package/node_modules/@cloudbase/database/dist/commonjs/typings/realtime.js +2 -0
- package/node_modules/@cloudbase/database/dist/commonjs/util.d.ts +9 -0
- package/node_modules/@cloudbase/database/dist/commonjs/util.js +145 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/error.d.ts +38 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/error.js +91 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/msg.d.ts +0 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/msg.js +0 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/symbol.d.ts +8 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/symbol.js +58 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/type.d.ts +13 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/type.js +34 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/utils.d.ts +4 -0
- package/node_modules/@cloudbase/database/dist/commonjs/utils/utils.js +39 -0
- package/node_modules/@cloudbase/database/dist/commonjs/validate.d.ts +1 -0
- package/node_modules/@cloudbase/database/dist/commonjs/validate.js +60 -0
- package/node_modules/@cloudbase/database/dist/esm/aggregate.d.ts +29 -0
- package/node_modules/@cloudbase/database/dist/esm/aggregate.js +154 -0
- package/node_modules/@cloudbase/database/dist/esm/collection.d.ts +9 -0
- package/node_modules/@cloudbase/database/dist/esm/collection.js +46 -0
- package/node_modules/@cloudbase/database/dist/esm/command.d.ts +175 -0
- package/node_modules/@cloudbase/database/dist/esm/command.js +296 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/logic.d.ts +24 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/logic.js +84 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/query.d.ts +68 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/query.js +154 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/update.d.ts +29 -0
- package/node_modules/@cloudbase/database/dist/esm/commands/update.js +46 -0
- package/node_modules/@cloudbase/database/dist/esm/config/app.config.d.ts +6 -0
- package/node_modules/@cloudbase/database/dist/esm/config/app.config.js +5 -0
- package/node_modules/@cloudbase/database/dist/esm/config/error.config.d.ts +3 -0
- package/node_modules/@cloudbase/database/dist/esm/config/error.config.js +13 -0
- package/node_modules/@cloudbase/database/dist/esm/const/code.d.ts +30 -0
- package/node_modules/@cloudbase/database/dist/esm/const/code.js +30 -0
- package/node_modules/@cloudbase/database/dist/esm/constant.d.ts +51 -0
- package/node_modules/@cloudbase/database/dist/esm/constant.js +65 -0
- package/node_modules/@cloudbase/database/dist/esm/document.d.ts +11 -0
- package/node_modules/@cloudbase/database/dist/esm/document.js +257 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/index.d.ts +6 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/index.js +6 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/interface.d.ts +24 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/interface.js +1 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/lineString.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/lineString.js +83 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiLineString.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiLineString.js +92 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiPoint.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiPoint.js +76 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.d.ts +18 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.js +119 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/point.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/point.js +47 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/polygon.d.ts +19 -0
- package/node_modules/@cloudbase/database/dist/esm/geo/polygon.js +106 -0
- package/node_modules/@cloudbase/database/dist/esm/helper/symbol.d.ts +14 -0
- package/node_modules/@cloudbase/database/dist/esm/helper/symbol.js +14 -0
- package/node_modules/@cloudbase/database/dist/esm/index.d.ts +40 -0
- package/node_modules/@cloudbase/database/dist/esm/index.js +55 -0
- package/node_modules/@cloudbase/database/dist/esm/lib/util.d.ts +1 -0
- package/node_modules/@cloudbase/database/dist/esm/lib/util.js +22 -0
- package/node_modules/@cloudbase/database/dist/esm/operator-map.d.ts +4 -0
- package/node_modules/@cloudbase/database/dist/esm/operator-map.js +20 -0
- package/node_modules/@cloudbase/database/dist/esm/query.d.ts +22 -0
- package/node_modules/@cloudbase/database/dist/esm/query.js +249 -0
- package/node_modules/@cloudbase/database/dist/esm/regexp/index.d.ts +14 -0
- package/node_modules/@cloudbase/database/dist/esm/regexp/index.js +29 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/common.d.ts +11 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/common.js +118 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/datatype.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/datatype.js +127 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/query.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/query.js +229 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/update.d.ts +15 -0
- package/node_modules/@cloudbase/database/dist/esm/serializer/update.js +139 -0
- package/node_modules/@cloudbase/database/dist/esm/serverDate/index.d.ts +13 -0
- package/node_modules/@cloudbase/database/dist/esm/serverDate/index.js +26 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/collection.d.ts +7 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/collection.js +46 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/document.d.ts +27 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/document.js +202 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/index.d.ts +30 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/index.js +210 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/query.d.ts +43 -0
- package/node_modules/@cloudbase/database/dist/esm/transaction/query.js +258 -0
- package/node_modules/@cloudbase/database/dist/esm/typings/index.d.ts +40 -0
- package/node_modules/@cloudbase/database/dist/esm/typings/index.js +1 -0
- package/node_modules/@cloudbase/database/dist/esm/typings/realtime.d.ts +219 -0
- package/node_modules/@cloudbase/database/dist/esm/typings/realtime.js +1 -0
- package/node_modules/@cloudbase/database/dist/esm/util.d.ts +9 -0
- package/node_modules/@cloudbase/database/dist/esm/util.js +142 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/error.d.ts +38 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/error.js +84 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/msg.d.ts +0 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/msg.js +0 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/symbol.d.ts +8 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/symbol.js +55 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/type.d.ts +13 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/type.js +20 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/utils.d.ts +4 -0
- package/node_modules/@cloudbase/database/dist/esm/utils/utils.js +33 -0
- package/node_modules/@cloudbase/database/dist/esm/validate.d.ts +1 -0
- package/node_modules/@cloudbase/database/dist/esm/validate.js +57 -0
- package/node_modules/@cloudbase/database/package.json +36 -0
- package/node_modules/@cloudbase/database/tsconfig.test.json +15 -0
- package/node_modules/@cloudbase/functions/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/functions/dist/cjs/index.d.ts +2 -0
- package/node_modules/@cloudbase/functions/dist/cjs/index.js +223 -0
- package/node_modules/@cloudbase/functions/dist/esm/index.d.ts +2 -0
- package/node_modules/@cloudbase/functions/dist/esm/index.js +219 -0
- package/node_modules/@cloudbase/functions/package.json +32 -0
- package/node_modules/@cloudbase/model/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/model/dist/cjs/index.d.ts +5 -0
- package/node_modules/@cloudbase/model/dist/cjs/index.js +144 -0
- package/node_modules/@cloudbase/model/dist/esm/index.d.ts +5 -0
- package/node_modules/@cloudbase/model/dist/esm/index.js +125 -0
- package/node_modules/@cloudbase/model/package.json +29 -0
- package/node_modules/@cloudbase/mysql/.eslintrc.js +6 -0
- package/node_modules/@cloudbase/mysql/dist/cjs/index.d.ts +4 -0
- package/node_modules/@cloudbase/mysql/dist/cjs/index.d.ts.map +1 -0
- package/node_modules/@cloudbase/mysql/dist/cjs/index.js +173 -0
- package/node_modules/@cloudbase/mysql/dist/esm/index.d.ts +3 -0
- package/node_modules/@cloudbase/mysql/dist/esm/index.js +155 -0
- package/node_modules/@cloudbase/mysql/package.json +30 -0
- package/node_modules/@cloudbase/oauth/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/apis.d.ts +142 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/apis.js +1280 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/auth-error.d.ts +22 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/auth-error.js +278 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/consts.d.ts +139 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/consts.js +147 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/models.d.ts +557 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/auth/models.js +3 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha-dom.d.ts +3 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha-dom.js +223 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha.d.ts +42 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/captcha/captcha.js +205 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/index.d.ts +22 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/index.js +107 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/consts.d.ts +20 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/consts.js +26 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/interface.d.ts +15 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/interface.js +10 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/models.d.ts +74 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/models.js +3 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/oauth2client.d.ts +129 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/oauth2client/oauth2client.js +1174 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/base64.d.ts +9 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/base64.js +112 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/encrypt.d.ts +4 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/encrypt.js +26 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/encryptlong/index.d.ts +546 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/encryptlong/index.js +2982 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/function/single-promise.d.ts +6 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/function/single-promise.js +94 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/index.d.ts +2 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/index.js +56 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/mp.d.ts +2 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/mp.js +66 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/urlSearchParams.d.ts +13 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/urlSearchParams.js +66 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/uuid.d.ts +1 -0
- package/node_modules/@cloudbase/oauth/dist/cjs/utils/uuid.js +12 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/apis.d.ts +142 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/apis.js +768 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/auth-error.d.ts +22 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/auth-error.js +255 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/consts.d.ts +139 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/consts.js +144 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/models.d.ts +557 -0
- package/node_modules/@cloudbase/oauth/dist/esm/auth/models.js +2 -0
- package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha-dom.d.ts +3 -0
- package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha-dom.js +130 -0
- package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha.d.ts +42 -0
- package/node_modules/@cloudbase/oauth/dist/esm/captcha/captcha.js +104 -0
- package/node_modules/@cloudbase/oauth/dist/esm/index.d.ts +22 -0
- package/node_modules/@cloudbase/oauth/dist/esm/index.js +64 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/consts.d.ts +20 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/consts.js +22 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/interface.d.ts +15 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/interface.js +3 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/models.d.ts +74 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/models.js +2 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/oauth2client.d.ts +129 -0
- package/node_modules/@cloudbase/oauth/dist/esm/oauth2client/oauth2client.js +711 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/base64.d.ts +9 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/base64.js +104 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/encrypt.d.ts +4 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/encrypt.js +18 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/encryptlong/index.d.ts +546 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/encryptlong/index.js +2953 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/function/single-promise.d.ts +6 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/function/single-promise.js +34 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/index.d.ts +2 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/index.js +51 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/mp.d.ts +2 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/mp.js +61 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/urlSearchParams.d.ts +13 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/urlSearchParams.js +58 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/uuid.d.ts +1 -0
- package/node_modules/@cloudbase/oauth/dist/esm/utils/uuid.js +8 -0
- package/node_modules/@cloudbase/oauth/dist/miniprogram/index.js +1 -0
- package/node_modules/@cloudbase/oauth/package.json +20 -0
- package/node_modules/@cloudbase/realtime/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/common.d.ts +4 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/common.js +22 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/error.d.ts +36 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/error.js +106 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/index.d.ts +2 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/index.js +36 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/listener.d.ts +14 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/listener.js +18 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/message.d.ts +3 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/message.js +13 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/snapshot.d.ts +17 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/snapshot.js +45 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/utils.d.ts +1 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/utils.js +9 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/virtual-websocket-client.d.ts +62 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/virtual-websocket-client.js +960 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/websocket-client.d.ts +78 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/websocket-client.js +750 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/ws-event.d.ts +126 -0
- package/node_modules/@cloudbase/realtime/dist/cjs/ws-event.js +141 -0
- package/node_modules/@cloudbase/realtime/dist/esm/common.d.ts +4 -0
- package/node_modules/@cloudbase/realtime/dist/esm/common.js +15 -0
- package/node_modules/@cloudbase/realtime/dist/esm/error.d.ts +36 -0
- package/node_modules/@cloudbase/realtime/dist/esm/error.js +100 -0
- package/node_modules/@cloudbase/realtime/dist/esm/index.d.ts +2 -0
- package/node_modules/@cloudbase/realtime/dist/esm/index.js +32 -0
- package/node_modules/@cloudbase/realtime/dist/esm/listener.d.ts +14 -0
- package/node_modules/@cloudbase/realtime/dist/esm/listener.js +15 -0
- package/node_modules/@cloudbase/realtime/dist/esm/message.d.ts +3 -0
- package/node_modules/@cloudbase/realtime/dist/esm/message.js +8 -0
- package/node_modules/@cloudbase/realtime/dist/esm/snapshot.d.ts +17 -0
- package/node_modules/@cloudbase/realtime/dist/esm/snapshot.js +42 -0
- package/node_modules/@cloudbase/realtime/dist/esm/utils.d.ts +1 -0
- package/node_modules/@cloudbase/realtime/dist/esm/utils.js +5 -0
- package/node_modules/@cloudbase/realtime/dist/esm/virtual-websocket-client.d.ts +62 -0
- package/node_modules/@cloudbase/realtime/dist/esm/virtual-websocket-client.js +954 -0
- package/node_modules/@cloudbase/realtime/dist/esm/websocket-client.d.ts +78 -0
- package/node_modules/@cloudbase/realtime/dist/esm/websocket-client.js +747 -0
- package/node_modules/@cloudbase/realtime/dist/esm/ws-event.d.ts +126 -0
- package/node_modules/@cloudbase/realtime/dist/esm/ws-event.js +137 -0
- package/node_modules/@cloudbase/realtime/package.json +29 -0
- package/node_modules/@cloudbase/storage/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/storage/dist/cjs/index.d.ts +195 -0
- package/node_modules/@cloudbase/storage/dist/cjs/index.js +1426 -0
- package/node_modules/@cloudbase/storage/dist/cjs/supabase/errors.d.ts +20 -0
- package/node_modules/@cloudbase/storage/dist/cjs/supabase/errors.js +65 -0
- package/node_modules/@cloudbase/storage/dist/cjs/supabase/types.d.ts +64 -0
- package/node_modules/@cloudbase/storage/dist/cjs/supabase/types.js +3 -0
- package/node_modules/@cloudbase/storage/dist/esm/index.d.ts +195 -0
- package/node_modules/@cloudbase/storage/dist/esm/index.js +1422 -0
- package/node_modules/@cloudbase/storage/dist/esm/supabase/errors.d.ts +20 -0
- package/node_modules/@cloudbase/storage/dist/esm/supabase/errors.js +61 -0
- package/node_modules/@cloudbase/storage/dist/esm/supabase/types.d.ts +64 -0
- package/node_modules/@cloudbase/storage/dist/esm/supabase/types.js +2 -0
- package/node_modules/@cloudbase/storage/package.json +28 -0
- package/node_modules/@cloudbase/types/auth.d.ts +99 -0
- package/node_modules/@cloudbase/types/cache.d.ts +26 -0
- package/node_modules/@cloudbase/types/cloudrun.d.ts +9 -0
- package/node_modules/@cloudbase/types/component.d.ts +17 -0
- package/node_modules/@cloudbase/types/database.d.ts +31 -0
- package/node_modules/@cloudbase/types/events.d.ts +13 -0
- package/node_modules/@cloudbase/types/functions.d.ts +40 -0
- package/node_modules/@cloudbase/types/index.d.ts +211 -0
- package/node_modules/@cloudbase/types/index.js +1 -0
- package/node_modules/@cloudbase/types/package.json +43 -0
- package/node_modules/@cloudbase/types/realtime.d.ts +350 -0
- package/node_modules/@cloudbase/types/request.d.ts +30 -0
- package/node_modules/@cloudbase/types/storage.d.ts +126 -0
- package/node_modules/@cloudbase/utilities/.eslintrc.js +15 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/adapters/index.d.ts +45 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/adapters/index.js +68 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/adapters/platforms/web.d.ts +20 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/adapters/platforms/web.js +278 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/common.d.ts +6 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/common.js +24 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/errors.d.ts +8 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/errors.js +12 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/index.d.ts +3 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/constants/index.js +21 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/helpers/decorators.d.ts +11 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/helpers/decorators.js +238 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/helpers/index.d.ts +1 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/helpers/index.js +18 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/index.d.ts +13 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/index.js +51 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/abortController.d.ts +9 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/abortController.js +25 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/cache.d.ts +17 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/cache.js +261 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/events.d.ts +27 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/events.js +108 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/langEvent.d.ts +3 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/langEvent.js +7 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/util.d.ts +49 -0
- package/node_modules/@cloudbase/utilities/dist/cjs/libs/util.js +282 -0
- package/node_modules/@cloudbase/utilities/dist/esm/adapters/index.d.ts +45 -0
- package/node_modules/@cloudbase/utilities/dist/esm/adapters/index.js +40 -0
- package/node_modules/@cloudbase/utilities/dist/esm/adapters/platforms/web.d.ts +20 -0
- package/node_modules/@cloudbase/utilities/dist/esm/adapters/platforms/web.js +274 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/common.d.ts +6 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/common.js +17 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/errors.d.ts +8 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/errors.js +9 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/index.d.ts +3 -0
- package/node_modules/@cloudbase/utilities/dist/esm/constants/index.js +4 -0
- package/node_modules/@cloudbase/utilities/dist/esm/helpers/decorators.d.ts +11 -0
- package/node_modules/@cloudbase/utilities/dist/esm/helpers/decorators.js +234 -0
- package/node_modules/@cloudbase/utilities/dist/esm/helpers/index.d.ts +1 -0
- package/node_modules/@cloudbase/utilities/dist/esm/helpers/index.js +2 -0
- package/node_modules/@cloudbase/utilities/dist/esm/index.d.ts +13 -0
- package/node_modules/@cloudbase/utilities/dist/esm/index.js +14 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/abortController.d.ts +9 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/abortController.js +23 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/cache.d.ts +17 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/cache.js +258 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/events.d.ts +27 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/events.js +102 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/langEvent.d.ts +3 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/langEvent.js +4 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/util.d.ts +49 -0
- package/node_modules/@cloudbase/utilities/dist/esm/libs/util.js +254 -0
- package/node_modules/@cloudbase/utilities/dist/miniprogram/index.js +1 -0
- package/node_modules/@cloudbase/utilities/package.json +26 -0
- package/oauth/src/index.d.ts +1 -0
- package/oauth/src/index.ts +1 -0
- package/package.json +20 -6
- package/realtime/src/index.d.ts +2 -0
- package/realtime/src/index.ts +8 -0
- package/storage/src/index.d.ts +2 -0
- package/storage/src/index.js +5 -0
- package/storage/src/index.ts +4 -0
|
@@ -0,0 +1,711 @@
|
|
|
1
|
+
import { ErrorType } from './consts';
|
|
2
|
+
import { ApiUrls, ApiUrlsV2, AUTH_API_PREFIX, AUTH_STATE_CHANGED_TYPE, DEFAULT_NODE_ACCESS_SCOPE, EVENTS, } from '../auth/consts';
|
|
3
|
+
import { uuidv4 } from '../utils/uuid';
|
|
4
|
+
import { getPathName } from '../utils/index';
|
|
5
|
+
import { SinglePromise } from '../utils/function/single-promise';
|
|
6
|
+
import { weBtoa } from '../utils/base64';
|
|
7
|
+
import { isMp } from '../utils/mp';
|
|
8
|
+
import { langEvent } from '@cloudbase/utilities';
|
|
9
|
+
const RequestIdHeaderName = 'x-request-id';
|
|
10
|
+
const DeviceIdHeaderName = 'x-device-id';
|
|
11
|
+
const DeviceIdSectionName = 'device_id';
|
|
12
|
+
export const defaultRequest = async function (url, options) {
|
|
13
|
+
let result = null;
|
|
14
|
+
let responseError = null;
|
|
15
|
+
try {
|
|
16
|
+
const copyOptions = Object.assign({}, options);
|
|
17
|
+
if (!copyOptions.method) {
|
|
18
|
+
copyOptions.method = 'GET';
|
|
19
|
+
}
|
|
20
|
+
if (copyOptions.body && typeof copyOptions.body !== 'string') {
|
|
21
|
+
copyOptions.body = JSON.stringify(copyOptions.body);
|
|
22
|
+
}
|
|
23
|
+
const responseResult = await fetch(url, copyOptions);
|
|
24
|
+
const jsonResponse = await responseResult.json();
|
|
25
|
+
if (jsonResponse?.error) {
|
|
26
|
+
responseError = jsonResponse;
|
|
27
|
+
responseError.error_uri = new URL(url).pathname;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
result = jsonResponse;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
responseError = {
|
|
35
|
+
error: ErrorType.UNREACHABLE,
|
|
36
|
+
error_description: error.message,
|
|
37
|
+
error_uri: new URL(url).pathname,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (responseError) {
|
|
41
|
+
throw responseError;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export const toResponseError = (error, options) => {
|
|
48
|
+
let responseError;
|
|
49
|
+
const formatOptions = options || {};
|
|
50
|
+
if (error instanceof Error) {
|
|
51
|
+
responseError = {
|
|
52
|
+
error: formatOptions.error || ErrorType.LOCAL,
|
|
53
|
+
error_description: formatOptions.error_description || error.message,
|
|
54
|
+
error_uri: formatOptions.error_uri,
|
|
55
|
+
details: formatOptions.details || error.stack,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const formatError = error || {};
|
|
60
|
+
responseError = {
|
|
61
|
+
error: formatOptions.error || formatError.error || ErrorType.LOCAL,
|
|
62
|
+
error_description: formatOptions.error_description || formatError.error_description,
|
|
63
|
+
error_uri: formatOptions.error_uri || formatError.error_uri,
|
|
64
|
+
details: formatOptions.details || formatError.details,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return responseError;
|
|
68
|
+
};
|
|
69
|
+
export function generateRequestId() {
|
|
70
|
+
return uuidv4();
|
|
71
|
+
}
|
|
72
|
+
class DefaultStorage {
|
|
73
|
+
constructor(opts) {
|
|
74
|
+
this._env = opts?.env || '';
|
|
75
|
+
}
|
|
76
|
+
async getItem(key) {
|
|
77
|
+
return window.localStorage.getItem(`${key}${this._env}`);
|
|
78
|
+
}
|
|
79
|
+
async removeItem(key) {
|
|
80
|
+
window.localStorage.removeItem(`${key}${this._env}`);
|
|
81
|
+
}
|
|
82
|
+
async setItem(key, value) {
|
|
83
|
+
window.localStorage.setItem(`${key}${this._env}`, value);
|
|
84
|
+
}
|
|
85
|
+
getItemSync(key) {
|
|
86
|
+
return window.localStorage.getItem(`${key}${this._env}`);
|
|
87
|
+
}
|
|
88
|
+
removeItemSync(key) {
|
|
89
|
+
window.localStorage.removeItem(`${key}${this._env}`);
|
|
90
|
+
}
|
|
91
|
+
setItemSync(key, value) {
|
|
92
|
+
window.localStorage.setItem(`${key}${this._env}`, value);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export const defaultStorage = new DefaultStorage();
|
|
96
|
+
function isCredentialsExpired(credentials) {
|
|
97
|
+
let isExpired = true;
|
|
98
|
+
if (credentials?.expires_at && credentials?.access_token) {
|
|
99
|
+
isExpired = credentials.expires_at < new Date();
|
|
100
|
+
}
|
|
101
|
+
return isExpired;
|
|
102
|
+
}
|
|
103
|
+
class LocalCredentials {
|
|
104
|
+
constructor(options) {
|
|
105
|
+
this.credentials = null;
|
|
106
|
+
this.accessKeyCredentials = null;
|
|
107
|
+
this.singlePromise = null;
|
|
108
|
+
this.tokenSectionName = options.tokenSectionName;
|
|
109
|
+
this.storage = options.storage;
|
|
110
|
+
this.clientId = options.clientId;
|
|
111
|
+
this.singlePromise = new SinglePromise({ clientId: this.clientId });
|
|
112
|
+
this.credentials = options.credentials || null;
|
|
113
|
+
}
|
|
114
|
+
getStorageCredentialsSync() {
|
|
115
|
+
let credentials = null;
|
|
116
|
+
const tokenStr = this.storage.getItemSync(this.tokenSectionName);
|
|
117
|
+
if (tokenStr !== undefined && tokenStr !== null) {
|
|
118
|
+
try {
|
|
119
|
+
credentials = JSON.parse(tokenStr);
|
|
120
|
+
if (credentials?.expires_at) {
|
|
121
|
+
credentials.expires_at = new Date(credentials.expires_at);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
this.storage.removeItem(this.tokenSectionName);
|
|
126
|
+
credentials = null;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return credentials;
|
|
130
|
+
}
|
|
131
|
+
async setCredentials(credentials) {
|
|
132
|
+
if (credentials?.expires_in) {
|
|
133
|
+
if (!credentials?.expires_at) {
|
|
134
|
+
credentials.expires_at = new Date(Date.now() + (credentials.expires_in - 30) * 1000);
|
|
135
|
+
}
|
|
136
|
+
if (this.storage) {
|
|
137
|
+
const tokenStr = JSON.stringify(credentials);
|
|
138
|
+
await this.storage.setItem(this.tokenSectionName, tokenStr);
|
|
139
|
+
}
|
|
140
|
+
this.credentials = credentials;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (this.storage) {
|
|
144
|
+
await this.storage.removeItem(this.tokenSectionName);
|
|
145
|
+
}
|
|
146
|
+
this.credentials = null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
setAccessKeyCredentials(credentials) {
|
|
150
|
+
this.accessKeyCredentials = credentials;
|
|
151
|
+
if (credentials.scope === DEFAULT_NODE_ACCESS_SCOPE) {
|
|
152
|
+
this.credentials = credentials;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async getCredentials() {
|
|
156
|
+
return this.singlePromise.run('getCredentials', async () => {
|
|
157
|
+
if (isCredentialsExpired(this.credentials)) {
|
|
158
|
+
const { credentials, isAccessKeyCredentials } = await this.getStorageCredentials();
|
|
159
|
+
if (isAccessKeyCredentials) {
|
|
160
|
+
return credentials;
|
|
161
|
+
}
|
|
162
|
+
this.credentials = credentials;
|
|
163
|
+
}
|
|
164
|
+
return this.credentials;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
async getStorageCredentials() {
|
|
168
|
+
return this.singlePromise.run('_getStorageCredentials', async () => {
|
|
169
|
+
let credentials = null;
|
|
170
|
+
let isAccessKeyCredentials = false;
|
|
171
|
+
const tokenStr = await this.storage.getItem(this.tokenSectionName);
|
|
172
|
+
if (!!tokenStr) {
|
|
173
|
+
try {
|
|
174
|
+
credentials = JSON.parse(tokenStr);
|
|
175
|
+
if (credentials?.expires_at) {
|
|
176
|
+
credentials.expires_at = new Date(credentials.expires_at);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
await this.storage.removeItem(this.tokenSectionName);
|
|
181
|
+
credentials = null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
credentials = this.accessKeyCredentials || null;
|
|
186
|
+
isAccessKeyCredentials = true;
|
|
187
|
+
}
|
|
188
|
+
return { credentials, isAccessKeyCredentials };
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
class OAuth2Client {
|
|
193
|
+
constructor(options) {
|
|
194
|
+
this.initializePromise = null;
|
|
195
|
+
this.lockAcquired = false;
|
|
196
|
+
this.pendingInLock = [];
|
|
197
|
+
this.singlePromise = null;
|
|
198
|
+
if (!options.clientSecret) {
|
|
199
|
+
options.clientSecret = '';
|
|
200
|
+
}
|
|
201
|
+
if (!options.clientId && options.env) {
|
|
202
|
+
options.clientId = options.env;
|
|
203
|
+
}
|
|
204
|
+
this.apiOrigin = options.apiOrigin;
|
|
205
|
+
this.apiPath = options.apiPath || AUTH_API_PREFIX;
|
|
206
|
+
this.clientId = options.clientId;
|
|
207
|
+
this.i18n = options.i18n;
|
|
208
|
+
this.eventBus = options.eventBus;
|
|
209
|
+
this.singlePromise = new SinglePromise({ clientId: this.clientId });
|
|
210
|
+
this.retry = this.formatRetry(options.retry, OAuth2Client.defaultRetry);
|
|
211
|
+
if (options.baseRequest) {
|
|
212
|
+
this.baseRequest = options.baseRequest;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
this.baseRequest = defaultRequest;
|
|
216
|
+
}
|
|
217
|
+
this.tokenInURL = options.tokenInURL;
|
|
218
|
+
this.headers = options.headers;
|
|
219
|
+
this.storage = options.storage || defaultStorage;
|
|
220
|
+
this.localCredentials = new LocalCredentials({
|
|
221
|
+
tokenSectionName: `credentials_${options.clientId}`,
|
|
222
|
+
storage: this.storage,
|
|
223
|
+
clientId: options.clientId,
|
|
224
|
+
});
|
|
225
|
+
this.clientSecret = options.clientSecret;
|
|
226
|
+
if (options.clientId) {
|
|
227
|
+
this.basicAuth = `Basic ${weBtoa(`${options.clientId}:${this.clientSecret}`)}`;
|
|
228
|
+
}
|
|
229
|
+
this.wxCloud = options.wxCloud;
|
|
230
|
+
try {
|
|
231
|
+
if (isMp()) {
|
|
232
|
+
this.useWxCloud = options.useWxCloud;
|
|
233
|
+
if (this.wxCloud === undefined && options.env) {
|
|
234
|
+
wx.cloud.init({ env: options.env });
|
|
235
|
+
this.wxCloud = wx.cloud;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
}
|
|
241
|
+
this.refreshTokenFunc = options.refreshTokenFunc || this.defaultRefreshTokenFunc;
|
|
242
|
+
this.anonymousSignInFunc = options.anonymousSignInFunc;
|
|
243
|
+
this.onCredentialsError = options.onCredentialsError;
|
|
244
|
+
this.getInitialSession = options.getInitialSession;
|
|
245
|
+
this.onInitialSessionObtained = options.onInitialSessionObtained;
|
|
246
|
+
this.logDebugMessages = options.debug ?? false;
|
|
247
|
+
langEvent.bus.on(langEvent.LANG_CHANGE_EVENT, (params) => {
|
|
248
|
+
this.i18n = params.data?.i18n || this.i18n;
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
setGetInitialSession(callback) {
|
|
252
|
+
this.getInitialSession = callback;
|
|
253
|
+
}
|
|
254
|
+
setOnInitialSessionObtained(callback) {
|
|
255
|
+
this.onInitialSessionObtained = callback;
|
|
256
|
+
}
|
|
257
|
+
async initialize(func) {
|
|
258
|
+
if (this.initializePromise) {
|
|
259
|
+
return await this.initializePromise;
|
|
260
|
+
}
|
|
261
|
+
if (func !== undefined) {
|
|
262
|
+
this.initializePromise = func;
|
|
263
|
+
return await this.initializePromise;
|
|
264
|
+
}
|
|
265
|
+
this.initializePromise = (async () => await this._acquireLock(-1, async () => await this._initialize()))();
|
|
266
|
+
return await this.initializePromise;
|
|
267
|
+
}
|
|
268
|
+
async setCredentials(credentials) {
|
|
269
|
+
await this.initializePromise;
|
|
270
|
+
return this._acquireLock(-1, async () => this.localCredentials.setCredentials(credentials));
|
|
271
|
+
}
|
|
272
|
+
setAccessKeyCredentials(credentials) {
|
|
273
|
+
return this.localCredentials.setAccessKeyCredentials(credentials);
|
|
274
|
+
}
|
|
275
|
+
async getAccessToken() {
|
|
276
|
+
await this.initializePromise;
|
|
277
|
+
const credentials = await this.getCredentials();
|
|
278
|
+
if (credentials?.scope === DEFAULT_NODE_ACCESS_SCOPE) {
|
|
279
|
+
return Promise.resolve(credentials.access_token);
|
|
280
|
+
}
|
|
281
|
+
if (credentials?.access_token) {
|
|
282
|
+
return Promise.resolve(credentials.access_token);
|
|
283
|
+
}
|
|
284
|
+
const respErr = { error: ErrorType.UNAUTHENTICATED };
|
|
285
|
+
return Promise.reject(respErr);
|
|
286
|
+
}
|
|
287
|
+
async request(url, options) {
|
|
288
|
+
if (!options) {
|
|
289
|
+
options = {};
|
|
290
|
+
}
|
|
291
|
+
const retry = this.formatRetry(options.retry, this.retry);
|
|
292
|
+
options.headers = { ...options.headers, [this.i18n?.LANG_HEADER_KEY]: this.i18n?.lang };
|
|
293
|
+
if (this.headers) {
|
|
294
|
+
options.headers = {
|
|
295
|
+
...this.headers,
|
|
296
|
+
...options.headers,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
if (!options.headers[RequestIdHeaderName]) {
|
|
300
|
+
options.headers[RequestIdHeaderName] = generateRequestId();
|
|
301
|
+
}
|
|
302
|
+
if (!options.headers[DeviceIdHeaderName]) {
|
|
303
|
+
const deviceId = await this.getDeviceId();
|
|
304
|
+
options.headers[DeviceIdHeaderName] = deviceId;
|
|
305
|
+
}
|
|
306
|
+
if (options?.withBasicAuth && this.basicAuth) {
|
|
307
|
+
options.headers.Authorization = this.basicAuth;
|
|
308
|
+
}
|
|
309
|
+
if (options?.withCredentials) {
|
|
310
|
+
const credentials = options.getCredentials ? await options.getCredentials() : await this.getCredentials();
|
|
311
|
+
if (credentials) {
|
|
312
|
+
if (this.tokenInURL) {
|
|
313
|
+
if (url.indexOf('?') < 0) {
|
|
314
|
+
url += '?';
|
|
315
|
+
}
|
|
316
|
+
url += `access_token=${credentials.access_token}`;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
options.headers.Authorization = `${credentials.token_type} ${credentials.access_token}`;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
if (this.clientId && url.indexOf('client_id') < 0) {
|
|
325
|
+
url += url.indexOf('?') < 0 ? '?' : '&';
|
|
326
|
+
url += `client_id=${this.clientId}`;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
if (url.startsWith('/')) {
|
|
330
|
+
url = `${this.apiOrigin}${this.apiPath}${url}`;
|
|
331
|
+
}
|
|
332
|
+
let response = null;
|
|
333
|
+
const maxRequestTimes = retry + 1;
|
|
334
|
+
for (let requestTime = 0; requestTime < maxRequestTimes; requestTime++) {
|
|
335
|
+
try {
|
|
336
|
+
if (options.useWxCloud || this.useWxCloud) {
|
|
337
|
+
response = await this.wxCloudCallFunction(url, options);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
response = await this.baseRequest(url, options);
|
|
341
|
+
}
|
|
342
|
+
if (!!response?.code) {
|
|
343
|
+
throw {
|
|
344
|
+
error: response.code,
|
|
345
|
+
error_description: response.message,
|
|
346
|
+
error_uri: new URL(url).pathname,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
catch (responseError) {
|
|
352
|
+
try {
|
|
353
|
+
responseError.requestId = responseError.requestId || options.headers[RequestIdHeaderName] || '';
|
|
354
|
+
}
|
|
355
|
+
catch (error) { }
|
|
356
|
+
if (options.withCredentials && responseError && responseError.error === ErrorType.UNAUTHENTICATED) {
|
|
357
|
+
await this.setCredentials(null);
|
|
358
|
+
return Promise.reject(responseError);
|
|
359
|
+
}
|
|
360
|
+
if (requestTime === retry || !responseError || responseError.error !== 'unreachable') {
|
|
361
|
+
return Promise.reject(responseError);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
await this.sleep(OAuth2Client.retryInterval);
|
|
365
|
+
}
|
|
366
|
+
return response;
|
|
367
|
+
}
|
|
368
|
+
async wxCloudCallFunction(url, options) {
|
|
369
|
+
let result = null;
|
|
370
|
+
let responseError = null;
|
|
371
|
+
try {
|
|
372
|
+
let userAgent = '';
|
|
373
|
+
try {
|
|
374
|
+
userAgent = await wx.getRendererUserAgent();
|
|
375
|
+
}
|
|
376
|
+
catch (error) { }
|
|
377
|
+
const { result: responseResult } = await this.wxCloud.callFunction({
|
|
378
|
+
name: 'httpOverCallFunction',
|
|
379
|
+
data: {
|
|
380
|
+
url,
|
|
381
|
+
method: options.method,
|
|
382
|
+
headers: {
|
|
383
|
+
origin: 'https://servicewechat.com',
|
|
384
|
+
'User-Agent': userAgent,
|
|
385
|
+
...options.headers,
|
|
386
|
+
},
|
|
387
|
+
body: options.body,
|
|
388
|
+
},
|
|
389
|
+
});
|
|
390
|
+
if (responseResult?.body?.error_code) {
|
|
391
|
+
responseError = responseResult?.body;
|
|
392
|
+
responseError.error_uri = getPathName(url);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
result = responseResult?.body;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
responseError = {
|
|
400
|
+
error: ErrorType.UNREACHABLE,
|
|
401
|
+
error_description: error.message,
|
|
402
|
+
error_uri: getPathName(url),
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
if (responseError) {
|
|
406
|
+
throw responseError;
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
return result;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
async getCredentials() {
|
|
413
|
+
await this.initializePromise;
|
|
414
|
+
return this._acquireLock(-1, async () => this._getCredentials());
|
|
415
|
+
}
|
|
416
|
+
getCredentialsSync() {
|
|
417
|
+
const credentials = this.localCredentials.getStorageCredentialsSync();
|
|
418
|
+
return credentials;
|
|
419
|
+
}
|
|
420
|
+
getCredentialsAsync() {
|
|
421
|
+
return this.getCredentials();
|
|
422
|
+
}
|
|
423
|
+
async getScope() {
|
|
424
|
+
const credentials = await this.localCredentials.getCredentials();
|
|
425
|
+
if (!credentials) {
|
|
426
|
+
const msg = 'credentials not found';
|
|
427
|
+
this.onCredentialsError?.({ msg });
|
|
428
|
+
return this.unAuthenticatedError(msg);
|
|
429
|
+
}
|
|
430
|
+
return credentials.scope;
|
|
431
|
+
}
|
|
432
|
+
async getGroups() {
|
|
433
|
+
const credentials = await this.localCredentials.getCredentials();
|
|
434
|
+
if (!credentials) {
|
|
435
|
+
const msg = 'credentials not found';
|
|
436
|
+
this.onCredentialsError?.({ msg });
|
|
437
|
+
return this.unAuthenticatedError(msg);
|
|
438
|
+
}
|
|
439
|
+
return credentials.groups;
|
|
440
|
+
}
|
|
441
|
+
async refreshToken(credentials, options) {
|
|
442
|
+
await this.initializePromise;
|
|
443
|
+
return this._acquireLock(-1, async () => this._refreshToken(credentials, options));
|
|
444
|
+
}
|
|
445
|
+
async _refreshToken(credentials, options) {
|
|
446
|
+
return this.singlePromise.run('_refreshToken', async () => {
|
|
447
|
+
if (credentials?.scope === DEFAULT_NODE_ACCESS_SCOPE) {
|
|
448
|
+
return credentials;
|
|
449
|
+
}
|
|
450
|
+
if (!credentials || !credentials.refresh_token) {
|
|
451
|
+
const msg = 'no refresh token found in credentials';
|
|
452
|
+
this.onCredentialsError?.({ msg });
|
|
453
|
+
return this.unAuthenticatedError(msg);
|
|
454
|
+
}
|
|
455
|
+
try {
|
|
456
|
+
const newCredentials = await this.refreshTokenFunc(credentials.refresh_token, credentials);
|
|
457
|
+
await this.localCredentials.setCredentials(newCredentials);
|
|
458
|
+
this.eventBus?.fire(EVENTS.AUTH_STATE_CHANGED, { event: AUTH_STATE_CHANGED_TYPE.TOKEN_REFRESHED });
|
|
459
|
+
return newCredentials;
|
|
460
|
+
}
|
|
461
|
+
catch (error) {
|
|
462
|
+
if (options?.throwError) {
|
|
463
|
+
throw error;
|
|
464
|
+
}
|
|
465
|
+
if (error.error === ErrorType.INVALID_GRANT) {
|
|
466
|
+
await this.localCredentials.setCredentials(null);
|
|
467
|
+
const msg = error.error_description;
|
|
468
|
+
this.onCredentialsError?.({ msg });
|
|
469
|
+
return this.unAuthenticatedError(msg);
|
|
470
|
+
}
|
|
471
|
+
this.onCredentialsError?.({ msg: error.error_description });
|
|
472
|
+
return Promise.reject(error);
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
async anonymousLogin(credentials) {
|
|
477
|
+
return this.singlePromise.run('_anonymousLogin', async () => {
|
|
478
|
+
if (this.anonymousSignInFunc) {
|
|
479
|
+
const c = await this.anonymousSignInFunc(credentials);
|
|
480
|
+
credentials = c || (await this.localCredentials.getCredentials());
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
credentials = await this.anonymousSignIn(credentials);
|
|
484
|
+
}
|
|
485
|
+
return credentials;
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
checkRetry(retry) {
|
|
489
|
+
let responseError = null;
|
|
490
|
+
if (typeof retry !== 'number' || retry < OAuth2Client.minRetry || retry > OAuth2Client.maxRetry) {
|
|
491
|
+
responseError = {
|
|
492
|
+
error: ErrorType.UNREACHABLE,
|
|
493
|
+
error_description: 'wrong options param: retry',
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
if (responseError) {
|
|
497
|
+
throw responseError;
|
|
498
|
+
}
|
|
499
|
+
return retry;
|
|
500
|
+
}
|
|
501
|
+
formatRetry(retry, defaultVale) {
|
|
502
|
+
if (typeof retry === 'undefined') {
|
|
503
|
+
return defaultVale;
|
|
504
|
+
}
|
|
505
|
+
return this.checkRetry(retry);
|
|
506
|
+
}
|
|
507
|
+
async sleep(ms) {
|
|
508
|
+
return new Promise((resolve) => {
|
|
509
|
+
setTimeout(() => {
|
|
510
|
+
resolve();
|
|
511
|
+
}, ms);
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
async anonymousSignIn(credentials) {
|
|
515
|
+
return this.singlePromise.run('_anonymous', async () => {
|
|
516
|
+
if (!credentials || credentials.scope !== 'anonymous') {
|
|
517
|
+
return this.unAuthenticatedError('no anonymous in credentials');
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
const newCredentials = await this.request(ApiUrls.AUTH_SIGN_IN_ANONYMOUSLY_URL, {
|
|
521
|
+
method: 'POST',
|
|
522
|
+
withBasicAuth: true,
|
|
523
|
+
body: {},
|
|
524
|
+
});
|
|
525
|
+
await this.localCredentials.setCredentials(newCredentials);
|
|
526
|
+
return newCredentials;
|
|
527
|
+
}
|
|
528
|
+
catch (error) {
|
|
529
|
+
if (error.error === ErrorType.INVALID_GRANT) {
|
|
530
|
+
await this.localCredentials.setCredentials(null);
|
|
531
|
+
return this.unAuthenticatedError(error.error_description);
|
|
532
|
+
}
|
|
533
|
+
return Promise.reject(error);
|
|
534
|
+
}
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
async defaultRefreshTokenFunc(refreshToken, credentials) {
|
|
538
|
+
if (refreshToken === undefined || refreshToken === '') {
|
|
539
|
+
const msg = 'refresh token not found';
|
|
540
|
+
this.onCredentialsError?.({ msg });
|
|
541
|
+
return this.unAuthenticatedError(msg);
|
|
542
|
+
}
|
|
543
|
+
let url = ApiUrls.AUTH_TOKEN_URL;
|
|
544
|
+
if (credentials?.version === 'v2') {
|
|
545
|
+
url = ApiUrlsV2.AUTH_TOKEN_URL;
|
|
546
|
+
}
|
|
547
|
+
const newCredentials = await this.request(url, {
|
|
548
|
+
method: 'POST',
|
|
549
|
+
body: {
|
|
550
|
+
client_id: this.clientId,
|
|
551
|
+
client_secret: this.clientSecret,
|
|
552
|
+
grant_type: 'refresh_token',
|
|
553
|
+
refresh_token: refreshToken,
|
|
554
|
+
},
|
|
555
|
+
});
|
|
556
|
+
return { ...newCredentials, version: credentials?.version || 'v1' };
|
|
557
|
+
}
|
|
558
|
+
async getDeviceId() {
|
|
559
|
+
if (this.deviceID) {
|
|
560
|
+
return this.deviceID;
|
|
561
|
+
}
|
|
562
|
+
let deviceId = await this.storage.getItem(DeviceIdSectionName);
|
|
563
|
+
if (!(typeof deviceId === 'string' && deviceId.length >= 16 && deviceId.length <= 48)) {
|
|
564
|
+
deviceId = uuidv4();
|
|
565
|
+
await this.storage.setItem(DeviceIdSectionName, deviceId);
|
|
566
|
+
}
|
|
567
|
+
this.deviceID = deviceId;
|
|
568
|
+
return deviceId;
|
|
569
|
+
}
|
|
570
|
+
unAuthenticatedError(err) {
|
|
571
|
+
const respErr = {
|
|
572
|
+
error: ErrorType.UNAUTHENTICATED,
|
|
573
|
+
error_description: err,
|
|
574
|
+
};
|
|
575
|
+
return Promise.reject(respErr);
|
|
576
|
+
}
|
|
577
|
+
_debug(...args) {
|
|
578
|
+
if (this.logDebugMessages) {
|
|
579
|
+
console.log('[OAuth2Client]', ...args);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
async _initialize() {
|
|
583
|
+
try {
|
|
584
|
+
if (!this.getInitialSession) {
|
|
585
|
+
this._debug('#_initialize()', 'no getInitialSession callback set, skipping');
|
|
586
|
+
return { error: null };
|
|
587
|
+
}
|
|
588
|
+
this._debug('#_initialize()', 'calling getInitialSession callback');
|
|
589
|
+
try {
|
|
590
|
+
const { data, error } = await this.getInitialSession();
|
|
591
|
+
if (data?.session) {
|
|
592
|
+
this._debug('#_initialize()', 'session obtained from getInitialSession', data.session);
|
|
593
|
+
await this.localCredentials.setCredentials(data?.session);
|
|
594
|
+
}
|
|
595
|
+
if (this.onInitialSessionObtained) {
|
|
596
|
+
this._debug('#_initialize()', 'calling onInitialSessionObtained callback');
|
|
597
|
+
try {
|
|
598
|
+
await this.onInitialSessionObtained(data, error);
|
|
599
|
+
}
|
|
600
|
+
catch (callbackError) {
|
|
601
|
+
this._debug('#_initialize()', 'error in onInitialSessionObtained', callbackError);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
if (error) {
|
|
605
|
+
this._debug('#_initialize()', 'error from getInitialSession', error);
|
|
606
|
+
return { error };
|
|
607
|
+
}
|
|
608
|
+
return { error: null };
|
|
609
|
+
}
|
|
610
|
+
catch (err) {
|
|
611
|
+
this._debug('#_initialize()', 'exception during getInitialSession', err);
|
|
612
|
+
return { error: err instanceof Error ? err : new Error(String(err)) };
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
catch (error) {
|
|
616
|
+
this._debug('#_initialize()', 'unexpected error', error);
|
|
617
|
+
return { error: error instanceof Error ? error : new Error(String(error)) };
|
|
618
|
+
}
|
|
619
|
+
finally {
|
|
620
|
+
this._debug('#_initialize()', 'end');
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
async _acquireLock(acquireTimeout, fn) {
|
|
624
|
+
this._debug('#_acquireLock', 'begin', acquireTimeout);
|
|
625
|
+
try {
|
|
626
|
+
if (this.lockAcquired) {
|
|
627
|
+
const last = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve();
|
|
628
|
+
const result = (async () => {
|
|
629
|
+
await last;
|
|
630
|
+
return await fn();
|
|
631
|
+
})();
|
|
632
|
+
this.pendingInLock.push((async () => {
|
|
633
|
+
try {
|
|
634
|
+
await result;
|
|
635
|
+
}
|
|
636
|
+
catch (_e) {
|
|
637
|
+
}
|
|
638
|
+
})());
|
|
639
|
+
return result;
|
|
640
|
+
}
|
|
641
|
+
this._debug('#_acquireLock', 'acquiring lock for client', this.clientId);
|
|
642
|
+
try {
|
|
643
|
+
this.lockAcquired = true;
|
|
644
|
+
const result = fn();
|
|
645
|
+
this.pendingInLock.push((async () => {
|
|
646
|
+
try {
|
|
647
|
+
await result;
|
|
648
|
+
}
|
|
649
|
+
catch (_e) {
|
|
650
|
+
}
|
|
651
|
+
})());
|
|
652
|
+
await result;
|
|
653
|
+
while (this.pendingInLock.length) {
|
|
654
|
+
const waitOn = [...this.pendingInLock];
|
|
655
|
+
await Promise.all(waitOn);
|
|
656
|
+
this.pendingInLock.splice(0, waitOn.length);
|
|
657
|
+
}
|
|
658
|
+
return await result;
|
|
659
|
+
}
|
|
660
|
+
finally {
|
|
661
|
+
this._debug('#_acquireLock', 'releasing lock for client', this.clientId);
|
|
662
|
+
this.lockAcquired = false;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
finally {
|
|
666
|
+
this._debug('#_acquireLock', 'end');
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
async _getCredentials() {
|
|
670
|
+
let credentials = await this.localCredentials.getCredentials();
|
|
671
|
+
if (credentials?.scope === DEFAULT_NODE_ACCESS_SCOPE) {
|
|
672
|
+
return credentials;
|
|
673
|
+
}
|
|
674
|
+
if (!credentials) {
|
|
675
|
+
const msg = 'credentials not found';
|
|
676
|
+
this.onCredentialsError?.({ msg });
|
|
677
|
+
return this.unAuthenticatedError(msg);
|
|
678
|
+
}
|
|
679
|
+
if (isCredentialsExpired(credentials)) {
|
|
680
|
+
if (credentials.refresh_token) {
|
|
681
|
+
try {
|
|
682
|
+
credentials = await this._refreshToken(credentials);
|
|
683
|
+
}
|
|
684
|
+
catch (error) {
|
|
685
|
+
if (credentials.scope === 'anonymous') {
|
|
686
|
+
credentials = await this.anonymousLogin(credentials);
|
|
687
|
+
}
|
|
688
|
+
else {
|
|
689
|
+
this.onCredentialsError?.({ msg: error.error_description });
|
|
690
|
+
return Promise.reject(error);
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
else if (credentials.scope === 'anonymous') {
|
|
695
|
+
credentials = await this.anonymousLogin(credentials);
|
|
696
|
+
}
|
|
697
|
+
else {
|
|
698
|
+
const msg = 'no refresh token found in credentials';
|
|
699
|
+
this.onCredentialsError?.({ msg });
|
|
700
|
+
return this.unAuthenticatedError(msg);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
return credentials;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
OAuth2Client.defaultRetry = 2;
|
|
707
|
+
OAuth2Client.minRetry = 0;
|
|
708
|
+
OAuth2Client.maxRetry = 5;
|
|
709
|
+
OAuth2Client.retryInterval = 1000;
|
|
710
|
+
export { OAuth2Client };
|
|
711
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29hdXRoMmNsaWVudC9vYXV0aDJjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNwQyxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixNQUFNLEdBQ1AsTUFBTSxnQkFBZ0IsQ0FBQTtBQWF2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWhELE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFBO0FBQzFDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFBO0FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFBO0FBV3ZDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBb0IsS0FBSyxXQUFjLEdBQVcsRUFBRSxPQUF3QjtJQUNyRyxJQUFJLE1BQU0sR0FBYSxJQUFJLENBQUE7SUFDM0IsSUFBSSxhQUFhLEdBQXlCLElBQUksQ0FBQTtJQUM5QyxJQUFJO1FBRUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDdkIsV0FBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7U0FDM0I7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
|