@yunzhanghu/sdk-nodejs 1.0.4 → 1.0.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/.eslintignore CHANGED
@@ -1,4 +1,5 @@
1
1
  node_modules
2
2
  package.json
3
3
  .eslintrc.json
4
- yzh
4
+ yzh
5
+ example
@@ -0,0 +1,53 @@
1
+ const yzhAPI = require('../yzh/index.js');
2
+ const config = require('./conf/config.js');
3
+
4
+ // 通用请求函数
5
+ const customClient = new yzhAPI.CustomClient(config);
6
+
7
+ // 接口参数
8
+ const req = {
9
+ /**
10
+ * @param {string} request-id:请求 ID,请求的唯一标识
11
+ * 建议平台企业自定义 request-id,并记录在日志中,便于问题发现及排查
12
+ * 如未自定义 request-id,将使用 SDK 中的 random 方法自动生成。注意:random 方法生成的 request-id 不能保证全局唯一,推荐自定义 request-id
13
+ */
14
+ request_id: 'requestIdExample123456789',
15
+ order_id: '202009010016562012987',
16
+ dealer_id: config.dealer_id,
17
+ broker_id: config.broker_id,
18
+ real_name: '张三',
19
+ card_no: '6228888888888888888',
20
+ id_card: '11010519891231002X',
21
+ pay: '100.00',
22
+ pay_remark: '',
23
+ notify_url: 'https://www.example.com',
24
+ };
25
+ // 接口请求地址
26
+ const url = '/api/payment/v1/order-bankpay';
27
+
28
+ // 接口请求方式
29
+ const method = 'post';
30
+
31
+ /**
32
+ * 通用请求函数
33
+ * 适用于 SDK 暂未支持的接口
34
+ * 以“银行卡实时支付”接口为例
35
+ */
36
+ customClient
37
+ .doRequest(req, url, method)
38
+ .then(data => {
39
+ if (data.code === '0000') {
40
+ // 操作成功
41
+ console.log('操作成功,', data.data);
42
+ } else {
43
+ // 失败返回
44
+ console.log(
45
+ '失败返回,',
46
+ 'code:' + data.code + ' message:' + data.message + ' request_id:' + data.request_id
47
+ );
48
+ }
49
+ })
50
+ .catch(err => {
51
+ // 发生异常
52
+ console.log(err.toString());
53
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yunzhanghu/sdk-nodejs",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "云账户 SDK for Node.js",
5
5
  "main": "yzh/index.js",
6
6
  "scripts": {
@@ -27,8 +27,6 @@
27
27
  "@types/node": "^18.11.18",
28
28
  "@types/urlencode": "^1.1.2",
29
29
  "@types/vfile-message": "^2.0.0",
30
- "@typescript-eslint/eslint-plugin": "^5.50.0",
31
- "@typescript-eslint/parser": "^5.50.0",
32
30
  "@yzh-devkit/eslint-config-lint": "^3.0.6",
33
31
  "eslint": "^8.33.0",
34
32
  "husky": "^8.0.3",
@@ -72,7 +72,7 @@ export class YZHClient {
72
72
  }
73
73
 
74
74
  // 基础请求:进行请求实例生成 Header,动态设置、请求体包装等偏底层操作
75
- private doRequest(method: string, action: string, req: any): Promise<ResponseData> {
75
+ private doBaseRequest(method: string, action: string, req: any): Promise<ResponseData> {
76
76
  const { request_id, ...resReq } = req;
77
77
  // 请求参数加密
78
78
  const encryptParams = this.generatorRequestParams(resReq);
@@ -108,7 +108,7 @@ export class YZHClient {
108
108
  options = {} as any;
109
109
  }
110
110
  try {
111
- const result = await this.doRequest(method, action, req ?? {});
111
+ const result = await this.doBaseRequest(method, action, req ?? {});
112
112
  // 错误码处理 > 验签 > 解密
113
113
  const responseData = await this.parseResponse(result, options?.encryption);
114
114
  cb && cb(null, responseData);
@@ -0,0 +1,36 @@
1
+ import YZHClient from '../../common/client';
2
+
3
+ export class CustomClient extends YZHClient {
4
+ // eslint-disable-next-line no-useless-constructor
5
+ constructor(conf: {
6
+ dealer_id: string;
7
+ broker_id: string;
8
+ app_key: string;
9
+ des3_key: string;
10
+ private_key: string;
11
+ yzh_public_key: string;
12
+ sign_type: 'rsa' | 'sha256';
13
+ base_url?: string;
14
+ timeout?: number;
15
+ }) {
16
+ super(conf);
17
+ }
18
+
19
+ /**
20
+ * 通用请求函数
21
+ * @param req 请求参数
22
+ * @param url 请求地址
23
+ * @param method 请求方式 'post' | 'get'
24
+ * @param cb
25
+ * @returns
26
+ */
27
+ public async doRequest<CustomRequest, CustomResponse>(
28
+ req: CustomRequest,
29
+ url: string,
30
+ method: string,
31
+ cb?: (error: null | string, rep: CustomResponse) => void
32
+ ): Promise<CustomResponse> {
33
+ const lower_method = method.toLowerCase();
34
+ return this.request(lower_method, url, req, { encryption: false }, cb);
35
+ }
36
+ }
@@ -3,6 +3,7 @@ export { ApiUserSignServiceClient } from './apiusersign';
3
3
  export { AuthenticationClient } from './authentication';
4
4
  export { BizlicXjjH5ServiceClient } from './bizlicxjjh5';
5
5
  export { BizlicXjjH5APIServiceClient } from './bizlicxjjh5api';
6
+ export { CustomClient } from './custom';
6
7
  export { DataServiceClient } from './dataservice';
7
8
  export { H5UserSignServiceClient } from './h5usersign';
8
9
  export { InvoiceClient } from './invoice';
@@ -7,7 +7,7 @@ export declare class YZHClient {
7
7
  des3_key: string;
8
8
  private_key: string;
9
9
  yzh_public_key: string;
10
- sign_type: "rsa" | "sha256";
10
+ sign_type: 'rsa' | 'sha256';
11
11
  base_url?: string;
12
12
  timeout?: number;
13
13
  /**
@@ -29,11 +29,11 @@ export declare class YZHClient {
29
29
  des3_key: string;
30
30
  private_key: string;
31
31
  yzh_public_key: string;
32
- sign_type: "rsa" | "sha256";
32
+ sign_type: 'rsa' | 'sha256';
33
33
  base_url?: string;
34
34
  timeout?: number;
35
35
  });
36
- private doRequest;
36
+ private doBaseRequest;
37
37
  request(method: string, action: string, req?: any, options?: {
38
38
  encryption: boolean;
39
39
  }, cb?: ResponseCallback): Promise<ResponseData>;
@@ -5,8 +5,8 @@ exports.YZHClient = void 0;
5
5
  const crypto = require("crypto");
6
6
  const http_1 = require("../common/http");
7
7
  const yzhSDKHttpException_1 = require("./exception/yzhSDKHttpException");
8
- const clearEncoding = "utf8";
9
- const cipherEncoding = "base64";
8
+ const clearEncoding = 'utf8';
9
+ const cipherEncoding = 'base64';
10
10
  class YZHClient {
11
11
  /**
12
12
  * 构造函数参数
@@ -31,7 +31,7 @@ class YZHClient {
31
31
  this.signRSASHA256 = (data, mess, timestamp) => {
32
32
  try {
33
33
  const plaintext = `data=${data}&mess=${mess}&timestamp=${timestamp}&key=${this.app_key}`;
34
- const sign = crypto.createSign("RSA-SHA256");
34
+ const sign = crypto.createSign('RSA-SHA256');
35
35
  sign.update(plaintext);
36
36
  sign.end();
37
37
  return sign.sign(this.private_key, cipherEncoding);
@@ -50,9 +50,9 @@ class YZHClient {
50
50
  this.signHmacSHA256 = (data, mess, timestamp) => {
51
51
  try {
52
52
  const plaintext = `data=${data}&mess=${mess}&timestamp=${timestamp}&key=${this.app_key}`;
53
- const hmac = crypto.createHmac("sha256", this.app_key);
53
+ const hmac = crypto.createHmac('sha256', this.app_key);
54
54
  hmac.update(plaintext);
55
- return hmac.digest("hex");
55
+ return hmac.digest('hex');
56
56
  }
57
57
  catch (err) {
58
58
  throw new yzhSDKHttpException_1.default(`${err}`);
@@ -69,10 +69,10 @@ class YZHClient {
69
69
  this.sign = (data, mess, timestamp) => {
70
70
  try {
71
71
  switch (this.sign_type) {
72
- case "rsa": {
72
+ case 'rsa': {
73
73
  return this.signRSASHA256(data, mess, timestamp);
74
74
  }
75
- case "sha256": {
75
+ case 'sha256': {
76
76
  return this.signHmacSHA256(data, mess, timestamp);
77
77
  }
78
78
  default:
@@ -87,7 +87,7 @@ class YZHClient {
87
87
  // eslint-disable-next-line class-methods-use-this
88
88
  this.mess = () => {
89
89
  const buf = crypto.randomBytes(16);
90
- const token = buf.toString("hex");
90
+ const token = buf.toString('hex');
91
91
  return token.toString();
92
92
  };
93
93
  /**
@@ -99,11 +99,11 @@ class YZHClient {
99
99
  try {
100
100
  const iv = this.des3_key.slice(0, 8);
101
101
  const cipherChunks = [];
102
- const cipher = crypto.createCipheriv("des-ede3-cbc", this.des3_key, iv);
102
+ const cipher = crypto.createCipheriv('des-ede3-cbc', this.des3_key, iv);
103
103
  cipher.setAutoPadding(true);
104
104
  cipherChunks.push(cipher.update(plaintext, clearEncoding, cipherEncoding));
105
105
  cipherChunks.push(cipher.final(cipherEncoding));
106
- return cipherChunks.join("");
106
+ return cipherChunks.join('');
107
107
  }
108
108
  catch (err) {
109
109
  throw new yzhSDKHttpException_1.default(`${err}`);
@@ -118,11 +118,11 @@ class YZHClient {
118
118
  try {
119
119
  const iv = this.des3_key.slice(0, 8);
120
120
  const cipherChunks = [];
121
- const decipher = crypto.createDecipheriv("des-ede3-cbc", this.des3_key, iv);
121
+ const decipher = crypto.createDecipheriv('des-ede3-cbc', this.des3_key, iv);
122
122
  decipher.setAutoPadding(true);
123
123
  cipherChunks.push(decipher.update(ciphertext, cipherEncoding, clearEncoding));
124
124
  cipherChunks.push(decipher.final(clearEncoding));
125
- return JSON.parse(cipherChunks.join(""));
125
+ return JSON.parse(cipherChunks.join(''));
126
126
  }
127
127
  catch (err) {
128
128
  throw new yzhSDKHttpException_1.default(`${err}`);
@@ -139,7 +139,7 @@ class YZHClient {
139
139
  this.verifyRSASHA256 = (data, mess, timestamp, sign) => {
140
140
  try {
141
141
  const plaintext = `data=${data}&mess=${mess}&timestamp=${timestamp}&key=${this.app_key}`;
142
- const verify = crypto.createVerify("RSA-SHA256");
142
+ const verify = crypto.createVerify('RSA-SHA256');
143
143
  verify.update(plaintext);
144
144
  return verify.verify(this.yzh_public_key, sign, cipherEncoding);
145
145
  }
@@ -150,9 +150,9 @@ class YZHClient {
150
150
  this.verifyHmacSHA256 = (data, mess, timestamp, sign) => {
151
151
  try {
152
152
  const plaintext = `data=${data}&mess=${mess}&timestamp=${timestamp}&key=${this.app_key}`;
153
- const hmac = crypto.createHmac("sha256", this.app_key);
153
+ const hmac = crypto.createHmac('sha256', this.app_key);
154
154
  hmac.update(plaintext);
155
- return hmac.digest("hex") === sign;
155
+ return hmac.digest('hex') === sign;
156
156
  }
157
157
  catch (err) {
158
158
  throw new yzhSDKHttpException_1.default(`${err}`);
@@ -165,12 +165,12 @@ class YZHClient {
165
165
  */
166
166
  this.filePassWordDecryption = (ciphertextbase64) => {
167
167
  try {
168
- const buff = Buffer.from(ciphertextbase64, "base64");
168
+ const buff = Buffer.from(ciphertextbase64, 'base64');
169
169
  const decrypted = crypto.privateDecrypt({
170
170
  key: this.private_key,
171
171
  padding: crypto.constants.RSA_PKCS1_PADDING,
172
172
  }, buff);
173
- return decrypted.toString("utf8");
173
+ return decrypted.toString('utf8');
174
174
  }
175
175
  catch (err) {
176
176
  throw new yzhSDKHttpException_1.default(`${err}`);
@@ -181,7 +181,7 @@ class YZHClient {
181
181
  * @param responseData 回调返回对象
182
182
  * @returns
183
183
  */
184
- this.notifyDecoder = (responseData) => {
184
+ this.notifyDecoder = responseData => {
185
185
  const notifyDecoderResult = (data, mess, timestamp, sign) => {
186
186
  const verifyMap = {
187
187
  rsa: this.verifyRSASHA256,
@@ -202,17 +202,10 @@ class YZHClient {
202
202
  if (data && mess && timestamp && sign) {
203
203
  return notifyDecoderResult(data, mess, timestamp, sign);
204
204
  }
205
- return { result: false, plaintext: "" };
205
+ return { result: false, plaintext: '' };
206
206
  };
207
207
  const { dealer_id, broker_id, app_key, des3_key, private_key, yzh_public_key, sign_type } = conf || {};
208
- if (conf &&
209
- dealer_id &&
210
- broker_id &&
211
- app_key &&
212
- des3_key &&
213
- private_key &&
214
- yzh_public_key &&
215
- sign_type) {
208
+ if (conf && dealer_id && broker_id && app_key && des3_key && private_key && yzh_public_key && sign_type) {
216
209
  this.dealer_id = conf.dealer_id;
217
210
  this.broker_id = conf.broker_id;
218
211
  this.app_key = conf.app_key;
@@ -228,7 +221,7 @@ class YZHClient {
228
221
  }
229
222
  }
230
223
  // 基础请求:进行请求实例生成 Header,动态设置、请求体包装等偏底层操作
231
- doRequest(method, action, req) {
224
+ doBaseRequest(method, action, req) {
232
225
  const { request_id, ...resReq } = req;
233
226
  // 请求参数加密
234
227
  const encryptParams = this.generatorRequestParams(resReq);
@@ -242,7 +235,7 @@ class YZHClient {
242
235
  // 返回请求实例
243
236
  const baseInstanceConf = { method, url: action };
244
237
  let instanceConf;
245
- if (method === "get") {
238
+ if (method === 'get') {
246
239
  instanceConf = { ...baseInstanceConf, params: encryptParams };
247
240
  }
248
241
  else {
@@ -252,12 +245,12 @@ class YZHClient {
252
245
  }
253
246
  // 公共请求:调用封装好的基础请求方法 doRequest,进行发送请求与响应内容处理
254
247
  async request(method, action, req, options, cb) {
255
- if (typeof options === "function") {
248
+ if (typeof options === 'function') {
256
249
  cb = options;
257
250
  options = {};
258
251
  }
259
252
  try {
260
- const result = await this.doRequest(method, action, req !== null && req !== void 0 ? req : {});
253
+ const result = await this.doBaseRequest(method, action, req !== null && req !== void 0 ? req : {});
261
254
  // 错误码处理 > 验签 > 解密
262
255
  const responseData = await this.parseResponse(result, options === null || options === void 0 ? void 0 : options.encryption);
263
256
  cb && cb(null, responseData);
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class YZHSDKHttpException extends Error {
4
- constructor(error, request_id = "") {
4
+ constructor(error, request_id = '') {
5
5
  super(error);
6
- this.request_id = request_id || "";
6
+ this.request_id = request_id || '';
7
7
  }
8
8
  getMessage() {
9
9
  return this.message;
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const axios_1 = require("axios");
4
4
  const urlencode = require("urlencode");
5
5
  const pkg = require("../../../package.json");
6
- const JsonBigString = require("json-bigint")({ storeAsString: true });
7
- const BASE_URL = "https://api-service.yunzhanghu.com/";
6
+ const JsonBigString = require('json-bigint')({ storeAsString: true });
7
+ const BASE_URL = 'https://api-service.yunzhanghu.com/';
8
8
  const getInstance = (config = {}) => {
9
9
  var _a;
10
10
  const instance = axios_1.default.create({
11
11
  baseURL: config.base_url || BASE_URL,
12
12
  headers: {
13
- "request-id": config === null || config === void 0 ? void 0 : config.request_id,
14
- "dealer-id": config === null || config === void 0 ? void 0 : config.dealer_id,
15
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
16
- "User-Agent": `yunzhanghu-sdk-nodejs/${pkg.version}/${process.version}`,
13
+ 'request-id': config === null || config === void 0 ? void 0 : config.request_id,
14
+ 'dealer-id': config === null || config === void 0 ? void 0 : config.dealer_id,
15
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
16
+ 'User-Agent': `yunzhanghu-sdk-nodejs/${pkg.version}/${process.version}`,
17
17
  },
18
18
  timeout: (_a = config.timeout) !== null && _a !== void 0 ? _a : 30 * 1000,
19
19
  transformResponse: [
@@ -29,9 +29,9 @@ const getInstance = (config = {}) => {
29
29
  ],
30
30
  });
31
31
  // 拦截器
32
- instance.interceptors.request.use((config) => {
32
+ instance.interceptors.request.use(config => {
33
33
  // URL Encode
34
- if (config.method === "get") {
34
+ if (config.method === 'get') {
35
35
  const { params: urlData } = config;
36
36
  const { data, sign, ...resData } = urlData;
37
37
  // eslint-disable-next-line no-param-reassign
@@ -43,7 +43,7 @@ const getInstance = (config = {}) => {
43
43
  }
44
44
  return config;
45
45
  });
46
- instance.interceptors.response.use((response) => {
46
+ instance.interceptors.response.use(response => {
47
47
  const { data } = response;
48
48
  if (data) {
49
49
  const { request_id, requestID, ...resResponse } = data;
@@ -1,4 +1,4 @@
1
- import YZHclient from "../client";
1
+ import YZHclient from '../client';
2
2
  export declare class Util extends YZHclient {
3
3
  constructor(conf: {
4
4
  dealer_id: string;
@@ -7,7 +7,7 @@ export declare class Util extends YZHclient {
7
7
  des3_key: string;
8
8
  private_key: string;
9
9
  yzh_public_key: string;
10
- sign_type: "rsa" | "sha256";
10
+ sign_type: 'rsa' | 'sha256';
11
11
  base_url?: string;
12
12
  timeout?: number;
13
13
  });
package/yzh/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./services";
1
+ export * from './services';
@@ -0,0 +1,28 @@
1
+ import YZHClient from '../../common/client';
2
+ export declare class CustomClient extends YZHClient {
3
+ constructor(conf: {
4
+ dealer_id: string;
5
+ broker_id: string;
6
+ app_key: string;
7
+ des3_key: string;
8
+ private_key: string;
9
+ yzh_public_key: string;
10
+ sign_type: 'rsa' | 'sha256';
11
+ base_url?: string;
12
+ timeout?: number;
13
+ });
14
+ /**
15
+ * 通用请求函数
16
+ * @param req 请求参数
17
+ * @param url 请求地址
18
+ * @param method 请求方式 'post' | 'get'
19
+ * @param cb
20
+ * @returns
21
+ */
22
+ doRequest<CustomRequest, CustomResponse>(
23
+ req: CustomRequest,
24
+ url: string,
25
+ method: string,
26
+ cb?: (error: null | string, rep: CustomResponse) => void
27
+ ): Promise<CustomResponse>;
28
+ }
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.CustomClient = void 0;
4
+ const client_1 = require('../../common/client');
5
+ class CustomClient extends client_1.default {
6
+ // eslint-disable-next-line no-useless-constructor
7
+ constructor(conf) {
8
+ super(conf);
9
+ }
10
+ /**
11
+ * 通用请求函数
12
+ * @param req 请求参数
13
+ * @param url 请求地址
14
+ * @param method 请求方式 'post' | 'get'
15
+ * @param cb
16
+ * @returns
17
+ */
18
+ async doRequest(req, url, method, cb) {
19
+ const lower_method = method.toLowerCase();
20
+ return this.request(lower_method, url, req, { encryption: false }, cb);
21
+ }
22
+ }
23
+ exports.CustomClient = CustomClient;
@@ -1,11 +1,12 @@
1
- export { Util } from "../common/utils";
2
- export { ApiUserSignServiceClient } from "./apiusersign";
3
- export { AuthenticationClient } from "./authentication";
4
- export { BizlicXjjH5ServiceClient } from "./bizlicxjjh5";
5
- export { BizlicXjjH5APIServiceClient } from "./bizlicxjjh5api";
6
- export { DataServiceClient } from "./dataservice";
7
- export { H5UserSignServiceClient } from "./h5usersign";
8
- export { InvoiceClient } from "./invoice";
9
- export { PaymentClient } from "./payment";
10
- export { TaxClient } from "./tax";
11
- export { UploadUserSignServiceClient } from "./uploadusersign";
1
+ export { Util } from '../common/utils';
2
+ export { ApiUserSignServiceClient } from './apiusersign';
3
+ export { AuthenticationClient } from './authentication';
4
+ export { BizlicXjjH5ServiceClient } from './bizlicxjjh5';
5
+ export { BizlicXjjH5APIServiceClient } from './bizlicxjjh5api';
6
+ export { CustomClient } from './custom';
7
+ export { DataServiceClient } from './dataservice';
8
+ export { H5UserSignServiceClient } from './h5usersign';
9
+ export { InvoiceClient } from './invoice';
10
+ export { PaymentClient } from './payment';
11
+ export { TaxClient } from './tax';
12
+ export { UploadUserSignServiceClient } from './uploadusersign';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UploadUserSignServiceClient = exports.TaxClient = exports.PaymentClient = exports.InvoiceClient = exports.H5UserSignServiceClient = exports.DataServiceClient = exports.BizlicXjjH5APIServiceClient = exports.BizlicXjjH5ServiceClient = exports.AuthenticationClient = exports.ApiUserSignServiceClient = exports.Util = void 0;
3
+ exports.UploadUserSignServiceClient = exports.TaxClient = exports.PaymentClient = exports.InvoiceClient = exports.H5UserSignServiceClient = exports.DataServiceClient = exports.CustomClient = exports.BizlicXjjH5APIServiceClient = exports.BizlicXjjH5ServiceClient = exports.AuthenticationClient = exports.ApiUserSignServiceClient = exports.Util = void 0;
4
4
  var utils_1 = require("../common/utils");
5
5
  Object.defineProperty(exports, "Util", { enumerable: true, get: function () { return utils_1.Util; } });
6
6
  var apiusersign_1 = require("./apiusersign");
@@ -11,6 +11,8 @@ var bizlicxjjh5_1 = require("./bizlicxjjh5");
11
11
  Object.defineProperty(exports, "BizlicXjjH5ServiceClient", { enumerable: true, get: function () { return bizlicxjjh5_1.BizlicXjjH5ServiceClient; } });
12
12
  var bizlicxjjh5api_1 = require("./bizlicxjjh5api");
13
13
  Object.defineProperty(exports, "BizlicXjjH5APIServiceClient", { enumerable: true, get: function () { return bizlicxjjh5api_1.BizlicXjjH5APIServiceClient; } });
14
+ var custom_1 = require("./custom");
15
+ Object.defineProperty(exports, "CustomClient", { enumerable: true, get: function () { return custom_1.CustomClient; } });
14
16
  var dataservice_1 = require("./dataservice");
15
17
  Object.defineProperty(exports, "DataServiceClient", { enumerable: true, get: function () { return dataservice_1.DataServiceClient; } });
16
18
  var h5usersign_1 = require("./h5usersign");