@cloudbase/ai 2.8.13-beta.0 → 2.8.15-beta.0

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.
@@ -1,5 +1,5 @@
1
- import type { ICloudbase } from '@cloudbase/types';
2
1
  import type { SDKRequestInterface } from '@cloudbase/adapter-interface';
2
+ import type { ICloudbase } from '@cloudbase/types';
3
3
  import { Bot } from './bot';
4
4
  import * as models from './models';
5
5
  import * as types from './type';
@@ -41,5 +41,19 @@ declare class AI {
41
41
  modelRequest: types.ModelReq;
42
42
  botRequest: types.BotReq;
43
43
  }
44
+ interface IHandleRequestInstance {
45
+ req: SDKRequestInterface;
46
+ }
47
+ type HandleRequestInstanceFunc = (options: IHandleRequestInstance) => SDKRequestInterface;
48
+ interface ICreateAi {
49
+ req: SDKRequestInterface;
50
+ baseUrl?: string;
51
+ env?: string;
52
+ getAccessToken?: () => Promise<{
53
+ accessToken: string;
54
+ }>;
55
+ handleReqInstance?: HandleRequestInstanceFunc;
56
+ }
57
+ declare function createAi({ env, baseUrl, req, getAccessToken, handleReqInstance }: ICreateAi): AI;
44
58
  declare function registerAi(app: ICloudbase): void;
45
- export { types, utils, restModels as models, registerAi, AI, Bot };
59
+ export { AI, Bot, createAi, restModels as models, registerAi, types, utils };
package/dist/cjs/index.js CHANGED
@@ -81,7 +81,7 @@ var __rest = (this && this.__rest) || function (s, e) {
81
81
  return t;
82
82
  };
83
83
  Object.defineProperty(exports, "__esModule", { value: true });
84
- exports.Bot = exports.AI = exports.registerAi = exports.models = exports.utils = exports.types = void 0;
84
+ exports.utils = exports.types = exports.registerAi = exports.models = exports.createAi = exports.Bot = exports.AI = void 0;
85
85
  var bot_1 = require("./bot");
86
86
  Object.defineProperty(exports, "Bot", { enumerable: true, get: function () { return bot_1.Bot; } });
87
87
  var models = __importStar(require("./models"));
@@ -89,6 +89,7 @@ var types = __importStar(require("./type"));
89
89
  exports.types = types;
90
90
  var utils = __importStar(require("./utils"));
91
91
  exports.utils = utils;
92
+ var COMPONENT_NAME = 'ai';
92
93
  var MODELS = models.MODELS, restModels = __rest(models, ["MODELS"]);
93
94
  exports.models = restModels;
94
95
  var AI = (function () {
@@ -159,7 +160,58 @@ var AI = (function () {
159
160
  return AI;
160
161
  }());
161
162
  exports.AI = AI;
162
- var COMPONENT_NAME = 'ai';
163
+ var createRequestInstanceWithAccessTokenHeader = function (_a) {
164
+ var getAccessToken = _a.getAccessToken, req = _a.req;
165
+ var fetch = function (options) { return __awaiter(void 0, void 0, void 0, function () {
166
+ var token, _a, headers, restOptions, accessToken;
167
+ return __generator(this, function (_b) {
168
+ switch (_b.label) {
169
+ case 0:
170
+ if (typeof req.fetch !== 'function') {
171
+ throw new Error('req.fetch is not a function');
172
+ }
173
+ token = options.token, _a = options.headers, headers = _a === void 0 ? {} : _a, restOptions = __rest(options, ["token", "headers"]);
174
+ if (!(token != null)) return [3, 1];
175
+ accessToken = token;
176
+ return [3, 3];
177
+ case 1: return [4, getAccessToken()];
178
+ case 2:
179
+ accessToken = (_b.sent()).accessToken;
180
+ _b.label = 3;
181
+ case 3: return [2, req.fetch(__assign({ headers: __assign({ Authorization: "Bearer ".concat(accessToken) }, headers) }, restOptions))];
182
+ }
183
+ });
184
+ }); };
185
+ return {
186
+ download: req.download,
187
+ post: req.post,
188
+ upload: req.upload,
189
+ fetch: fetch,
190
+ };
191
+ };
192
+ function createAi(_a) {
193
+ var env = _a.env, baseUrl = _a.baseUrl, req = _a.req, getAccessToken = _a.getAccessToken, handleReqInstance = _a.handleReqInstance;
194
+ var getBaseUrl = function () {
195
+ if (baseUrl != null) {
196
+ return baseUrl;
197
+ }
198
+ if (env == null) {
199
+ throw new Error('`env` is required when `baseUrl` is not provided!');
200
+ }
201
+ return "https://".concat(env, ".api.tcloudbasegateway.com/v1");
202
+ };
203
+ var getReq = function () {
204
+ if (handleReqInstance == null) {
205
+ if (getAccessToken == null) {
206
+ throw new Error('`getAccessToken` is required when `handleReqInstance` is not provided!');
207
+ }
208
+ return createRequestInstanceWithAccessTokenHeader({ req: req, getAccessToken: getAccessToken });
209
+ }
210
+ return handleReqInstance({ req: req });
211
+ };
212
+ return new AI(getReq(), getBaseUrl());
213
+ }
214
+ exports.createAi = createAi;
163
215
  function ai(options) {
164
216
  var _this = this;
165
217
  var _a;
@@ -169,10 +221,13 @@ function ai(options) {
169
221
  }
170
222
  var getUrlFromCloud = function () {
171
223
  var _a = _this.getEndPointWithKey('GATEWAY'), BASE_URL = _a.BASE_URL, PROTOCOL = _a.PROTOCOL;
172
- return "".concat(PROTOCOL).concat(BASE_URL, "/v1");
224
+ return "".concat(PROTOCOL).concat(BASE_URL);
173
225
  };
174
226
  var baseUrl = (_a = options === null || options === void 0 ? void 0 : options.baseUrl) !== null && _a !== void 0 ? _a : getUrlFromCloud();
175
- return new AI(req, baseUrl);
227
+ return createAi({ req: req, baseUrl: baseUrl, handleReqInstance: function (_a) {
228
+ var req = _a.req;
229
+ return req;
230
+ } });
176
231
  }
177
232
  var component = {
178
233
  name: COMPONENT_NAME,
@@ -187,4 +242,4 @@ function registerAi(app) {
187
242
  }
188
243
  }
189
244
  exports.registerAi = registerAi;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsNkJBQTJCO0FBeUdrQyxvRkF6R3BELFNBQUcsT0F5R29EO0FBeEdoRSwrQ0FBa0M7QUFDbEMsNENBQStCO0FBdUd0QixzQkFBSztBQXRHZCw2Q0FBZ0M7QUFzR2hCLHNCQUFLO0FBcEdiLElBQUEsTUFBTSxHQUFvQixNQUFNLE9BQTFCLEVBQUssVUFBVSxVQUFLLE1BQU0sRUFBbEMsVUFBeUIsQ0FBRixDQUFXO0FBb0dILDRCQUFNO0FBbEczQztJQUtFLFlBQW9CLEdBQXdCLEVBQVMsT0FBZTtRQUFwRSxpQkFJQztRQUptQixRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFrQnBFLGlCQUFZLEdBQW1CLFVBQU8sRUFBOEI7Z0JBQTVCLEdBQUcsU0FBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQTs7OztnQ0FDaEUsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQ0FDbkIsTUFBTSxFQUFFLE1BQU07Z0NBQ2QsT0FBTyxlQUNGLE9BQU8sQ0FDWDtnQ0FDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0NBQzFCLEdBQUcsS0FBQTtnQ0FDSCxNQUFNLFFBQUE7NkJBQ1AsQ0FBQyxFQUFBO2dDQVRxRSxXQUFBLENBQ3ZFLFNBUUUsQ0FDSCxDQUFDLElBQUksRUFBQTs7OztTQUFBLENBQUE7UUFFTixlQUFVLEdBQWlCLFVBQU8sRUFBMkM7Z0JBQXpDLE1BQU0sWUFBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLFlBQVMsRUFBVCxJQUFJLG1CQUFHLEVB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QUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQsSUFBTSxTQUFTLEdBQXdCO0lBQ3JDLElBQUksRUFBRSxjQUFjO0lBQ3BCLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBQSxFQUFFO0NBQ2YsQ0FBQTtBQUVELFNBQVMsVUFBVSxDQUFDLEdBQWU7SUFDakMsSUFBSTtRQUNGLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUNqQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUM7QUFFNEMsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlQ29tcG9uZW50IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgdHlwZSB7IFNES1JlcXVlc3RJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQm90IH0gZnJvbSAnLi9ib3QnXG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGUnXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCB7IE1PREVMUywgLi4ucmVzdE1vZGVscyB9ID0gbW9kZWxzXG5cbmNsYXNzIEFJIHtcbiAgcHVibGljIGFpQmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBhaUJvdEJhc2VVcmw6IHN0cmluZ1xuICBwdWJsaWMgYm90OiBCb3RcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogU0RLUmVxdWVzdEludGVyZmFjZSwgcHVibGljIGJhc2VVcmw6IHN0cmluZykge1xuICAgIHRoaXMuYWlCYXNlVXJsID0gYCR7YmFzZVVybH0vYWlgXG4gICAgdGhpcy5haUJvdEJhc2VVcmwgPSBgJHtiYXNlVXJsfS9haWJvdGBcbiAgICB0aGlzLmJvdCA9IG5ldyBCb3QodGhpcy5ib3RSZXF1ZXN0LCB0aGlzLmFpQm90QmFzZVVybClcbiAgfVxuXG4gIGNyZWF0ZU1vZGVsPFQgZXh0ZW5kcyBrZXlvZiB0eXBlb2YgTU9ERUxTPihtb2RlbDogVCkge1xuICAgIHJldHVybiBuZXcgTU9ERUxTW21vZGVsXSh0aGlzLm1vZGVsUmVxdWVzdCwgdGhpcy5haUJhc2VVcmwpIGFzIEluc3RhbmNlVHlwZTwodHlwZW9mIE1PREVMUylbVF0+XG4gIH1cblxuICByZWdpc3Rlck1vZGVsKG5hbWU6IHN0cmluZywgbW9kZWw6IHR5cGVzLkNoYXRNb2RlbENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKE1PREVMU1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFJIG1vZGVsICR7bmFtZX0gYWxyZWFkeSBleGlzdHMhYClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBNT0RFTFNbbmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgbW9kZWxSZXF1ZXN0OiB0eXBlcy5Nb2RlbFJlcSA9IGFzeW5jICh7IHVybCwgZGF0YSwgaGVhZGVycywgc3RyZWFtIH0pID0+IChcbiAgICBhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIHVybCxcbiAgICAgIHN0cmVhbSxcbiAgICB9KVxuICApLmRhdGFcblxuICBib3RSZXF1ZXN0OiB0eXBlcy5Cb3RSZXEgPSBhc3luYyAoeyBtZXRob2QsIHVybCwgZGF0YSA9IHt9LCBoZWFkZXJzLCBzdHJlYW0gfSkgPT4ge1xuICAgIGlmIChtZXRob2QgPT09ICdnZXQnKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMucmVxLmZldGNoKHsgdXJsOiBgJHt1cmx9PyR7b2JqZWN0VG9QYXJhbShkYXRhKX1gLCBtZXRob2QsIGhlYWRlcnMsIHN0cmVhbSB9KSkuZGF0YVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICAgIHVybCxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgLi4uaGVhZGVycyB9LFxuICAgICAgICBzdHJlYW0sXG4gICAgICAgIG1ldGhvZCxcbiAgICAgIH0pXG4gICAgKS5kYXRhXG5cbiAgICBmdW5jdGlvbiBvYmplY3RUb1BhcmFtKG9iajogT2JqZWN0KSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAuam9pbignJicpXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IENPTVBPTkVOVF9OQU1FID0gJ2FpJ1xuXG5pbnRlcmZhY2UgQUlJbml0T3B0aW9uIHtcbiAgZW52Pzogc3RyaW5nXG4gIGJhc2VVcmw/OiBzdHJpbmdcbn1cblxuZnVuY3Rpb24gYWkoXG4gIHRoaXM6IElDbG91ZGJhc2UgJiB7IGdldEVuZFBvaW50V2l0aEtleTogKGtleTogJ0dBVEVXQVknKSA9PiB7IEJBU0VfVVJMOiBzdHJpbmc7IFBST1RPQ09MOiBzdHJpbmcgfSB9LFxuICBvcHRpb25zPzogQUlJbml0T3B0aW9uLFxuKSB7XG4gIGNvbnN0IHJlcSA9IHRoaXMucmVxdWVzdFxuXG4gIGlmIChyZXEuZmV0Y2ggPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xvdWRiYXNlLnJlcXVlc3QuZmV0Y2goKSB1bmltcGxlbWVudGVkIScpXG4gIH1cblxuICBjb25zdCBnZXRVcmxGcm9tQ2xvdWQgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBCQVNFX1VSTCwgUFJPVE9DT0wgfSA9IHRoaXMuZ2V0RW5kUG9pbnRXaXRoS2V5KCdHQVRFV0FZJylcbiAgICByZXR1cm4gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH0vdjFgXG4gIH1cblxuICBjb25zdCBiYXNlVXJsID0gb3B0aW9ucz8uYmFzZVVybCA/PyBnZXRVcmxGcm9tQ2xvdWQoKVxuXG4gIHJldHVybiBuZXcgQUkocmVxLCBiYXNlVXJsKVxufVxuXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IHsgYWkgfSxcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJBaShhcHA6IElDbG91ZGJhc2UpIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuZXhwb3J0IHsgdHlwZXMsIHV0aWxzLCByZXN0TW9kZWxzIGFzIG1vZGVscywgcmVnaXN0ZXJBaSwgQUksIEJvdCB9XG4iXX0=
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsNkJBQTJCO0FBcU1kLG9GQXJNSixTQUFHLE9BcU1JO0FBcE1oQiwrQ0FBa0M7QUFDbEMsNENBQStCO0FBbU0rQixzQkFBSztBQWxNbkUsNkNBQWdDO0FBa01xQyxzQkFBSztBQWhNMUUsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFBO0FBRW5CLElBQUEsTUFBTSxHQUFvQixNQUFNLE9BQTFCLEVBQUssVUFBVSxVQUFLLE1BQU0sRUFBbEMsVUFBeUIsQ0FBRixDQUFXO0FBOExFLDRCQUFNO0FBNUxoRDtJQUtFLFlBQW9CLEdBQXdCLEVBQVMsT0FBZTtRQUFwRSxpQkFJQztRQUptQixRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFrQnBFLGlCQUFZLEdBQW1CLFVBQU8sRUFBOEI7Z0JBQTVCLEdBQUcsU0FBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQTs7OztnQ0FDaEUsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQ0FDbkIsTUFBTSxFQUFFLE1BQU07Z0NBQ2QsT0FBTyxlQUNGLE9BQU8sQ0FDWDtnQ0FDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0NBQzFCLEdBQUcsS0FBQTtnQ0FDSCxNQUFNLFFBQUE7NkJBQ1AsQ0FBQyxFQUFBO2dDQVRxRSxXQUFBLENBQ3ZFLFNBUUUsQ0FDSCxDQUFDLElBQUksRUFBQTs7OztTQUFBLENBQUE7UUFFTixlQUFVLEdBQWlCLFVBQU8sRUFBMkM7Z0JBQXpDLE1BQU0sWUFBQSxFQUFFLEdBQUcsU0FB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IHsgSUZldGNoT3B0aW9ucywgU0RLUmVxdWVzdEludGVyZmFjZSB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5pbXBvcnQgdHlwZSB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlQ29tcG9uZW50IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBCb3QgfSBmcm9tICcuL2JvdCdcbmltcG9ydCAqIGFzIG1vZGVscyBmcm9tICcuL21vZGVscydcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4vdHlwZSdcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4vdXRpbHMnXG5cbmNvbnN0IENPTVBPTkVOVF9OQU1FID0gJ2FpJ1xuXG5jb25zdCB7IE1PREVMUywgLi4ucmVzdE1vZGVscyB9ID0gbW9kZWxzXG5cbmNsYXNzIEFJIHtcbiAgcHVibGljIGFpQmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBhaUJvdEJhc2VVcmw6IHN0cmluZ1xuICBwdWJsaWMgYm90OiBCb3RcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogU0RLUmVxdWVzdEludGVyZmFjZSwgcHVibGljIGJhc2VVcmw6IHN0cmluZykge1xuICAgIHRoaXMuYWlCYXNlVXJsID0gYCR7YmFzZVVybH0vYWlgXG4gICAgdGhpcy5haUJvdEJhc2VVcmwgPSBgJHtiYXNlVXJsfS9haWJvdGBcbiAgICB0aGlzLmJvdCA9IG5ldyBCb3QodGhpcy5ib3RSZXF1ZXN0LCB0aGlzLmFpQm90QmFzZVVybClcbiAgfVxuXG4gIGNyZWF0ZU1vZGVsPFQgZXh0ZW5kcyBrZXlvZiB0eXBlb2YgTU9ERUxTPihtb2RlbDogVCkge1xuICAgIHJldHVybiBuZXcgTU9ERUxTW21vZGVsXSh0aGlzLm1vZGVsUmVxdWVzdCwgdGhpcy5haUJhc2VVcmwpIGFzIEluc3RhbmNlVHlwZTwodHlwZW9mIE1PREVMUylbVF0+XG4gIH1cblxuICByZWdpc3Rlck1vZGVsKG5hbWU6IHN0cmluZywgbW9kZWw6IHR5cGVzLkNoYXRNb2RlbENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKE1PREVMU1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFJIG1vZGVsICR7bmFtZX0gYWxyZWFkeSBleGlzdHMhYClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBNT0RFTFNbbmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgbW9kZWxSZXF1ZXN0OiB0eXBlcy5Nb2RlbFJlcSA9IGFzeW5jICh7IHVybCwgZGF0YSwgaGVhZGVycywgc3RyZWFtIH0pID0+IChcbiAgICBhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIHVybCxcbiAgICAgIHN0cmVhbSxcbiAgICB9KVxuICApLmRhdGFcblxuICBib3RSZXF1ZXN0OiB0eXBlcy5Cb3RSZXEgPSBhc3luYyAoeyBtZXRob2QsIHVybCwgZGF0YSA9IHt9LCBoZWFkZXJzLCBzdHJlYW0gfSkgPT4ge1xuICAgIGlmIChtZXRob2QgPT09ICdnZXQnKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMucmVxLmZldGNoKHsgdXJsOiBgJHt1cmx9PyR7b2JqZWN0VG9QYXJhbShkYXRhKX1gLCBtZXRob2QsIGhlYWRlcnMsIHN0cmVhbSB9KSkuZGF0YVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICAgIHVybCxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgLi4uaGVhZGVycyB9LFxuICAgICAgICBzdHJlYW0sXG4gICAgICAgIG1ldGhvZCxcbiAgICAgIH0pXG4gICAgKS5kYXRhXG5cbiAgICBmdW5jdGlvbiBvYmplY3RUb1BhcmFtKG9iajogT2JqZWN0KSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAuam9pbignJicpXG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBJSGFuZGxlUmVxdWVzdEluc3RhbmNlIHtcbiAgcmVxOiBTREtSZXF1ZXN0SW50ZXJmYWNlXG59XG5cbnR5cGUgSGFuZGxlUmVxdWVzdEluc3RhbmNlRnVuYyA9IChvcHRpb25zOiBJSGFuZGxlUmVxdWVzdEluc3RhbmNlKSA9PiBTREtSZXF1ZXN0SW50ZXJmYWNlXG5cbmNvbnN0IGNyZWF0ZVJlcXVlc3RJbnN0YW5jZVdpdGhBY2Nlc3NUb2tlbkhlYWRlciA9ICh7XG4gIGdldEFjY2Vzc1Rva2VuLFxuICByZXEsXG59OiBJSGFuZGxlUmVxdWVzdEluc3RhbmNlICYgeyBnZXRBY2Nlc3NUb2tlbjogKCkgPT4gUHJvbWlzZTx7IGFjY2Vzc1Rva2VuOiBzdHJpbmcgfT4gfSkgPT4ge1xuICBjb25zdCBmZXRjaDogdHlwZW9mIHJlcS5mZXRjaCA9IGFzeW5jIChvcHRpb25zOiBJRmV0Y2hPcHRpb25zICYgeyB0b2tlbj86IHN0cmluZyB9KSA9PiB7XG4gICAgaWYgKHR5cGVvZiByZXEuZmV0Y2ggIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncmVxLmZldGNoIGlzIG5vdCBhIGZ1bmN0aW9uJylcbiAgICB9XG5cbiAgICBjb25zdCB7IHRva2VuLCBoZWFkZXJzID0ge30sIC4uLnJlc3RPcHRpb25zIH0gPSBvcHRpb25zXG4gICAgbGV0IGFjY2Vzc1Rva2VuOiBzdHJpbmdcbiAgICBpZiAodG9rZW4gIT0gbnVsbCkge1xuICAgICAgYWNjZXNzVG9rZW4gPSB0b2tlblxuICAgIH0gZWxzZSB7XG4gICAgICBhY2Nlc3NUb2tlbiA9IChhd2FpdCBnZXRBY2Nlc3NUb2tlbigpKS5hY2Nlc3NUb2tlblxuICAgIH1cblxuICAgIHJldHVybiByZXEuZmV0Y2goe1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkb3dubG9hZDogcmVxLmRvd25sb2FkLFxuICAgIHBvc3Q6IHJlcS5wb3N0LFxuICAgIHVwbG9hZDogcmVxLnVwbG9hZCxcbiAgICBmZXRjaCxcbiAgfVxufVxuXG5pbnRlcmZhY2UgQUlJbml0T3B0aW9uIHtcbiAgYmFzZVVybD86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgSUNyZWF0ZUFpIHtcbiAgcmVxOiBTREtSZXF1ZXN0SW50ZXJmYWNlXG4gIGJhc2VVcmw/OiBzdHJpbmdcbiAgZW52Pzogc3RyaW5nXG4gIGdldEFjY2Vzc1Rva2VuPzogKCkgPT4gUHJvbWlzZTx7IGFjY2Vzc1Rva2VuOiBzdHJpbmcgfT5cbiAgaGFuZGxlUmVxSW5zdGFuY2U/OiBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jXG59XG5cbi8qKlxuICog5pyA566A5Zyw5Yib5bu65LiA5Liq5o6l5LqR5byA5Y+R572R5YWz5pyN5Yqh55qEIGBBSWAg5a6e5L6L77yM6K+35rGC5pe25Lya6Ieq5Yqo5bim5LiK6Ym05p2D6K+35rGC5aS044CCXG4gKiDlj6rpnIDopoHkvKDlhaXvvJpcbiAqXG4gKiAtIGBnZXRBY2Nlc3NUb2tlbmA6IOiOt+WPliBhY2Nlc3NUb2tlbiDnmoTlh73mlbBcbiAqIC0gYHJlcWA6IOivt+axguWHveaVsO+8jOS4gOiIrOS7jiBhZGFwdGVyIOS4iuaLv1xuICogLSBgZW52YDog5LqR5byA5Y+R546v5aKDIElEXG4gKlxuICog5YW25LuW5Y+C5pWw5Y+v5oyJ6ZyA5Lyg5YWl6KaG55uW5Ye95pWw6YC76L6R44CCXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFpKHsgZW52LCBiYXNlVXJsLCByZXEsIGdldEFjY2Vzc1Rva2VuLCBoYW5kbGVSZXFJbnN0YW5jZSB9OiBJQ3JlYXRlQWkpIHtcbiAgY29uc3QgZ2V0QmFzZVVybCA9ICgpID0+IHtcbiAgICBpZiAoYmFzZVVybCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gYmFzZVVybFxuICAgIH1cbiAgICBpZiAoZW52ID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYGVudmAgaXMgcmVxdWlyZWQgd2hlbiBgYmFzZVVybGAgaXMgbm90IHByb3ZpZGVkIScpXG4gICAgfVxuICAgIHJldHVybiBgaHR0cHM6Ly8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWBcbiAgfVxuXG4gIGNvbnN0IGdldFJlcSA9ICgpID0+IHtcbiAgICBpZiAoaGFuZGxlUmVxSW5zdGFuY2UgPT0gbnVsbCkge1xuICAgICAgaWYgKGdldEFjY2Vzc1Rva2VuID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZ2V0QWNjZXNzVG9rZW5gIGlzIHJlcXVpcmVkIHdoZW4gYGhhbmRsZVJlcUluc3RhbmNlYCBpcyBub3QgcHJvdmlkZWQhJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0SW5zdGFuY2VXaXRoQWNjZXNzVG9rZW5IZWFkZXIoeyByZXEsIGdldEFjY2Vzc1Rva2VuIH0pXG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVSZXFJbnN0YW5jZSh7IHJlcSB9KVxuICB9XG5cbiAgcmV0dXJuIG5ldyBBSShnZXRSZXEoKSwgZ2V0QmFzZVVybCgpKVxufVxuXG4vKipcbiAqIOWIm+W7uiBgQUlgIOWunuS+i+OAglxuICog6K+l5Ye95pWw5oyC6L295ZyoIGpzIHNkayDnmoQgQ2xvdWRiYXNlIOWunuS+i+S4iuOAglxuICog6K+l5Ye95pWw6LCD55So5LqG5pys5qih5Z2X5pq06Zyy55qEIGBjcmVhdGVBaWAg5Ye95pWw77yM5L2G6LCD55So5pe26YCa6L+H5Lyg5YWl5Y+C5pWw5YGa5LqG6YC76L6R6KaG55uW77yaXG4gKlxuICogLSDkvKDlhaXku44gQ2xvdWRiYXNlIOWunuS+i+S4iueahOS4reW/g+eahCBgcmVxYFxuICogLSDkvKDlhaXku44gQ2xvdWRiYXNlIOWunuS+i+S4iuaLv+WIsOeahCBgYmFzZVVybGBcbiAqIC0g5Lyg5YWl5LiA5Liq5LiN5aSE55CGIGByZXFgIOeahCBgaGFuZGxlUmVxSW5zdGFuY2Vg77yM55Sx5LqOIGByZXFgIOaYr+S7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK5ou/5Yiw55qE77yM6L+Z5Liq5Lit5b+D55qEIGByZXFgIOW3sue7j+WPr+eUqOS6hlxuICogLSDkuI3nlKjkvKDlhaUgYGVudmAg5LqG77yM5Zug5Li65bey57uP5Lyg5LqGIGBiYXNlVXJsYFxuICogLSDkuI3nlKjkvKDlhaUgYGdldEFjY2Vzc1Rva2VuYCDkuobvvIzlm6DkuLrkvKDkuoYgYGhhbmRsZVJlcUluc3RhbmNlYFxuICovXG5mdW5jdGlvbiBhaShcbiAgdGhpczogSUNsb3VkYmFzZSAmIHsgZ2V0RW5kUG9pbnRXaXRoS2V5OiAoa2V5OiAnR0FURVdBWScpID0+IHsgQkFTRV9VUkw6IHN0cmluZzsgUFJPVE9DT0w6IHN0cmluZyB9IH0sXG4gIG9wdGlvbnM/OiBBSUluaXRPcHRpb24sXG4pIHtcbiAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0XG5cbiAgaWYgKHJlcS5mZXRjaCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbG91ZGJhc2UucmVxdWVzdC5mZXRjaCgpIHVuaW1wbGVtZW50ZWQhJylcbiAgfVxuXG4gIGNvbnN0IGdldFVybEZyb21DbG91ZCA9ICgpID0+IHtcbiAgICBjb25zdCB7IEJBU0VfVVJMLCBQUk9UT0NPTCB9ID0gdGhpcy5nZXRFbmRQb2ludFdpdGhLZXkoJ0dBVEVXQVknKVxuICAgIHJldHVybiBgJHtQUk9UT0NPTH0ke0JBU0VfVVJMfWBcbiAgfVxuXG4gIGNvbnN0IGJhc2VVcmwgPSBvcHRpb25zPy5iYXNlVXJsID8/IGdldFVybEZyb21DbG91ZCgpXG5cbiAgcmV0dXJuIGNyZWF0ZUFpKHsgcmVxLCBiYXNlVXJsLCBoYW5kbGVSZXFJbnN0YW5jZTogKHsgcmVxIH0pID0+IHJlcSB9KVxufVxuXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IHsgYWkgfSxcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJBaShhcHA6IElDbG91ZGJhc2UpIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuZXhwb3J0IHsgQUksIEJvdCwgY3JlYXRlQWksIHJlc3RNb2RlbHMgYXMgbW9kZWxzLCByZWdpc3RlckFpLCB0eXBlcywgdXRpbHMgfVxuIl19
@@ -1,5 +1,5 @@
1
- import type { ICloudbase } from '@cloudbase/types';
2
1
  import type { SDKRequestInterface } from '@cloudbase/adapter-interface';
2
+ import type { ICloudbase } from '@cloudbase/types';
3
3
  import { Bot } from './bot';
4
4
  import * as models from './models';
5
5
  import * as types from './type';
@@ -41,5 +41,19 @@ declare class AI {
41
41
  modelRequest: types.ModelReq;
42
42
  botRequest: types.BotReq;
43
43
  }
44
+ interface IHandleRequestInstance {
45
+ req: SDKRequestInterface;
46
+ }
47
+ type HandleRequestInstanceFunc = (options: IHandleRequestInstance) => SDKRequestInterface;
48
+ interface ICreateAi {
49
+ req: SDKRequestInterface;
50
+ baseUrl?: string;
51
+ env?: string;
52
+ getAccessToken?: () => Promise<{
53
+ accessToken: string;
54
+ }>;
55
+ handleReqInstance?: HandleRequestInstanceFunc;
56
+ }
57
+ declare function createAi({ env, baseUrl, req, getAccessToken, handleReqInstance }: ICreateAi): AI;
44
58
  declare function registerAi(app: ICloudbase): void;
45
- export { types, utils, restModels as models, registerAi, AI, Bot };
59
+ export { AI, Bot, createAi, restModels as models, registerAi, types, utils };
package/dist/esm/index.js CHANGED
@@ -60,6 +60,7 @@ import { Bot } from './bot';
60
60
  import * as models from './models';
61
61
  import * as types from './type';
62
62
  import * as utils from './utils';
63
+ var COMPONENT_NAME = 'ai';
63
64
  var MODELS = models.MODELS, restModels = __rest(models, ["MODELS"]);
64
65
  var AI = (function () {
65
66
  function AI(req, baseUrl) {
@@ -128,7 +129,57 @@ var AI = (function () {
128
129
  };
129
130
  return AI;
130
131
  }());
131
- var COMPONENT_NAME = 'ai';
132
+ var createRequestInstanceWithAccessTokenHeader = function (_a) {
133
+ var getAccessToken = _a.getAccessToken, req = _a.req;
134
+ var fetch = function (options) { return __awaiter(void 0, void 0, void 0, function () {
135
+ var token, _a, headers, restOptions, accessToken;
136
+ return __generator(this, function (_b) {
137
+ switch (_b.label) {
138
+ case 0:
139
+ if (typeof req.fetch !== 'function') {
140
+ throw new Error('req.fetch is not a function');
141
+ }
142
+ token = options.token, _a = options.headers, headers = _a === void 0 ? {} : _a, restOptions = __rest(options, ["token", "headers"]);
143
+ if (!(token != null)) return [3, 1];
144
+ accessToken = token;
145
+ return [3, 3];
146
+ case 1: return [4, getAccessToken()];
147
+ case 2:
148
+ accessToken = (_b.sent()).accessToken;
149
+ _b.label = 3;
150
+ case 3: return [2, req.fetch(__assign({ headers: __assign({ Authorization: "Bearer ".concat(accessToken) }, headers) }, restOptions))];
151
+ }
152
+ });
153
+ }); };
154
+ return {
155
+ download: req.download,
156
+ post: req.post,
157
+ upload: req.upload,
158
+ fetch: fetch,
159
+ };
160
+ };
161
+ function createAi(_a) {
162
+ var env = _a.env, baseUrl = _a.baseUrl, req = _a.req, getAccessToken = _a.getAccessToken, handleReqInstance = _a.handleReqInstance;
163
+ var getBaseUrl = function () {
164
+ if (baseUrl != null) {
165
+ return baseUrl;
166
+ }
167
+ if (env == null) {
168
+ throw new Error('`env` is required when `baseUrl` is not provided!');
169
+ }
170
+ return "https://".concat(env, ".api.tcloudbasegateway.com/v1");
171
+ };
172
+ var getReq = function () {
173
+ if (handleReqInstance == null) {
174
+ if (getAccessToken == null) {
175
+ throw new Error('`getAccessToken` is required when `handleReqInstance` is not provided!');
176
+ }
177
+ return createRequestInstanceWithAccessTokenHeader({ req: req, getAccessToken: getAccessToken });
178
+ }
179
+ return handleReqInstance({ req: req });
180
+ };
181
+ return new AI(getReq(), getBaseUrl());
182
+ }
132
183
  function ai(options) {
133
184
  var _this = this;
134
185
  var _a;
@@ -138,10 +189,13 @@ function ai(options) {
138
189
  }
139
190
  var getUrlFromCloud = function () {
140
191
  var _a = _this.getEndPointWithKey('GATEWAY'), BASE_URL = _a.BASE_URL, PROTOCOL = _a.PROTOCOL;
141
- return "".concat(PROTOCOL).concat(BASE_URL, "/v1");
192
+ return "".concat(PROTOCOL).concat(BASE_URL);
142
193
  };
143
194
  var baseUrl = (_a = options === null || options === void 0 ? void 0 : options.baseUrl) !== null && _a !== void 0 ? _a : getUrlFromCloud();
144
- return new AI(req, baseUrl);
195
+ return createAi({ req: req, baseUrl: baseUrl, handleReqInstance: function (_a) {
196
+ var req = _a.req;
197
+ return req;
198
+ } });
145
199
  }
146
200
  var component = {
147
201
  name: COMPONENT_NAME,
@@ -155,5 +209,5 @@ function registerAi(app) {
155
209
  console.warn(e);
156
210
  }
157
211
  }
158
- export { types, utils, restModels as models, registerAi, AI, Bot };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0IsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDbEMsT0FBTyxLQUFLLEtBQUssTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUE7QUFFeEIsSUFBQSxNQUFNLEdBQW9CLE1BQU0sT0FBMUIsRUFBSyxVQUFVLFVBQUssTUFBTSxFQUFsQyxVQUF5QixDQUFGLENBQVc7QUFFeEM7SUFLRSxZQUFvQixHQUF3QixFQUFTLE9BQWU7UUFBcEUsaUJBSUM7UUFKbUIsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBa0JwRSxpQkFBWSxHQUFtQixVQUFPLEVBQThCO2dCQUE1QixHQUFHLFNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxPQUFPLGFBQUEsRUFBRSxNQUFNLFlBQUE7Ozs7Z0NBQ2hFLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0NBQ25CLE1BQU0sRUFBRSxNQUFNO2dDQUNkLE9BQU8sZUFDRixPQUFPLENBQ1g7Z0NBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dDQUMxQixHQUFHLEtBQUE7Z0NBQ0gsTUFBTSxRQUFBOzZCQUNQLENBQUMsRUFBQTtnQ0FUcUUsV0FBQSxDQUN2RSxTQVFFLENBQ0gsQ0FBQyxJQUFJLEVBQUE7Ozs7U0FBQSxDQUFBO1FBRU4sZUFBVSxHQUFpQixVQUFPLEVBQTJDO2dCQUF6QyxNQUFNLFlBQUEsRUFBRSxHQUFHLFNBQUEsRUFBRSxZQUFTLEVBQVQsSUFBSSxtQkFB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QUUsT0FBTyxDQUFDLENBQUE7QUFDN0IsQ0FBQztBQUVELElBQU0sU0FBUyxHQUF3QjtJQUNyQyxJQUFJLEVBQUUsY0FBYztJQUNwQixNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUEsRUFBRTtDQUNmLENBQUE7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUFlO0lBQ2pDLElBQUk7UUFDRixHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7S0FDakM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxJQUFJLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZUNvbXBvbmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHR5cGUgeyBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlJ1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuY29uc3QgeyBNT0RFTFMsIC4uLnJlc3RNb2RlbHMgfSA9IG1vZGVsc1xuXG5jbGFzcyBBSSB7XG4gIHB1YmxpYyBhaUJhc2VVcmw6IHN0cmluZ1xuICBwdWJsaWMgYWlCb3RCYXNlVXJsOiBzdHJpbmdcbiAgcHVibGljIGJvdDogQm90XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2UsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFpQmFzZVVybCA9IGAke2Jhc2VVcmx9L2FpYFxuICAgIHRoaXMuYWlCb3RCYXNlVXJsID0gYCR7YmFzZVVybH0vYWlib3RgXG4gICAgdGhpcy5ib3QgPSBuZXcgQm90KHRoaXMuYm90UmVxdWVzdCwgdGhpcy5haUJvdEJhc2VVcmwpXG4gIH1cblxuICBjcmVhdGVNb2RlbDxUIGV4dGVuZHMga2V5b2YgdHlwZW9mIE1PREVMUz4obW9kZWw6IFQpIHtcbiAgICByZXR1cm4gbmV3IE1PREVMU1ttb2RlbF0odGhpcy5tb2RlbFJlcXVlc3QsIHRoaXMuYWlCYXNlVXJsKSBhcyBJbnN0YW5jZVR5cGU8KHR5cGVvZiBNT0RFTFMpW1RdPlxuICB9XG5cbiAgcmVnaXN0ZXJNb2RlbChuYW1lOiBzdHJpbmcsIG1vZGVsOiB0eXBlcy5DaGF0TW9kZWxDb25zdHJ1Y3Rvcikge1xuICAgIGlmIChNT0RFTFNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKGBBSSBtb2RlbCAke25hbWV9IGFscmVhZHkgZXhpc3RzIWApXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgTU9ERUxTW25hbWVdID0gbW9kZWxcbiAgfVxuXG4gIG1vZGVsUmVxdWVzdDogdHlwZXMuTW9kZWxSZXEgPSBhc3luYyAoeyB1cmwsIGRhdGEsIGhlYWRlcnMsIHN0cmVhbSB9KSA9PiAoXG4gICAgYXdhaXQgdGhpcy5yZXEuZmV0Y2goe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICB1cmwsXG4gICAgICBzdHJlYW0sXG4gICAgfSlcbiAgKS5kYXRhXG5cbiAgYm90UmVxdWVzdDogdHlwZXMuQm90UmVxID0gYXN5bmMgKHsgbWV0aG9kLCB1cmwsIGRhdGEgPSB7fSwgaGVhZGVycywgc3RyZWFtIH0pID0+IHtcbiAgICBpZiAobWV0aG9kID09PSAnZ2V0Jykge1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLnJlcS5mZXRjaCh7IHVybDogYCR7dXJsfT8ke29iamVjdFRvUGFyYW0oZGF0YSl9YCwgbWV0aG9kLCBoZWFkZXJzLCBzdHJlYW0gfSkpLmRhdGFcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5yZXEuZmV0Y2goe1xuICAgICAgICB1cmwsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIC4uLmhlYWRlcnMgfSxcbiAgICAgICAgc3RyZWFtLFxuICAgICAgICBtZXRob2QsXG4gICAgICB9KVxuICAgICkuZGF0YVxuXG4gICAgZnVuY3Rpb24gb2JqZWN0VG9QYXJhbShvYmo6IE9iamVjdCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBDT01QT05FTlRfTkFNRSA9ICdhaSdcblxuaW50ZXJmYWNlIEFJSW5pdE9wdGlvbiB7XG4gIGVudj86IHN0cmluZ1xuICBiYXNlVXJsPzogc3RyaW5nXG59XG5cbmZ1bmN0aW9uIGFpKFxuICB0aGlzOiBJQ2xvdWRiYXNlICYgeyBnZXRFbmRQb2ludFdpdGhLZXk6IChrZXk6ICdHQVRFV0FZJykgPT4geyBCQVNFX1VSTDogc3RyaW5nOyBQUk9UT0NPTDogc3RyaW5nIH0gfSxcbiAgb3B0aW9ucz86IEFJSW5pdE9wdGlvbixcbikge1xuICBjb25zdCByZXEgPSB0aGlzLnJlcXVlc3RcblxuICBpZiAocmVxLmZldGNoID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nsb3VkYmFzZS5yZXF1ZXN0LmZldGNoKCkgdW5pbXBsZW1lbnRlZCEnKVxuICB9XG5cbiAgY29uc3QgZ2V0VXJsRnJvbUNsb3VkID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgQkFTRV9VUkwsIFBST1RPQ09MIH0gPSB0aGlzLmdldEVuZFBvaW50V2l0aEtleSgnR0FURVdBWScpXG4gICAgcmV0dXJuIGAke1BST1RPQ09MfSR7QkFTRV9VUkx9L3YxYFxuICB9XG5cbiAgY29uc3QgYmFzZVVybCA9IG9wdGlvbnM/LmJhc2VVcmwgPz8gZ2V0VXJsRnJvbUNsb3VkKClcblxuICByZXR1cm4gbmV3IEFJKHJlcSwgYmFzZVVybClcbn1cblxuY29uc3QgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgZW50aXR5OiB7IGFpIH0sXG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyQWkoYXBwOiBJQ2xvdWRiYXNlKSB7XG4gIHRyeSB7XG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG5cbmV4cG9ydCB7IHR5cGVzLCB1dGlscywgcmVzdE1vZGVscyBhcyBtb2RlbHMsIHJlZ2lzdGVyQWksIEFJLCBCb3QgfVxuIl19
212
+ export { AI, Bot, createAi, restModels as models, registerAi, types, utils };
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0IsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDbEMsT0FBTyxLQUFLLEtBQUssTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUE7QUFFaEMsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFBO0FBRW5CLElBQUEsTUFBTSxHQUFvQixNQUFNLE9BQTFCLEVBQUssVUFBVSxVQUFLLE1BQU0sRUFBbEMsVUFBeUIsQ0FBRixDQUFXO0FBRXhDO0lBS0UsWUFBb0IsR0FBd0IsRUFBUyxPQUFlO1FBQXBFLGlCQUlDO1FBSm1CLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQWtCcEUsaUJBQVksR0FBbUIsVUFBTyxFQUE4QjtnQkFBNUIsR0FBRyxTQUFBLEVBQUUsSUFBSSxVQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsTUFBTSxZQUFBOzs7O2dDQUNoRSxXQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2dDQUNuQixNQUFNLEVBQUUsTUFBTTtnQ0FDZCxPQUFPLGVBQ0YsT0FBTyxDQUNYO2dDQUNELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQ0FDMUIsR0FBRyxLQUFBO2dDQUNILE1BQU0sUUFBQTs2QkFDUCxDQUFDLEVBQUE7Z0NBVHFFLFdBQUEsQ0FDdkUsU0FRRSxDQUNILENBQUMsSUFBSSxFQUFBOzs7O1NBQUEsQ0FBQTtRQUVOLGVBQVUsR0FBaUIsVUFBTyxFQUEyQztnQkFBekMsTUFBTSxZQUFBLEVBQUUsR0FBRyxTQUFBLEVBQUUsWUFBUyxFQUFULElBQUksbUJBQUcsRUFBRSxLQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsTUFBTSxZQUFBOztnQkFlekUsU0FBUyxhQUFhLENBQUMsR0FBVztvQkFDaEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzt5QkFDdkIsR0FBRyxDQUFDLFVBQUMsRUFBWTs0QkFBWCxHQUFHLFFBQUEsRUFBRSxLQUFLLFFBQUE7d0JBQU0sT0FBQSxVQUFHLEdBQUcsY0FBSSxLQUFLLENBQUU7b0JBQWpCLENBQWlCLENBQUM7eUJBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDZCxDQUFDOzs7O2lDQWxCRyxDQUFBLE1BQU0sS0FBSyxLQUFLLENBQUEsRUFBaEIsY0FBZ0I7NEJBQ1YsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFHLEdBQUcsY0FBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUUsRUFBRSxNQUFNLFFBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxNQUFNLFFBQUEsRUFBRSxDQUFDLEVBQUE7Z0NBQS9GLFdBQU8sQ0FBQyxTQUF1RixDQUFDLENBQUMsSUFBSSxFQUFBO2dDQUlyRyxXQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2dDQUNuQixHQUFHLEtBQUE7Z0NBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dDQUMxQixPQUFPLGFBQUksY0FBYyxFQUFFLGtCQUFrQixJQUFLLE9BQU8sQ0FBRTtnQ0FDM0QsTUFBTSxRQUFBO2dDQUNOLE1BQU0sUUFBQTs2QkFDUCxDQUFDLEVBQUE7Z0NBUEosV0FBTyxDQUNMLFNBTUUsQ0FDSCxDQUFDLElBQUksRUFBQTs7OztTQU9QLENBQUE7UUFqREMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFHLE9BQU8sUUFBSyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBRyxPQUFPLFdBQVEsQ0FBQTtRQUN0QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFRCx3QkFBVyxHQUFYLFVBQTJDLEtBQVE7UUFDakQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQXFDLENBQUE7SUFDakcsQ0FBQztJQUVELDBCQUFhLEdBQWIsVUFBYyxJQUFZLEVBQUUsS0FBaUM7UUFDM0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQVksSUFBSSxxQkFBa0IsQ0FBQyxDQUFBO1lBQ2hELE9BQU07U0FDUDtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQW1DSCxTQUFDO0FBQUQsQ0FBQyxBQXhERCxJQXdEQztBQVFELElBQU0sMENBQTBDLEdBQUcsVUFBQyxFQUdrQztRQUZwRixjQUFjLG9CQUFBLEVBQ2QsR0FBRyxTQUFBO0lBRUgsSUFBTSxLQUFLLEdBQXFCLFVBQU8sT0FBMkM7Ozs7O29CQUNoRixJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7d0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtxQkFDL0M7b0JBRU8sS0FBSyxHQUFtQyxPQUFPLE1BQTFDLEVBQUUsS0FBaUMsT0FBTyxRQUE1QixFQUFaLE9BQU8sbUJBQUcsRUFBRSxLQUFBLEVBQUssV0FBVyxVQUFLLE9BQU8sRUFBakQsb0JBQXVDLENBQUYsQ0FBWTt5QkFFbkQsQ0FBQSxLQUFLLElBQUksSUFBSSxDQUFBLEVBQWIsY0FBYTtvQkFDZixXQUFXLEdBQUcsS0FBSyxDQUFBOzt3QkFFSixXQUFNLGNBQWMsRUFBRSxFQUFBOztvQkFBckMsV0FBVyxHQUFHLENBQUMsU0FBc0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQTs7d0JBR3BELFdBQU8sR0FBRyxDQUFDLEtBQUssWUFDZCxPQUFPLGFBQ0wsYUFBYSxFQUFFLGlCQUFVLFdBQVcsQ0FBRSxJQUNuQyxPQUFPLEtBRVQsV0FBVyxFQUNkLEVBQUE7OztTQUNILENBQUE7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtRQUNsQixLQUFLLE9BQUE7S0FDTixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBd0JELFNBQVMsUUFBUSxDQUFDLEVBQW1FO1FBQWpFLEdBQUcsU0FBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLGNBQWMsb0JBQUEsRUFBRSxpQkFBaUIsdUJBQUE7SUFDdEUsSUFBTSxVQUFVLEdBQUc7UUFDakIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLE9BQU8sT0FBTyxDQUFBO1NBQ2Y7UUFDRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUE7U0FDckU7UUFDRCxPQUFPLGtCQUFXLEdBQUcsa0NBQStCLENBQUE7SUFDdEQsQ0FBQyxDQUFBO0lBRUQsSUFBTSxNQUFNLEdBQUc7UUFDYixJQUFJLGlCQUFpQixJQUFJLElBQUksRUFBRTtZQUM3QixJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQTthQUMxRjtZQUNELE9BQU8sMENBQTBDLENBQUMsRUFBRSxHQUFHLEtBQUEsRUFBRSxjQUFjLGdCQUFBLEVBQUUsQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUMsQ0FBQTtJQUNuQyxDQUFDLENBQUE7SUFFRCxPQUFPLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQWFELFNBQVMsRUFBRSxDQUVULE9BQXNCO0lBRnhCLGlCQWtCQzs7SUFkQyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBRXhCLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO0tBQzVEO0lBRUQsSUFBTSxlQUFlLEdBQUc7UUFDaEIsSUFBQSxLQUF5QixLQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQXpELFFBQVEsY0FBQSxFQUFFLFFBQVEsY0FBdUMsQ0FBQTtRQUNqRSxPQUFPLFVBQUcsUUFBUSxTQUFHLFFBQVEsQ0FBRSxDQUFBO0lBQ2pDLENBQUMsQ0FBQTtJQUVELElBQU0sT0FBTyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sbUNBQUksZUFBZSxFQUFFLENBQUE7SUFFckQsT0FBTyxRQUFRLENBQUMsRUFBRSxHQUFHLEtBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxpQkFBaUIsRUFBRSxVQUFDLEVBQU87Z0JBQUwsR0FBRyxTQUFBO1lBQU8sT0FBQSxHQUFHO1FBQUgsQ0FBRyxFQUFFLENBQUMsQ0FBQTtBQUN4RSxDQUFDO0FBRUQsSUFBTSxTQUFTLEdBQXdCO0lBQ3JDLElBQUksRUFBRSxjQUFjO0lBQ3BCLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBQSxFQUFFO0NBQ2YsQ0FBQTtBQUVELFNBQVMsVUFBVSxDQUFDLEdBQWU7SUFDakMsSUFBSTtRQUNGLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUNqQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsVUFBVSxJQUFJLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJRmV0Y2hPcHRpb25zLCBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlJ1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnYWknXG5cbmNvbnN0IHsgTU9ERUxTLCAuLi5yZXN0TW9kZWxzIH0gPSBtb2RlbHNcblxuY2xhc3MgQUkge1xuICBwdWJsaWMgYWlCYXNlVXJsOiBzdHJpbmdcbiAgcHVibGljIGFpQm90QmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBib3Q6IEJvdFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBTREtSZXF1ZXN0SW50ZXJmYWNlLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5haUJhc2VVcmwgPSBgJHtiYXNlVXJsfS9haWBcbiAgICB0aGlzLmFpQm90QmFzZVVybCA9IGAke2Jhc2VVcmx9L2FpYm90YFxuICAgIHRoaXMuYm90ID0gbmV3IEJvdCh0aGlzLmJvdFJlcXVlc3QsIHRoaXMuYWlCb3RCYXNlVXJsKVxuICB9XG5cbiAgY3JlYXRlTW9kZWw8VCBleHRlbmRzIGtleW9mIHR5cGVvZiBNT0RFTFM+KG1vZGVsOiBUKSB7XG4gICAgcmV0dXJuIG5ldyBNT0RFTFNbbW9kZWxdKHRoaXMubW9kZWxSZXF1ZXN0LCB0aGlzLmFpQmFzZVVybCkgYXMgSW5zdGFuY2VUeXBlPCh0eXBlb2YgTU9ERUxTKVtUXT5cbiAgfVxuXG4gIHJlZ2lzdGVyTW9kZWwobmFtZTogc3RyaW5nLCBtb2RlbDogdHlwZXMuQ2hhdE1vZGVsQ29uc3RydWN0b3IpIHtcbiAgICBpZiAoTU9ERUxTW25hbWVdICE9IG51bGwpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQUkgbW9kZWwgJHtuYW1lfSBhbHJlYWR5IGV4aXN0cyFgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIE1PREVMU1tuYW1lXSA9IG1vZGVsXG4gIH1cblxuICBtb2RlbFJlcXVlc3Q6IHR5cGVzLk1vZGVsUmVxID0gYXN5bmMgKHsgdXJsLCBkYXRhLCBoZWFkZXJzLCBzdHJlYW0gfSkgPT4gKFxuICAgIGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgdXJsLFxuICAgICAgc3RyZWFtLFxuICAgIH0pXG4gICkuZGF0YVxuXG4gIGJvdFJlcXVlc3Q6IHR5cGVzLkJvdFJlcSA9IGFzeW5jICh7IG1ldGhvZCwgdXJsLCBkYXRhID0ge30sIGhlYWRlcnMsIHN0cmVhbSB9KSA9PiB7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ2dldCcpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5yZXEuZmV0Y2goeyB1cmw6IGAke3VybH0/JHtvYmplY3RUb1BhcmFtKGRhdGEpfWAsIG1ldGhvZCwgaGVhZGVycywgc3RyZWFtIH0pKS5kYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAuLi5oZWFkZXJzIH0sXG4gICAgICAgIHN0cmVhbSxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgfSlcbiAgICApLmRhdGFcblxuICAgIGZ1bmN0aW9uIG9iamVjdFRvUGFyYW0ob2JqOiBPYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAgIC5qb2luKCcmJylcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIElIYW5kbGVSZXF1ZXN0SW5zdGFuY2Uge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2Vcbn1cblxudHlwZSBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jID0gKG9wdGlvbnM6IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UpID0+IFNES1JlcXVlc3RJbnRlcmZhY2VcblxuY29uc3QgY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyID0gKHtcbiAgZ2V0QWNjZXNzVG9rZW4sXG4gIHJlcSxcbn06IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UgJiB7IGdldEFjY2Vzc1Rva2VuOiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PiB9KSA9PiB7XG4gIGNvbnN0IGZldGNoOiB0eXBlb2YgcmVxLmZldGNoID0gYXN5bmMgKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHRva2VuPzogc3RyaW5nIH0pID0+IHtcbiAgICBpZiAodHlwZW9mIHJlcS5mZXRjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXEuZmV0Y2ggaXMgbm90IGEgZnVuY3Rpb24nKVxuICAgIH1cblxuICAgIGNvbnN0IHsgdG9rZW4sIGhlYWRlcnMgPSB7fSwgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnNcbiAgICBsZXQgYWNjZXNzVG9rZW46IHN0cmluZ1xuICAgIGlmICh0b2tlbiAhPSBudWxsKSB7XG4gICAgICBhY2Nlc3NUb2tlbiA9IHRva2VuXG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2Vzc1Rva2VuID0gKGF3YWl0IGdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcS5mZXRjaCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRvd25sb2FkOiByZXEuZG93bmxvYWQsXG4gICAgcG9zdDogcmVxLnBvc3QsXG4gICAgdXBsb2FkOiByZXEudXBsb2FkLFxuICAgIGZldGNoLFxuICB9XG59XG5cbmludGVyZmFjZSBBSUluaXRPcHRpb24ge1xuICBiYXNlVXJsPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBJQ3JlYXRlQWkge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgYmFzZVVybD86IHN0cmluZ1xuICBlbnY/OiBzdHJpbmdcbiAgZ2V0QWNjZXNzVG9rZW4/OiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PlxuICBoYW5kbGVSZXFJbnN0YW5jZT86IEhhbmRsZVJlcXVlc3RJbnN0YW5jZUZ1bmNcbn1cblxuLyoqXG4gKiDmnIDnroDlnLDliJvlu7rkuIDkuKrmjqXkupHlvIDlj5HnvZHlhbPmnI3liqHnmoQgYEFJYCDlrp7kvovvvIzor7fmsYLml7bkvJroh6rliqjluKbkuIrpibTmnYPor7fmsYLlpLTjgIJcbiAqIOWPqumcgOimgeS8oOWFpe+8mlxuICpcbiAqIC0gYGdldEFjY2Vzc1Rva2VuYDog6I635Y+WIGFjY2Vzc1Rva2VuIOeahOWHveaVsFxuICogLSBgcmVxYDog6K+35rGC5Ye95pWw77yM5LiA6Iis5LuOIGFkYXB0ZXIg5LiK5ou/XG4gKiAtIGBlbnZgOiDkupHlvIDlj5Hnjq/looMgSURcbiAqXG4gKiDlhbbku5blj4LmlbDlj6/mjInpnIDkvKDlhaXopobnm5blh73mlbDpgLvovpHjgIJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQWkoeyBlbnYsIGJhc2VVcmwsIHJlcSwgZ2V0QWNjZXNzVG9rZW4sIGhhbmRsZVJlcUluc3RhbmNlIH06IElDcmVhdGVBaSkge1xuICBjb25zdCBnZXRCYXNlVXJsID0gKCkgPT4ge1xuICAgIGlmIChiYXNlVXJsICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBiYXNlVXJsXG4gICAgfVxuICAgIGlmIChlbnYgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZW52YCBpcyByZXF1aXJlZCB3aGVuIGBiYXNlVXJsYCBpcyBub3QgcHJvdmlkZWQhJylcbiAgICB9XG4gICAgcmV0dXJuIGBodHRwczovLyR7ZW52fS5hcGkudGNsb3VkYmFzZWdhdGV3YXkuY29tL3YxYFxuICB9XG5cbiAgY29uc3QgZ2V0UmVxID0gKCkgPT4ge1xuICAgIGlmIChoYW5kbGVSZXFJbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICBpZiAoZ2V0QWNjZXNzVG9rZW4gPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BnZXRBY2Nlc3NUb2tlbmAgaXMgcmVxdWlyZWQgd2hlbiBgaGFuZGxlUmVxSW5zdGFuY2VgIGlzIG5vdCBwcm92aWRlZCEnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RJbnN0YW5jZVdpdGhBY2Nlc3NUb2tlbkhlYWRlcih7IHJlcSwgZ2V0QWNjZXNzVG9rZW4gfSlcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZVJlcUluc3RhbmNlKHsgcmVxIH0pXG4gIH1cblxuICByZXR1cm4gbmV3IEFJKGdldFJlcSgpLCBnZXRCYXNlVXJsKCkpXG59XG5cbi8qKlxuICog5Yib5bu6IGBBSWAg5a6e5L6L44CCXG4gKiDor6Xlh73mlbDmjILovb3lnKgganMgc2RrIOeahCBDbG91ZGJhc2Ug5a6e5L6L5LiK44CCXG4gKiDor6Xlh73mlbDosIPnlKjkuobmnKzmqKHlnZfmmrTpnLLnmoQgYGNyZWF0ZUFpYCDlh73mlbDvvIzkvYbosIPnlKjml7bpgJrov4fkvKDlhaXlj4LmlbDlgZrkuobpgLvovpHopobnm5bvvJpcbiAqXG4gKiAtIOS8oOWFpeS7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK55qE5Lit5b+D55qEIGByZXFgXG4gKiAtIOS8oOWFpeS7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK5ou/5Yiw55qEIGBiYXNlVXJsYFxuICogLSDkvKDlhaXkuIDkuKrkuI3lpITnkIYgYHJlcWAg55qEIGBoYW5kbGVSZXFJbnN0YW5jZWDvvIznlLHkuo4gYHJlcWAg5piv5LuOIENsb3VkYmFzZSDlrp7kvovkuIrmi7/liLDnmoTvvIzov5nkuKrkuK3lv4PnmoQgYHJlcWAg5bey57uP5Y+v55So5LqGXG4gKiAtIOS4jeeUqOS8oOWFpSBgZW52YCDkuobvvIzlm6DkuLrlt7Lnu4/kvKDkuoYgYGJhc2VVcmxgXG4gKiAtIOS4jeeUqOS8oOWFpSBgZ2V0QWNjZXNzVG9rZW5gIOS6hu+8jOWboOS4uuS8oOS6hiBgaGFuZGxlUmVxSW5zdGFuY2VgXG4gKi9cbmZ1bmN0aW9uIGFpKFxuICB0aGlzOiBJQ2xvdWRiYXNlICYgeyBnZXRFbmRQb2ludFdpdGhLZXk6IChrZXk6ICdHQVRFV0FZJykgPT4geyBCQVNFX1VSTDogc3RyaW5nOyBQUk9UT0NPTDogc3RyaW5nIH0gfSxcbiAgb3B0aW9ucz86IEFJSW5pdE9wdGlvbixcbikge1xuICBjb25zdCByZXEgPSB0aGlzLnJlcXVlc3RcblxuICBpZiAocmVxLmZldGNoID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nsb3VkYmFzZS5yZXF1ZXN0LmZldGNoKCkgdW5pbXBsZW1lbnRlZCEnKVxuICB9XG5cbiAgY29uc3QgZ2V0VXJsRnJvbUNsb3VkID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgQkFTRV9VUkwsIFBST1RPQ09MIH0gPSB0aGlzLmdldEVuZFBvaW50V2l0aEtleSgnR0FURVdBWScpXG4gICAgcmV0dXJuIGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICB9XG5cbiAgY29uc3QgYmFzZVVybCA9IG9wdGlvbnM/LmJhc2VVcmwgPz8gZ2V0VXJsRnJvbUNsb3VkKClcblxuICByZXR1cm4gY3JlYXRlQWkoeyByZXEsIGJhc2VVcmwsIGhhbmRsZVJlcUluc3RhbmNlOiAoeyByZXEgfSkgPT4gcmVxIH0pXG59XG5cbmNvbnN0IGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCA9IHtcbiAgbmFtZTogQ09NUE9ORU5UX05BTUUsXG4gIGVudGl0eTogeyBhaSB9LFxufVxuXG5mdW5jdGlvbiByZWdpc3RlckFpKGFwcDogSUNsb3VkYmFzZSkge1xuICB0cnkge1xuICAgIGFwcC5yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oZSlcbiAgfVxufVxuXG5leHBvcnQgeyBBSSwgQm90LCBjcmVhdGVBaSwgcmVzdE1vZGVscyBhcyBtb2RlbHMsIHJlZ2lzdGVyQWksIHR5cGVzLCB1dGlscyB9XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/ai",
3
- "version": "2.8.13-beta.0",
3
+ "version": "2.8.15-beta.0",
4
4
  "description": "cloudbase js sdk ai module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -27,10 +27,13 @@
27
27
  "author": "",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@cloudbase/types": "^2.8.13-beta.0",
30
+ "@cloudbase/types": "^2.8.15-beta.0",
31
31
  "@mattiasbuelens/web-streams-adapter": "^0.1.0",
32
32
  "text-encoding-shim": "^1.0.5",
33
33
  "web-streams-polyfill": "^4.0.0"
34
34
  },
35
- "gitHead": "6353ef0b3c14bea7dda379265c3c12cbea74b457"
35
+ "devDependencies": {
36
+ "@cloudbase/adapter-interface": "^0.5.0"
37
+ },
38
+ "gitHead": "3720130f448a2dea95aa89bce37f3251ff8253b0"
36
39
  }
package/src/index.ts CHANGED
@@ -1,11 +1,13 @@
1
+ import type { IFetchOptions, SDKRequestInterface } from '@cloudbase/adapter-interface'
1
2
  import type { ICloudbase } from '@cloudbase/types'
2
3
  import type { ICloudbaseComponent } from '@cloudbase/types/component'
3
- import type { SDKRequestInterface } from '@cloudbase/adapter-interface'
4
4
  import { Bot } from './bot'
5
5
  import * as models from './models'
6
6
  import * as types from './type'
7
7
  import * as utils from './utils'
8
8
 
9
+ const COMPONENT_NAME = 'ai'
10
+
9
11
  const { MODELS, ...restModels } = models
10
12
 
11
13
  class AI {
@@ -66,13 +68,103 @@ class AI {
66
68
  }
67
69
  }
68
70
 
69
- const COMPONENT_NAME = 'ai'
71
+ interface IHandleRequestInstance {
72
+ req: SDKRequestInterface
73
+ }
74
+
75
+ type HandleRequestInstanceFunc = (options: IHandleRequestInstance) => SDKRequestInterface
76
+
77
+ const createRequestInstanceWithAccessTokenHeader = ({
78
+ getAccessToken,
79
+ req,
80
+ }: IHandleRequestInstance & { getAccessToken: () => Promise<{ accessToken: string }> }) => {
81
+ const fetch: typeof req.fetch = async (options: IFetchOptions & { token?: string }) => {
82
+ if (typeof req.fetch !== 'function') {
83
+ throw new Error('req.fetch is not a function')
84
+ }
85
+
86
+ const { token, headers = {}, ...restOptions } = options
87
+ let accessToken: string
88
+ if (token != null) {
89
+ accessToken = token
90
+ } else {
91
+ accessToken = (await getAccessToken()).accessToken
92
+ }
93
+
94
+ return req.fetch({
95
+ headers: {
96
+ Authorization: `Bearer ${accessToken}`,
97
+ ...headers,
98
+ },
99
+ ...restOptions,
100
+ })
101
+ }
102
+
103
+ return {
104
+ download: req.download,
105
+ post: req.post,
106
+ upload: req.upload,
107
+ fetch,
108
+ }
109
+ }
70
110
 
71
111
  interface AIInitOption {
72
- env?: string
73
112
  baseUrl?: string
74
113
  }
75
114
 
115
+ interface ICreateAi {
116
+ req: SDKRequestInterface
117
+ baseUrl?: string
118
+ env?: string
119
+ getAccessToken?: () => Promise<{ accessToken: string }>
120
+ handleReqInstance?: HandleRequestInstanceFunc
121
+ }
122
+
123
+ /**
124
+ * 最简地创建一个接云开发网关服务的 `AI` 实例,请求时会自动带上鉴权请求头。
125
+ * 只需要传入:
126
+ *
127
+ * - `getAccessToken`: 获取 accessToken 的函数
128
+ * - `req`: 请求函数,一般从 adapter 上拿
129
+ * - `env`: 云开发环境 ID
130
+ *
131
+ * 其他参数可按需传入覆盖函数逻辑。
132
+ */
133
+ function createAi({ env, baseUrl, req, getAccessToken, handleReqInstance }: ICreateAi) {
134
+ const getBaseUrl = () => {
135
+ if (baseUrl != null) {
136
+ return baseUrl
137
+ }
138
+ if (env == null) {
139
+ throw new Error('`env` is required when `baseUrl` is not provided!')
140
+ }
141
+ return `https://${env}.api.tcloudbasegateway.com/v1`
142
+ }
143
+
144
+ const getReq = () => {
145
+ if (handleReqInstance == null) {
146
+ if (getAccessToken == null) {
147
+ throw new Error('`getAccessToken` is required when `handleReqInstance` is not provided!')
148
+ }
149
+ return createRequestInstanceWithAccessTokenHeader({ req, getAccessToken })
150
+ }
151
+ return handleReqInstance({ req })
152
+ }
153
+
154
+ return new AI(getReq(), getBaseUrl())
155
+ }
156
+
157
+ /**
158
+ * 创建 `AI` 实例。
159
+ * 该函数挂载在 js sdk 的 Cloudbase 实例上。
160
+ * 该函数调用了本模块暴露的 `createAi` 函数,但调用时通过传入参数做了逻辑覆盖:
161
+ *
162
+ * - 传入从 Cloudbase 实例上的中心的 `req`
163
+ * - 传入从 Cloudbase 实例上拿到的 `baseUrl`
164
+ * - 传入一个不处理 `req` 的 `handleReqInstance`,由于 `req` 是从 Cloudbase 实例上拿到的,这个中心的 `req` 已经可用了
165
+ * - 不用传入 `env` 了,因为已经传了 `baseUrl`
166
+ * - 不用传入 `getAccessToken` 了,因为传了 `handleReqInstance`
167
+ */
76
168
  function ai(
77
169
  this: ICloudbase & { getEndPointWithKey: (key: 'GATEWAY') => { BASE_URL: string; PROTOCOL: string } },
78
170
  options?: AIInitOption,
@@ -85,12 +177,12 @@ function ai(
85
177
 
86
178
  const getUrlFromCloud = () => {
87
179
  const { BASE_URL, PROTOCOL } = this.getEndPointWithKey('GATEWAY')
88
- return `${PROTOCOL}${BASE_URL}/v1`
180
+ return `${PROTOCOL}${BASE_URL}`
89
181
  }
90
182
 
91
183
  const baseUrl = options?.baseUrl ?? getUrlFromCloud()
92
184
 
93
- return new AI(req, baseUrl)
185
+ return createAi({ req, baseUrl, handleReqInstance: ({ req }) => req })
94
186
  }
95
187
 
96
188
  const component: ICloudbaseComponent = {
@@ -106,4 +198,4 @@ function registerAi(app: ICloudbase) {
106
198
  }
107
199
  }
108
200
 
109
- export { types, utils, restModels as models, registerAi, AI, Bot }
201
+ export { AI, Bot, createAi, restModels as models, registerAi, types, utils }