@certd/basic 1.38.3 → 1.38.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/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.38.5](https://github.com/certd/certd/compare/v1.38.4...v1.38.5) (2026-02-02)
7
+
8
+ **Note:** Version bump only for package @certd/basic
9
+
10
+ ## [1.38.4](https://github.com/certd/certd/compare/v1.38.3...v1.38.4) (2026-01-31)
11
+
12
+ ### Bug Fixes
13
+
14
+ * 修复1:: 形式的ipv6校验失败的bug ([8b96f21](https://github.com/certd/certd/commit/8b96f218d5284033f10c186c0ce18e4c16d8e9b2))
15
+
16
+ ### Performance Improvements
17
+
18
+ * 支持部署到阿里云GA ([1a0d3ee](https://github.com/certd/certd/commit/1a0d3eeb1b0b5ce08f05af84b6161e00c1fe1815))
19
+ * 支持部署到华为elb ([60c8ace](https://github.com/certd/certd/commit/60c8ace443e848155d3ce12e95b84766a4610d3a))
20
+
6
21
  ## [1.38.3](https://github.com/certd/certd/compare/v1.38.2...v1.38.3) (2026-01-28)
7
22
 
8
23
  ### Bug Fixes
package/build.md CHANGED
@@ -1 +1 @@
1
- 00:57
1
+ 23:59
@@ -74,6 +74,7 @@ export declare const utils: {
74
74
  };
75
75
  string: {
76
76
  maxLength(str?: string, length?: number): string;
77
+ appendTimeSuffix(str?: string): string;
77
78
  };
78
79
  locker: import("./util.lock.js").Locker;
79
80
  mitter: import("mitt").Emitter<Record<import("mitt").EventType, unknown>>;
@@ -54,8 +54,14 @@ function isIpv6(d) {
54
54
  if (!d) {
55
55
  return false;
56
56
  }
57
- const isIPv6Regex = /^([0-9A-Fa-f]{0,4}:){2,7}([0-9A-Fa-f]{1,4}$|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4})$/gm;
58
- return isIPv6Regex.test(d);
57
+ try {
58
+ // 尝试构造URL,用IPv6作为hostname
59
+ new URL(`http://[${d}]`);
60
+ return true;
61
+ }
62
+ catch {
63
+ return false;
64
+ }
59
65
  }
60
66
  function isIp(d) {
61
67
  if (!d) {
@@ -154,39 +154,40 @@ export function createAxiosService({ logger }) {
154
154
  return response.data;
155
155
  }, (error) => {
156
156
  const status = error.response?.status;
157
+ let message = "";
157
158
  switch (status) {
158
159
  case 400:
159
- error.message = "请求错误";
160
+ message = "请求错误";
160
161
  break;
161
162
  case 401:
162
- error.message = "认证/登录失败";
163
+ message = "认证/登录失败";
163
164
  break;
164
165
  case 403:
165
- error.message = "拒绝访问";
166
+ message = "拒绝访问";
166
167
  break;
167
168
  case 404:
168
- error.message = `请求地址出错`;
169
+ message = `请求地址出错`;
169
170
  break;
170
171
  case 408:
171
- error.message = "请求超时";
172
+ message = "请求超时";
172
173
  break;
173
174
  case 500:
174
- error.message = "服务器内部错误";
175
+ message = "服务器内部错误";
175
176
  break;
176
177
  case 501:
177
- error.message = "服务未实现";
178
+ message = "服务未实现";
178
179
  break;
179
180
  case 502:
180
- error.message = "网关错误";
181
+ message = "网关错误";
181
182
  break;
182
183
  case 503:
183
- error.message = "服务不可用";
184
+ message = "服务不可用";
184
185
  break;
185
186
  case 504:
186
- error.message = "网关超时";
187
+ message = "网关超时";
187
188
  break;
188
189
  case 505:
189
- error.message = "HTTP版本不受支持";
190
+ message = "HTTP版本不受支持";
190
191
  break;
191
192
  case 302:
192
193
  //重定向
@@ -194,8 +195,11 @@ export function createAxiosService({ logger }) {
194
195
  default:
195
196
  break;
196
197
  }
198
+ if (status) {
199
+ message += ` [${status}] `;
200
+ }
197
201
  const errorCode = error.code;
198
- let errorMessage = null;
202
+ let errorMessage = "";
199
203
  if (errorCode === "ECONNABORTED") {
200
204
  errorMessage = "请求连接终止";
201
205
  }
@@ -211,13 +215,17 @@ export function createAxiosService({ logger }) {
211
215
  else if (errorCode === "ENOTFOUND") {
212
216
  errorMessage = "请求地址不存在";
213
217
  }
214
- if (errorMessage) {
215
- if (error.message) {
216
- errorMessage += `,${error.message}`;
217
- }
218
- error.message = errorMessage;
218
+ if (errorCode) {
219
+ errorMessage += ` [${errorCode}] `;
220
+ }
221
+ if (message) {
222
+ errorMessage += `,${message}`;
223
+ }
224
+ if (error.message) {
225
+ errorMessage += `(${error.message})`;
219
226
  }
220
- logger.error(`请求出错:${errorMessage} status:${error.response?.status || error.code},statusText:${error.response?.statusText || error.code},url:${error.config?.url},method:${error.config?.method}。`);
227
+ error.message = errorMessage;
228
+ logger.error(`请求出错:${errorMessage} status:${status},statusText:${error.response?.statusText || error.code},url:${error.config?.url},method:${error.config?.method}。`);
221
229
  logger.error("返回数据:", JSON.stringify(error.response?.data));
222
230
  if (error.response?.data) {
223
231
  const message = error.response.data.message || error.response.data.msg || error.response.data.error;
@@ -1,3 +1,4 @@
1
1
  export declare const stringUtils: {
2
2
  maxLength(str?: string, length?: number): string;
3
+ appendTimeSuffix(str?: string): string;
3
4
  };
@@ -1,8 +1,15 @@
1
+ import dayjs from "dayjs";
1
2
  export const stringUtils = {
2
3
  maxLength(str, length = 100) {
3
4
  if (str) {
4
- return str.length > length ? str.slice(0, length) + '...' : str;
5
+ return str.length > length ? str.slice(0, length) + "..." : str;
5
6
  }
6
- return '';
7
+ return "";
8
+ },
9
+ appendTimeSuffix(str) {
10
+ if (str) {
11
+ return `${str}-${dayjs().format("YYYYMMDDHHmmssSSS")}`;
12
+ }
13
+ return "";
7
14
  },
8
15
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@certd/basic",
3
3
  "private": false,
4
- "version": "1.38.3",
4
+ "version": "1.38.5",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -47,5 +47,5 @@
47
47
  "tslib": "^2.8.1",
48
48
  "typescript": "^5.4.2"
49
49
  },
50
- "gitHead": "ee6cdfb391568ad8532701a2c37ee53e88e39f75"
50
+ "gitHead": "eeb1f27fa47ddc616451f3e5a8fb8d1de345d252"
51
51
  }