ddm-plugin-dubbo-support 0.0.5 → 0.0.6

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/dist/index.js CHANGED
@@ -29,12 +29,12 @@ __webpack_require__.r(__webpack_exports__);
29
29
 
30
30
 
31
31
  class TelnetInvoker {
32
- /**
33
- * 调用Dubbo接口
34
- * @param {Provider} provder 提供者信息
35
- * @param {*} methodInfo 方法名
36
- * @param {*} code 参数信息
37
- * @returns
32
+ /**
33
+ * 调用Dubbo接口
34
+ * @param {Provider} provder 提供者信息
35
+ * @param {*} methodInfo 方法名
36
+ * @param {*} code 参数信息
37
+ * @returns
38
38
  */
39
39
  invokeMethod(provder, methodInfo, code) {
40
40
  const telnetPort = provder.qosPort || provder.port;
@@ -88,16 +88,16 @@ class TelnetInvoker {
88
88
  });
89
89
  tSocket.write(_common_TelnetUtils_js__WEBPACK_IMPORTED_MODULE_5__["default"].buildInvokeCommand({
90
90
  serviceName,
91
- method: methodInfo.name,
91
+ method: methodInfo.methodName,
92
92
  params
93
93
  }));
94
94
  });
95
95
  }
96
96
 
97
- /**
98
- * 解析响应信息
99
- * @param {String} result
100
- * @returns
97
+ /**
98
+ * 解析响应信息
99
+ * @param {String} result
100
+ * @returns
101
101
  */
102
102
  resolveResponse(result) {
103
103
  // dubbo返回格式分为三部分,第一部分为
@@ -661,7 +661,7 @@ class AppProxy {
661
661
  /***/ ((module) => {
662
662
 
663
663
  "use strict";
664
- module.exports = /*#__PURE__*/JSON.parse('{"name":"ddm-plugin-dubbo-support","version":"0.0.5","description":"Dubbo-Desktop-Manager插件-支持Dubbo框架","main":"dist/index.js","rendererMain":"dist/renderer.js","i18nMain":"dist/i18n.js","files":["README.md","logo.png","public/**","dist/**","docs/**","java-invoke/**"],"scripts":{"dev":"webpack","publish":"webpack && npm publish"},"keywords":["Dubbo-Desktop-Manager","ddm-plugin","ddm","dubbo","dubbo service invoke","dubbo manager","dubbo console","dubbo admin"],"homepage":"https://github.com/ddm-plugin/ddm-plugin-dubbo-support","author":"qiaolin","license":"Apache 2.0","devDependencies":{"@babel/core":"^7.24.7","babel-cli":"^6.26.0","babel-loader":"^8.2.5","css-loader":"^6.11.0","js-yaml":"^4.1.0","json-bigint":"^1.0.0","moment":"^2.29.1","node-zookeeper-client":"^1.1.1","qs":"^6.11.0","style-loader":"^3.3.4","telnet-stream":"^1.0.5","urijs":"^1.19.11","vue":"^2.6.11","vue-loader":"15.11.1","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.11","webpack":"^5.92.1","webpack-cli":"^5.1.4"},"engines":{"ddm":">=2.0.0"}}');
664
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"ddm-plugin-dubbo-support","version":"0.0.6","description":"Dubbo-Desktop-Manager插件-支持Dubbo框架","main":"dist/index.js","rendererMain":"dist/renderer.js","i18nMain":"dist/i18n.js","files":["README.md","logo.png","public/**","dist/**","docs/**","java-invoke/**"],"scripts":{"dev":"webpack","gen:keywords":"node ./scripts/gen-keywords.js","prepublishOnly":"npm run gen:keywords","publish":"webpack && npm publish"},"keywords":["Dubbo-Desktop-Manager","ddm-plugin","ddm","dubbo","dubbo service invoke","dubbo manager","dubbo console","dubbo admin","-","-s","-su","-sup","-supp","-suppo","-suppor","-support","b","bb","bbo","bbo-","bbo-s","bbo-su","bbo-sup","bbo-supp","bbo-suppo","bbo-suppor","bbo-support","bo","bo-","bo-s","bo-su","bo-sup","bo-supp","bo-suppo","bo-suppor","bo-support","d","du","dub","dubb","dubbo-","dubbo-s","dubbo-su","dubbo-sup","dubbo-supp","dubbo-suppo","dubbo-suppor","dubbo-support","o","o-","o-s","o-su","o-sup","o-supp","o-suppo","o-suppor","o-support","or","ort","p","po","por","port","pp","ppo","ppor","pport","r","rt","s","su","sup","supp","suppo","suppor","support","t","u","ub","ubb","ubbo","ubbo-","ubbo-s","ubbo-su","ubbo-sup","ubbo-supp","ubbo-suppo","ubbo-suppor","ubbo-support","up","upp","uppo","uppor","upport"],"homepage":"https://github.com/ddm-plugin/ddm-plugin-dubbo-support","author":"qiaolin","license":"Apache 2.0","devDependencies":{"@babel/core":"^7.24.7","babel-cli":"^6.26.0","babel-loader":"^8.2.5","css-loader":"^6.11.0","js-yaml":"^4.1.0","json-bigint":"^1.0.0","moment":"^2.29.1","node-zookeeper-client":"^1.1.1","qs":"^6.11.0","style-loader":"^3.3.4","telnet-stream":"^1.0.5","urijs":"^1.19.11","vue":"^2.6.11","vue-loader":"15.11.1","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.11","webpack":"^5.92.1","webpack-cli":"^5.1.4"},"engines":{"ddm":">=1.1.0 <3.0.0"}}');
665
665
 
666
666
  /***/ }),
667
667
  /* 16 */
@@ -4505,10 +4505,10 @@ __webpack_require__.r(__webpack_exports__);
4505
4505
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4506
4506
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
4507
4507
  /* harmony export */ });
4508
- /**
4509
- * 执行结果
4510
- * @param {String}} data 响应的数据
4511
- * @param {*} elapsedTime 耗时
4508
+ /**
4509
+ * 执行结果
4510
+ * @param {String}} data 响应的数据
4511
+ * @param {*} elapsedTime 耗时
4512
4512
  */
4513
4513
  class InvokeResult {
4514
4514
  constructor(data, elapsedTime) {
@@ -4529,8 +4529,8 @@ __webpack_require__.r(__webpack_exports__);
4529
4529
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4530
4530
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
4531
4531
  /* harmony export */ });
4532
- /**
4533
- * 构建invoke命令
4532
+ /**
4533
+ * 构建invoke命令
4534
4534
  */
4535
4535
  function buildInvokeCommand({
4536
4536
  serviceName,
@@ -4607,7 +4607,7 @@ class JavaInvoker {
4607
4607
  protocol: provder.protocol,
4608
4608
  address: `${ip}:${port}`,
4609
4609
  version: provder.version,
4610
- method: methodInfo.name,
4610
+ method: methodInfo.methodName,
4611
4611
  argsList: this.getMethodParameterTypes(methodInfo),
4612
4612
  dataList: dataList
4613
4613
  };
@@ -4781,6 +4781,8 @@ class ZookeeperDataSource {
4781
4781
  metadata.methods.forEach(method => {
4782
4782
  methodList.push({
4783
4783
  ...method,
4784
+ name: `${method.name}(${method.parameterTypes.map(pp => pp.substring(pp.lastIndexOf(".") + 1))})`,
4785
+ methodName: method.name,
4784
4786
  defaultParameter: JSON.stringify(_main_generator_ParamGeneratorAdapter__WEBPACK_IMPORTED_MODULE_5__["default"].generateParam(metadata, method.name), null, 2) || "[]"
4785
4787
  });
4786
4788
  });
@@ -4864,7 +4866,7 @@ class ZookeeperDataSource {
4864
4866
  weight: urlData.params.weight,
4865
4867
  deprecated: urlData.params.deprecated,
4866
4868
  protocol: urlData.protocol,
4867
- methods: urlData.params.methods.split(","),
4869
+ methods: Array.from(new Set((urlData.params.methods || "").split(",").filter(Boolean))),
4868
4870
  generic: urlData.params.generic,
4869
4871
  providerVersion: urlData.params.revision,
4870
4872
  dubboVersion: urlData.params.release,
@@ -27032,10 +27034,10 @@ class DubboConfigurationUtils {
27032
27034
  return doc;
27033
27035
  }
27034
27036
 
27035
- /**
27036
- * 获取被禁用的提供者地址列表
27037
- * @param {string} serviceName
27038
- * @param {string[]} versions 多个版本
27037
+ /**
27038
+ * 获取被禁用的提供者地址列表
27039
+ * @param {string} serviceName
27040
+ * @param {string[]} versions 多个版本
27039
27041
  */
27040
27042
  async getDisableAddresses(doc) {
27041
27043
  if (!doc || !doc.configs) {
@@ -27072,8 +27074,8 @@ __webpack_require__.r(__webpack_exports__);
27072
27074
 
27073
27075
 
27074
27076
  class ParamGeneratorAdapter {
27075
- /**
27076
- * 生成参数
27077
+ /**
27078
+ * 生成参数
27077
27079
  */
27078
27080
  generateParam(mateData, methodName) {
27079
27081
  // 当前提供者使用的dubbo版本
@@ -27098,12 +27100,12 @@ __webpack_require__.r(__webpack_exports__);
27098
27100
  /* harmony import */ var _ValueGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(221);
27099
27101
 
27100
27102
 
27101
- /**
27102
- * Dubbo2.7+版本 参数生成器
27103
+ /**
27104
+ * Dubbo2.7+版本 参数生成器
27103
27105
  */
27104
27106
  class ParamGeneratorDubbo2_7 {
27105
- /**
27106
- * 生成参数
27107
+ /**
27108
+ * 生成参数
27107
27109
  */
27108
27110
  generateParam(mateData, methodName) {
27109
27111
  const method = this.findMethodInfo(mateData, methodName);
@@ -48657,13 +48659,13 @@ __webpack_require__.r(__webpack_exports__);
48657
48659
  /* harmony import */ var _ValueGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(221);
48658
48660
 
48659
48661
 
48660
- /**
48661
- * Dubbo3+版本 参数生成器
48662
+ /**
48663
+ * Dubbo3+版本 参数生成器
48662
48664
  */
48663
48665
 
48664
48666
  class ParamGeneratorDubbo3 {
48665
- /**
48666
- * 生成参数
48667
+ /**
48668
+ * 生成参数
48667
48669
  */
48668
48670
  generateParam(mateData, methodName) {
48669
48671
  let method = mateData.methods.find(m => methodName == m.name);
@@ -48842,13 +48844,15 @@ class NacosDataSource {
48842
48844
  constructor(appCore, invoker) {
48843
48845
  this.appCore = appCore;
48844
48846
  this.invoker = invoker;
48847
+ this.tokenCache = new Map();
48845
48848
  }
48846
48849
  async getServiceList(dataSourceInfo) {
48847
48850
  const params = {
48848
48851
  pageNo: 1,
48849
48852
  pageSize: 100,
48850
48853
  namespaceId: dataSourceInfo.namespaceId || "",
48851
- groupName: dataSourceInfo.groupName || ""
48854
+ groupName: dataSourceInfo.groupName || "",
48855
+ accessToken: this.getAccessToken(dataSourceInfo)
48852
48856
  };
48853
48857
  // `http://127.0.0.1:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=20`
48854
48858
  const url = `${dataSourceInfo.address}/nacos/v1/ns/service/list`;
@@ -48894,7 +48898,8 @@ class NacosDataSource {
48894
48898
  const params = {
48895
48899
  serviceName: serviceInfo.uniqueServiceName,
48896
48900
  namespaceId: dataSourceInfo.namespaceId || "",
48897
- groupName: dataSourceInfo.groupName || ""
48901
+ groupName: dataSourceInfo.groupName || "",
48902
+ accessToken: this.getAccessToken(dataSourceInfo)
48898
48903
  };
48899
48904
  const response = await this.appCore.axios.get(url, {
48900
48905
  params
@@ -48917,6 +48922,8 @@ class NacosDataSource {
48917
48922
  metadata.methods.forEach(method => {
48918
48923
  methodList.push({
48919
48924
  ...method,
48925
+ name: `${method.name}(${method.parameterTypes.map(pp => pp.substring(pp.lastIndexOf(".") + 1))})`,
48926
+ methodName: method.name,
48920
48927
  defaultParameter: JSON.stringify(_main_generator_ParamGeneratorAdapter__WEBPACK_IMPORTED_MODULE_4__["default"].generateParam(metadata, method.name), null, 2) || "[]"
48921
48928
  });
48922
48929
  });
@@ -48941,7 +48948,8 @@ class NacosDataSource {
48941
48948
  let params = {
48942
48949
  serviceName: serviceInfo.uniqueServiceName,
48943
48950
  namespaceId: dataSourceInfo.namespaceId || "",
48944
- groupName: dataSourceInfo.groupName || ""
48951
+ groupName: dataSourceInfo.groupName || "",
48952
+ accessToken: this.getAccessToken(dataSourceInfo)
48945
48953
  };
48946
48954
  let response = await this.appCore.axios.get(url, {
48947
48955
  params
@@ -48985,7 +48993,8 @@ class NacosDataSource {
48985
48993
  dataId: this.buildDataId(providerInfo),
48986
48994
  group: dataSourceInfo.group || 'dubbo',
48987
48995
  namespaceId: dataSourceInfo.namespaceId || "",
48988
- tenant: dataSourceInfo.namespaceId || ""
48996
+ tenant: dataSourceInfo.namespaceId || "",
48997
+ accessToken: this.getAccessToken(dataSourceInfo)
48989
48998
  };
48990
48999
 
48991
49000
  // 有配置项,保存,反之删除
@@ -49009,7 +49018,8 @@ class NacosDataSource {
49009
49018
  group: dataSourceInfo.group || 'dubbo',
49010
49019
  namespaceId: dataSourceInfo.namespaceId || "",
49011
49020
  tenant: dataSourceInfo.namespaceId || "",
49012
- show: 'all'
49021
+ show: 'all',
49022
+ accessToken: this.getAccessToken(dataSourceInfo)
49013
49023
  };
49014
49024
  const response = await this.appCore.axios.get(url, {
49015
49025
  params
@@ -49019,6 +49029,22 @@ class NacosDataSource {
49019
49029
  }
49020
49030
  return null;
49021
49031
  }
49032
+ async getAccessToken(dataSourceInfo) {
49033
+ if (!dataSourceInfo.username) {
49034
+ return null;
49035
+ }
49036
+
49037
+ // http://127.0.0.1:8848/nacos/v1/auth/login
49038
+ let url = `${dataSourceInfo.address}/nacos/v1/auth/login`;
49039
+ let params = {
49040
+ username: dataSourceInfo.username,
49041
+ password: dataSourceInfo.password
49042
+ };
49043
+
49044
+ // 调用登录接口
49045
+ const response = await this.appCore.axios.post(url, qs__WEBPACK_IMPORTED_MODULE_5___default().stringify(params));
49046
+ return response.data.accessToken;
49047
+ }
49022
49048
  buildMataDataPath(providerInfo) {
49023
49049
  let {
49024
49050
  application,
@@ -49052,7 +49078,7 @@ class NacosDataSource {
49052
49078
  weight: data.weight,
49053
49079
  disabled: !data.enabled,
49054
49080
  generic: metadata.generic,
49055
- methods: metadata.methods.split(","),
49081
+ methods: Array.from(new Set((metadata.methods || "").split(",").filter(Boolean))),
49056
49082
  // 2.7x就是dubbo端口,3.0之后是指定的端口
49057
49083
  protocol: metadata.protocol,
49058
49084
  qosPort: data.qosPort || data.port
@@ -51707,6 +51733,8 @@ class DubboAdminDataSource {
51707
51733
  data.metadata.methods.forEach(method => {
51708
51734
  methodList.push({
51709
51735
  ...method,
51736
+ name: `${method.name}(${method.parameterTypes.map(pp => pp.substring(pp.lastIndexOf(".") + 1))})`,
51737
+ methodName: method.name,
51710
51738
  defaultParameter: JSON.stringify(_main_generator_ParamGeneratorAdapter__WEBPACK_IMPORTED_MODULE_4__["default"].generateParam(data.metadata, method.name), null, 2) || "[]"
51711
51739
  });
51712
51740
  });
@@ -51805,7 +51833,7 @@ class DubboAdminDataSource {
51805
51833
  const startTime = new Date().getTime();
51806
51834
  const data = {
51807
51835
  service: serviceInfo.uniqueServiceName,
51808
- method: methodInfo.name,
51836
+ method: methodInfo.methodName,
51809
51837
  parameterTypes: this.getMethodParameterTypes(methodInfo),
51810
51838
  params: JSON.parse(code)
51811
51839
  };
@@ -51850,7 +51878,7 @@ class DubboAdminDataSource {
51850
51878
  group: "",
51851
51879
  providerVersion: urlData.params.revision,
51852
51880
  dubboVersion: urlData.params.release,
51853
- methods: urlData.params.methods.split(","),
51881
+ methods: Array.from(new Set((urlData.params.methods || "").split(",").filter(Boolean))),
51854
51882
  protocol: urlData.protocol,
51855
51883
  generic: urlData.params.generic,
51856
51884
  deprecated: urlData.params.deprecated,