isdata-customer-sdk 0.1.67 → 0.1.69

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.
@@ -29552,12 +29552,15 @@ __webpack_require__.r(__webpack_exports__);
29552
29552
  // EXPORTS
29553
29553
  __webpack_require__.d(__webpack_exports__, {
29554
29554
  ChatClientMgr: function() { return /* reexport */ ChatClientMgr; },
29555
+ addAndCleanDocument: function() { return /* reexport */ addAndCleanDocument; },
29555
29556
  addEventAction: function() { return /* reexport */ addEventAction; },
29556
29557
  addIMMapping: function() { return /* reexport */ addIMMapping; },
29557
29558
  addObjectUsedTimes: function() { return /* reexport */ addObjectUsedTimes; },
29558
29559
  addWindowTrustedOrigin: function() { return /* reexport */ addWindowTrustedOrigin; },
29560
+ createFileFromUrl: function() { return /* reexport */ createFileFromUrl; },
29559
29561
  decrypt: function() { return /* reexport */ decrypt; },
29560
29562
  destroyEventCenter: function() { return /* reexport */ destroyEventCenter; },
29563
+ extractFilenameFromUrl: function() { return /* reexport */ extractFilenameFromUrl; },
29561
29564
  fireEvent: function() { return /* reexport */ fireEvent; },
29562
29565
  getAIRobotInfos: function() { return /* reexport */ getAIRobotInfos; },
29563
29566
  getAPPInfosByID: function() { return /* reexport */ getAPPInfosByID; },
@@ -29567,6 +29570,7 @@ __webpack_require__.d(__webpack_exports__, {
29567
29570
  getAuthPic: function() { return /* reexport */ getAuthPic; },
29568
29571
  getChildrenOfficeInfosByID: function() { return /* reexport */ getChildrenOfficeInfosByID; },
29569
29572
  getCurrentUserPortalPageID: function() { return /* reexport */ getCurrentUserPortalPageID; },
29573
+ getDifyFileType: function() { return /* reexport */ getDifyFileType; },
29570
29574
  getGroupMappingsByAccount: function() { return /* reexport */ getGroupMappingsByAccount; },
29571
29575
  getIMHanlder: function() { return /* reexport */ getIMHanlder; },
29572
29576
  getIntegrateAppInfoByID: function() { return /* reexport */ getIntegrateAppInfoByID; },
@@ -29724,9 +29728,16 @@ var querystringify = __webpack_require__(3992);
29724
29728
 
29725
29729
 
29726
29730
  let apiContextPath = "";
29727
- const onlineDevelopmentMode = ({"NODE_ENV":"production","BASE_URL":"/"}).VUE_APP_ONLINE_DEVELOPMENT_MODE === "true" || ({"NODE_ENV":"production","BASE_URL":"/"}).REACT_APP_ONLINE_DEVELOPMENT_MODE === "true";
29728
- if (false) // removed by dead control flow
29729
- {}
29731
+ // const onlineDevelopmentMode = process.env.VUE_APP_ONLINE_DEVELOPMENT_MODE === "true" || process.env.REACT_APP_ONLINE_DEVELOPMENT_MODE === "true"
29732
+ // if (process.env.NODE_ENV === "development" && !onlineDevelopmentMode) {
29733
+ // document.cookie =
29734
+ // "token=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4NSwidXNlcklkIjoiMTIzNDU2Nzg5MCJ9.F8wr84ha-dW18J9wZOQeTXj55mXTdqKfLBeNlNueoLY"
29735
+ // document.cookie =
29736
+ // "refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblRpbWVzdGFtcCI6MTY0NjcyMjI2ODY4Nn0.TEVE_nopHNZlvSQM_RUZrLcCzkaERiHo8nz0q-ksL3E"
29737
+ // document.cookie = "username=admin"
29738
+ // document.cookie = "windowOnline=true"
29739
+ // apiContextPath = "/api"
29740
+ // }
29730
29741
  const getInstance = (prefix = "") => {
29731
29742
  if (prefix) {
29732
29743
  prefix.startsWith("/") && (prefix = prefix.slice(1, prefix.length));
@@ -30265,189 +30276,6 @@ const getPortalAppCustomConfig = async groupID => {
30265
30276
  let appInfo = result.data.configInfo;
30266
30277
  return appInfo;
30267
30278
  };
30268
- // EXTERNAL MODULE: ./node_modules/crypto-js/index.js
30269
- var crypto_js = __webpack_require__(1396);
30270
- var crypto_js_default = /*#__PURE__*/__webpack_require__.n(crypto_js);
30271
- ;// ./src/api/security.js
30272
-
30273
-
30274
-
30275
- /**
30276
- *
30277
- * @returns 获取登录验证码图片
30278
- */
30279
- const getAuthPic = () => request.get(`/system/authority/getAuthPic?module=loginPassword`, {
30280
- responseType: "arraybuffer"
30281
- });
30282
-
30283
- /**
30284
- * 登出账号
30285
- * @param endside_type 0: web 1:手机
30286
- * @returns {Promise<*>}
30287
- * @param endside_type 0: web 1:手机
30288
- *
30289
- */
30290
- const logoutAccount = async endside_type => {
30291
- let resultData = await request.get(`/system/authority/logout?isMobileLogout=${endside_type}`);
30292
- let response = JSON.parse(resultData.request.response);
30293
- let resultCode = response.code;
30294
- if (resultCode == "10110020") {
30295
- // window.sessionStorage.setItem("iportal_login_user_id", "");
30296
- // window.sessionStorage.setItem("iportal_group_id", "");
30297
- // window.sessionStorage.setItem("iportal_login_user_key", "");
30298
- window.sessionStorage.clear();
30299
- return {
30300
- code: resultCode,
30301
- message: response.message
30302
- };
30303
- } else {
30304
- return {
30305
- code: resultCode,
30306
- message: response.message
30307
- };
30308
- }
30309
- };
30310
-
30311
- /**
30312
- * 解密
30313
- */
30314
- const decrypt = async decryptStr => {
30315
- let secretKey = await getKey();
30316
- const decrypted = crypto_js_default().AES.decrypt(decryptStr, secretKey).toString((crypto_js_default()).enc.Utf8);
30317
- return decrypted;
30318
- };
30319
-
30320
- /**
30321
- * 切换门户登录
30322
- */
30323
- const switchPortalLogin = async (data, appid, endside_type) => {
30324
- let old_key = window.sessionStorage.getItem("iportal_login_user_key");
30325
- old_key = await decrypt(old_key);
30326
- data.password = old_key;
30327
- let resultData = await logoutAccount(endside_type);
30328
- let resultCode = resultData.code;
30329
- let message = resultData.message;
30330
- //退出登录成功
30331
- if (resultCode == "10110020") {
30332
- let loginResult = await loginAccount(data, appid);
30333
- return loginResult;
30334
- } else {
30335
- return {
30336
- code: resultCode,
30337
- message: message
30338
- };
30339
- }
30340
- };
30341
-
30342
- /**
30343
- * 登录账号
30344
- * @param data 登录数据
30345
- * @param appid 应用ID
30346
- *
30347
- * @description
30348
- * 登录时需要传入验证码(authPicCode)和应用ID(dataappId),
30349
- * mobileOrWeb参数用于区分是移动端还是网页端登录。
30350
- *
30351
- * @returns
30352
- */
30353
- const loginAccount = async (data, appid) => {
30354
- let queryData = {
30355
- param: {
30356
- loginData: {
30357
- account: data.account_view,
30358
- group_id: data.groupid,
30359
- imageCode: data.imageCode
30360
- }
30361
- }
30362
- };
30363
- let result = await request.post(`/dataservice/rest/orchestration/getLoginPortalAccountKey`, queryData);
30364
- let secretKey = await getKey();
30365
- let response = JSON.parse(result.request.response);
30366
- let code = response.result.code;
30367
- //获取key成功
30368
- if (code == 10001) {
30369
- let pwd_code = response.result.codeData.code;
30370
- let old_key = pwd_code;
30371
- let key_code = response.result.codeData.key;
30372
- pwd_code = crypto_js_default().AES.decrypt(pwd_code, secretKey).toString((crypto_js_default()).enc.Utf8);
30373
- key_code = crypto_js_default().AES.decrypt(key_code, secretKey).toString((crypto_js_default()).enc.Utf8);
30374
- if (key_code == data.password) {
30375
- pwd_code = window.appSdk.Encrypt(pwd_code);
30376
- data.password = pwd_code;
30377
- result = await request.post(`/system/authority/loginAccount4Application?authPicCode=${data.imageCode}&dataappId=${appid}&mobileOrWeb=web`, data);
30378
- response = JSON.parse(result.request.response);
30379
- code = response.code;
30380
- //登录平台成功
30381
- if (code == 10110004) {
30382
- let id = response.id;
30383
- window.sessionStorage.setItem("iportal_login_user_id", id);
30384
- window.sessionStorage.setItem("iportal_group_id", data.groupid);
30385
- window.sessionStorage.setItem("iportal_login_user_key", old_key);
30386
- return {
30387
- code: code
30388
- };
30389
- } else {
30390
- return {
30391
- code: code,
30392
- message: response.message
30393
- };
30394
- }
30395
- } else {
30396
- return {
30397
- code: code,
30398
- message: "账户密码错误!"
30399
- };
30400
- }
30401
- }
30402
- return {
30403
- code: code,
30404
- message: response.result.message
30405
- };
30406
- };
30407
-
30408
- /**
30409
- * 获取密钥
30410
- * @returns
30411
- */
30412
- const getKey = async () => {
30413
- let queryData = {
30414
- param: {}
30415
- };
30416
- let resultData = await request.post(`/dataservice/rest/orchestration/getKey`, queryData);
30417
- let key = resultData.data.key;
30418
- return key;
30419
- };
30420
- ;// ./src/api/utils.js
30421
-
30422
-
30423
- /**
30424
- * 查询资产
30425
- * @param id 资产ID
30426
- *
30427
- */
30428
- const queryAssetById = (id, count = 200) => request.post(`/asset/getAssetData?asset_id=${id}&count=${count}`, {
30429
- filters: []
30430
- });
30431
-
30432
- /**
30433
- * 获取URL参数值
30434
- * @param {} eventName
30435
- * @param {*} actionFun
30436
- */
30437
- const getUrlParamValue = (urlStr, paramName) => {
30438
- try {
30439
- const url = new URL(urlStr);
30440
- const value = url.searchParams.get(paramName);
30441
- // 如果参数值包含#,则只返回#之前的部分
30442
- if (value && value.indexOf("#") !== -1) {
30443
- return value.split("#")[0];
30444
- }
30445
- return value;
30446
- } catch (err) {
30447
- console.error("URL 格式错误:", err);
30448
- return "";
30449
- }
30450
- };
30451
30279
 
30452
30280
  /**
30453
30281
  * 查询当前企业组织的集团组织ID
@@ -30741,6 +30569,233 @@ const getIntegrateAppInfoByID = async appID => {
30741
30569
  let appInfo = result.data.appInfo;
30742
30570
  return appInfo;
30743
30571
  };
30572
+ // EXTERNAL MODULE: ./node_modules/crypto-js/index.js
30573
+ var crypto_js = __webpack_require__(1396);
30574
+ var crypto_js_default = /*#__PURE__*/__webpack_require__.n(crypto_js);
30575
+ ;// ./src/api/security.js
30576
+
30577
+
30578
+
30579
+ /**
30580
+ *
30581
+ * @returns 获取登录验证码图片
30582
+ */
30583
+ const getAuthPic = () => request.get(`/system/authority/getAuthPic?module=loginPassword`, {
30584
+ responseType: "arraybuffer"
30585
+ });
30586
+
30587
+ /**
30588
+ * 登出账号
30589
+ * @param endside_type 0: web 1:手机
30590
+ * @returns {Promise<*>}
30591
+ * @param endside_type 0: web 1:手机
30592
+ *
30593
+ */
30594
+ const logoutAccount = async endside_type => {
30595
+ let resultData = await request.get(`/system/authority/logout?isMobileLogout=${endside_type}`);
30596
+ let response = JSON.parse(resultData.request.response);
30597
+ let resultCode = response.code;
30598
+ if (resultCode == "10110020") {
30599
+ window.sessionStorage.clear();
30600
+ return {
30601
+ code: resultCode,
30602
+ message: response.message
30603
+ };
30604
+ } else {
30605
+ return {
30606
+ code: resultCode,
30607
+ message: response.message
30608
+ };
30609
+ }
30610
+ };
30611
+
30612
+ /**
30613
+ * 解密
30614
+ */
30615
+ const decrypt = async decryptStr => {
30616
+ let secretKey = await getKey();
30617
+ const decrypted = crypto_js_default().AES.decrypt(decryptStr, secretKey).toString((crypto_js_default()).enc.Utf8);
30618
+ return decrypted;
30619
+ };
30620
+
30621
+ /**
30622
+ * 切换门户登录
30623
+ */
30624
+ const switchPortalLogin = async (data, appid, endside_type) => {
30625
+ let old_key = window.sessionStorage.getItem("iportal_login_user_key");
30626
+ old_key = await decrypt(old_key);
30627
+ data.password = old_key;
30628
+ let resultData = await logoutAccount(endside_type);
30629
+ let resultCode = resultData.code;
30630
+ let message = resultData.message;
30631
+ //退出登录成功
30632
+ if (resultCode == "10110020") {
30633
+ let loginResult = await loginAccount(data, appid);
30634
+ return loginResult;
30635
+ } else {
30636
+ return {
30637
+ code: resultCode,
30638
+ message: message
30639
+ };
30640
+ }
30641
+ };
30642
+
30643
+ /**
30644
+ * 登录账号
30645
+ * @param data 登录数据
30646
+ * @param appid 应用ID
30647
+ *
30648
+ * @description
30649
+ * 登录时需要传入验证码(authPicCode)和应用ID(dataappId),
30650
+ * mobileOrWeb参数用于区分是移动端还是网页端登录。
30651
+ *
30652
+ * @returns
30653
+ */
30654
+ const loginAccount = async (data, appid) => {
30655
+ let queryData = {
30656
+ param: {
30657
+ loginData: {
30658
+ account: data.account_view,
30659
+ group_id: data.groupid,
30660
+ imageCode: data.imageCode
30661
+ }
30662
+ }
30663
+ };
30664
+ let result = await request.post(`/dataservice/rest/orchestration/getLoginPortalAccountKey`, queryData);
30665
+ let secretKey = await getKey();
30666
+ let response = JSON.parse(result.request.response);
30667
+ let code = response.result.code;
30668
+ //获取key成功
30669
+ if (code == 10001) {
30670
+ let pwd_code = response.result.codeData.code;
30671
+ let old_key = pwd_code;
30672
+ let key_code = response.result.codeData.key;
30673
+ pwd_code = crypto_js_default().AES.decrypt(pwd_code, secretKey).toString((crypto_js_default()).enc.Utf8);
30674
+ key_code = crypto_js_default().AES.decrypt(key_code, secretKey).toString((crypto_js_default()).enc.Utf8);
30675
+ if (key_code == data.password) {
30676
+ pwd_code = window.appSdk.Encrypt(pwd_code);
30677
+ data.password = pwd_code;
30678
+ result = await request.post(`/system/authority/loginAccount4Application?authPicCode=${data.imageCode}&dataappId=${appid}&mobileOrWeb=web`, data);
30679
+ response = JSON.parse(result.request.response);
30680
+ code = response.code;
30681
+ //登录平台成功
30682
+ if (code == 10110004) {
30683
+ let id = response.id;
30684
+ window.sessionStorage.setItem("iportal_login_user_id", id);
30685
+ window.sessionStorage.setItem("iportal_group_id", data.groupid);
30686
+ window.sessionStorage.setItem("iportal_login_user_key", old_key);
30687
+ return {
30688
+ code: code
30689
+ };
30690
+ } else {
30691
+ return {
30692
+ code: code,
30693
+ message: response.message
30694
+ };
30695
+ }
30696
+ } else {
30697
+ return {
30698
+ code: code,
30699
+ message: "账户密码错误!"
30700
+ };
30701
+ }
30702
+ }
30703
+ return {
30704
+ code: code,
30705
+ message: response.result.message
30706
+ };
30707
+ };
30708
+
30709
+ /**
30710
+ * 获取密钥
30711
+ * @returns
30712
+ */
30713
+ const getKey = async () => {
30714
+ let queryData = {
30715
+ param: {}
30716
+ };
30717
+ let resultData = await request.post(`/dataservice/rest/orchestration/getKey`, queryData);
30718
+ let key = resultData.data.key;
30719
+ return key;
30720
+ };
30721
+ ;// ./src/api/utils.js
30722
+
30723
+
30724
+ /**
30725
+ * 查询资产
30726
+ * @param id 资产ID
30727
+ *
30728
+ */
30729
+ const queryAssetById = (id, count = 200) => request.post(`/asset/getAssetData?asset_id=${id}&count=${count}`, {
30730
+ filters: []
30731
+ });
30732
+
30733
+ /**
30734
+ * 获取URL参数值
30735
+ * @param {} eventName
30736
+ * @param {*} actionFun
30737
+ */
30738
+ const getUrlParamValue = (urlStr, paramName) => {
30739
+ try {
30740
+ const url = new URL(urlStr);
30741
+ const value = url.searchParams.get(paramName);
30742
+ // 如果参数值包含#,则只返回#之前的部分
30743
+ if (value && value.indexOf("#") !== -1) {
30744
+ return value.split("#")[0];
30745
+ }
30746
+ return value;
30747
+ } catch (err) {
30748
+ console.error("URL 格式错误:", err);
30749
+ return "";
30750
+ }
30751
+ };
30752
+
30753
+ /**
30754
+ * 通过 URL 创建 File 对象
30755
+ * @param {string} url - 文件的网络 URL
30756
+ * @param {string} [filename] - 自定义文件名(可选,不传则从 URL 提取)
30757
+ * @returns {Promise<File>} - 返回 Promise 解析为 File 对象
30758
+ */
30759
+ const createFileFromUrl = async (url, filename) => {
30760
+ try {
30761
+ // 1. 发起网络请求获取文件
30762
+ const response = await fetch(url);
30763
+ if (!response.ok) {
30764
+ throw new Error(`网络请求失败: ${response.status} ${response.statusText}`);
30765
+ }
30766
+
30767
+ // 2. 将响应转换为 Blob(保留原始 MIME 类型)
30768
+ const blob = await response.blob();
30769
+
30770
+ // 3. 确定文件名(若未自定义则从 URL 提取)
30771
+ const finalFilename = filename || extractFilenameFromUrl(url);
30772
+
30773
+ // 4. 构造 File 对象(Blob + 文件名 + 类型)
30774
+ return new File([blob], finalFilename, {
30775
+ type: blob.type,
30776
+ // 使用 Blob 的 MIME 类型(如 image/png)
30777
+ lastModified: Date.now() // 可选:设置最后修改时间
30778
+ });
30779
+ } catch (error) {
30780
+ console.error("创建 File 失败:", error);
30781
+ throw error;
30782
+ }
30783
+ };
30784
+
30785
+ /**
30786
+ * 从 URL 中提取文件名(如 https://example.com/path/image.png → image.png)
30787
+ * @param {string} url - 文件 URL
30788
+ * @returns {string} - 提取的文件名
30789
+ */
30790
+ const extractFilenameFromUrl = url => {
30791
+ try {
30792
+ const urlObj = new URL(url);
30793
+ // 从路径中获取最后一个部分(文件名)
30794
+ return urlObj.pathname.split("/").pop() || "downloaded_file";
30795
+ } catch (e) {
30796
+ return "downloaded_file"; // URL 解析失败时的默认文件名
30797
+ }
30798
+ };
30744
30799
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
30745
30800
  var es_iterator_some = __webpack_require__(3579);
30746
30801
  ;// ./src/api/iframe.js
@@ -31128,7 +31183,6 @@ class ChatClientMgr {
31128
31183
 
31129
31184
 
31130
31185
 
31131
-
31132
31186
  const getRobotInfoByID = async (robotID, groupID) => {
31133
31187
  let queryData = {
31134
31188
  "param": {
@@ -31208,6 +31262,91 @@ const getIMHanlder = customerHanlder => {
31208
31262
  return handler;
31209
31263
  };
31210
31264
 
31265
+ ;// ./src/api/dify.js
31266
+
31267
+
31268
+ const addAndCleanDocument = async (fileUrl, options = {}) => {
31269
+ let home_page = window.smardaten_api_context_path;
31270
+ let finalUrl = `${home_page}/storage_area/public${fileUrl}`;
31271
+ let fileType = finalUrl.split(".").pop().toLowerCase();
31272
+ fileType = getDifyFileType(fileType);
31273
+ let loginUserData = window.anonymousIsLogin || window.currentUser;
31274
+ let user_id = options.userID || loginUserData?.id;
31275
+ let appid = options.appID || getPoratlAppID(false, []);
31276
+ let appCustomData = await getAppCustomData(appid);
31277
+ let aiAgentServerIP = options.aiAgentServerIP || appCustomData?.aiAgentServerIP || "";
31278
+ let serverUrl = `${aiAgentServerIP}/addAndCleanDocument`;
31279
+ let queryData = {
31280
+ params: {
31281
+ inputs: {
31282
+ fileName: options.fileName || dify_extractFilenameFromUrl(finalUrl)
31283
+ },
31284
+ files: [{
31285
+ type: fileType,
31286
+ transfer_method: options.transfer_method || "remote_url",
31287
+ url: finalUrl
31288
+ }],
31289
+ user: user_id
31290
+ }
31291
+ };
31292
+ request.post(serverUrl, JSON.stringify(queryData)).then(res => {
31293
+ console.log("发送消息成功:", res);
31294
+ }).catch(error => {
31295
+ console.error("发送消息失败:", error);
31296
+ });
31297
+ };
31298
+ const getDifyFileType = fileType => {
31299
+ let typeOptions = {
31300
+ "DOCX": "document",
31301
+ "TXT": "document",
31302
+ "MD": "document",
31303
+ "MARKDOWN": "document",
31304
+ "MDX": "document",
31305
+ "PDF": "document",
31306
+ "HTML": "document",
31307
+ "XLSX": "document",
31308
+ "XLS": "document",
31309
+ "VTT": "document",
31310
+ "DOC": "document",
31311
+ "CSV": "document",
31312
+ "EML": "document",
31313
+ "MSG": "document",
31314
+ "PPTX": "document",
31315
+ "PPT": "document",
31316
+ "XML": "document",
31317
+ "EPUB": "document",
31318
+ "JPG": "image",
31319
+ "JPEG": "image",
31320
+ "PNG": "image",
31321
+ "GIF": "image",
31322
+ "WEBP": "image",
31323
+ "MP3": "audio",
31324
+ "M4A": "audio",
31325
+ "WAV": "audio",
31326
+ "WEBM": "audio",
31327
+ "MPGA": "audio",
31328
+ "MP4": "video",
31329
+ "MOV": "video",
31330
+ "MPEG": "video"
31331
+ };
31332
+ let key = fileType.toUpperCase();
31333
+ return typeOptions[key] || "custom";
31334
+ };
31335
+
31336
+ /**
31337
+ * 从 URL 中提取文件名(如 https://example.com/path/image.png → image.png)
31338
+ * @param {string} url - 文件 URL
31339
+ * @returns {string} - 提取的文件名
31340
+ */
31341
+ const dify_extractFilenameFromUrl = url => {
31342
+ try {
31343
+ const urlObj = new URL(url);
31344
+ // 从路径中获取最后一个部分(文件名)
31345
+ return urlObj.pathname.split("/").pop() || "downloaded_file";
31346
+ } catch (e) {
31347
+ return "downloaded_file"; // URL 解析失败时的默认文件名
31348
+ }
31349
+ };
31211
31350
  ;// ./src/main.js
31212
31351
 
31213
31352
 
@@ -31215,6 +31354,7 @@ const getIMHanlder = customerHanlder => {
31215
31354
 
31216
31355
 
31217
31356
 
31357
+
31218
31358
  ;// ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
31219
31359
 
31220
31360