@xfe-repo/mini-service 0.0.4 → 0.1.1

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.d.mts CHANGED
@@ -1,5 +1,12 @@
1
1
  import Taro, { Chain, RequestTask } from '@tarojs/taro';
2
2
 
3
+ type JWT = {
4
+ aud: string[];
5
+ sys_mch_id?: string;
6
+ privateKey: string;
7
+ keyId: string;
8
+ };
9
+
3
10
  type TaroRequestConfig = Taro.request.Option;
4
11
  type BffDataType<D = any> = {
5
12
  code: number;
@@ -10,6 +17,7 @@ type BffDataType<D = any> = {
10
17
  type BffRequestParams = {
11
18
  baseURL?: string;
12
19
  params?: any;
20
+ jwt?: JWT;
13
21
  };
14
22
  type BFFRequestConfig = Partial<TaroRequestConfig> & BffRequestParams;
15
23
  declare const bffInterceptor: (chain: Chain) => any;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  import Taro, { Chain, RequestTask } from '@tarojs/taro';
2
2
 
3
+ type JWT = {
4
+ aud: string[];
5
+ sys_mch_id?: string;
6
+ privateKey: string;
7
+ keyId: string;
8
+ };
9
+
3
10
  type TaroRequestConfig = Taro.request.Option;
4
11
  type BffDataType<D = any> = {
5
12
  code: number;
@@ -10,6 +17,7 @@ type BffDataType<D = any> = {
10
17
  type BffRequestParams = {
11
18
  baseURL?: string;
12
19
  params?: any;
20
+ jwt?: JWT;
13
21
  };
14
22
  type BFFRequestConfig = Partial<TaroRequestConfig> & BffRequestParams;
15
23
  declare const bffInterceptor: (chain: Chain) => any;
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
7
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
8
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
9
  var __getProtoOf = Object.getPrototypeOf;
@@ -19,6 +21,19 @@ var __spreadValues = (a, b) => {
19
21
  }
20
22
  return a;
21
23
  };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
22
37
  var __export = (target, all) => {
23
38
  for (var name in all)
24
39
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -52,14 +67,41 @@ var import_taro2 = require("@tarojs/taro");
52
67
 
53
68
  // src/bff/interceptor.ts
54
69
  var import_taro = __toESM(require("@tarojs/taro"));
70
+
71
+ // src/bff/jwt-sign.ts
72
+ var import_jsrsasign = require("jsrsasign");
73
+ var ALG = "RS256";
74
+ var createJwtSign = (payload, privateKeyPem, keyId) => {
75
+ if (!privateKeyPem) return "";
76
+ try {
77
+ const sHeader = JSON.stringify({ alg: ALG, typ: "JWT", kid: keyId });
78
+ const defaultPayload = {
79
+ sys_mch_id: "eshetang-official",
80
+ iss: "https://auth.eshetang.com",
81
+ jti: Math.random().toString(36),
82
+ // Expires in 60 seconds
83
+ exp: Math.floor(Date.now() / 1e3) + 60
84
+ };
85
+ const sPayload = JSON.stringify(__spreadValues(__spreadValues({}, defaultPayload), payload));
86
+ const authorization = import_jsrsasign.KJUR.jws.JWS.sign(ALG, sHeader, sPayload, privateKeyPem);
87
+ return `Bearer ${authorization}`;
88
+ } catch (error) {
89
+ console.error("createJwtSign error:", error);
90
+ return "";
91
+ }
92
+ };
93
+
94
+ // src/bff/interceptor.ts
55
95
  var bffInterceptor = (chain) => {
56
96
  const requestParams = chain.requestParams;
57
- let { url, baseURL, data, params, header } = requestParams;
97
+ let { url, baseURL, data, params, header, jwt } = requestParams;
58
98
  if (url && !/^http/.test(url)) {
59
99
  requestParams.url = baseURL + url.replace(/^\//, "");
60
100
  }
61
101
  const timestamp = (/* @__PURE__ */ new Date()).getTime();
62
- header = __spreadValues({ timestamp: `${timestamp}` }, header);
102
+ const _a = jwt || {}, { privateKey, keyId } = _a, payload = __objRest(_a, ["privateKey", "keyId"]);
103
+ const authorization = createJwtSign(__spreadProps(__spreadValues({}, payload), { sub: header["userToken"] }), privateKey, keyId);
104
+ header = __spreadValues({ timestamp: `${timestamp}`, authorization }, header);
63
105
  data = __spreadValues(__spreadValues({}, data), params);
64
106
  for (const param in data) {
65
107
  const isEmptyString = data[param] === "";
@@ -70,10 +112,10 @@ var bffInterceptor = (chain) => {
70
112
  requestParams.data = data;
71
113
  requestParams.header = header;
72
114
  return chain.proceed(requestParams).then((responseData) => {
73
- var _a, _b;
115
+ var _a2, _b;
74
116
  const { data: bffData, statusCode, errMsg } = responseData;
75
117
  if (![200, 201].includes(statusCode)) return { data: {}, msg: errMsg, code: statusCode };
76
- (_b = (_a = import_taro.default).stopPullDownRefresh) == null ? void 0 : _b.call(_a);
118
+ (_b = (_a2 = import_taro.default).stopPullDownRefresh) == null ? void 0 : _b.call(_a2);
77
119
  return bffData;
78
120
  });
79
121
  };
package/dist/index.mjs CHANGED
@@ -1,4 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
2
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
4
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -14,20 +16,60 @@ var __spreadValues = (a, b) => {
14
16
  }
15
17
  return a;
16
18
  };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
17
32
 
18
33
  // src/index.ts
19
34
  import { addInterceptor, interceptors, request } from "@tarojs/taro";
20
35
 
21
36
  // src/bff/interceptor.ts
22
37
  import Taro from "@tarojs/taro";
38
+
39
+ // src/bff/jwt-sign.ts
40
+ import { KJUR } from "jsrsasign";
41
+ var ALG = "RS256";
42
+ var createJwtSign = (payload, privateKeyPem, keyId) => {
43
+ if (!privateKeyPem) return "";
44
+ try {
45
+ const sHeader = JSON.stringify({ alg: ALG, typ: "JWT", kid: keyId });
46
+ const defaultPayload = {
47
+ sys_mch_id: "eshetang-official",
48
+ iss: "https://auth.eshetang.com",
49
+ jti: Math.random().toString(36),
50
+ // Expires in 60 seconds
51
+ exp: Math.floor(Date.now() / 1e3) + 60
52
+ };
53
+ const sPayload = JSON.stringify(__spreadValues(__spreadValues({}, defaultPayload), payload));
54
+ const authorization = KJUR.jws.JWS.sign(ALG, sHeader, sPayload, privateKeyPem);
55
+ return `Bearer ${authorization}`;
56
+ } catch (error) {
57
+ console.error("createJwtSign error:", error);
58
+ return "";
59
+ }
60
+ };
61
+
62
+ // src/bff/interceptor.ts
23
63
  var bffInterceptor = (chain) => {
24
64
  const requestParams = chain.requestParams;
25
- let { url, baseURL, data, params, header } = requestParams;
65
+ let { url, baseURL, data, params, header, jwt } = requestParams;
26
66
  if (url && !/^http/.test(url)) {
27
67
  requestParams.url = baseURL + url.replace(/^\//, "");
28
68
  }
29
69
  const timestamp = (/* @__PURE__ */ new Date()).getTime();
30
- header = __spreadValues({ timestamp: `${timestamp}` }, header);
70
+ const _a = jwt || {}, { privateKey, keyId } = _a, payload = __objRest(_a, ["privateKey", "keyId"]);
71
+ const authorization = createJwtSign(__spreadProps(__spreadValues({}, payload), { sub: header["userToken"] }), privateKey, keyId);
72
+ header = __spreadValues({ timestamp: `${timestamp}`, authorization }, header);
31
73
  data = __spreadValues(__spreadValues({}, data), params);
32
74
  for (const param in data) {
33
75
  const isEmptyString = data[param] === "";
@@ -38,10 +80,10 @@ var bffInterceptor = (chain) => {
38
80
  requestParams.data = data;
39
81
  requestParams.header = header;
40
82
  return chain.proceed(requestParams).then((responseData) => {
41
- var _a, _b;
83
+ var _a2, _b;
42
84
  const { data: bffData, statusCode, errMsg } = responseData;
43
85
  if (![200, 201].includes(statusCode)) return { data: {}, msg: errMsg, code: statusCode };
44
- (_b = (_a = Taro).stopPullDownRefresh) == null ? void 0 : _b.call(_a);
86
+ (_b = (_a2 = Taro).stopPullDownRefresh) == null ? void 0 : _b.call(_a2);
45
87
  return bffData;
46
88
  });
47
89
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfe-repo/mini-service",
3
- "version": "0.0.4",
3
+ "version": "0.1.1",
4
4
  "sideEffects": false,
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,9 +20,11 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@tarojs/taro": "4.0.8"
23
+ "@tarojs/taro": "4.0.8",
24
+ "jsrsasign": "^11.1.0"
24
25
  },
25
26
  "devDependencies": {
27
+ "@types/jsrsasign": "^10.5.15",
26
28
  "@types/node": "^20.16.5",
27
29
  "@xfe-repo/eslint-config": "0.0.5",
28
30
  "@xfe-repo/typescript-config": "0.0.6"