@nest-omni/core 4.1.3-20 → 4.1.3-23
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/audit/audit.module.d.ts +1 -0
- package/audit/audit.module.js +5 -3
- package/audit/controllers/audit.controller.d.ts +3 -11
- package/audit/controllers/audit.controller.js +12 -19
- package/audit/decorators/audit-operation.decorator.d.ts +0 -7
- package/audit/decorators/audit-operation.decorator.js +0 -7
- package/audit/dto/audit-action-query.dto.d.ts +13 -0
- package/audit/dto/audit-action-query.dto.js +77 -0
- package/audit/dto/index.d.ts +1 -0
- package/audit/dto/index.js +1 -0
- package/audit/entities/entity-audit-log.entity.d.ts +1 -4
- package/audit/entities/entity-audit-log.entity.js +1 -17
- package/audit/entities/manual-operation-log.entity.d.ts +0 -2
- package/audit/entities/manual-operation-log.entity.js +0 -8
- package/audit/enums/audit.enums.d.ts +0 -8
- package/audit/enums/audit.enums.js +1 -10
- package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
- package/audit/examples/decorator-value-mapping.example.js +414 -0
- package/audit/index.d.ts +1 -0
- package/audit/index.js +5 -1
- package/audit/interceptors/audit.interceptor.d.ts +1 -0
- package/audit/interceptors/audit.interceptor.js +19 -11
- package/audit/interfaces/audit.interfaces.d.ts +2 -17
- package/audit/services/audit-context.service.d.ts +9 -0
- package/audit/services/entity-audit.service.d.ts +65 -24
- package/audit/services/entity-audit.service.js +280 -93
- package/audit/services/manual-audit-log.service.d.ts +0 -1
- package/audit/services/manual-audit-log.service.js +1 -3
- package/audit/subscribers/entity-audit.subscriber.d.ts +1 -0
- package/audit/subscribers/entity-audit.subscriber.js +22 -5
- package/cache/cache.module.d.ts +7 -2
- package/cache/cache.module.js +9 -7
- package/cache/cache.service.d.ts +4 -4
- package/cache/cache.service.js +5 -5
- package/cache/entities/index.d.ts +1 -0
- package/cache/entities/index.js +17 -0
- package/cache/entities/typeorm-cache.entity.d.ts +71 -0
- package/cache/entities/typeorm-cache.entity.js +110 -0
- package/cache/index.d.ts +2 -1
- package/cache/index.js +19 -2
- package/cache/providers/index.d.ts +2 -1
- package/cache/providers/index.js +2 -1
- package/cache/providers/lrucache.provider.d.ts +76 -0
- package/cache/providers/lrucache.provider.js +226 -0
- package/cache/providers/typeorm-cache.provider.d.ts +211 -0
- package/cache/providers/typeorm-cache.provider.js +483 -0
- package/common/boilerplate.polyfill.d.ts +1 -0
- package/common/boilerplate.polyfill.js +17 -0
- package/common/helpers/validation-metadata-helper.d.ts +55 -0
- package/common/helpers/validation-metadata-helper.js +60 -0
- package/common/index.d.ts +1 -0
- package/common/index.js +4 -0
- package/decorators/field.decorators.d.ts +71 -2
- package/decorators/field.decorators.js +147 -18
- package/decorators/transform.decorators.d.ts +0 -2
- package/decorators/transform.decorators.js +0 -23
- package/filters/bad-request.filter.js +19 -4
- package/http-client/examples/axios-config-extended.example.d.ts +17 -0
- package/http-client/examples/axios-config-extended.example.js +313 -0
- package/http-client/examples/index.d.ts +2 -0
- package/http-client/examples/index.js +2 -0
- package/http-client/examples/ssl-certificate.example.d.ts +47 -0
- package/http-client/examples/ssl-certificate.example.js +431 -0
- package/http-client/index.d.ts +1 -1
- package/http-client/interfaces/http-client-config.interface.d.ts +73 -0
- package/http-client/services/http-client.service.js +46 -5
- package/http-client/utils/context-extractor.util.js +2 -0
- package/ip-filter/constants.d.ts +21 -0
- package/ip-filter/constants.js +24 -0
- package/ip-filter/decorators/index.d.ts +1 -0
- package/ip-filter/decorators/index.js +17 -0
- package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
- package/ip-filter/decorators/ip-filter.decorator.js +79 -0
- package/ip-filter/guards/index.d.ts +1 -0
- package/ip-filter/guards/index.js +17 -0
- package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
- package/ip-filter/guards/ip-filter.guard.js +174 -0
- package/ip-filter/index.d.ts +7 -0
- package/ip-filter/index.js +23 -0
- package/ip-filter/interfaces/index.d.ts +4 -0
- package/ip-filter/interfaces/index.js +20 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
- package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
- package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
- package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
- package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
- package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
- package/ip-filter/interfaces/ip-rule.interface.js +2 -0
- package/ip-filter/ip-filter.module.d.ts +55 -0
- package/ip-filter/ip-filter.module.js +105 -0
- package/ip-filter/services/index.d.ts +1 -0
- package/ip-filter/services/index.js +17 -0
- package/ip-filter/services/ip-filter.service.d.ts +92 -0
- package/ip-filter/services/ip-filter.service.js +238 -0
- package/ip-filter/utils/index.d.ts +1 -0
- package/ip-filter/utils/index.js +17 -0
- package/ip-filter/utils/ip-utils.d.ts +61 -0
- package/ip-filter/utils/ip-utils.js +162 -0
- package/package.json +23 -24
- package/providers/context.provider.d.ts +9 -0
- package/providers/context.provider.js +13 -0
- package/setup/bootstrap.setup.d.ts +1 -1
- package/setup/bootstrap.setup.js +1 -1
- package/shared/service-registry.module.js +0 -1
- package/cache/providers/memory-cache.provider.d.ts +0 -69
- package/cache/providers/memory-cache.provider.js +0 -237
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpAgentExample = httpAgentExample;
|
|
4
|
+
exports.redirectAndValidationExample = redirectAndValidationExample;
|
|
5
|
+
exports.responseTypeExample = responseTypeExample;
|
|
6
|
+
exports.sizeAndRateLimitExample = sizeAndRateLimitExample;
|
|
7
|
+
exports.paramsSerializationExample = paramsSerializationExample;
|
|
8
|
+
exports.formSerializationExample = formSerializationExample;
|
|
9
|
+
exports.securityOptionsExample = securityOptionsExample;
|
|
10
|
+
exports.abortControllerExample = abortControllerExample;
|
|
11
|
+
exports.transitionalOptionsExample = transitionalOptionsExample;
|
|
12
|
+
exports.progressEventsExample = progressEventsExample;
|
|
13
|
+
exports.comprehensiveConfigExample = comprehensiveConfigExample;
|
|
14
|
+
exports.environmentSpecificConfig = environmentSpecificConfig;
|
|
15
|
+
const http_1 = require("http");
|
|
16
|
+
const https_1 = require("https");
|
|
17
|
+
/**
|
|
18
|
+
* axiosConfig 透传配置示例
|
|
19
|
+
* 展示如何通过 axiosConfig 直接传递 Axios 原生配置
|
|
20
|
+
*/
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// 示例 1: 使用 httpAgent 和 httpsAgent 启用连接池
|
|
23
|
+
// ============================================================================
|
|
24
|
+
function httpAgentExample() {
|
|
25
|
+
const config = {
|
|
26
|
+
baseURL: 'https://api.example.com',
|
|
27
|
+
timeout: 30000,
|
|
28
|
+
// 通过 axiosConfig 透传 Axios 原生配置
|
|
29
|
+
axiosConfig: {
|
|
30
|
+
// 启用 HTTP keep-alive 连接池
|
|
31
|
+
httpAgent: new http_1.Agent({
|
|
32
|
+
keepAlive: true,
|
|
33
|
+
keepAliveMsecs: 1000,
|
|
34
|
+
maxSockets: 50,
|
|
35
|
+
maxFreeSockets: 10,
|
|
36
|
+
timeout: 60000,
|
|
37
|
+
}),
|
|
38
|
+
// 启用 HTTPS keep-alive 连接池
|
|
39
|
+
httpsAgent: new https_1.Agent({
|
|
40
|
+
keepAlive: true,
|
|
41
|
+
keepAliveMsecs: 1000,
|
|
42
|
+
maxSockets: 50,
|
|
43
|
+
maxFreeSockets: 10,
|
|
44
|
+
timeout: 60000,
|
|
45
|
+
// 可选:跳过证书验证(不推荐用于生产环境)
|
|
46
|
+
rejectUnauthorized: true,
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
// 创建 HttpClientService 实例...
|
|
51
|
+
}
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// 示例 2: 配置重定向和响应验证
|
|
54
|
+
// ============================================================================
|
|
55
|
+
function redirectAndValidationExample() {
|
|
56
|
+
const config = {
|
|
57
|
+
baseURL: 'https://api.example.com',
|
|
58
|
+
axiosConfig: {
|
|
59
|
+
// 禁止自动跟随重定向
|
|
60
|
+
maxRedirects: 0,
|
|
61
|
+
// 或者限制重定向次数
|
|
62
|
+
// maxRedirects: 5,
|
|
63
|
+
// 自定义状态码验证逻辑
|
|
64
|
+
validateStatus: (status) => {
|
|
65
|
+
// 将 400-499 视为成功(不抛出异常)
|
|
66
|
+
return status >= 200 && status < 500;
|
|
67
|
+
},
|
|
68
|
+
// 重定向前回调
|
|
69
|
+
beforeRedirect: (options, { headers }) => {
|
|
70
|
+
// 可以在这里修改重定向请求
|
|
71
|
+
if (options.hostname === 'restricted.com') {
|
|
72
|
+
throw new Error('Redirect to restricted domain not allowed');
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// ============================================================================
|
|
79
|
+
// 示例 3: 配置响应类型和数据转换
|
|
80
|
+
// ============================================================================
|
|
81
|
+
function responseTypeExample() {
|
|
82
|
+
const config = {
|
|
83
|
+
baseURL: 'https://api.example.com',
|
|
84
|
+
axiosConfig: {
|
|
85
|
+
// 指定响应类型
|
|
86
|
+
responseType: 'arraybuffer', // 'arraybuffer' | 'document' | 'json' | 'text' | 'stream' | 'blob'
|
|
87
|
+
responseEncoding: 'utf8',
|
|
88
|
+
// 自定义请求/响应转换器
|
|
89
|
+
transformRequest: [
|
|
90
|
+
(data, headers) => {
|
|
91
|
+
// 在发送前修改数据
|
|
92
|
+
if (typeof data === 'object') {
|
|
93
|
+
// 自动添加时间戳
|
|
94
|
+
data.timestamp = Date.now();
|
|
95
|
+
}
|
|
96
|
+
return JSON.stringify(data);
|
|
97
|
+
},
|
|
98
|
+
...require('axios').defaults.transformRequest,
|
|
99
|
+
],
|
|
100
|
+
transformResponse: [
|
|
101
|
+
(data) => {
|
|
102
|
+
// 在接收后修改数据
|
|
103
|
+
if (typeof data === 'string') {
|
|
104
|
+
try {
|
|
105
|
+
const parsed = JSON.parse(data);
|
|
106
|
+
// 统一处理响应格式
|
|
107
|
+
return parsed.data || parsed;
|
|
108
|
+
}
|
|
109
|
+
catch (_a) {
|
|
110
|
+
return data;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return data;
|
|
114
|
+
},
|
|
115
|
+
...require('axios').defaults.transformResponse,
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// 示例 4: 配置大小限制和速率限制
|
|
122
|
+
// ============================================================================
|
|
123
|
+
function sizeAndRateLimitExample() {
|
|
124
|
+
const config = {
|
|
125
|
+
baseURL: 'https://api.example.com',
|
|
126
|
+
axiosConfig: {
|
|
127
|
+
// 响应体大小限制(字节)
|
|
128
|
+
maxContentLength: 10 * 1024 * 1024, // 10MB
|
|
129
|
+
// 请求体大小限制(字节)
|
|
130
|
+
maxBodyLength: 5 * 1024 * 1024, // 5MB
|
|
131
|
+
// 速率限制 [上传 B/s, 下载 B/s]
|
|
132
|
+
maxRate: [1024 * 1024, 2 * 1024 * 1024], // 上传 1MB/s, 下载 2MB/s
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// 示例 5: 配置参数序列化
|
|
138
|
+
// ============================================================================
|
|
139
|
+
function paramsSerializationExample() {
|
|
140
|
+
const config = {
|
|
141
|
+
baseURL: 'https://api.example.com',
|
|
142
|
+
axiosConfig: {
|
|
143
|
+
paramsSerializer: {
|
|
144
|
+
// 自定义编码函数
|
|
145
|
+
encode: (param) => {
|
|
146
|
+
return encodeURIComponent(param)
|
|
147
|
+
.replace(/%40/gi, '@')
|
|
148
|
+
.replace(/%3A/gi, ':')
|
|
149
|
+
.replace(/%24/g, '$')
|
|
150
|
+
.replace(/%2C/gi, ',')
|
|
151
|
+
.replace(/%20/g, '+');
|
|
152
|
+
},
|
|
153
|
+
// 数组索引格式
|
|
154
|
+
indexes: true, // true=a[0]=b, false=a[]=b, null=a=b
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
// ============================================================================
|
|
160
|
+
// 示例 6: 配置表单序列化
|
|
161
|
+
// ============================================================================
|
|
162
|
+
function formSerializationExample() {
|
|
163
|
+
const config = {
|
|
164
|
+
baseURL: 'https://api.example.com',
|
|
165
|
+
axiosConfig: {
|
|
166
|
+
formSerializer: {
|
|
167
|
+
// 自定义访问器
|
|
168
|
+
visitor: (value, key, path) => {
|
|
169
|
+
// 自定义值转换逻辑
|
|
170
|
+
if (value instanceof Date) {
|
|
171
|
+
return value.toISOString();
|
|
172
|
+
}
|
|
173
|
+
return value;
|
|
174
|
+
},
|
|
175
|
+
// 使用点符号而不是括号
|
|
176
|
+
dots: true,
|
|
177
|
+
// 保留特殊结尾(如 {})
|
|
178
|
+
metaTokens: true,
|
|
179
|
+
// 数组索引格式
|
|
180
|
+
indexes: true,
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// ============================================================================
|
|
186
|
+
// 示例 7: 配置安全选项
|
|
187
|
+
// ============================================================================
|
|
188
|
+
function securityOptionsExample() {
|
|
189
|
+
const config = {
|
|
190
|
+
baseURL: 'https://api.example.com',
|
|
191
|
+
axiosConfig: {
|
|
192
|
+
// 是否允许绝对 URL 覆盖 baseURL
|
|
193
|
+
allowAbsoluteUrls: true,
|
|
194
|
+
// 跨域请求是否携带凭证
|
|
195
|
+
withCredentials: true,
|
|
196
|
+
// 禁用自动解压
|
|
197
|
+
decompress: false,
|
|
198
|
+
// 使用不安全的 HTTP 解析器(允许无效的 HTTP 头)
|
|
199
|
+
// 警告:仅在与非标准 HTTP 实现交互时使用
|
|
200
|
+
insecureHTTPParser: false,
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// ============================================================================
|
|
205
|
+
// 示例 8: 使用 AbortSignal 取消请求
|
|
206
|
+
// ============================================================================
|
|
207
|
+
function abortControllerExample() {
|
|
208
|
+
const config = {
|
|
209
|
+
baseURL: 'https://api.example.com',
|
|
210
|
+
axiosConfig: {
|
|
211
|
+
// 可以在每次请求时动态设置
|
|
212
|
+
// signal: new AbortController().signal,
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
// 使用示例:
|
|
216
|
+
// const abortController = new AbortController();
|
|
217
|
+
// config.axiosConfig!.signal = abortController.signal;
|
|
218
|
+
//
|
|
219
|
+
// setTimeout(() => abortController.abort(), 5000); // 5秒后取消
|
|
220
|
+
}
|
|
221
|
+
// ============================================================================
|
|
222
|
+
// 示例 9: 向后兼容选项
|
|
223
|
+
// ============================================================================
|
|
224
|
+
function transitionalOptionsExample() {
|
|
225
|
+
const config = {
|
|
226
|
+
baseURL: 'https://api.example.com',
|
|
227
|
+
axiosConfig: {
|
|
228
|
+
transitional: {
|
|
229
|
+
// 静默 JSON 解析错误(旧行为)
|
|
230
|
+
silentJSONParsing: false,
|
|
231
|
+
// 即使 responseType 不是 'json' 也尝试解析
|
|
232
|
+
forcedJSONParsing: true,
|
|
233
|
+
// 超时时抛出明确的 ETIMEDOUT 错误
|
|
234
|
+
clarifyTimeoutError: true,
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
// ============================================================================
|
|
240
|
+
// 示例 10: 进度事件(浏览器环境)
|
|
241
|
+
// ============================================================================
|
|
242
|
+
function progressEventsExample() {
|
|
243
|
+
const config = {
|
|
244
|
+
baseURL: 'https://api.example.com',
|
|
245
|
+
axiosConfig: {
|
|
246
|
+
// 上传进度
|
|
247
|
+
onUploadProgress: (progressEvent) => {
|
|
248
|
+
const percentCompleted = Math.round((progressEvent.loaded * 100) / (progressEvent.total || 1));
|
|
249
|
+
console.log(`Upload ${percentCompleted}%`);
|
|
250
|
+
},
|
|
251
|
+
// 下载进度
|
|
252
|
+
onDownloadProgress: (progressEvent) => {
|
|
253
|
+
const percentCompleted = Math.round((progressEvent.loaded * 100) / (progressEvent.total || 1));
|
|
254
|
+
console.log(`Download ${percentCompleted}%`);
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
// ============================================================================
|
|
260
|
+
// 示例 11: 综合配置
|
|
261
|
+
// ============================================================================
|
|
262
|
+
function comprehensiveConfigExample() {
|
|
263
|
+
const config = {
|
|
264
|
+
// 显式配置(优先级高)
|
|
265
|
+
baseURL: 'https://api.example.com',
|
|
266
|
+
timeout: 30000,
|
|
267
|
+
// 内置功能配置
|
|
268
|
+
retry: {
|
|
269
|
+
enabled: true,
|
|
270
|
+
retries: 3,
|
|
271
|
+
},
|
|
272
|
+
circuitBreaker: {
|
|
273
|
+
enabled: true,
|
|
274
|
+
failureThreshold: 5,
|
|
275
|
+
},
|
|
276
|
+
logging: {
|
|
277
|
+
enabled: true,
|
|
278
|
+
logLevel: 'info',
|
|
279
|
+
},
|
|
280
|
+
// Axios 原生配置透传(优先级低,会被显式配置覆盖)
|
|
281
|
+
axiosConfig: {
|
|
282
|
+
httpAgent: new http_1.Agent({ keepAlive: true }),
|
|
283
|
+
httpsAgent: new https_1.Agent({ keepAlive: true }),
|
|
284
|
+
maxRedirects: 5,
|
|
285
|
+
responseType: 'json',
|
|
286
|
+
validateStatus: (status) => status >= 200 && status < 300,
|
|
287
|
+
maxContentLength: 10 * 1024 * 1024,
|
|
288
|
+
},
|
|
289
|
+
};
|
|
290
|
+
return config;
|
|
291
|
+
}
|
|
292
|
+
// ============================================================================
|
|
293
|
+
// 示例 12: 环境相关的配置
|
|
294
|
+
// ============================================================================
|
|
295
|
+
function environmentSpecificConfig() {
|
|
296
|
+
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
297
|
+
const config = {
|
|
298
|
+
baseURL: isDevelopment
|
|
299
|
+
? 'https://dev-api.example.com'
|
|
300
|
+
: 'https://api.example.com',
|
|
301
|
+
axiosConfig: {
|
|
302
|
+
// 开发环境使用更宽松的验证
|
|
303
|
+
validateStatus: isDevelopment
|
|
304
|
+
? (status) => status >= 200 && status < 500
|
|
305
|
+
: (status) => status >= 200 && status < 300,
|
|
306
|
+
// 开发环境禁用 keep-alive 以便调试
|
|
307
|
+
httpAgent: isDevelopment
|
|
308
|
+
? undefined
|
|
309
|
+
: new http_1.Agent({ keepAlive: true }),
|
|
310
|
+
},
|
|
311
|
+
};
|
|
312
|
+
return config;
|
|
313
|
+
}
|
|
@@ -17,3 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./basic-usage.example"), exports);
|
|
18
18
|
__exportStar(require("./advanced-usage.example"), exports);
|
|
19
19
|
__exportStar(require("./multi-api-configuration.example"), exports);
|
|
20
|
+
__exportStar(require("./axios-config-extended.example"), exports);
|
|
21
|
+
__exportStar(require("./ssl-certificate.example"), exports);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { HttpClientConfig } from '../index';
|
|
2
|
+
/**
|
|
3
|
+
* SSL/TLS 证书配置示例
|
|
4
|
+
* 解决自签名证书、客户端证书认证等问题
|
|
5
|
+
*/
|
|
6
|
+
export declare function disableSslVerificationExample(): void;
|
|
7
|
+
export declare function selfSignedCaExample(): HttpClientConfig;
|
|
8
|
+
export declare function multipleCaCertsExample(): HttpClientConfig;
|
|
9
|
+
export declare function clientCertificateExample(): HttpClientConfig;
|
|
10
|
+
export declare function tlsVersionAndCiphersExample(): HttpClientConfig;
|
|
11
|
+
export declare function certFromEnvExample(): HttpClientConfig;
|
|
12
|
+
export declare function productionSslConfigExample(): HttpClientConfig;
|
|
13
|
+
export declare function environmentBasedSslConfig(): HttpClientConfig;
|
|
14
|
+
export declare function handleCertExpirationExample(): HttpClientConfig;
|
|
15
|
+
export declare function directHttpsAgentExample(): HttpClientConfig;
|
|
16
|
+
export declare function sslErrorHandlingExample(): Promise<void>;
|
|
17
|
+
export declare class DynamicCertificateManager {
|
|
18
|
+
private circuitBreakerService;
|
|
19
|
+
private loggingService;
|
|
20
|
+
private certPaths;
|
|
21
|
+
private httpClient;
|
|
22
|
+
private certCache;
|
|
23
|
+
private lastUpdate;
|
|
24
|
+
private cacheDuration;
|
|
25
|
+
constructor(circuitBreakerService: any, loggingService: any, certPaths: {
|
|
26
|
+
ca?: string;
|
|
27
|
+
cert?: string;
|
|
28
|
+
key?: string;
|
|
29
|
+
});
|
|
30
|
+
private loadCerts;
|
|
31
|
+
private buildConfig;
|
|
32
|
+
refreshCerts(): Promise<void>;
|
|
33
|
+
get(url: string): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export declare const sslEnvVars: {
|
|
36
|
+
SSL_CA_PATH: string;
|
|
37
|
+
SSL_CLIENT_CERT_PATH: string;
|
|
38
|
+
SSL_CLIENT_KEY_PATH: string;
|
|
39
|
+
SSL_PASSPHRASE: string;
|
|
40
|
+
SSL_REJECT_UNAUTHORIZED: string;
|
|
41
|
+
SSL_MIN_VERSION: string;
|
|
42
|
+
SSL_CIPHERS: string;
|
|
43
|
+
SSL_CA_CERT: string;
|
|
44
|
+
SSL_CLIENT_CERT: string;
|
|
45
|
+
SSL_CLIENT_KEY: string;
|
|
46
|
+
};
|
|
47
|
+
export declare function diagnoseSslConfig(apiUrl: string): Promise<unknown>;
|